2016-11-12 53 views
1

我在下面的链接中为beaglebone black制作一个可启动的sdcard。唯一的变化是我试图构建一个3.14版本的内核而不是4.4版本。 当我在启动BBB之前按下启动按钮时,串行终端上会显示“CCCCCCCCC ...”输出,提示SD卡上的启动加载程序有问题。如果不按下启动按钮,BBB eMMC上的uboot就会被调用,然后它会成功从sdcard引导内核。 我需要对uEnv.txt做出什么改变才能做到这一点?从beklebone black上的sdcard启动使用eMMC中的uboot而不是sdcard上的那个

https://eewiki.net/display/linuxonarm/BeagleBone+Black#BeagleBoneBlack-LinuxKernel

+0

在“CCCCC ...”字符之前是否有任何U-Boot SPL输出?如果否,MLO有问题。由于U-Boot SPL(MLO)执行低级硬件初始化,因此在此阶段不使用uEnv.txt。您可以尝试在microSD上编写任何准备好的操作系统映像,并检查BBB是否可以从它启动。 –

+0

@LevU。这些之前我没有看到任何字符。不过,我可以在SD卡上启动内核,但BBB使用库存uboot代替。特定内核版本还需要特定的uboot版本还是最新的uboot甚至可以工作? – Bwani

回答

1

如果你看到在终端上“C”字(当按键被按下电)这意味着CPU ROM代码没有发现有效的microSD装载机(MLO)。 ROM代码在多个地址(0x0,0x20000,0x40000和0x60000)上搜索加载程序,您可以阅读它的here。尝试在地址0x0和0x40000处写入MLO副本:

sudo dd if=./u-boot/MLO of=${DISK} count=1 bs=128k 
sudo dd if=./u-boot/MLO of=${DISK} count=1 seek=2 bs=128k 

检查您的MLO是否小于128Kbytes。

您还可以将microSD卡格式化为FAT,并将MLO和u-boot.img放在那里,它也可以工作。