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

From: Ronald Klop <ronald-lists_at_klop.ws>
Date: Fri, 12 Apr 2024 14:22:39 UTC
Have a similar setup using GPT on my RPI4.
=>        40  1953458096  da1  GPT  (931G)
          40      102400    1  efi  (50M)
      102440     8388608    2  freebsd-swap  (4.0G)
     8491048  1944967088    3  freebsd-zfs  (927G)
Set this up manually after booting the standard image on MMC or USB-stick.
I just copied the EFI content from the standard image.

I vaguely remember that I needed to upgrade EEPROM on my RPI4 to make booting from SSD possible. This probably depends on the age of the RPI. You can use a Linux tool to do this.

Google gives multiple examples how to do this. This was one of my top hits now.
https://raspberrystreet.com/learn/how-to-boot-raspberrypi-from-usb-ssd

Regards,
Ronald.

 
Van: Michael Stiller <mstiller@me.com>
Datum: vrijdag, 12 april 2024 16:05
Aan: Johan Helsingius <julf@Julf.com>
CC: Mark Millard <marklmi@yahoo.com>, freebsd-arm@freebsd.org
Onderwerp: Re: Raspberry Pi 4 and M.2 SATA SSD recognized but not booting or available for install - unsupported interface
> 
> 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
> >
> >
> >
> 
>  
> 
> 
>