我设置了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_dirbin/

之后,这些命令将正确启动板子:

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/

10-12 04:35