By default, *dhcpcd* generates a "complete" `chrony.conf` file using the NTP servers specified in the DHCP lease, and then restarts the Chrony daemon. This is unnecessary, as *chrony* can reload its list of sources without restarting, and also problematic in our case. For one thing, *dhcpcd* tries to write to `/etc/chrony.conf` directly, which is obviously impossible when the root filesystem is immutable. Fortunately, it is flexible enough to be configured to leave `/etc/chrony.conf` alone and generate a different file and then tell *chrony* to reread it. The *chrony-wait.service* unit introduces a delay into the system startup that allows follow-up units to wait until the system time is confirmed correct. The unit file itself was derived from the one included in the *chrony* package for Fedora. |
||
---|---|---|
configs | ||
initramfs | ||
rootfs | ||
.gitignore | ||
Config.in | ||
README.md | ||
cmdline.txt | ||
config.txt | ||
external.desc | ||
external.mk |
README.md
Network-Booted Jenkins Agent
Required Build Host Configuration
sudo dnf install -y \
ncurses-devel \
perl-ExtUtils-MakeMaker \
perl-FindBin \
perl-Thread-Queue \
--
git clone git://git.buildroot.net/buildroot ~/src/buildroot
Build
Build the Initramfs
make -C ~/src/buildroot O=${PWD}/_build/initramfs BR2_EXTERNAL=${PWD} jenkinsagent_initramfs_defconfig
make -C _build/initramfs -j $(nproc)
Build the Rootfs
make -C ~/src/buildroot O=${PWD}/_build/rootfs BR2_EXTERNAL=${PWD} jenkinsagent_defconfig
make -C _build/rootfs -j $(nproc)