FreeBSD 14 Pi 4 - BYO-NTP/recipes GitHub Wiki

date server os
2025 Raspberry Pi 4 FreeBSD 14

INSTALL

Download the FreeBSD 14.2 for Pi 4 ISO image:

export PI_IMG="FreeBSD-14.2-RELEASE-arm64-aarch64-RPI.img.xz"
export PI_ISO="https://download.freebsd.org/releases/arm64/aarch64/ISO-IMAGES"
curl -o $PI_IMG -z $PI_IMG $PI_ISO/14.2/$PI_IMG

Write the image to a SD card.

  1. On a desktop computer, use the Raspberry Pi Imager. For the Operating System menu, click Choose OS -> Use custom -> and select the FreeBSD image you downloaded.

  2. On a Unix-like computer, use dd to write the image to the SD card. Change /dev/disk4 to the apex of the SD card disk (ie, not a partition) mounted on your system.

xzcat $PI_IMG | sudo dd of=/dev/disk4 conv=sync status=progress

Insert the fresh baked SD card into the Pi 4 and boot onto it.

CONFIGURE

remote login

Set up root user w/ssh key access and disable password logins.

ssh-copy-id -i ~/.ssh/id_ed25519 freebsd@pi4  # pass: freebsd
ssh freebsd@pi4
su -  # password: root
passwd root  # set the root password
mv /home/freebsd/.ssh /root/ && chown -R root:wheel /root/.ssh
sysrc sshd_flags="-o PermitRootLogin=without-password -o KbdInteractiveAuthentication=no"
service sshd restart
exit; exit  # disconnect
ssh root@pi4
rmuser -y freebsd

disable audio, bluetooth, & wifi

This is a NTP server, we don't want wireless radios or sound.

grep -q '^dtoverlay=disable-bt' /boot/efi/config.txt || echo 'dtoverlay=disable-bt' >> /boot/efi/config.txt
grep -q '^dtoverlay=disable-wifi' /boot/efi/config.txt || echo 'dtoverlay=disable-wifi' >> /boot/efi/config.txt
grep -q pps-gpio /boot/efi/config.txt || echo "dtparam=audio=off" >> /boot/efi/config.txt

localize

Pick and choose from the FreeBSD settings page. Some settings are fairly important (like updating).

References

⚠️ **GitHub.com Fallback** ⚠️