<!--
.. title: SunFounder Pironman 5 MAX - FreeBSD
.. slug: freebsd
.. date: 2026-07-26 20:23:01 UTC+02:00
.. tags: 
.. category: 
.. link: 
.. description: 
.. type: text
-->

FeeBSD on SunFounder Pironman 5 MAX

back to main [Pironman 5](../) page.

## links
raspiced [revision codes](https://raspiced.com/sites/revision-codes/),

### local links
[c2](/machines/gigabyte_b450m_ds3h/freebsd), 

## 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
```sh
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
```sh
root@pironman5-sd:~ # freebsd-version -ku
15.1-RELEASE-p2
15.1-RELEASE-p2
```
kernel
```sh
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
```sh
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
```sh
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
```sh
root@pironman5-sd:~ # fsck_msdosfs -y /dev/nda0p2
** /dev/nda0p2
could not read fsinfo block
```
let me try to recreate it
```sh
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
```sh
root@pironman5-sd:~ # fstyp /dev/nda0p2
msdosfs
```
that worked. Now create dirs and copy files to it.
```sh
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
```sh
root@pironman5-sd:~ # umount /mnt
root@pironman5-sd:~ # fstyp /dev/nda0p2
msdosfs
```

2026-07-27: nda0p4 - lscpu info
```sh
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
```sh
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
```sh
root@pironman5-sd:~ # ctemp
hw.bcm2712.thermal.cpu_temp: 54.5C
```
fan info
```sh
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
```sh
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
```sh
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
```sh
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
```sh
root@pironman5-sd:~ # freebsd-version -ku
15.1-RELEASE-p1
15.1-RELEASE-p1
```
kernel
```sh
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
```sh
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
```sh
root@pironman5-sd:~ # freebsd-version -ku
15.1-RELEASE
15.1-RELEASE
```
kernel
```sh
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
```sh
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
```sh
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.
```sh
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
```sh
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
```sh
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
```sh
root@kg-core2:/ # mount -t msdosfs /dev/da5p1 /mnt
root@kg-core2:/ # cd /mnt
```
copy data
```sh
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
```sh
root@kg-core2:/mnt # cd /;umount /mnt
```
copy efi partition
```sh
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
```sh
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
```sh
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
```sh
root@kg-core2:~ # mount -t msdosfs /dev/da5p1 /mnt
root@kg-core2:~ # cd /mnt
```
copy data
```sh
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
```sh
root@kg-core2:/mnt # cd /;umount /mnt
```
unpack FreeBSD image
```sh
tingo@kg-core2:/zs/tingo/dl/bsd/fbsd/15.1 $ unxz FreeBSD-15.1-RELEASE-arm64-aarch64-zfs.raw.xz
```
configure as md disks
```sh
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
```sh
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
```sh
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
```sh
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
```sh
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
```sh
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.
