Raspberry Pi 5 16 GB - FreeBSD

FreeBSD on Raspberry Pi 5 (16 GB)

back to main Pi 5 page.

links

FreeBSD wiki RonaldKlop/Raspberry Pi 5 16GB, Setting up FreeBSD on a Raspberry Pi 5,

local links

c2, z30b,

History

2026-01-14: nda1p4 - zroot - pkg - install jq

Jan 14 19:31:22 devpi5 pkg[32259]: oniguruma-6.9.10 installed
Jan 14 19:31:23 devpi5 pkg[32259]: jq-1.8.1 installed

2026-01-04: nda1p4 - zroot - from /var/log/messages

Jan  4 18:16:32 devpi5 kernel: nvme0: async event occurred (type 0x1, info 0x01, page 0x02)
Jan  4 18:16:32 devpi5 kernel: nvme0: temperature above threshold

2025-12-28: nda1p4 - zroot - reboot, FreeBSD 14.3-release-p7 is in

root@devpi5:~ # freebsd-version -ku
14.3-RELEASE-p5
14.3-RELEASE-p7

kernel

root@devpi5:~ # uname -a
FreeBSD devpi5 14.3-RELEASE-p5 FreeBSD 14.3-RELEASE-p5 GENERIC arm64

2025-12-28: nda1p4 - zroot - freebsd-update fetch

root@devpi5:~ # freebsd-update fetch
src component not installed, skipped
[..]
The following files will be updated as part of updating to
14.3-RELEASE-p7:
[..]
/sbin/rtsol
/usr/lib/debug/boot/kernel/ipfw_pmod.ko.debug
/usr/lib/debug/sbin/rtsol.debug
/usr/lib/debug/usr/sbin/rtsold.debug
/usr/sbin/rtsold

install

root@devpi5:~ # freebsd-update install
src component not installed, skipped
Creating snapshot of existing boot environment... done.
Installing updates...
Restarting sshd after upgrade
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 904.
Performing sanity check on sshd configuration.
Starting sshd.
 done.

2025-12-14: nda1p4 - zroot - get a ports tree onto the machine

root@devpi5:~ # git clone https://git.freebsd.org/ports.git /usr/ports
Cloning into '/usr/ports'...
remote: Enumerating objects: 6773553, done.
remote: Counting objects: 100% (936/936), done.
remote: Compressing objects: 100% (120/120), done.
remote: Total 6773553 (delta 923), reused 816 (delta 816), pack-reused 6772617 (from 1)
Receiving objects: 100% (6773553/6773553), 1.53 GiB | 22.96 MiB/s, done.
Resolving deltas: 100% (4102451/4102451), done.
Updating files: 100% (167642/167642), done.

2025-12-14: nda1p4 - zroot - rust - install rust for my user

tingo@devpi5:~ $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
tingo@devpi5:~ $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
info: downloading installer
warn: curl: (22) The requested URL returned error: 404
error: installer for platform 'aarch64-unknown-freebsd' not found, this may be unsupported

ok, so that doesn't work. Aha, issue #4012.

2025-12-14: nda1p4 - zroot - pkg - install rust and more

Dec 14 17:45:38 devpi5 pkg[17190]: rust-1.89.0_1 installed
Dec 14 18:06:20 devpi5 pkg[17264]: jsoncpp-1.9.6_1 installed
Dec 14 18:06:20 devpi5 pkg[17264]: libuv-1.51.0 installed
Dec 14 18:06:21 devpi5 pkg[17264]: rhash-1.4.4_1 installed
Dec 14 18:06:21 devpi5 pkg[17264]: cmake-core-3.31.9 installed
Dec 14 18:06:47 devpi5 pkg[17344]: pkgconf-2.4.3,1 installed
Dec 14 18:07:31 devpi5 pkg[17373]: libedit-3.1.20250104,1 installed
Dec 14 18:07:31 devpi5 pkg[17373]: lua53-5.3.6_1 installed
Dec 14 18:07:38 devpi5 pkg[17373]: llvm19-19.1.7_1 installed

2025-12-07: nda1p4 - zroot - pkg - install more packages

Dec  7 21:03:28 devpi5 pkg[1012]: sudo-1.9.17p2_1 installed
Dec  7 21:04:03 devpi5 pkg[1043]: libsysinfo-0.0.3_3 installed
Dec  7 21:04:03 devpi5 pkg[1043]: 7-zip-25.01 installed
Dec  7 21:05:32 devpi5 pkg[1074]: cpmtools2-2.24_1 installed
Dec  7 21:06:42 devpi5 pkg[1078]: fusefs-libs3-3.17.1_1 installed
Dec  7 21:06:42 devpi5 pkg[1078]: fusefs-sshfs-3.7.3_3 installed
Dec  7 21:07:12 devpi5 pkg[1105]: brotli-1.1.0,1 installed
Dec  7 21:07:13 devpi5 pkg[1105]: liblz4-1.10.0,1 installed
Dec  7 21:07:13 devpi5 pkg[1105]: libnghttp2-1.67.0 installed
Dec  7 21:07:13 devpi5 pkg[1105]: libssh2-1.11.1,3 installed
Dec  7 21:07:13 devpi5 pkg[1105]: libunistring-1.4.1 installed
Dec  7 21:07:13 devpi5 pkg[1105]: libidn2-2.3.8 installed
Dec  7 21:07:13 devpi5 pkg[1105]: libpsl-0.21.5_2 installed
Dec  7 21:07:13 devpi5 pkg[1105]: perl5-5.42.0_1 installed
Dec  7 21:07:13 devpi5 pkg[1105]: p5-Crypt-URandom-0.54 installed
Dec  7 21:07:13 devpi5 pkg[1105]: p5-Digest-HMAC-1.05 installed
Dec  7 21:07:13 devpi5 pkg[1105]: p5-Authen-SASL-2.1900 installed
Dec  7 21:07:13 devpi5 pkg[1105]: p5-Error-0.17030 installed
Dec  7 21:07:13 devpi5 pkg[1105]: p5-MIME-Base32-1.303 installed
Dec  7 21:07:13 devpi5 pkg[1105]: p5-MIME-Base64-3.16 installed
Dec  7 21:07:13 devpi5 pkg[1105]: p5-Mozilla-CA-20250602 installed
Dec  7 21:07:13 devpi5 pkg[1105]: p5-Net-SSLeay-1.94 installed
Dec  7 21:07:13 devpi5 pkg[1105]: p5-URI-5.32_1 installed
Dec  7 21:07:13 devpi5 pkg[1105]: p5-IO-Socket-SSL-2.095 installed
Dec  7 21:07:13 devpi5 pkg[1105]: zstd-1.5.7 installed
Dec  7 21:07:14 devpi5 pkg[1105]: curl-8.16.0 installed
Dec  7 21:07:14 devpi5 pkg[1105]: git-2.51.0 installed
Dec  7 21:07:50 devpi5 pkg[1366]: gzip-1.14 installed
Dec  7 21:09:07 devpi5 pkg[1369]: lrzsz-0.12.20_7 installed
Dec  7 21:09:24 devpi5 pkg[1371]: lsblk-4.0 installed
Dec  7 21:10:08 devpi5 pkg[1616]: mtools-4.0.49 installed
Dec  7 21:12:39 devpi5 pkg[1629]: screen-5.0.1_4 installed

2025-12-07: nda1p4 - zroot - pkg - install avahi and friends

Dec  7 20:31:20 devpi5 pkg[970]: expat-2.7.3 installed
Dec  7 20:31:20 devpi5 pkg[970]: gnome_subr-1.0 installed
Dec  7 20:31:20 devpi5 pkg[970]: indexinfo-0.3.1_1 installed
Dec  7 20:31:20 devpi5 pkg[970]: gettext-runtime-0.23.1 installed
Dec  7 20:31:20 devpi5 pkg[970]: libICE-1.1.2,1 installed
Dec  7 20:31:20 devpi5 pkg[970]: libSM-1.2.6,1 installed
Dec  7 20:31:20 devpi5 pkg[970]: libXau-1.0.12 installed
Dec  7 20:31:20 devpi5 pkg[970]: libdaemon-0.14_1 installed
Dec  7 20:31:20 devpi5 pkg[970]: libevent-2.1.12 installed
Dec  7 20:31:20 devpi5 pkg[970]: libffi-3.5.1 installed
Dec  7 20:31:20 devpi5 pkg[970]: libiconv-1.17_1 installed
Dec  7 20:31:20 devpi5 pkg[970]: libinotify-20240724_3 installed
Dec  7 20:31:20 devpi5 pkg[970]: mpdecimal-4.0.1 installed
Dec  7 20:31:20 devpi5 pkg[970]: pcre2-10.46 installed
Dec  7 20:31:20 devpi5 pkg[970]: readline-8.2.13_2 installed
Dec  7 20:31:20 devpi5 pkg[970]: gdbm-1.26 installed
Dec  7 20:31:20 devpi5 pkg[970]: libxml2-2.14.5 installed
Dec  7 20:31:21 devpi5 pkg[970]: python311-3.11.13_1 installed
Dec  7 20:31:21 devpi5 pkg[970]: py311-packaging-25.0 installed
Dec  7 20:31:23 devpi5 pkg[970]: glib-2.84.1_3,2 installed
Dec  7 20:31:23 devpi5 pkg[970]: xorgproto-2024.1 installed
Dec  7 20:31:23 devpi5 pkg[970]: libXdmcp-1.1.5 installed
Dec  7 20:31:23 devpi5 pkg[970]: libxcb-1.17.0 installed
Dec  7 20:31:23 devpi5 pkg[970]: libX11-1.8.12,1 installed
Dec  7 20:31:24 devpi5 pkg[970]: dbus-1.16.2_4,1 installed
Dec  7 20:31:24 devpi5 pkg[970]: dbus-glib-0.114 installed
Dec  7 20:31:24 devpi5 pkg[970]: avahi-app-0.8_6 installed
Dec  7 20:31:24 devpi5 pkg[970]: nss_mdns-0.14.1.20200624_1 installed

and reboot to test it (yes, I'm lazy).

2025-12-07: nda1p4 - zroot - pkg - install pkg

root@devpi5:~ # pkg install pkg
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:14:aarch64/quarterly, please wait...
Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
Installing pkg-2.4.2...
Extracting pkg-2.4.2: 100%
Updating FreeBSD repository catalogue...
Fetching meta.conf: 100%    179 B   0.2kB/s    00:01    
Fetching data.pkg: 100%   10 MiB  10.3MB/s    00:01    
Processing entries: 100%
FreeBSD repository update completed. 35656 packages processed.
Updating FreeBSD-kmods repository catalogue...
Fetching meta.conf: 100%    179 B   0.2kB/s    00:01    
Fetching data.pkg: 100%   16 KiB  16.9kB/s    00:01    
Processing entries: 100%
FreeBSD-kmods repository update completed. 70 packages processed.
All repositories are up to date.
Updating database digests format: 100%
Checking integrity... done (0 conflicting)
The most recent versions of packages are already installed

2025-12-07: nda1p4 - zroot - reboot, FreeBSD 14.3-release-p6 is in

root@devpi5:~ # freebsd-version -ku
14.3-RELEASE-p5
14.3-RELEASE-p6

kernel

root@devpi5:~ # uname -a
FreeBSD devpi5 14.3-RELEASE-p5 FreeBSD 14.3-RELEASE-p5 GENERIC arm64

2025-12-07: nda1p4 - zroot - freebsd-update fetch

root@devpi5:~ # freebsd-update fetch
src component not installed, skipped
[..]
The following files will be updated as part of updating to
14.3-RELEASE-p6:
/bin/freebsd-version
/boot/kernel/if_bnxt.ko
/boot/kernel/kernel
/boot/kernel/kernel.bin
/boot/kernel/wlan_tkip.ko
/boot/kernel/zfs.ko
/lib/libcrypto.so.30
/lib/libzpool.so.2
[..]
/usr/share/man/man3/archive_write_set_options.3.gz
/usr/share/man/man5/libarchive-formats.5.gz

install

root@devpi5:~ # freebsd-update install
src component not installed, skipped
Creating snapshot of existing boot environment... done.
Installing updates...
Restarting sshd after upgrade
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 903.
Performing sanity check on sshd configuration.
Starting sshd.
 done.

2025-12-07: nda1p4 - zroot - we-re back to FreeBSD 14.3-release again

root@devpi5:~ # freebsd-version -ku
14.3-RELEASE
14.3-RELEASE

2025-12-07: nda1p4 - zroot - yes, that worked, now the machine boots like it should.zpool status

root@devpi5:~ # zpool status
  pool: zroot
 state: ONLINE
config:

    NAME        STATE     READ WRITE CKSUM
    zroot       ONLINE       0     0     0
      nda1p4    ONLINE       0     0     0

errors: No known data errors

2025-12-07: I tried booting from the SSD (nda1) it works, but for some reason it is unhappy with the efi partition. It refuses to automount it (or fsck it), but when I exit out of singleuser /boot/efi is mounted. Huh. In /var/log/messages I can see

nvme1: READ sqid:1 cid:123 nsid:1 lba:1048617 len:16
nvme1: PRP OFFET INVALID (00/13) crd:0 m:0 dnr:0 p:0 sqid:1 cid:123 cdw0:0
(nda1:nvme1:0:0:1): READ. NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=100029 0 f 0 0 0
(nda1:nvme1:0:0:1): CAM status: Unknown (0x420)
(nda1:nvme1:0:0:1): Error 5, Retries exhausted
nvme1: READ sqid:1 cid:126 nsid:1 lba:1048617 len:16
nvme1: PRP OFFET INVALID (00/13) crd:0 m:0 dnr:0 p:0 sqid:1 cid:126 cdw0:0
(nda1:nvme1:0:0:1): READ. NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=100029 0 f 0 0 0
(nda1:nvme1:0:0:1): CAM status: Unknown (0x420)
(nda1:nvme1:0:0:1): Error 5, Retries exhausted
nvme1: READ sqid:1 cid:126 nsid:1 lba:1048617 len:16
nvme1: PRP OFFET INVALID (00/13) crd:0 m:0 dnr:0 p:0 sqid:1 cid:126 cdw0:0
(nda1:nvme1:0:0:1): READ. NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=100029 0 f 0 0 0
(nda1:nvme1:0:0:1): CAM status: Unknown (0x420)
(nda1:nvme1:0:0:1): Error 5, Retries exhausted
nvme1: READ sqid:1 cid:126 nsid:1 lba:1048617 len:16
nvme1: PRP OFFET INVALID (00/13) crd:0 m:0 dnr:0 p:1 sqid:1 cid:126 cdw0:0
(nda1:nvme1:0:0:1): READ. NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=100029 0 f 0 0 0
(nda1:nvme1:0:0:1): CAM status: Unknown (0x420)
(nda1:nvme1:0:0:1): Error 5, Retries exhausted
nvme1: READ sqid:1 cid:126 nsid:1 lba:1048617 len:16
nvme1: PRP OFFET INVALID (00/13) crd:0 m:0 dnr:0 p:1 sqid:1 cid:126 cdw0:0
(nda1:nvme1:0:0:1): READ. NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=100029 0 f 0 0 0
(nda1:nvme1:0:0:1): CAM status: Unknown (0x420)
(nda1:nvme1:0:0:1): Error 5, Retries exhausted
nvme1: READ sqid:1 cid:126 nsid:1 lba:1048617 len:16
nvme1: PRP OFFET INVALID (00/13) crd:0 m:0 dnr:0 p:1 sqid:1 cid:126 cdw0:0
(nda1:nvme1:0:0:1): READ. NCB: opc=2 fuse=0 nsid=1 prp1=0 prp2=0 cdw=100029 0 f 0 0 0
(nda1:nvme1:0:0:1): CAM status: Unknown (0x420)
(nda1:nvme1:0:0:1): Error 5, Retries exhausted

I copied bot boot file away, then unmount and try to re-create the filesystem

root@devpi5:~ # newfs_msdos /dev/nda1p2
/dev/nda1p2: 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

root@devpi5:~ # mount /boot/efi

create dirs

root@devpi5:~ # mkdir -p /boot/efi/EFI/BOOT

copy the boot file back

root@devpi5:~ # cp /home/tingo/work/bootaa64.efi /boot/efi/EFI/BOOT/

check

root@devpi5:~ # ls -l /boot/efi/EFI/BOOT/
total 848
-rwxr-xr-x  1 root wheel 853788 Dec  7 20:16 bootaa64.efi

2025-12-07: mmcsd0p3 - zroot - current config file is

root@devpi5sd:~ # cat /etc/rc.conf
hostname="devpi5sd"
keymap="no.kbd"
zfs_enable="YES"
zpool_reguid="zroot"
zpool_upgrade="zroot"
ifconfig_DEFAULT="DHCP inet6 accept_rtadv"
growfs_enable="YES"
sshd_enable="YES"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
dbus_enable="YES"
avahi_daemon_enable="YES"

2025-12-07: mmcsd0p3 - zroot - create a msdos filesystem on nda1p1

root@devpi5sd:~ # newfs_msdos /dev/nda1p1
/dev/nda1p1: 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, unzip firmware, unmount

root@devpi5sd:~ # mount -t msdosfs /dev/nda1p1 /mnt
root@devpi5sd:/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  
root@devpi5sd:/mnt # df -h /mnt
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/nda1p1    512M    2.6M    509M     1%    /mnt
root@devpi5sd:/mnt # cd
root@devpi5sd:~ # umount /mnt

I've copied over the base image, and unpacked it

tingo@devpi5sd:~/dl $ unxz -k FreeBSD-14.3-RELEASE-arm64-aarch64-zfs.raw.xz

can I mdconfig it?

root@devpi5sd:/home/tingo/dl # mdconfig -f FreeBSD-14.3-RELEASE-arm64-aarch64-zfs.raw
md0

check devices

root@devpi5sd:/home/tingo/dl # ll /dev/md0*
crw-r-----  1 root operator 0x93 Dec  7 20:37 /dev/md0
crw-r-----  1 root operator 0x94 Dec  7 20:37 /dev/md0p1
crw-r-----  1 root operator 0x95 Dec  7 20:37 /dev/md0p2
crw-r-----  1 root operator 0x96 Dec  7 20:37 /dev/md0p3
root@devpi5sd:/home/tingo/dl # gpart show -p md0
=>      34  12649496    md0  GPT  (6.0G)
        34     66584  md0p1  efi  (33M)
     66618   2097152  md0p2  freebsd-swap  (1.0G)
   2163770  10485760  md0p3  freebsd-zfs  (5.0G)

good. Copy data for efi partition

root@devpi5sd:/home/tingo/dl # dd if=/dev/md0p1 of=/dev/nda1p2 bs=16M conv=sync status=progress

3+0 records in
3+0 records out
50331648 bytes transferred in 0.175850 secs (286220005 bytes/sec)

copy data for zfs partition

root@devpi5sd:/home/tingo/dl # dd if=/dev/md0p3 of=/dev/nda1p4 bs=16M conv=sync status=progress
  5083496448 bytes (5083 MB, 4848 MiB) transferred 18.010s, 282 MB/s
320+0 records in
320+0 records out
5368709120 bytes transferred in 18.912069 secs (283877410 bytes/sec)

that should be all.

2025-12-07: mmcsd0p3 - zroot - let me create a gpt on nvme1

root@devpi5sd:~ # gpart create -s GPT nda1
nda1 created

add a 512M ms-basic-data partition

root@devpi5sd:~ # gpart add -t ms-basic-data -s 512M nda1
nda1p1 added

add a 512M efi partition, label it efiesp

root@devpi5sd:~ # gpart add -t efi -s 512M -l efiesp nda1
nda1p2 added

add a 16 GB swap partition, labeled swapfs

root@devpi5sd:~ # gpart add -t freebsd-swap -s 16G -l swapfs nda1
nda1p3 added

add a freebsd-zfs partition, taking up the rest of the space

root@devpi5sd:~ # gpart add -t freebsd-zfs nda1
nda1p4 added

the result is

root@devpi5sd:~ # gpart show -p nda1
=>        40  7814037088    nda1  GPT  (3.6T)
          40     1048576  nda1p1  ms-basic-data  (512M)
     1048616     1048576  nda1p2  efi  (512M)
     2097192    33554432  nda1p3  freebsd-swap  (16G)
    35651624  7778385504  nda1p4  freebsd-zfs  (3.6T)

root@devpi5sd:~ # gpart show -l nda1
=>        40  7814037088  nda1  GPT  (3.6T)
          40     1048576     1  (null)  (512M)
     1048616     1048576     2  efiesp  (512M)
     2097192    33554432     3  swapfs  (16G)
    35651624  7778385504     4  (null)  (3.6T)

2025-12-02: mmcsd0p3 - zroot - I switched to a Lenovo USB to Ethernet adapter. usbconfig says

root@devpi5sd:~ # usbconfig -d ugen0.3
ugen0.3: <Thinkpad LAN Lenovo> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (72mA)

and from dmesg

ugen0.3: <Lenovo Thinkpad USB LAN> at usbus0
ure0 on uhub1
ure0: <Lenovo Thinkpad USB LAN, class 0/0, rev 3.00/30.00, addr 2> on usbus0
miibus0: <MII bus> on ure0
rgephy0: <RTL8251/8153 1000BASE-T media interface> PHY 0 on miibus0
rgephy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
ue0: <USB Ethernet> on ure0
ue0: Ethernet address: 3c:18:a0:20:6a:49
ue0: link state changed to DOWN
lo0: link state changed to UP
ue0: link state changed to UP

it works.

2025-12-02: mmcsd0p3 - zroot - dmesg info about nvme

root@devpi5sd:~ # dmesg | egrep nvme\|nda
FreeBSD is a registered trademark of The FreeBSD Foundation.
nvme0: <Generic NVMe Device> mem 0xc0100000-0xc0103fff at device 0.0 on pci3
nvme0: unable to allocate MSI-X
nvme0: unable to allocate MSI
nvme1: <Generic NVMe Device> mem 0xc0000000-0xc0003fff at device 0.0 on pci4
nvme1: unable to allocate MSI-X
nvme1: unable to allocate MSI
nvme0: Allocated 64MB host memory buffer
nvme1: Allocated 64MB host memory buffer
Release APs...nda0 at nvme0 bus 0 scbus0 target 0 lun 1
nda0: <Samsung SSD 990 EVO Plus 4TB 2B2QKXG7 S7U9NU0YA21568Y>
nda0: Serial Number S7U9NU0YA21568Y
nda0: nvme version 2.0
nda0: 3815447MB (7814037168 512 byte sectors)
nda1 at nvme1 bus 0 scbus1 target 0 lun 1
nda1: <Samsung SSD 990 EVO Plus 4TB 2B2QKXG7 S7U9NU0YA21527F>
nda1: Serial Number S7U9NU0YA21527F
nda1: nvme version 2.0
nda1: 3815447MB (7814037168 512 byte sectors)

2025-12-02: mmcsd0p3 - zroot - nvmecontrol also reports the two SSDs

root@devpi5sd:~ # nvmecontrol devlist
 nvme0: Samsung SSD 990 EVO Plus 4TB
    nvme0ns1 (3815447MB)
 nvme1: Samsung SSD 990 EVO Plus 4TB
    nvme1ns1 (3815447MB)

do an identify on nvme0

root@devpi5sd:~ # nvmecontrol identify nvme0
Controller Capabilities/Features
================================
Vendor ID:                   144d
Subsystem Vendor ID:         144d
Serial Number:               S7U9NU0YA21568Y
Model Number:                Samsung SSD 990 EVO Plus 4TB
Firmware Version:            2B2QKXG7
Recommended Arb Burst:       2
IEEE OUI Identifier:         00 25 38
Multi-Path I/O Capabilities: Not Supported
Max Data Transfer Size:      524288 bytes
Sanitize Crypto Erase:       Supported
Sanitize Block Erase:        Supported
Sanitize Overwrite:          Not Supported
Sanitize NDI:                Supported
Sanitize NODMMAS:            No
Controller ID:               0x0001
Version:                     2.0.0
Traffic Based Keep Alive:    Not Supported
Controller Type:             I/O Controller
Keep Alive Timer             Not Supported
Maximum Outstanding Commands 128

Admin Command Set Attributes
============================
Security Send/Receive:       Supported
Format NVM:                  Supported
Firmware Activate/Download:  Supported
Namespace Management:        Not Supported
Device Self-test:            Supported
Directives:                  Not Supported
NVMe-MI Send/Receive:        Not Supported
Virtualization Management:   Not Supported
Doorbell Buffer Config:      Not Supported
Get LBA Status:              Not Supported
Sanitize:                    crypto, block, 
Abort Command Limit:         8
Async Event Request Limit:   4
Number of Firmware Slots:    3
Firmware Slot 1 Read-Only:   No
Per-Namespace SMART Log:     Yes
Error Log Page Entries:      64
Number of Power States:      5
Total NVM Capacity:          4000787030016 bytes
Unallocated NVM Capacity:    0 bytes
Firmware Update Granularity: 08 (32768 bytes)
Host Buffer Preferred Size:  67108864 bytes
Host Buffer Minimum Size:    16777216 bytes

NVM Command Set Attributes
==========================
Submission Queue Entry Size
  Max:                       64
  Min:                       64
Completion Queue Entry Size
  Max:                       16
  Min:                       16
Number of Namespaces:        1
Compare Command:             Supported
Write Uncorrectable Command: Supported
Dataset Management Command:  Supported
Write Zeroes Command:        Supported
Save Features:               Supported
Reservations:                Not Supported
Timestamp feature:           Supported
Verify feature:              Supported
Fused Operation Support:     Not Supported
Format NVM Attributes:       Crypto Erase, Per-NS Erase, Per-NS Format
Volatile Write Cache:        Present, flush all

NVM Subsystem Name:          nqn.1994-11.com.samsung:nvme:990EVOPlus:M.2:S7U9NU0YA21568Y     

Fabrics Attributes
==================
I/O Command Capsule Size:    1405431168 bytes
I/O Response Capsule Size:   465776 bytes
In Capsule Data Offset:      351744 bytes
Controller Model:            Dynamic
Max SGL Descriptors:         181
Disconnect of I/O Queues:    Supported

identify on nvme1

root@devpi5sd:~ # nvmecontrol identify nvme1
Controller Capabilities/Features
================================
Vendor ID:                   144d
Subsystem Vendor ID:         144d
Serial Number:               S7U9NU0YA21527F
Model Number:                Samsung SSD 990 EVO Plus 4TB
Firmware Version:            2B2QKXG7
Recommended Arb Burst:       2
IEEE OUI Identifier:         00 25 38
Multi-Path I/O Capabilities: Not Supported
Max Data Transfer Size:      524288 bytes
Sanitize Crypto Erase:       Supported
Sanitize Block Erase:        Supported
Sanitize Overwrite:          Not Supported
Sanitize NDI:                Supported
Sanitize NODMMAS:            No
Controller ID:               0x0001
Version:                     2.0.0
Traffic Based Keep Alive:    Not Supported
Controller Type:             I/O Controller
Keep Alive Timer             Not Supported
Maximum Outstanding Commands 128

Admin Command Set Attributes
============================
Security Send/Receive:       Supported
Format NVM:                  Supported
Firmware Activate/Download:  Supported
Namespace Management:        Not Supported
Device Self-test:            Supported
Directives:                  Not Supported
NVMe-MI Send/Receive:        Not Supported
Virtualization Management:   Not Supported
Doorbell Buffer Config:      Not Supported
Get LBA Status:              Not Supported
Sanitize:                    crypto, block, 
Abort Command Limit:         8
Async Event Request Limit:   4
Number of Firmware Slots:    3
Firmware Slot 1 Read-Only:   No
Per-Namespace SMART Log:     Yes
Error Log Page Entries:      64
Number of Power States:      5
Total NVM Capacity:          4000787030016 bytes
Unallocated NVM Capacity:    0 bytes
Firmware Update Granularity: 08 (32768 bytes)
Host Buffer Preferred Size:  67108864 bytes
Host Buffer Minimum Size:    16777216 bytes

NVM Command Set Attributes
==========================
Submission Queue Entry Size
  Max:                       64
  Min:                       64
Completion Queue Entry Size
  Max:                       16
  Min:                       16
Number of Namespaces:        1
Compare Command:             Supported
Write Uncorrectable Command: Supported
Dataset Management Command:  Supported
Write Zeroes Command:        Supported
Save Features:               Supported
Reservations:                Not Supported
Timestamp feature:           Supported
Verify feature:              Supported
Fused Operation Support:     Not Supported
Format NVM Attributes:       Crypto Erase, Per-NS Erase, Per-NS Format
Volatile Write Cache:        Present, flush all

NVM Subsystem Name:          nqn.1994-11.com.samsung:nvme:990EVOPlus:M.2:S7U9NU0YA21527F     

2025-12-02: mmcsd0p3 - zroot - pciconf reports

root@devpi5sd:~ # pciconf -lv
pcib1@pci1:0:0:0:   class=0x060400 rev=0x30 hdr=0x01 vendor=0x14e4 device=0x2712 subvendor=0x0000 subdevice=0x0000
    vendor     = 'Broadcom Inc. and subsidiaries'
    device     = 'BCM2712 PCIe Bridge'
    class      = bridge
    subclass   = PCI-PCI
pcib2@pci1:1:0:0:   class=0x060400 rev=0x00 hdr=0x01 vendor=0x1b21 device=0x1182 subvendor=0x1b21 subdevice=0x118f
    vendor     = 'ASMedia Technology Inc.'
    device     = 'ASM1182e 2-Port PCIe x1 Gen2 Packet Switch'
    class      = bridge
    subclass   = PCI-PCI
pcib3@pci1:2:3:0:   class=0x060400 rev=0x00 hdr=0x01 vendor=0x1b21 device=0x1182 subvendor=0x1b21 subdevice=0x118f
    vendor     = 'ASMedia Technology Inc.'
    device     = 'ASM1182e 2-Port PCIe x1 Gen2 Packet Switch'
    class      = bridge
    subclass   = PCI-PCI
pcib4@pci1:2:7:0:   class=0x060400 rev=0x00 hdr=0x01 vendor=0x1b21 device=0x1182 subvendor=0x1b21 subdevice=0x118f
    vendor     = 'ASMedia Technology Inc.'
    device     = 'ASM1182e 2-Port PCIe x1 Gen2 Packet Switch'
    class      = bridge
    subclass   = PCI-PCI
nvme0@pci1:3:0:0:   class=0x010802 rev=0x00 hdr=0x00 vendor=0x144d device=0xa80d subvendor=0x144d subdevice=0xa801
    vendor     = 'Samsung Electronics Co Ltd'
    device     = 'NVMe SSD Controller PM9C1a (DRAM-less)'
    class      = mass storage
    subclass   = NVM
nvme1@pci1:4:0:0:   class=0x010802 rev=0x00 hdr=0x00 vendor=0x144d device=0xa80d subvendor=0x144d subdevice=0xa801
    vendor     = 'Samsung Electronics Co Ltd'
    device     = 'NVMe SSD Controller PM9C1a (DRAM-less)'
    class      = mass storage
    subclass   = NVM

it sees the two NVME SSDs - good.

2025-12-03: I powered off the machine, plugged inn the Base Duo hat, and powered it on again.

2025-12-01: mmcsd0p3 - I ran tzsetup to fix the timezone.

2025-12-01: mmcsd0p3 - zroot - swap is missing. Another missing label?

root@devpi5sd:~ # cat /etc/fstab
# Custom /etc/fstab for FreeBSD VM images
/dev/gpt/swapfs  none    swap    sw      0       0
/dev/gpt/efiesp /boot/efi       msdosfs     rw      2       2

check

root@devpi5sd:~ # gpart show -p
=>       40  122167216    mmcsd0  GPT  (58G)
         40    1048576  mmcsd0p1  ms-basic-data  (512M)
    1048616    1048576  mmcsd0p2  efi  (512M)
    2097192   14680064  mmcsd0p3  freebsd-swap  (7.0G)
   16777256  105390000  mmcsd0p4  freebsd-zfs  (50G)

root@devpi5sd:~ # gpart show -p -l
=>       40  122167216    mmcsd0  GPT  (58G)
         40    1048576  mmcsd0p1  (null)  (512M)
    1048616    1048576  mmcsd0p2  efiesp  (512M)
    2097192   14680064  mmcsd0p3  (null)  (7.0G)
   16777256  105390000  mmcsd0p4  (null)  (50G)

ok, the label is missing on mmcsd0p3. Fix it

root@devpi5sd:~ # gpart modify -i 3 -l swapfs mmcsd0
mmcsd0p3 modified

check

root@devpi5sd:~ # gpart show -l
=>       40  122167216  mmcsd0  GPT  (58G)
         40    1048576       1  (null)  (512M)
    1048616    1048576       2  efiesp  (512M)
    2097192   14680064       3  swapfs  (7.0G)
   16777256  105390000       4  (null)  (50G)

enable swap

root@devpi5sd:~ # swapon -a
swapon: adding /dev/gpt/swapfs as swap device

2025-11-30: mmcsd0p3 - zroot - pkg - install curl

Nov 30 19:55:40 devpi5sd pkg[1043]: brotli-1.1.0,1 installed
Nov 30 19:55:40 devpi5sd pkg[1043]: liblz4-1.10.0,1 installed
Nov 30 19:55:40 devpi5sd pkg[1043]: libnghttp2-1.67.0 installed
Nov 30 19:55:41 devpi5sd pkg[1043]: libssh2-1.11.1,3 installed
Nov 30 19:55:41 devpi5sd pkg[1043]: libunistring-1.4.1 installed
Nov 30 19:55:42 devpi5sd pkg[1043]: libidn2-2.3.8 installed
Nov 30 19:55:42 devpi5sd pkg[1043]: libpsl-0.21.5_2 installed
Nov 30 19:55:42 devpi5sd pkg[1043]: zstd-1.5.7 installed
Nov 30 19:55:43 devpi5sd pkg[1043]: curl-8.16.0 installed

2025-11-30: mmcsd0p4 - zroot - network via usb ethernet dongle

root@devpi5sd:~ # usbconfig -d ugen0.3
ugen0.3: <RTL8152 Fast Ethernet Adapter Realtek Semiconductor Corp.> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (100mA)

which shows up as ue0

root@devpi5sd:~ # ifconfig ue0
ue0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
    options=68009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
    ether 00:e0:4c:36:08:f8
    inet 10.1.161.30 netmask 0xffff0000 broadcast 10.1.255.255
    inet6 fe80::2e0:4cff:fe36:8f8%ue0 prefixlen 64 scopeid 0x2
    inet6 fd8c:2fd0:94bd:0:2e0:4cff:fe36:8f8 prefixlen 64 autoconf
    media: Ethernet autoselect (100baseTX <full-duplex>)
    status: active
    nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>

2025-11-30: mmcsd0p4 - zroot - usb devices

root@devpi5sd:~ # usbconfig
ugen1.1: <XHCI root HUB Generic> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.1: <XHCI root HUB Generic> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen1.2: <Model O- Wireless Glorious> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen0.2: <Hub Genesys Logic, Inc.> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (100mA)
ugen0.3: <RTL8152 Fast Ethernet Adapter Realtek Semiconductor Corp.> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (100mA)
ugen0.4: <HP USB Keyboard Primax Electronics, Ltd> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (98mA)
ugen0.5: <Hub Genesys Logic, Inc.> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)

2025-11-30 mmcsd0p4 - zroot - enable avahi

root@devpi5sd:~ # sysrc dbus_enable="YES"
dbus_enable:  -> YES
root@devpi5sd:~ # sysrc avahi_daemon_enable="YES"
avahi_daemon_enable:  -> YES

2025-11-30 mmcsd0p4 - zroot - pkg - install avahi messages

Message from libinotify-20240724_3:

--
You might want to consider increasing the kern.maxfiles tunable if you plan
to use this library for applications that need to monitor activity of a lot
of files.

packages

Nov 30 19:17:34 devpi5sd pkg[10695]: expat-2.7.3 installed
Nov 30 19:17:34 devpi5sd pkg[10695]: gnome_subr-1.0 installed
Nov 30 19:17:34 devpi5sd pkg[10695]: indexinfo-0.3.1_1 installed
Nov 30 19:17:34 devpi5sd pkg[10695]: gettext-runtime-0.23.1 installed
Nov 30 19:17:34 devpi5sd pkg[10695]: libICE-1.1.2,1 installed
Nov 30 19:17:35 devpi5sd pkg[10695]: libSM-1.2.6,1 installed
Nov 30 19:17:35 devpi5sd pkg[10695]: libXau-1.0.12 installed
Nov 30 19:17:35 devpi5sd pkg[10695]: libdaemon-0.14_1 installed
Nov 30 19:17:35 devpi5sd pkg[10695]: libevent-2.1.12 installed
Nov 30 19:17:35 devpi5sd pkg[10695]: libffi-3.5.1 installed
Nov 30 19:17:35 devpi5sd pkg[10695]: libiconv-1.17_1 installed
Nov 30 19:17:35 devpi5sd pkg[10695]: libinotify-20240724_3 installed
Nov 30 19:17:35 devpi5sd pkg[10695]: mpdecimal-4.0.1 installed
Nov 30 19:17:36 devpi5sd pkg[10695]: pcre2-10.46 installed
Nov 30 19:17:36 devpi5sd pkg[10695]: readline-8.2.13_2 installed
Nov 30 19:17:37 devpi5sd pkg[10695]: gdbm-1.26 installed
Nov 30 19:17:38 devpi5sd pkg[10695]: libxml2-2.14.5 installed
Nov 30 19:17:39 devpi5sd pkg[10695]: python311-3.11.13_1 installed
Nov 30 19:17:39 devpi5sd pkg[10695]: py311-packaging-25.0 installed
Nov 30 19:17:45 devpi5sd pkg[10695]: glib-2.84.1_3,2 installed
Nov 30 19:17:47 devpi5sd pkg[10695]: xorgproto-2024.1 installed
Nov 30 19:17:48 devpi5sd pkg[10695]: libXdmcp-1.1.5 installed
Nov 30 19:17:49 devpi5sd pkg[10695]: libxcb-1.17.0 installed
Nov 30 19:17:51 devpi5sd pkg[10695]: libX11-1.8.12,1 installed
Nov 30 19:18:27 devpi5sd pkg[10695]: dbus-1.16.2_4,1 installed
Nov 30 19:18:27 devpi5sd pkg[10695]: dbus-glib-0.114 installed
Nov 30 19:18:28 devpi5sd pkg[10695]: avahi-app-0.8_6 installed
Nov 30 19:18:28 devpi5sd pkg[10695]: nss_mdns-0.14.1.20200624_1 installed

2025-11-30: mmcsd0p4 - zroot - pkg - install pkg

root@devpi5sd:~ # pkg install pkg
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:14:aarch64/quarterly, please wait...
Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
Installing pkg-2.4.2...
Extracting pkg-2.4.2: 100%
Updating FreeBSD repository catalogue...
Fetching meta.conf: 100%    179 B   0.2kB/s    00:01    
Fetching data.pkg: 100%   10 MiB  10.3MB/s    00:01    
Processing entries: 100%
FreeBSD repository update completed. 35656 packages processed.
Updating FreeBSD-kmods repository catalogue...
Fetching meta.conf: 100%    179 B   0.2kB/s    00:01    
Fetching data.pkg: 100%   16 KiB  15.9kB/s    00:01    
Processing entries: 100%
FreeBSD-kmods repository update completed. 69 packages processed.
All repositories are up to date.
Updating database digests format: 100%
Checking integrity... done (0 conflicting)
The most recent versions of packages are already installed

2025-11-30: mmcsd0p4 - zroot - freebsd-update fetch

root@devpi5sd:~ # freebsd-update fetch
src component not installed, skipped
[..]
The following files will be updated as part of updating to
14.3-RELEASE-p6:
/bin/freebsd-version
/boot/kernel/if_bnxt.ko
/boot/kernel/kernel
/boot/kernel/kernel.bin
/boot/kernel/wlan_tkip.ko
/boot/kernel/zfs.ko
/lib/libcrypto.so.30
/lib/libzpool.so.2
[..]
/usr/lib/libprivateunbound.a
/usr/lib/libprivateunbound.so.5
/usr/lib/libzpool.a
/usr/lib32/libarchive.a
/usr/lib32/libarchive.so.7
/usr/lib32/libcrypto.a
/usr/lib32/libcrypto.so.30
/usr/lib32/libprivateunbound.a
/usr/lib32/libprivateunbound.so.5
/usr/lib32/libzpool.a
/usr/lib32/libzpool.so.2
/usr/libexec/bsdinstall/distextract
/usr/sbin/freebsd-update
/usr/sbin/pkg
/usr/share/man/man1/bsdtar.1.gz
/usr/share/man/man1/tar.1.gz
/usr/share/man/man3/archive_read_format.3.gz
/usr/share/man/man3/archive_read_support_format_7zip.3.gz
/usr/share/man/man3/archive_read_support_format_all.3.gz
/usr/share/man/man3/archive_read_support_format_ar.3.gz
/usr/share/man/man3/archive_read_support_format_by_code.3.gz
/usr/share/man/man3/archive_read_support_format_cab.3.gz
/usr/share/man/man3/archive_read_support_format_cpio.3.gz
/usr/share/man/man3/archive_read_support_format_empty.3.gz
/usr/share/man/man3/archive_read_support_format_iso9660.3.gz
/usr/share/man/man3/archive_read_support_format_lha.3.gz
/usr/share/man/man3/archive_read_support_format_mtree.3.gz
/usr/share/man/man3/archive_read_support_format_rar.3.gz
/usr/share/man/man3/archive_read_support_format_raw.3.gz
/usr/share/man/man3/archive_read_support_format_tar.3.gz
/usr/share/man/man3/archive_read_support_format_xar.3.gz
/usr/share/man/man3/archive_read_support_format_zip.3.gz
/usr/share/man/man3/archive_write_set_filter_option.3.gz
/usr/share/man/man3/archive_write_set_format_option.3.gz
/usr/share/man/man3/archive_write_set_option.3.gz
/usr/share/man/man3/archive_write_set_options.3.gz
/usr/share/man/man5/libarchive-formats.5.gz

install

root@devpi5sd:~ # freebsd-update install
src component not installed, skipped
Creating snapshot of existing boot environment... done.
Installing updates...
Restarting sshd after upgrade
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 898.
Performing sanity check on sshd configuration.
Starting sshd.
 done.

2025-11-30: mmcsd0p4 - zroot - freebsd version

root@devpi5sd:~ # freebsd-version -ku
14.3-RELEASE
14.3-RELEASE

kernel

root@devpi5sd:~ # uname -a
FreeBSD devpi5sd 14.3-RELEASE FreeBSD 14.3-RELEASE releng/14.3-n271432-8c9ce319fef7 GENERIC arm64

2025-11-30: mmcsd0p4 - zroot - zpool status

root@devpi5sd:~ # zpool status
  pool: zroot
 state: ONLINE
config:

    NAME        STATE     READ WRITE CKSUM
    zroot       ONLINE       0     0     0
      mmcsd0p4  ONLINE       0     0     0

errors: No known data errors

2025-11-30: mmcsd0p4 - the fan spins a few rounds on boot, then stops.

2025-11-30: mmcsd0p4 - disk layout

root@freebsd:~ # df -h
Filesystem            Size    Used   Avail Capacity  Mounted on
zroot/ROOT/default     48G    3.6G     45G     7%    /
devfs                 1.0K      0B    1.0K     0%    /dev
/dev/gpt/efiesp        32M    836K     31M     3%    /boot/efi
zroot/tmp              45G    428K     45G     0%    /tmp
zroot/var/log          45G    512K     45G     0%    /var/log
zroot/home             45G    416K     45G     0%    /home
zroot/usr/ports        45G    420K     45G     0%    /usr/ports
zroot/var/mail         45G    416K     45G     0%    /var/mail
zroot/var/tmp          45G    424K     45G     0%    /var/tmp
zroot/var/audit        45G    428K     45G     0%    /var/audit
zroot/var/crash        45G    424K     45G     0%    /var/crash
zroot/usr/obj          45G    420K     45G     0%    /usr/obj
zroot/usr/src          45G    420K     45G     0%    /usr/src
zroot/home/tingo       45G    132K     45G     0%    /home/tingo

2025-11-30: mmcsd0p4 - the partitions on the microSD card look like this

root@freebsd:~ # gpart show -p -l
=>       40  122167216    mmcsd0  GPT  (58G)
         40    1048576  mmcsd0p1  (null)  (512M)
    1048616    1048576  mmcsd0p2  efiesp  (512M)
    2097192   14680064  mmcsd0p3  (null)  (7.0G)
   16777256  105390000  mmcsd0p4  (null)  (50G)

2025-11-30: mmcsd0p4 - first boot failed because it could not find the label on the esp partition. Fixed in single-user by gpart modify -i 2 -l efiesp mmcsd0.

2025-11-30: I created this page.