I'm using buildroot to create a linux system for raspberry pi. I want to use the initramfs to enable to system to self-patch. The procedure roughly runs as follows:
- Raspi boots, kernel loads initramfs
- The initramfs-system (which contains busybox, zsync etc.) connects to a central server and checks if there are boot-file updates available (e.g. a new kernel)
- If not, it checks if there is a system update available and downloads that if needed
- The downloaded (squashfs) system image is mounted and executed via
switch_root
My problem is that I need to compile a secondary busybox (and some more packages) for the initramfs which do not belong in the main system. I currently solved this by manually tinkering with the package files to install into target/initramfs
, moving this folder out with pre-build and back in again with post-build, but this seems rather hacky. Additionally, different package types require different types of changes. Is there a better solution to this problem? If one could for example manually overwrite the target directory for each package, this problem would be rather easy to solve.
make install
does not take any kind of destination directory, you can only specify it via./configure --prefix
, but that prefix gets "rooted" at the target directory (e.g. "--prefix=/usr/bin" -> "$TARGET_DIR/usr/bin") – incaseoftrouble