Buildroot更改目标目录/创建“超出目标”包

时间:2016-04-29 13:42:22

标签: embedded embedded-linux buildroot

我正在使用buildroot为raspberry pi创建一个linux系统。我想使用initramfs来启用系统自我修补。程序大致如下:

  • Raspi启动,内核加载initramfs
  • initramfs-system(包含busybox,zsync等)连接到中央服务器并检查是否有可用的引导文件更新(例如新内核)
  • 如果没有,它会检查是否有可用的系统更新,并在需要时下载
  • 通过switch_root
  • 安装并执行下载的(squashfs)系统映像

我的问题是我需要为不属于主系统的initramfs编译辅助busybox(以及更多包)。我目前通过手动修改软件包文件来安装到target/initramfs中解决了这个问题,通过预构建将该文件夹移出,然后再使用post-build重新安装,但这看起来相当hacky。此外,不同的包类型需要不同类型的更改。这个问题有更好的解决方案吗?如果可以手动覆盖每个包的目标目录,那么这个问题就很容易解决了。

1 个答案:

答案 0 :(得分:0)

创建两个单独的buildroot配置。

一个配置将包含内核和initramfs。

其他配置只有squashfs rootfs。

从配置创建部分rootfs非常棘手,因为您必须确保不会错过某些程序所需的任何共享库或其他辅助文件。

请注意,要加快构建速度,您可以使用ccache和/或使用外部工具链。请参阅the manual