如何让 uBoot 与 squashfs 一起工作 / uBoot 中的 FDT 是什么?

发布于 2024-08-18 17:54:59 字数 596 浏览 5 评论 0原文

我设置了 Kamikaze 工具链(来自 openwrt),并为 < a href="http://www.appliedmicro.com/MyAMCC/jsp/public/productDetail/product_detail.jsp?productID=PPC405EX" rel="nofollow noreferrer">AMCC PPC405ex kilauea 参考板。然而,由于某种原因,我在 uBoot 中做错了一些事情,因为我无法从 squashfs 映像运行内核。图像可以通过 tftp 正常加载并解压缩,但控制台输出无法启动。

我没有更改 Linux 内核命令行,它看起来很好 (console=ttyS0,115200 root=/dev/mtdblock)。我也有点疑惑uBoot中的fdt是什么?

我不完全确定这是否真的属于 stackoverflow,但话又说回来,这也不是真正的 superuser.com 问题(而且因为这与开发环境有关,所以它肯定与编程相关,甚至虽然不完全是一个编程问题)

I set-up the Kamikaze toolchain (from openwrt), and compiled Linux 2.6.30.x kernel for an AMCC PPC405ex kilauea reference board. However, for some reason I am doing something wrong in uBoot, as I am not able to run the kernel from an squashfs image. The image loads fine over tftp and uncompresses, but the console output does not start.

I haven't changed the Linux kernel command line and it looks just fine (console=ttyS0,115200 root=/dev/mtdblock). I am also a bit puzzled what is fdt in uBoot?

I am not entirely certain if this really belongs on stackoverflow, but then again this is not really a superuser.com question either (and because this has to do with a development environment it definitely is programming related, even though not exactly a programming question)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

╰つ倒转 2024-08-25 17:54:59

我自己能够解决这个问题,我应该使用openwrt-boardname-squashfs.img,但我必须使用openwrt-architecture-uImage 映像,仅包含内核,从 build_dir 中获取 root.squashfsopenwrt-boardname.dtb,因为它们不是复制到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,这样我就不必首先将内核映像加载到用户内存中的空间。

I was able to solve this myself, I am not supposed to use the openwrt-boardname-squashfs.img but instaed I must use the openwrt-architecture-uImage image, containing just the kernel, take the root.squashfs and openwrt-boardname.dtb from the build_dir as they are not copied in the bin/ directory.

after that, these commands will bring up the board correctly:

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

there probably is an easier way, but I haven't figured out how to 'repartition' the mtd so I wouldn't have to initially load the kernel image to user space in the memory.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文