我记得在uboot里面可以自动检测的,但是忘记了怎么改。那堆条件语句有点晕。另外uboot的bootargs的更改貌似也无法检测kernel挂出来的是mmcblk0还是mmcblk1还是mmcblk2,mmcinfo也只能检测当前挂载的mmc,而不是列出所有的mmc.
所以问题来了,不知道什么原因,原来emmc默认是mmcblk2的,rootfs就是mmclbk2p2咯,但是不知道做了什么导致了挂载的emmc从mmcblk2变成了mmcblk1,结果就是rootfs无法挂载,导致机器挂了。
请问各位大佬,有碰到过这个情况不?我想做的是在uboot自动检测(不知道是否可行)或者kernel强制挂成什么分区就好了,或者驱动的时候根据插没插tf卡自动挂载rootfs。
最近编辑记录 powerpan (2021-04-22 10:42:58)
离线
问题是uboot无法决定kernel怎么挂,挂成什么盘符,你说的貌似需要patch下kernel
https://lore.kernel.org/patchwork/cover/674381/
这个问题我也纠结过,首先我改dts里面mmc别名,发现并没有什么卵用。
最好就是uboot脚本检测,然后生成不同的bootargs
最近编辑记录 powerpan (2021-04-22 11:35:38)
离线
你没仔细看问题,uboot设置固定的比如 /dev/mmcblk2p2 ,但是问题是kernel挂载成另外一个设备了,比如/dev/mmcblk1去了
你现在只要设置bootargs 的 rootfs 对应的block设备就行嘛, 我觉得改uboot可行。
离线
真不一样,要锁定定kernel的mmc设备才行。
uboot可以跑脚本的,先判断mmc2是否存在,然后可以生成不同的 bootargs,然后再boot
大佬这个脚本写得太刁了:
buildroot-tiny200 (F1C100/200s) 开发包近期更新内容 * 已支持DVP摄像头 *
http://whycan.com/t_5221.html
离线