SunFounder Pironman 5 MAX - FreeBSD
FeeBSD on SunFounder Pironman 5 MAX
back to main Pironman 5 page.
links
raspiced revision codes,
local links
c2,
History
2026-08-23: nda0p4 - pkg - upgrade
Aug 23 09:35:36 pironman5 pkg[35369]: p5-Mozilla-CA upgraded: 20250602 -> 20260813 Aug 23 09:35:39 pironman5 pkg[35369]: python312 upgraded: 3.12.13_4 -> 3.12.14
2026-08-19: nda0p4 - pkg - upgrade
Aug 19 18:02:26 pironman5 pkg[25998]: perl5 upgraded: 5.42.2 -> 5.42.3 Aug 19 18:02:29 pironman5 pkg[25998]: python312 upgraded: 3.12.13_3 -> 3.12.13_4
2026-07-30: nda0p4 - load the Rpi kernel modules
root@pironman5-sd:~ # kldload /home/tingo/work/projects/FreeBSD/FreeBSD15-RPi5-modules/bcm2712.ko root@pironman5-sd:~ # kldload /home/tingo/work/projects/FreeBSD/FreeBSD15-RPi5-modules/rpi5.ko
2026-07-30: nda0p4 - reboot, FreeBSD 15.1-release-p2 is in
root@pironman5-sd:~ # freebsd-version -ku 15.1-RELEASE-p2 15.1-RELEASE-p2
kernel
root@pironman5-sd:~ # uname -a FreeBSD pironman5-sd 15.1-RELEASE-p2 FreeBSD 15.1-RELEASE-p2 releng/15.1-n283596-aadd58dddcbc GENERIC arm64
2026-07-30: nda0p4 - pkg - upgrade FreeBSD-base via pkg upgrade -r FreeBSD-base
Jul 30 10:09:23 pironman5-sd pkg[9431]: FreeBSD-audit upgraded: 15.1 -> 15.1p2 Jul 30 10:09:23 pironman5-sd pkg[9431]: FreeBSD-audit-dbg upgraded: 15.1 -> 15.1p2 Jul 30 10:09:23 pironman5-sd pkg[9431]: FreeBSD-autofs upgraded: 15.1 -> 15.1p2 Jul 30 10:09:23 pironman5-sd pkg[9431]: FreeBSD-autofs-dbg upgraded: 15.1 -> 15.1p2 Jul 30 10:09:23 pironman5-sd pkg[9431]: FreeBSD-bhyve upgraded: 15.1 -> 15.1p2 Jul 30 10:09:23 pironman5-sd pkg[9431]: FreeBSD-bhyve-dbg upgraded: 15.1 -> 15.1p2 Jul 30 10:09:24 pironman5-sd pkg[9431]: FreeBSD-clang upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:27 pironman5-sd pkg[9431]: FreeBSD-clang-dbg upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:27 pironman5-sd pkg[9431]: FreeBSD-clibs upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:27 pironman5-sd pkg[9431]: FreeBSD-clibs-dbg upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:27 pironman5-sd pkg[9431]: FreeBSD-clibs-dbg-lib32 upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:28 pironman5-sd pkg[9431]: FreeBSD-clibs-dev upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:29 pironman5-sd pkg[9431]: FreeBSD-clibs-dev-lib32 upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:29 pironman5-sd pkg[9431]: FreeBSD-clibs-lib32 upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:29 pironman5-sd pkg[9431]: FreeBSD-console-tools upgraded: 15.1 -> 15.1p2 Jul 30 10:09:29 pironman5-sd pkg[9431]: FreeBSD-console-tools-dbg upgraded: 15.1 -> 15.1p2 Jul 30 10:09:29 pironman5-sd pkg[9431]: FreeBSD-ctl upgraded: 15.1 -> 15.1p2 Jul 30 10:09:29 pironman5-sd pkg[9431]: FreeBSD-ctl-dbg upgraded: 15.1 -> 15.1p2 Jul 30 10:09:29 pironman5-sd pkg[9431]: FreeBSD-jail upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:29 pironman5-sd pkg[9431]: FreeBSD-jail-dbg upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:29 pironman5-sd pkg[9431]: FreeBSD-kernel-generic upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-kernel-generic-dbg upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-lib9p upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-lib9p-dbg upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-lib9p-dbg-lib32 upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-lib9p-dev upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-lib9p-dev-lib32 upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-lib9p-lib32 upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-libevent1 upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-libevent1-dbg upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-libevent1-dbg-lib32 upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-libevent1-dev upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-libevent1-dev-lib32 upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-libevent1-lib32 upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-mtree upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-ntp upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-ntp-dbg upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-pmc upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-pmc-dbg upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-runtime upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-runtime-dbg upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-syslogd upgraded: 15.1 -> 15.1p2 Jul 30 10:09:33 pironman5-sd pkg[9431]: FreeBSD-syslogd-dbg upgraded: 15.1 -> 15.1p2 Jul 30 10:09:35 pironman5-sd pkg[9431]: FreeBSD-tests upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:36 pironman5-sd pkg[9431]: FreeBSD-tests-dbg upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:37 pironman5-sd pkg[9431]: FreeBSD-utilities upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:37 pironman5-sd pkg[9431]: FreeBSD-utilities-dbg upgraded: 15.1p1 -> 15.1p2 Jul 30 10:09:37 pironman5-sd pkg[9431]: FreeBSD-zoneinfo upgraded: 15.1 -> 15.1p2
2026-07-27: nda0p4 - I removed the microSD card and rebooted. It worked. efibootmgr says
root@pironman5-sd:~ # efibootmgr Boot to FW : false BootCurrent: 0002 Timeout : 5 seconds BootOrder : 0000, 0001, 0002, 0003 Boot0000* UiApp Boot0001* UEFI Realtek USB 10/100 LAN 00E04C3608F878 +Boot0002* UEFI PC711 NVMe SK hynix 1TB AJA4N801310504U15 1 Boot0003 UEFI Shell
lsblk says
root@pironman5-sd:~ # lsblk DEVICE MAJ:MIN SIZE TYPE LABEL MOUNT nda0 0:87 954G GPT - - <FREE> -:- 3.0K - - - nda0p1 0:89 954G ms-basic-data gpt/ms-basic-data - nda0p2 0:91 954G efi gpt/efiboot0 /boot/efi nda0p3 0:93 954G freebsd-swap gpt/swapfs - nda0p4 0:95 954G freebsd-zfs gpt/freebsd-zfs <ZFS>
2026-07-27: nda0p4 - the efi partition on nda0 can't be read, and fsck doesn't know how to handle it
root@pironman5-sd:~ # fsck_msdosfs -y /dev/nda0p2 ** /dev/nda0p2 could not read fsinfo block
let me try to recreate it
root@pironman5-sd:~ # newfs_msdos /dev/nda0p2 /dev/nda0p2: 1048000 sectors in 32750 FAT16 clusters (16384 bytes/cluster) BytesPerSec=512 SecPerClust=32 ResSectors=32 FATs=2 RootDirEnts=512 Media=0xf0 FATsecs=128 SecPerTrack=63 Heads=255 HiddenSecs=0 HugeSectors=1048576
check with fstyp
root@pironman5-sd:~ # fstyp /dev/nda0p2 msdosfs
that worked. Now create dirs and copy files to it.
root@pironman5-sd:~ # mount -t msdosfs /dev/nda0p2 /mnt root@pironman5-sd:~ # mkdir -p /mnt/EFI/BOOT root@pironman5-sd:~ # cp -pv /boot/efi/EFI/BOOT/bootaa64.efi /mnt/EFI/BOOT /boot/efi/EFI/BOOT/bootaa64.efi -> /mnt/EFI/BOOT/bootaa64.efi
unmount and check
root@pironman5-sd:~ # umount /mnt root@pironman5-sd:~ # fstyp /dev/nda0p2 msdosfs
2026-07-27: nda0p4 - lscpu info
root@pironman5-sd:~ # lscpu Architecture: aarch64 Byte Order: Little Endian Total CPU(s): 4 Model name: ARM Cortex-A76 r4p1
2026-07-27: nda0p4 - pkg - install lscpu
Jul 27 11:54:38 pironman5-sd pkg[6003]: lscpu-1.3.0 installed
2026-07-26: nda0p4 - load the modules
root@pironman5-sd:~ # kldload /home/tingo/work/projects/FreeBSD/FreeBSD15-RPi5-modules/bcm2712.ko root@pironman5-sd:~ # kldload /home/tingo/work/projects/FreeBSD/FreeBSD15-RPi5-modules/rpi5.ko
in /var/log/messages
Jul 26 20:51:28 pironman5-sd kernel: bcm2712: AVS thermal sensor mapped at 0x107d542000 Jul 26 20:51:28 pironman5-sd kernel: bcm2712: RP1 PWM1 controller mapped at 0x1f0009c000 Jul 26 20:51:28 pironman5-sd kernel: bcm2712: RP1 PWM1 clock enabled (CTRL=0x10000840 DIV_INT=8) Jul 26 20:51:28 pironman5-sd kernel: bcm2712: GPIO45 CTRL before=0x85 (FUNCSEL=5) Jul 26 20:51:28 pironman5-sd kernel: bcm2712: GPIO45 CTRL after=0x80 (FUNCSEL=0, pwm1) Jul 26 20:51:28 pironman5-sd kernel: bcm2712: Thermal sensor initialized Jul 26 20:52:25 pironman5-sd kernel: rpi5: Raspberry Pi 5 board support loading Jul 26 20:52:25 pironman5-sd kernel: rpi5: Cooling fan thermal management started
and temperature is reported
root@pironman5-sd:~ # ctemp hw.bcm2712.thermal.cpu_temp: 54.5C
fan info
root@pironman5-sd:~ # sysctl hw.rpi5.fan.current_state; sysctl hw.rpi5.fan.rpm hw.rpi5.fan.current_state: 1 hw.rpi5.fan.rpm: 1995
2026-07-26: nda0p4 - build the bcm2712 and rpi5 modules
tingo@pironman5-sd:~/work/projects/FreeBSD/FreeBSD15-RPi5-modules $ make bcm2712 ==> build bcm2712 machine -> /usr/src/sys/arm64/include awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pwm/pwmbus_if.m -h Warning: Object directory not changed from original /home/tingo/work/projects/FreeBSD/FreeBSD15-RPi5-modules cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I/usr/src/sys -I/usr/src/sys/dev/pwm -include /home/tingo/work/projects/FreeBSD/FreeBSD15-RPi5-modules/opt_global.h -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include -fno-common -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fPIC -ffile-prefix-map=/usr/src/sys=/usr/src/sys -ffile-prefix-map=/home/tingo/work/projects/FreeBSD/FreeBSD15-RPi5-modules=/usr/obj/usr/src/arm64.aarch64/sys/modules/FreeBSD15-RPi5-modules -fdebug-prefix-map=./machine=/usr/src/sys/arm64/include -MD -MF.depend.bcm2712.o -MTbcm2712.o -mgeneral-regs-only -ffixed-x18 -mbranch-protection=standard -mno-outline-atomics -ffreestanding -fwrapv -fstack-protector -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wswitch -Wno-error=tautological-compare -Wno-error=empty-body -Wno-error=parentheses-equality -Wno-error=unused-function -Wno-error=pointer-sign -Wno-error=shift-negative-value -Wno-address-of-packed-member -Wno-format-zero-length -std=gnu17 -c bcm2712.c -o bcm2712.o ld -m aarch64elf -warn-common --build-id=sha1 --no-relax -zbti-report=error -r -o bcm2712.kld bcm2712.o printf '%s' "bcm2712_read_cpu_temp bcm2712_get_softc bcm2712_pwm_set_config bcm2712_pwm_enable bcm2712_read_fan_rpm " > export_syms awk -f /usr/src/sys/conf/kmod_syms.awk bcm2712.kld export_syms | xargs -J % objcopy % bcm2712.kld ld -m aarch64elf -Bshareable -znotext -znorelro -warn-common --build-id=sha1 --no-relax -zbti-report=error -o bcm2712.ko bcm2712.kld objcopy --strip-debug bcm2712.ko tingo@pironman5-sd:~/work/projects/FreeBSD/FreeBSD15-RPi5-modules $ make rpi5 ==> build rpi5 Warning: Object directory not changed from original /home/tingo/work/projects/FreeBSD/FreeBSD15-RPi5-modules cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I/usr/src/sys -I/usr/src/sys/contrib/libfdt -I/usr/src/sys/dev/fdt -include /home/tingo/work/projects/FreeBSD/FreeBSD15-RPi5-modules/opt_global.h -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include -fno-common -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fPIC -ffile-prefix-map=/usr/src/sys=/usr/src/sys -ffile-prefix-map=/home/tingo/work/projects/FreeBSD/FreeBSD15-RPi5-modules=/usr/obj/usr/src/arm64.aarch64/sys/modules/FreeBSD15-RPi5-modules -fdebug-prefix-map=./machine=/usr/src/sys/arm64/include -MD -MF.depend.rpi5.o -MTrpi5.o -mgeneral-regs-only -ffixed-x18 -mbranch-protection=standard -mno-outline-atomics -ffreestanding -fwrapv -fstack-protector -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wswitch -Wno-error=tautological-compare -Wno-error=empty-body -Wno-error=parentheses-equality -Wno-error=unused-function -Wno-error=pointer-sign -Wno-error=shift-negative-value -Wno-address-of-packed-member -Wno-format-zero-length -std=gnu17 -c rpi5.c -o rpi5.o rpi5.c:99:12: warning: unused function 'rpi5_find_pwm_device' [-Wunused-function] 99 | static int rpi5_find_pwm_device(void); | ^~~~~~~~~~~~~~~~~~~~ rpi5.c:229:1: warning: unused function 'rpi5_sysctl_temp_handler' [-Wunused-function] 229 | rpi5_sysctl_temp_handler(SYSCTL_HANDLER_ARGS) | ^~~~~~~~~~~~~~~~~~~~~~~~ rpi5.c:255:1: warning: unused function 'rpi5_sysctl_hyst_handler' [-Wunused-function] 255 | rpi5_sysctl_hyst_handler(SYSCTL_HANDLER_ARGS) | ^~~~~~~~~~~~~~~~~~~~~~~~ rpi5.c:281:1: warning: unused function 'rpi5_sysctl_speed_handler' [-Wunused-function] 281 | rpi5_sysctl_speed_handler(SYSCTL_HANDLER_ARGS) | ^~~~~~~~~~~~~~~~~~~~~~~~~ rpi5.c:307:1: warning: unused function 'rpi5_sysctl_current_temp_handler' [-Wunused-function] 307 | rpi5_sysctl_current_temp_handler(SYSCTL_HANDLER_ARGS) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rpi5.c:319:1: warning: unused function 'rpi5_sysctl_current_state_handler' [-Wunused-function] 319 | rpi5_sysctl_current_state_handler(SYSCTL_HANDLER_ARGS) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6 warnings generated. ld -m aarch64elf -warn-common --build-id=sha1 --no-relax -zbti-report=error -r -o rpi5.kld rpi5.o :> export_syms awk -f /usr/src/sys/conf/kmod_syms.awk rpi5.kld export_syms | xargs -J % objcopy % rpi5.kld ld -m aarch64elf -Bshareable -znotext -znorelro -warn-common --build-id=sha1 --no-relax -zbti-report=error -o rpi5.ko rpi5.kld objcopy --strip-debug rpi5.ko
2026-07-26: nda0p4 - clone the FreeBSD15-RPi5-modules repository
tingo@pironman5-sd:~/work/projects/FreeBSD $ git clone https://github.com/aphor/FreeBSD15-RPi5-modules.git Cloning into 'FreeBSD15-RPi5-modules'... remote: Enumerating objects: 853, done. remote: Counting objects: 100% (853/853), done. remote: Compressing objects: 100% (349/349), done. remote: Total 853 (delta 546), reused 802 (delta 496), pack-reused 0 (from 0) Receiving objects: 100% (853/853), 574.10 KiB | 4.35 MiB/s, done. Resolving deltas: 100% (546/546), done.
2026-07-26: nda0p4 - use git to get the sources onto the machine
root@pironman5-sd:~ # git clone -b releng/15.1 https://git.freebsd.org/src.git /usr/src Cloning into '/usr/src'... remote: Enumerating objects: 4848188, done. remote: Counting objects: 100% (384679/384679), done. remote: Compressing objects: 100% (29621/29621), done. remote: Total 4848188 (delta 378959), reused 355058 (delta 355058), pack-reused 4463509 (from 1) Receiving objects: 100% (4848188/4848188), 1.86 GiB | 10.94 MiB/s, done. Resolving deltas: 100% (3860534/3860534), done. Updating files: 100% (109071/109071), done.
2026-07-26: nda0p4 - pkg - install git
Jul 26 20:28:25 pironman5-sd pkg[3022]: brotli-1.2.0,1 installed Jul 26 20:28:25 pironman5-sd pkg[3022]: liblz4-1.10.0_2,1 installed Jul 26 20:28:25 pironman5-sd pkg[3022]: libnghttp2-1.69.0 installed Jul 26 20:28:25 pironman5-sd pkg[3022]: libssh2-1.11.1_1,3 installed Jul 26 20:28:25 pironman5-sd pkg[3022]: libunistring-1.4.2 installed Jul 26 20:28:25 pironman5-sd pkg[3022]: libidn2-2.3.8 installed Jul 26 20:28:25 pironman5-sd pkg[3022]: libpsl-0.22.0 installed Jul 26 20:28:26 pironman5-sd pkg[3022]: perl5-5.42.2 installed Jul 26 20:28:26 pironman5-sd pkg[3022]: p5-Crypt-URandom-0.54 installed Jul 26 20:28:26 pironman5-sd pkg[3022]: p5-Digest-HMAC-1.05 installed Jul 26 20:28:26 pironman5-sd pkg[3022]: p5-Authen-SASL-2.1900 installed Jul 26 20:28:26 pironman5-sd pkg[3022]: p5-Error-0.17030 installed Jul 26 20:28:26 pironman5-sd pkg[3022]: p5-MIME-Base32-1.303 installed Jul 26 20:28:26 pironman5-sd pkg[3022]: p5-MIME-Base64-3.16 installed Jul 26 20:28:26 pironman5-sd pkg[3022]: p5-Mozilla-CA-20250602 installed Jul 26 20:28:26 pironman5-sd pkg[3022]: p5-Net-SSLeay-1.94 installed Jul 26 20:28:26 pironman5-sd pkg[3022]: p5-URI-5.34 installed Jul 26 20:28:26 pironman5-sd pkg[3022]: p5-IO-Socket-SSL-2.099 installed Jul 26 20:28:26 pironman5-sd pkg[3022]: zstd-1.5.7_2 installed Jul 26 20:28:26 pironman5-sd pkg[3022]: curl-8.21.0 installed Jul 26 20:28:27 pironman5-sd pkg[3022]: git-2.54.0 installed
2026-07-26: nda0p4 - lsblk says that the efi partition is mounted from the microSD card
root@pironman5-sd:~ # lsblk DEVICE MAJ:MIN SIZE TYPE LABEL MOUNT mmcsd0 0:87 58G GPT - - mmcsd0p1 0:88 58G ms-basic-data gpt/ms-basic-data - mmcsd0p2 0:89 58G efi gpt/efiboot0 /boot/efi mmcsd0p3 0:90 58G freebsd-swap gpt/swapfs - mmcsd0p4 0:91 58G freebsd-zfs gpt/freebsd-zfs <ZFS> nda0 0:92 954G GPT - - <FREE> -:- 3.0K - - - nda0p1 0:101 954G ms-basic-data gpt/ms-basic-data - nda0p2 0:103 954G efi gpt/efi - nda0p3 0:105 954G freebsd-swap gpt/freebsd-swap - nda0p4 0:107 954G freebsd-zfs gpt/freebsd-zfs <ZFS>
2026-07-26: nda0p4 - pkg - install lsblk
Jul 26 20:21:07 pironman5-sd pkg[2129]: lsblk-4.1_1 installed
2026-07-26: nda0p4 - reboot, FreeBSD 15.1-release-p1 is in
root@pironman5-sd:~ # freebsd-version -ku 15.1-RELEASE-p1 15.1-RELEASE-p1
kernel
root@pironman5-sd:~ # uname -a FreeBSD pironman5-sd 15.1-RELEASE FreeBSD 15.1-RELEASE releng/15.1-n283562-96841ea08dcf GENERIC arm64
2026-07-26: nda0p4 - enable and start avahi
root@pironman5-sd:~ # sysrc dbus_enable="YES" dbus_enable: -> YES root@pironman5-sd:~ # sysrc avahi_daemon_enable="YES" avahi_daemon_enable: -> YES root@pironman5-sd:~ # service dbus start Starting dbus. root@pironman5-sd:~ # service avahi-daemon start Starting avahi-daemon.
2026-07-26: nda0p4 - pkg - install avahi-app
Jul 26 20:07:48 pironman5-sd pkg[3333]: expat-2.8.2 installed Jul 26 20:07:48 pironman5-sd pkg[3333]: gnome_subr-1.0 installed Jul 26 20:07:48 pironman5-sd pkg[3333]: indexinfo-0.3.1_1 installed Jul 26 20:07:48 pironman5-sd pkg[3333]: gettext-runtime-1.0_1 installed Jul 26 20:07:48 pironman5-sd pkg[3333]: libICE-1.1.2,1 installed Jul 26 20:07:48 pironman5-sd pkg[3333]: libSM-1.2.6,1 installed Jul 26 20:07:48 pironman5-sd pkg[3333]: libXau-1.0.12 installed Jul 26 20:07:48 pironman5-sd pkg[3333]: libdaemon-0.14_1 installed Jul 26 20:07:48 pironman5-sd pkg[3333]: libevent-2.1.13 installed Jul 26 20:07:48 pironman5-sd pkg[3333]: libffi-3.6.0 installed Jul 26 20:07:48 pironman5-sd pkg[3333]: libiconv-1.18_1 installed Jul 26 20:07:48 pironman5-sd pkg[3333]: mpdecimal-4.0.1 installed Jul 26 20:07:48 pironman5-sd pkg[3333]: pcre2-10.47_1 installed Jul 26 20:07:48 pironman5-sd pkg[3333]: readline-8.3.3 installed Jul 26 20:07:48 pironman5-sd pkg[3333]: gdbm-1.26 installed Jul 26 20:07:49 pironman5-sd pkg[3333]: libxml2-2.15.3 installed Jul 26 20:07:50 pironman5-sd pkg[3333]: python312-3.12.13_3 installed Jul 26 20:07:50 pironman5-sd pkg[3333]: py312-packaging-26.2 installed Jul 26 20:07:51 pironman5-sd pkg[3333]: glib-2.86.4,2 installed Jul 26 20:07:51 pironman5-sd pkg[3333]: xorgproto-2025.1 installed Jul 26 20:07:51 pironman5-sd pkg[3333]: libXdmcp-1.1.5 installed Jul 26 20:07:52 pironman5-sd pkg[3333]: libxcb-1.17.0 installed Jul 26 20:07:52 pironman5-sd pkg[3333]: libX11-1.8.13_1,1 installed Jul 26 20:07:52 pironman5-sd pkg[3333]: dbus-1.16.2_4,1 installed Jul 26 20:07:52 pironman5-sd pkg[3333]: dbus-glib-0.114 installed Jul 26 20:07:53 pironman5-sd pkg[3333]: avahi-app-0.8_6 installed
2026-07-26: nda0p4 - pkg - upgrade FreeBSD-base via pkg upgrade -r FreeBSD-base:
Jul 26 20:06:17 pironman5-sd pkg[3317]: FreeBSD-bsnmp upgraded: 15.1 -> 15.1p1 Jul 26 20:06:17 pironman5-sd pkg[3317]: FreeBSD-bsnmp-dbg upgraded: 15.1 -> 15.1p1 Jul 26 20:06:18 pironman5-sd pkg[3317]: FreeBSD-clang upgraded: 15.1 -> 15.1p1 Jul 26 20:06:23 pironman5-sd pkg[3317]: FreeBSD-clang-dbg upgraded: 15.1 -> 15.1p1 Jul 26 20:06:23 pironman5-sd pkg[3317]: FreeBSD-clang-dev upgraded: 15.1 -> 15.1p1 Jul 26 20:06:23 pironman5-sd pkg[3317]: FreeBSD-clibs upgraded: 15.1 -> 15.1p1 Jul 26 20:06:23 pironman5-sd pkg[3317]: FreeBSD-clibs-dbg upgraded: 15.1 -> 15.1p1 Jul 26 20:06:24 pironman5-sd pkg[3317]: FreeBSD-clibs-dbg-lib32 upgraded: 15.1 -> 15.1p1 Jul 26 20:06:25 pironman5-sd pkg[3317]: FreeBSD-clibs-dev upgraded: 15.1 -> 15.1p1 Jul 26 20:06:25 pironman5-sd pkg[3317]: FreeBSD-clibs-dev-lib32 upgraded: 15.1 -> 15.1p1 Jul 26 20:06:25 pironman5-sd pkg[3317]: FreeBSD-clibs-lib32 upgraded: 15.1 -> 15.1p1 Jul 26 20:06:25 pironman5-sd pkg[3317]: FreeBSD-jail upgraded: 15.1 -> 15.1p1 Jul 26 20:06:25 pironman5-sd pkg[3317]: FreeBSD-jail-dbg upgraded: 15.1 -> 15.1p1 Jul 26 20:06:26 pironman5-sd pkg[3317]: FreeBSD-kernel-generic upgraded: 15.1 -> 15.1p1 Jul 26 20:06:28 pironman5-sd pkg[3317]: FreeBSD-kernel-generic-dbg upgraded: 15.1 -> 15.1p1 Jul 26 20:06:28 pironman5-sd pkg[3317]: FreeBSD-natd upgraded: 15.1 -> 15.1p1 Jul 26 20:06:28 pironman5-sd pkg[3317]: FreeBSD-natd-dbg upgraded: 15.1 -> 15.1p1 Jul 26 20:06:28 pironman5-sd pkg[3317]: FreeBSD-natd-dbg-lib32 upgraded: 15.1 -> 15.1p1 Jul 26 20:06:28 pironman5-sd pkg[3317]: FreeBSD-natd-dev upgraded: 15.1 -> 15.1p1 Jul 26 20:06:28 pironman5-sd pkg[3317]: FreeBSD-natd-dev-lib32 upgraded: 15.1 -> 15.1p1 Jul 26 20:06:28 pironman5-sd pkg[3317]: FreeBSD-natd-lib32 upgraded: 15.1 -> 15.1p1 Jul 26 20:06:28 pironman5-sd pkg[3317]: FreeBSD-pmc upgraded: 15.1 -> 15.1p1 Jul 26 20:06:28 pironman5-sd pkg[3317]: FreeBSD-pmc-dbg upgraded: 15.1 -> 15.1p1 Jul 26 20:06:28 pironman5-sd pkg[3317]: FreeBSD-rescue upgraded: 15.1 -> 15.1p1 Jul 26 20:06:29 pironman5-sd pkg[3317]: FreeBSD-runtime upgraded: 15.1 -> 15.1p1 Jul 26 20:06:29 pironman5-sd pkg[3317]: FreeBSD-runtime-dbg upgraded: 15.1 -> 15.1p1 Jul 26 20:06:29 pironman5-sd pkg[3317]: FreeBSD-runtime-dbg-lib32 upgraded: 15.1 -> 15.1p1 Jul 26 20:06:29 pironman5-sd pkg[3317]: FreeBSD-runtime-dev upgraded: 15.1 -> 15.1p1 Jul 26 20:06:29 pironman5-sd pkg[3317]: FreeBSD-runtime-dev-lib32 upgraded: 15.1 -> 15.1p1 Jul 26 20:06:29 pironman5-sd pkg[3317]: FreeBSD-runtime-lib32 upgraded: 15.1 -> 15.1p1 Jul 26 20:06:31 pironman5-sd pkg[3317]: FreeBSD-tests upgraded: 15.1 -> 15.1p1 Jul 26 20:06:32 pironman5-sd pkg[3317]: FreeBSD-tests-dbg upgraded: 15.1 -> 15.1p1 Jul 26 20:06:33 pironman5-sd pkg[3317]: FreeBSD-utilities upgraded: 15.1 -> 15.1p1 Jul 26 20:06:33 pironman5-sd pkg[3317]: FreeBSD-utilities-dbg upgraded: 15.1 -> 15.1p1 Jul 26 20:06:33 pironman5-sd pkg[3317]: FreeBSD-utilities-dbg-lib32 upgraded: 15.1 -> 15.1p1 Jul 26 20:06:33 pironman5-sd pkg[3317]: FreeBSD-utilities-dev upgraded: 15.1 -> 15.1p1 Jul 26 20:06:34 pironman5-sd pkg[3317]: FreeBSD-utilities-dev-lib32 upgraded: 15.1 -> 15.1p1 Jul 26 20:06:34 pironman5-sd pkg[3317]: FreeBSD-utilities-lib32 upgraded: 15.1 -> 15.1p1 Jul 26 20:06:34 pironman5-sd pkg[3317]: FreeBSD-zfs-dbg upgraded: 15.1 -> 15.1p1 Jul 26 20:06:34 pironman5-sd pkg[3317]: FreeBSD-zfs-dbg-lib32 upgraded: 15.1 -> 15.1p1 Jul 26 20:06:34 pironman5-sd pkg[3317]: FreeBSD-zfs-dev upgraded: 15.1 -> 15.1p1 Jul 26 20:06:34 pironman5-sd pkg[3317]: FreeBSD-zfs-dev-lib32 upgraded: 15.1 -> 15.1p1 Jul 26 20:06:34 pironman5-sd pkg[3317]: FreeBSD-zfs-lib upgraded: 15.1 -> 15.1p1 Jul 26 20:06:34 pironman5-sd pkg[3317]: FreeBSD-zfs-lib32 upgraded: 15.1 -> 15.1p1
2026-07-26: nda0p4 - pkg - install pkg
root@pironman5-sd:~ # pkg bootstrap -f The package management tool is not yet installed on your system. Do you want to fetch and install it now? [y/N]: y Bootstrapping pkg from pkg+https://pkg.FreeBSD.org/FreeBSD:15:aarch64/quarterly, please wait... Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done Installing pkg-2.7.5... package pkg is already installed, forced install Extracting pkg-2.7.5: 100%
2026-07-26: nda0p4 - zfs - FreeBSD 15.1 release is in
root@pironman5-sd:~ # freebsd-version -ku 15.1-RELEASE 15.1-RELEASE
kernel
root@pironman5-sd:~ # uname -a FreeBSD pironman5-sd 15.1-RELEASE FreeBSD 15.1-RELEASE releng/15.1-n283562-96841ea08dcf GENERIC arm64
2026-07-26: interesting, with the microSD card in, efibootmgr says that the machine has booted from it
root@pironman5-sd:~ # efibootmgr -v Boot to FW : false BootCurrent: 0001 Timeout : 5 seconds BootOrder : 0000, 0001, 0002, 0003 Boot0000* UiApp Fv(9a15aa37-d555-4a4e-b541-86391ff68164)/FvFile(462caa21-7614-4503-836e-8ab6f4662331) +Boot0001* UEFI Generic SD64G FD019858 SD Device VenHw(0d51905b-b77e-452a-a2c0-eca0cc8d514a,00f0ff001000000000)/SD(0x0) Boot0002* UEFI PC711 NVMe SK hynix 1TB AJA4N801310504U15 1 PcieRoot(0x1)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x7,0x0)/Pci(0x0,0x0)/NVMe(0x1,4c-fa-7b-15-00-2e-e4-ac) Boot0003 UEFI Shell Fv(9a15aa37-d555-4a4e-b541-86391ff68164)/FvFile(7c04a583-9e3e-4f1c-ad65-e05268d0b4d1)
but the root pool is mounted from the SSD
root@pironman5-sd:~ # zpool status pool: zroot state: ONLINE config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 nda0p4 ONLINE 0 0 0
2026-07-26: c2 - create partitions on a 64GB microSD (Kingston) card.
root@kg-core2:/ # gpart create -s GPT da5 da5 created root@kg-core2:/ # gpart show -p da5 => 40 122167216 da5 GPT (58G) 40 122167216 - free - (58G) root@kg-core2:/ # gpart add -t ms-basic-data -s 512M da5 da5p1 added root@kg-core2:/ # gpart add -t efi -s 512M -l efiboot0 da5 da5p2 added root@kg-core2:/ # gpart add -t freebsd-swap -s 16G -l swapfs da5 da5p3 added root@kg-core2:/ # gpart add -t freebsd-zfs da5 da5p4 added
verify
root@kg-core2:/ # gpart show -p -l da5 => 40 122167216 da5 GPT (58G) 40 1048576 da5p1 (null) (512M) 1048616 1048576 da5p2 efiboot0 (512M) 2097192 33554432 da5p3 swapfs (16G) 35651624 86515632 da5p4 (null) (41G)
create filesystem for E2DK fimrware
root@kg-core2:/ # newfs_msdos /dev/da5p1 /dev/da5p1: 1048256 sectors in 32758 FAT16 clusters (16384 bytes/cluster) BytesPerSec=512 SecPerClust=32 ResSectors=1 FATs=2 RootDirEnts=512 Media=0xf0 FATsecs=128 SecPerTrack=63 Heads=255 HiddenSecs=0 HugeSectors=1048576
mount
root@kg-core2:/ # mount -t msdosfs /dev/da5p1 /mnt root@kg-core2:/ # cd /mnt
copy data
root@kg-core2:/mnt # unzip /home/tingo/dl/RPI5_D0.zip Archive: /home/tingo/dl/RPI5_D0.zip extracting: bcm2712-d-rpi-5-b.dtb creating: overlays/ extracting: overlays/bcm2712d0.dtbo extracting: bcm2712-rpi-cm5-cm5io.dtb extracting: bcm2712-rpi-cm5-cm4io.dtb extracting: bcm2712-rpi-500.dtb extracting: bcm2712d0-rpi-5-b.dtb extracting: config.txt extracting: bcm2712-rpi-cm5l-cm5io.dtb extracting: RPI_EFI.fd extracting: bcm2712-rpi-cm5l-cm4io.dtb extracting: bcm2712-rpi-5-b.dtb
umount
root@kg-core2:/mnt # cd /;umount /mnt
copy efi partition
root@kg-core2:/ # dd if=/dev/md0p1 of=/dev/da5p2 bs=16M conv=sync status=progress 50331648 bytes (50 MB, 48 MiB) transferred 3.377s, 15 MB/s 3+0 records in 3+0 records out 50331648 bytes transferred in 3.565098 secs (14117888 bytes/sec)
copy root partition
root@kg-core2:/ # dd if=/dev/md0p3 of=/dev/da5p4 bs=16M conv=sync status=progress 5368709120 bytes (5369 MB, 5120 MiB) transferred 472.112s, 11 MB/s 320+0 records in 320+0 records out 5368709120 bytes transferred in 472.304422 secs (11367052 bytes/sec)
2026-07-26: I used gpart modify -i 2 -l efoboot0 nda0 to change the efi partition label, but the Pi 5 still doesn't boot, it gives errors
nvme0: READ (02) sqid:1 cid:119 nsid:1 lba:1040617 len:16 nvme0: PRP_OFFET_INVALID (00/13) crd:0 m:0 dnr:0 p:1 sqid:1 cid:119 cdw0:0 (nda0:nvme0:0:0:1): READ (02), NCP: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=100029 0 f 0 0 0 (nda0:nvme0:0:0:1): CAM status: NVME Status Error (nda0:nvme0:0:0:1): NVMe status: PRP_OFFET_INVALID (00/13) (nda0:nvme0:0:0:1): Error 5, Retries exhausted
2026-07-26: I created this page.
2026-07-26: c2 - I used my FreeBSD workstation to create and install FreeBSD on a 1TB Hynix NVMe SSD. Like this
2026-07-26: ada0p7 - prepare a used SSD - make filesystems and copy data msdos filesystem on the E2DK firmware partion
root@kg-core2:~ # newfs_msdos /dev/da5p1 /dev/da5p1: 1048256 sectors in 32758 FAT16 clusters (16384 bytes/cluster) BytesPerSec=512 SecPerClust=32 ResSectors=1 FATs=2 RootDirEnts=512 Media=0xf0 FATsecs=128 SecPerTrack=63 Heads=255 HiddenSecs=0 HugeSectors=1048576
mount it and cd
root@kg-core2:~ # mount -t msdosfs /dev/da5p1 /mnt root@kg-core2:~ # cd /mnt
copy data
root@kg-core2:/mnt # unzip /home/tingo/dl/RPI5_D0.zip Archive: /home/tingo/dl/RPI5_D0.zip extracting: bcm2712-d-rpi-5-b.dtb creating: overlays/ extracting: overlays/bcm2712d0.dtbo extracting: bcm2712-rpi-cm5-cm5io.dtb extracting: bcm2712-rpi-cm5-cm4io.dtb extracting: bcm2712-rpi-500.dtb extracting: bcm2712d0-rpi-5-b.dtb extracting: config.txt extracting: bcm2712-rpi-cm5l-cm5io.dtb extracting: RPI_EFI.fd extracting: bcm2712-rpi-cm5l-cm4io.dtb extracting: bcm2712-rpi-5-b.dtb
unmount
root@kg-core2:/mnt # cd /;umount /mnt
unpack FreeBSD image
tingo@kg-core2:/zs/tingo/dl/bsd/fbsd/15.1 $ unxz FreeBSD-15.1-RELEASE-arm64-aarch64-zfs.raw.xz
configure as md disks
tingo@kg-core2:/zs/tingo/dl/bsd/fbsd/15.1 $ sudo mdconfig -f FreeBSD-15.1-RELEASE-arm64-aarch64-zfs.raw md0
check partitons and labels
root@kg-core2:/ # gpart show -p -l md0 => 34 12649496 md0 GPT (6G) 34 66584 md0p1 efiboot0 (33M) 66618 2097152 md0p2 swapfs (1G) 2163770 10485760 md0p3 rootfs (5G)
copy the efi part
root@kg-core2:/ # dd if=/dev/md0p1 of=dev/da5p2 bs=16M conv=sync status=progress 3+0 records in 3+0 records out 50331648 bytes transferred in 0.261540 secs (192443427 bytes/sec)
copy the zfs part
root@kg-core2:/ # dd if=/dev/md0p3 of=dev/da5p4 bs=16M conv=sync status=progress 5016387584 bytes (5016 MB, 4784 MiB) transferred 14.019s, 358 MB/s 320+0 records in 320+0 records out 5368709120 bytes transferred in 15.091103 secs (355753265 bytes/sec)
2026-07-26: ada0p7 - prepare a used SSD - create new partitions
root@kg-core2:~ # gpart add -t ms-basic-data -s 512M da5 da5p1 added root@kg-core2:~ # gpart add -t efi -s 512M -l efiesp da5 da5p2 added root@kg-core2:~ # gpart add -t freebsd-swap -s 16G -l swapfs da5 da5p3 added root@kg-core2:~ # gpart add -t freebsd-zfs da5 da5p4 added
verify
root@kg-core2:~ # gpart show -l -p da5 => 34 2000409197 da5 GPT (954G) 34 6 - free - (3K) 40 1048576 da5p1 (null) (512M) 1048616 1048576 da5p2 efiesp (512M) 2097192 33554432 da5p3 swapfs (16G) 35651624 1964757600 da5p4 (null) (937G) 2000409224 7 - free - (4K)
looks good. Hmm, the efi partitioon should have been labeled 'efiboot0' instead.