make命令构建所有目标
在配置Buildroot之前,您不希望这样做。
您需要首先通过指定目标板来配置Buildroot。
根据手册,您可以从头开始,也可以为AT91SAM9X25开发板创建一个基于类似板的Buildroot配置文件,例如configs/at91sam9g20dfc_defconfig。
除了Buildroot配置文件外,您还需要一个Linux内核配置文件(除非您想尝试从头开始配置内核)。
Atmel使用的带有AT91SAM9x5的评估板的内核配置文件是at91sam9x5ek_defconfig。
您还应阅读第3.4.2节:创建自己的板支持
那么我的第一个问题是:是否有一种方法可以重新制作rootfs而无需构建工具链?这需要很长时间。
答案取决于您如何定义“重新制作rootfs”。
如果删除目录output/images/
,则rootfs文件将被重写。
如果删除output/build/
中的目录,则会从源代码重新编译这些软件包或子系统。
如果您配置Buildroot使用自己的或外部工具链,则make clean
不会将其删除。如果您配置了Buildroot以在其目录之外安装它构建的工具链,则可能在make clean
期间不会对其进行更改操作。
当然,Buildroot make
足够聪明,以知道自上次构建以来发生了什么变化以及必须重新编译什么。
应该很少需要删除output/build/
中的目录来强制重新编译。
那么第二个问题是:如果我想使用初始RAM文件系统,如何在buildroot内构建linux?
您需要正确配置Buildroot和Linux内核。
make menuconfig
Filesystem images --->
make linux-menuconfig
General setup --->
make
使用Buildroot构建AT91SAM9x5的更简洁信息,请参考这个Linx4SAM页面
可能有比buildroot更有效的替代方案吗?
还有其他工具,例如Open Embedded,但将它们描述为“更有效”是主观的。
补充说明
如何在buildroot中重新构建rootfs
要强制重建rootfs(在本例中是initramfs),请删除output/build/linux-x.xx.xx目录下的三个隐藏文件。
.stamp_images_installed
.stamp_initramfs_rebuilt
.stamp_target_installed