Jer*_*emy 14 linux boot bootloader beagleboard
我正在尝试为 BeagleBoard xM (Rev. C) 构建自定义 Linux。我做了很多 C/C++,但我是从头开始构建和安装 Linux 的初学者。
我使用了 Yocto Project 构建工具 ( https://www.yoctoproject.org/ ),它看起来很有前景——它为 u-Boot 引导加载程序、Linux 内核和根文件系统构建了文件。
此页面提供了使用 Yocto 生成的文件设置 micro SD 卡的说明。但是,图像文件包含一个“.dtb”文件,该文件在设置说明中未提及。
这个文件和板子硬件有关系吗?各种网站都提到加载 dtd 文件(可能在 uEnv.txt 中?),但我没有找到任何详细信息。
我使用上面的说明用MLO和u-boot.img设置了启动分区,并用uEnv.txt搞砸了一点。我还使用根文件系统设置了第二个分区。
我能够启动和登录(通过串行端口控制台),但看起来大部分板硬件 - 例如视频和所有 USB 设备,包括以太网 - 都无法正常工作。这可能是因为我没有使用 .dtb 文件吗?
有人可以解释 dtb 以及如何在 Beagle 板上使用它吗?谢谢!
Jer*_*emy 15
在我弄清楚要搜索的内容后,回答我自己的问题。“dtb”文件包含一个设备树 Blob(或二进制)(这里有很好的描述)。这是将有关板卡的硬件信息传递给 Linux 内核的新(更)方法。
它可以加载到内存中,并通过 u-Boot 传递给内核。
以下是我使用的 u-Boot 命令:
setenv bootargs 'console=tty0 console=ttyO2,115200n8 root=/dev/mmcblk0p2 rootwait rootfstype=ext4 rw'
fatload mmc 0:1 0x80300000 zImage
fatload mmc 0:1 0x815f0000 beagle-xm.dtb
bootz 0x80300000 - 0x815f0000
Run Code Online (Sandbox Code Playgroud)
zImage 是内核,beagle-xm.dtb 是设备树 blob。我通过在 uEnv.txt 中设置一个“uenvcmd=...”变量来自动化启动过程(上面有上面的内容),但它有点难看,而且可能有更好的方法。
请注意,这会启动,并说它加载了设备树。但是,我仍然没有 USB 设备或视频(据我所知)。但是,我怀疑这可能是一个不同的问题。
归档时间: |
|
查看次数: |
62335 次 |
最近记录: |