我设置了Kamikaze工具链(来自openwrt),并为AMCC PPC405ex kilauea引用板编译了Linux 2.6.30.x内核。但是,由于某种原因,我无法在uBoot中执行某些操作,因为我无法从squashfs镜像运行内核。镜像可以通过tftp很好地加载并解压缩,但是控制台输出不会启动。
我没有更改Linux内核命令行,它看起来还不错(console=ttyS0,115200 root=/dev/mtdblock
)。我也有点疑惑,uBoot中的 fdt 是什么?
我不能完全确定这是否真正属于stackoverflow,但是同样,这也不是superuser.com问题(并且因为它与开发环境有关,所以它肯定与编程有关,即使这不完全是编程问题)。
最佳答案
我自己能够解决这个问题,我不应该使用openwrt-boardname-squashfs.img
,但是必须使用仅包含内核的openwrt-architecture-uImage
图像,因为它们没有复制到root.squashfs
目录中,所以从openwrt-boardname.dtb
中获取了build_dir
和bin/
。
之后,这些命令将正确启动板子:
tftp 0xfc1e0000 openwrt-kilauea.dtb
tftp 0x400000 openwrt-ppc40x-uImage
tftp 0x200000 root.squashfs
setenv bootargs 'console=ttyS0,115200 root=/dev/mtdblock2 rw'
bootm 0x400000 - 0xfc1e0000
也许有一种更简单的方法,但是我还没有弄清楚如何对mtd进行“重新分区”,因此我不必首先将内核镜像加载到内存中的
user
空间。关于command-line - 如何使uBoot与squashfs配合使用/uBoot中的FDT是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2135188/