启动卡在“等待根设备”:Beagle Bone Black

启动卡在“等待根设备”:Beagle Bone Black

我尝试将主线内核引导到 Beagle Bone Black 上,编译进行得很顺利,并且我有 zImage ,在 uboot 前端我有 MLO 和 u-boot.img 文件。

我正在遵循 elinux 的指示。 http://elinux.org/Building_for_BeagleBone

现在,当我启动主板时,持有 S2 强制从 microSD 卡启动,我有 uboot 提示符,并且内核也被拾取并加载,但启动过程卡在这里。

[    1.645505] Waiting for root device ... 
[    1.654437] mmc1: new high speed MMC card at address 0001
[    1.660920] mmcblk1: mmc1:0001 S10004 3.56 GiB 
[    1.666011] mmcblk1boot0: mmc1:0001 S10004 partition 1 4.00 MiB 
[    1.672479] mmcblk1boot1: mmc1:0001 S10004 partition 2 4.00 MiB 
[    1.679915]  mmcblk1: p1 p2

mmcblk1 必须是板载 mmc 内存模块,而 mmcblko 是我从中启动的卡。

1.542889] mmc0:主机不支持读取只读开关,假设写入启用

[    1.554351] mmc0: new high speed SDHC card at address aaaa
[    1.561019] mmcblk0: mmc0:aaaa SS08G 7.40 GiB  <-- Size match 
[    1.567951]  mmcblk0: p1 p2

uEnv.txt文件内容如下。

bootdir=                                                         
bootfile=zImage 
fdtfile=am335x-boneblack.dtb
loadaddr=0x80007fc0
fdtaddr=0x80F80000
loadfdt=fatload mmc 0:1 ${fdtaddr} ${fdtfile}
loaduimage=fatload mmc 0:1 ${loadaddr} ${bootfile}     
uenvcmd=mmc rescan; run loaduimage; run loadfdt; run fdtboot
fdtboot=run mmc_args; run mmcargs; bootz ${loadaddr} - ${fdtaddr}
mmc_args=setenv bootargs console=${console} ${optargs} root=${mmcroot}
rootfstype=${mmcrootfstype}

我可以根据需要提供进一步的日志,因为它们会占用太多空间,如果这个问题是为了帮助其他人,pastebin 不是一个长期解决方案。

答案1

问题出在 uEnv.txt 文件中,我在其中保留了从 uboot 环境中选取的变量 root 和 rootfstype。当我向他们提供自定义值时,我得到了所需的结果。

在我发布的 uEnv.txt 的最后一行中,更改

root=/dev/mmcblk0p2 <-microSD Card , Second Partition
rootfstype=ext4    <- The type of Rootfs you build, I used buildroot with ext4 settings

相关内容