Re: Raspberry Pi 4 and M.2 SATA SSD recognized but not booting or available for install - unsupported interface

From: Michael Stiller <mstiller_at_me.com>
Date: Fri, 12 Apr 2024 14:05:29 UTC
I think I have roughly the same setup as you on a pi4.

What I basically did was:

- write the .img to the usb stick
- boot that
- create partitions on the ssd using gpart with that layout below:
(because the .img tends to extend the root fs which I did not want.)

gpart of ssd:


=>       63  488397105  da0  MBR  (233G)
         63     131072    1  fat32lba  [active]  (64M)
     131135  488266033    2  freebsd  (233G)

=>        0  488266033  da0s2  BSD  (233G)
          0   33554432      1  freebsd-ufs  (16G)
   33554432    8388608      2  freebsd-swap  (4.0G)
   41943040  446322993      4  freebsd-zfs  (213G)

On the Pi4 I think it's not relevant if the disk is MBR partitioned,

at least not for this (small) size.

Then I made the filesystems there, / as ufs and then /boot/efi as msdos.

I copied the files from the usb stick (which contains the .img contents)

using the "clone" program which is in pkg:

pkg info clone
clone-1.0.8
Name           : clone
Version        : 1.0.8
Installed on   : Sat Mar 23 16:15:40 2024 UTC
Origin         : sysutils/clone
Architecture   : FreeBSD:14:aarch64
Prefix         : /usr/local
Categories     : sysutils
Licenses       : BSD2CLAUSE
Maintainer     : cyclaero@gmail.com
WWW            : https://cyclaero.github.io/clone/
Comment        : File tree cloning tool
...

I basically used this commands: (mount correctly!)

clone -s -v 3 / /mnt
clone -s -v 3 /boot/efi /mnt/boot/efi

On important thing is:
On the SSD my loader.conf contains this line:

vfs.root.mountfrom="ufs:/dev/da0s2a"

Which is the device the kernel detects if NO usb stick is inserted.

So this must be adjusted basically in /mnt/boot/loader.conf

Then umounted all /mnt, removed usb stick.

After this it booted from SSD, I created the zfs pool and moved some directories to zfs.

Hope this helps. Feel free to ask any more questions.

Best regards,

Michael




> On 12. Apr 2024, at 15:41, Johan Helsingius <julf@Julf.com> wrote:
> 
> On 11/04/2024 19:57, Mark Millard wrote:
>> As far as I know, the absence of sufficient material in
>> da1p1 (efiboot0) could be your only problem.
> 
> OK, I have some progress (but not quite sure how). The
> system now boots from the USB stick, but with the ZFS
> file system from the SSD as it should - but without the
> USB stick it doesn't boot, complaining "Firmware not found".
> 
> Here is the current partitioning, da0 is the USB stick,
> da1 the SSD:
> 
> $ gpart show
> =>      63  31301568  da0  MBR  (15G)
>        63      1985       - free -  (993K)
>      2048    102400    1  fat32lba  [active]  (50M)
>    104448  10381312    2  freebsd  (5.0G)
>  10485760  20815871       - free -  (9.9G)
> 
> =>       0  10381312  da0s2  BSD  (5.0G)
>         0       128         - free -  (64K)
>       128  10381184      1  freebsd-ufs  (4.9G)
> 
> =>       40  937703008  da1  GPT  (447G)
>         40     532480    1  efi  (260M)
>     532520       2008       - free -  (1.0M)
>     534528    4194304    2  freebsd-swap  (2.0G)
>    4728832  932972544    3  freebsd-zfs  (445G)
>  937701376       1672       - free -  (836K)
> 
> $ gpart show -pl
> =>      63  31301568    da0  MBR  (15G)
>        63      1985         - free -  (993K)
>      2048    102400  da0s1  (null)  [active]  (50M)
>    104448  10381312  da0s2  (null)  (5.0G)
>  10485760  20815871         - free -  (9.9G)
> 
> =>       0  10381312   da0s2  BSD  (5.0G)
>         0       128          - free -  (64K)
>       128  10381184  da0s2a  (null)  (4.9G)
> 
> =>       40  937703008    da1  GPT  (447G)
>         40     532480  da1p1  efiboot0  (260M)
>     532520       2008         - free -  (1.0M)
>     534528    4194304  da1p2  swap0  (2.0G)
>    4728832  932972544  da1p3  zfs0  (445G)
>  937701376       1672         - free -  (836K)
> 
> da0s1 and da1p1 (that I assume are the EFI boot partitions)
> have totally different contents:
> 
> SSD / da1p1:
> $ find /boot/efi
> /boot/efi
> /boot/efi/efi
> /boot/efi/efi/freebsd
> /boot/efi/efi/freebsd/loader.efi
> /boot/efi/efi/boot
> /boot/efi/efi/boot/bootaa64.efi
> /boot/efi/ubootefi.var
> 
> 
> USB stick / da0s1:
> 
> $ find /mnt/da0s1
> /mnt
> /mnt/EFI
> /mnt/EFI/BOOT
> /mnt/EFI/BOOT/bootaa64.efi
> /mnt/dtb
> /mnt/dtb/allwinner
> /mnt/dtb/allwinner/sun50i-a64-nanopi-a64.dtb
> /mnt/dtb/allwinner/sun50i-a64-olinuxino.dtb
> /mnt/dtb/allwinner/sun50i-a64-pine64-lts.dtb
> /mnt/dtb/allwinner/sun50i-a64-pine64-plus.dtb
> /mnt/dtb/allwinner/sun50i-a64-pine64.dtb
> /mnt/dtb/allwinner/sun50i-a64-pinebook.dtb
> /mnt/dtb/allwinner/sun50i-a64-sopine-baseboard.dtb
> /mnt/dtb/allwinner/sun50i-h5-orangepi-pc2.dtb
> /mnt/dtb/allwinner/sun50i-h5-nanopi-neo2.dtb
> /mnt/dtb/allwinner/sun50i-h6-pine-h64.dtb
> /mnt/dtb/allwinner/sun50i-h6-pine-h64-model-b.dtb
> /mnt/dtb/overlays
> /mnt/dtb/overlays/sun50i-a64-mmc0-disable.dtbo
> /mnt/dtb/overlays/sun50i-a64-mmc1-disable.dtbo
> /mnt/dtb/overlays/sun50i-a64-mmc2-disable.dtbo
> /mnt/dtb/overlays/sun50i-a64-pwm.dtbo
> /mnt/dtb/overlays/sun50i-a64-rpwm.dtbo
> /mnt/dtb/overlays/sun50i-a64-spi0-spigen.dtbo
> /mnt/dtb/overlays/sun50i-a64-timer.dtbo
> /mnt/dtb/overlays/sun50i-h5-opp.dtbo
> /mnt/dtb/overlays/sun50i-h5-nanopi-neo2-opp.dtbo
> /mnt/dtb/overlays/rk3328-analog-sound.dtbo
> /mnt/dtb/overlays/rk3328-i2c0.dtbo
> /mnt/dtb/overlays/rk3328-uart1.dtbo
> /mnt/dtb/overlays/rk3399-mmc0-disable.dtbo
> /mnt/dtb/overlays/rk3399-mmc1-disable.dtbo
> /mnt/dtb/overlays/rk3399-sdhci-disable.dtbo
> /mnt/dtb/overlays/spigen-rpi3.dtbo
> /mnt/dtb/overlays/spigen-rpi4.dtbo
> /mnt/dtb/rockchip
> /mnt/dtb/rockchip/rk3399-khadas-edge-captain.dtb
> /mnt/dtb/rockchip/rk3399-khadas-edge.dtb
> /mnt/dtb/rockchip/rk3399-khadas-edge-v.dtb
> /mnt/dtb/rockchip/rk3399-nanopc-t4.dtb
> /mnt/dtb/rockchip/rk3328-nanopi-r2s.dtb
> /mnt/dtb/rockchip/rk3399-nanopi-r4s.dtb
> /mnt/dtb/rockchip/rk3399-rock-pi-4.dtb
> /mnt/dtb/rockchip/rk3328-rock-pi-e.dtb
> /mnt/dtb/rockchip/rk3328-rock64.dtb
> /mnt/dtb/rockchip/rk3399-firefly.dtb
> /mnt/dtb/rockchip/rk3399-rockpro64.dtb
> /mnt/dtb/freescale
> /mnt/dtb/freescale/fsl-ls1028a-rdb.dtb
> /mnt/dtb/freescale/fsl-lx2160a-clearfog-cx.dtb
> /mnt/dtb/freescale/fsl-lx2160a-honeycomb.dtb
> /mnt/dtb/freescale/fsl-lx2160a-qds.dtb
> /mnt/dtb/freescale/fsl-lx2160a-rdb.dtb
> /mnt/dtb/freescale/imx8mq-evk.dtb
> /mnt/dtb/freescale/imx8mq-nitrogen.dtb
> /mnt/dtb/marvell
> /mnt/dtb/marvell/armada-3720-espressobin.dtb
> /mnt/dtb/marvell/armada-8040-clearfog-gt-8k.dtb
> /mnt/dtb/marvell/armada-8040-db.dtb
> /mnt/dtb/marvell/armada-8040-mcbin.dtb
> /mnt/dtb/marvell/armada-8040-mcbin-singleshot.dtb
> /mnt/dtb/nvidia
> /mnt/dtb/nvidia/tegra210-p2371-2180.dtb
> /mnt/dtb/nvidia/tegra210-p3450-0000.dtb
> /mnt/README
> /mnt/u-boot.bin
> /mnt/armstub8.bin
> /mnt/armstub8-gic.bin
> /mnt/bootcode.bin
> /mnt/fixup_cd.dat
> /mnt/fixup_db.dat
> /mnt/fixup_x.dat
> /mnt/fixup.dat
> /mnt/LICENCE.broadcom
> /mnt/start_cd.elf
> /mnt/start_db.elf
> /mnt/start_x.elf
> /mnt/start.elf
> /mnt/fixup4.dat
> /mnt/fixup4cd.dat
> /mnt/fixup4db.dat
> /mnt/fixup4x.dat
> /mnt/start4.elf
> /mnt/start4cd.elf
> /mnt/start4db.elf
> /mnt/start4x.elf
> /mnt/bcm2710-rpi-2-b.dtb
> /mnt/bcm2710-rpi-3-b.dtb
> /mnt/bcm2710-rpi-3-b-plus.dtb
> /mnt/bcm2710-rpi-cm3.dtb
> /mnt/bcm2711-rpi-4-b.dtb
> /mnt/config.txt
> /mnt/overlays
> /mnt/overlays/mmc.dtbo
> /mnt/overlays/pwm.dtbo
> /mnt/overlays/disable-bt.dtbo
> 
> Julf
> 
> 
>