Linux kernel 为BBG构建内核后无法启动(使用microSD)
我的目标是为BeagleBone Green交叉编译一个新的Linux内核。我已经成功地完成了所有步骤 这是构建和部署内核所需要的 使用以下教程 我有一个带rootfs和引导分区的microSD卡。 rootfs有内核模块,BOOT有MLO、u-BOOT.img、uImage 和uEnv.txt 将SD卡放入BBG并按下S2按钮后,LED不会闪烁。 但当我按下电源按钮时,LED开始闪烁,但BBG不会随之启动 所以我这里的问题是,我是否需要一个操作系统已经闪存到BBG内部eMMC,然后 插入具有内置内核的SD卡? 或者,在BBG中没有任何内容,然后只需插入准备好的SD卡,我就可以启动BBG了 我的第二个问题-这里是否需要USB到串行电缆?Linux kernel 为BBG构建内核后无法启动(使用microSD),linux-kernel,cross-compiling,boot,beagleboneblack,beagleboard,Linux Kernel,Cross Compiling,Boot,Beagleboneblack,Beagleboard,我的目标是为BeagleBone Green交叉编译一个新的Linux内核。我已经成功地完成了所有步骤 这是构建和部署内核所需要的 使用以下教程 我有一个带rootfs和引导分区的microSD卡。 rootfs有内核模块,BOOT有MLO、u-BOOT.img、uImage 和uEnv.txt 将SD卡放入BBG并按下S2按钮后,LED不会闪烁。 但当我按下电源按钮时,LED开始闪烁,但BBG不会随之启动 所以我这里的问题是,我是否需要一个操作系统已经闪存到BBG内部eMMC,然后 插入具有
我没有使用USB到串行电缆。从您的描述很难判断。当您将电源连接到BBB时,您必须按住“S2”,以便ROM加载程序查看SD卡的MLO/SPL
是的,具有3.3V电平的USB串行(UART,“FTDI”)电缆(对于BBB)对于低电平嵌入式工作至关重要。尤其是在使用引导加载程序或内核时。在这种情况下,它将允许您看到在哪个阶段出现问题:MLO、U-Boot或内核,然后进一步处理它。因此,第一个问题的答案是,不需要有一个带有闪烁图像的BeagleBone。 只需将准备好的SD卡放入SD卡插槽,就可以通过它进行引导 用于通过准备好的SD卡引导
它是可选的。您需要将FTDI电缆连接到BBG上的头J1,以便执行串行调试,以查看引导期间发生的情况,查看内核启动时发生的情况,并控制u-boot。为了澄清这一点,请在插入设备电源的同时按住S2键,以便从(可引导的)SD卡引导。除非您将其擦除,否则BBG的eMMC(板载存储)已包含u-boot.img和MLO。当您引导并按住S2键时,uboot(在eMMC上)知道从SD卡引导。如果要更改u-boot.img或MLO文件,必须使用dd命令将其写入BBG的eMMC 我在BBG上使用TFTP和通过NFS装载的rootfs远程启动了一个x编译内核 “我是否需要将操作系统闪存到BBG内部eMMC,然后插入具有内置内核的SD卡?” 答:不可以。除了BIOS和辅助引导加载程序外,BBG上没有任何东西可以引导(其他一切都是远程的)。如果您完全无法启动BBG,则应将BB网站上的最新操作系统映像放到SD卡上,然后从SD卡启动以重新启动 如果你有任何问题,请告诉我 编辑:我使用
minicom
进行串行调试
编辑2:我强烈建议您不要擦拭整个MMC,除非绝对必要了解“S2”按钮如何改变Beaglebone型AM335x板的行为非常重要:
通电时,AM335x SoC“查看”其几个连接引脚,其中一个正在通过标有“S2”的按钮。它只会执行一次,并且在断电之前行为保持不变
- 如果通电时按下“S2”,则它将首先查看micro SD插槽。更准确地说,它将尝试以下功能:SPI、micro SD、USB、UART
- 如果通电时未按下“S2”,则它将首先查看eMMC。更准确地说,它将尝试以下操作:eMMC、micro SD、UART、USB
或者:U-boot也会做出选择。 这很复杂。有很多方法™.
uEnv.txt
修改。这听起来很无辜,但它的意思是,即使U-Boot是从eMMC(优先级!)加载的,它仍然可以确定插入了SD卡,并将从那里加载Linux内核!最有可能发生在@shreeya patel身上的事sudo blkdiscard/dev/mmcblk1
。这将从eMMC中删除所有内容