gpt4 book ai didi

linux - 如何在buildroot中重建rootfs

转载 作者:IT王子 更新时间:2023-10-29 00:24:44 28 4
gpt4 key购买 nike

我要设置构建环境,为 AT91SAM9X25 开发板制作我自己的 linux 嵌入式系统。我正在使用 buildroot 来执行此操作。 make 命令构建所有目标,首先构建工具链,然后打包,然后是 rootfs 和 rootfs 的镜像(tar、cpio ...)。要重建 rootfs,我通常使用 make clean 然后再 make。 make clean 命令删除所有工具链(包括工具链)。

所以我的第一个问题是:有没有什么方法可以在不构建工具链的情况下重新制作 rootfs?这需要很多时间。

我还在 buildroot 中构建 linux 内核。我在 buildroot 中打开了 BR2_LINUX_KERNEL [=y]。 linux 配置为使用初始 RAM 文件系统,因此要构建内核,它需要 rootfs 镜像(应由 buildroot 创建)。当我在 buildroot 的根目录下运行 make 时,构建失败并出现错误无法打开“buildroot-2013.05/output/images/rootfs.cpio”。因为(如果我理解正确的话)构建顺序是工具链 - pakages - rootfs - linux 内核 - rootfs 的图像。当它尝试构建 linux 内核时,不会创建 rootfs.cpio 镜像。

所以第二个问题是:如果我想使用初始 RAM 文件系统,如何在 buildroot 中构建 linux?

可能有比 buildroot 更有效的替代方案吗?

提前致谢。

最佳答案

The make command build all targets

您不想这样做(直到配置 Buildroot)。
您首先需要通过指定目标板来配置 Buildroot。
根据 manual您可以从头开始,或者为您的 AT91SAM9X25 板创建一个 Buildroot 配置文件,该文件源自类似的板,例如 configs/at91sam9g20dfc_defconfig

除了 Buildroot 配置文件外,您还需要一个 Linux 内核配置文件(除非您想尝试从头开始配置内核)。
带有 AT91SAM9x5 的 Atmel 评估板的内核配置文件是 at91sam9x5ek_defconfig

您还应该阅读第 3.4.2 节。 创建您自己的董事会支持

So the first my question is: Is there some way to remake rootfs without building toolchain? It takes a lot of time.

答案取决于您如何定义“remake rootfs”。如果删除目录output/images/,那么rootfs的文件会被重写。
如果您删除 output/build/ 中的目录,那么这些包或子系统将从源代码重新编译。

如果您将 Buildroot 配置为使用您自己的或外部工具链,则 make clean 不会删除它们。如果您将 Buildroot 配置为安装它在其目录之外构建的工具链,那么它可能会在 make clean 期间不理会它。

当然,Buildroot make 足够聪明,可以知道自上次构建以来发生了什么变化以及必须重新编译什么。
在极少数情况下,您需要删除 output/build/ 中的目录以强制重新编译。

So the second question is: How to build linux within buildroot if I want to use Initial RAM filesystem?

您需要正确配置 Buildroot 和 Linux 内核。

make menuconfig
Filesystem images --->
make linux-menuconfig
General setup --->
make

关于将 Buildroot 用于 AT91SAM9x5 的更多简明信息是 this Linx4SAM page

Possibly are there more efficient alternatives than buildroot?

还有其他工具,例如Open Embedded ,但将它们描述为“更有效率”是主观的。


附录

how to rebuild rootfs in buildroot

要强制重建 rootfs(在本例中为 initramfs),请删除 output/build/linux-x.xx.xx 目录中的三个隐藏文件

    .stamp_images_installed
.stamp_initramfs_rebuilt
.stamp_target_installed

关于linux - 如何在buildroot中重建rootfs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17885451/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com