我的目标是为BeagleBone Green交叉编译新的Linux内核。我已经成功完成了所有步骤 构建内核并部署它所需要的。
使用以下教程 https://embedjournal.com/kernel-compilation-beaglebone-black/
我有一个带rootfs和BOOT分区的microSD卡。 rootfs具有内核模块,而BOOT具有MLO,u-boot.img,uImage 和uEnv.txt。
将SD卡放入BBG并按S2按钮后,LED不会闪烁。 但是当我按下电源按钮时,LED开始闪烁,但是BBG不能启动。
所以我在这里的问题是,我是否需要已经将操作系统刷新到BBG内部eMMC,然后 插入具有内置内核的SD卡?
或者什么都没有放入BBG,然后仅插入准备好的SD卡就可以启动了。
我的第二个问题-这里是否需要USB到串行电缆? 我没有使用USB到串行电缆。
答案 0 :(得分:1)
上电后,AM335x SoC会“看”它的几个连接引脚,其中一个正在穿过标有“ S2”的按钮。 仅执行一次,并且行为保持固定,直到断电为止。
[请注意,“ USB”是一种特殊的设备模式,并不意味着可以直接从USB大容量存储中启动!]
这意味着内部最小引导代码将寻找引导加载程序的源。这通常称为MLO或SPL或X-Loader。这是第一步,然后加载主引导程序,在本例中为U-Boot。
有很多方法可以提供SPL。 AM335x Technical Reference Manual (revision P)第26.1.2章“体系结构”,图26-1将其显示为基础HW(硬件)层。我将只介绍MMC和SD,有关更多详细信息,请阅读TRM。
这很复杂。有许多方式™。
uEnv.txt
修改。这听起来很纯洁,但这意味着即使从eMMC加载了U-Boot(优先级!),它仍然可以确定已插入SD卡,并且将从那里加载Linux内核! 最有可能发生在@ shreeya-patel 为避免这种容易造成混淆的情况,通常有助于擦除eMMC以减少可能引起混乱的变量数量。最简单的方法是从SD卡启动最新的beagleboard.org映像并执行sudo blkdiscard /dev/mmcblk1
。这将擦除eMMC中的所有内容。结果是,对于普通用户,该行为减少为:它将始终尝试从SD卡读取所有内容。如果SPL,U-Boot或内核出现问题,则引导将可重复地失败。
我已经允许自己进行一些简化和小的遗漏。随意提问,但也可以考虑阅读这些主题。
如果一切都正确完成,并且系统启动正常,至少可以通过USB,以太网或WiFi与之交互,则不会。
如果由于详细信息而导致启动在任何步骤上失败,那么您很可能无法找出发生了什么情况!这就是这个问题的原因。
我个人将日历中从头开始创建某些东西的日子标记为第一次工作。我想到现在,在很多年后的今天,我可能会有2个如此明显的日子,即使那时,在那些日子里还有其他失败。
这就是为什么我认为USB到串行适配器是必不可少的工具的原因。
此外,在eBay或购物平台之一(例如Aliexpress或Banggood)上最便宜的适配器类型的价格已跌至1欧元/ 1美元以下。我总是有几个备用件,对于经常使用的设备,为了方便起见,我将永久连接调试UART适配器。
简单而又难以置信的内省使其成为必需。它将使您更好地了解事物,更快地进步并设计更可靠的系统。
答案 1 :(得分:0)
很难从您的描述中得知。在将电源连接到BBB时,您必须按住'S2'以便ROM加载器查看MLO / SPL的SD卡。
是的,对于低级嵌入式工作而言,具有3.3V电平的USB串行(UART,“ FTDI”)电缆(对于BBB而言)是必不可少的。 。在这种情况下,它可以让您查看在哪个阶段出现问题:MLO,U-Boot或内核,然后进一步进行处理。
答案 2 :(得分:0)
您需要一条FTDI电缆连接到BBG上的接头J1上,以便进行串行调试,以查看引导过程中发生的情况,查看内核启动时发生的情况以及控制u-boot。为了清楚起见,在插入设备电源以从(可引导)SD卡引导时按住S2。除非您擦除它,否则BBG的eMMC(板上存储)已经包含u-boot.img和MLO。当您引导并按住S2时,uboot(在eMMC上)知道从sdCard引导。如果要更改u-boot.img或MLO文件,则必须使用dd命令将其写入BBG的eMMC。
我在BBG上使用TFTP和通过NFS挂载的rootfs进行了x编译的内核引导。
“我是否需要已经将操作系统刷新到BBG内部eMMC,然后插入具有内置内核的SD卡?” 回答:否。除了BIOS和辅助引导程序(其他所有东西都是远程的)之外,什么也可以引导BBG。如果您完全无法启动BBG,则应将BB网站上的最新OS映像放入SD卡并从中启动以重新启动。
如果您有任何疑问,请告诉我。
编辑:我使用minicom
进行串行调试
编辑2:除非绝对必要,否则我不鼓励您擦除整个MMC
答案 3 :(得分:-1)
因此,第一个问题的答案是,没有必要在其中包含带有闪烁图像的BeagleBone。 只需将准备好的SD卡放入SD卡插槽,即可启动它。
要通过准备好的SD卡引导...
您现在应该可以登录到手臂设备了。
第二个问题的答案是,这里不需要USB到串行电缆。 这是可选的。