Re: Installing 13.1 ARM on SSD
- Reply: John Kennedy : "Re: Installing 13.1 ARM on SSD"
- Reply: Wall, Stephen: "RE: Installing 13.1 ARM on SSD"
- In reply to: Wall, Stephen: "Installing 13.1 ARM on SSD"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 08 Jul 2022 18:00:27 UTC
On Fri, Jul 08, 2022 at 05:40:23PM +0000, Wall, Stephen wrote:
> I am attempting to install FreeBSD/ARM 13.1 on a RPi4 with a USB3 SSD attached.
> Steps I’ve taken:
> - Used Raspberry Pi Imager to set the board to boot from USB first, SD card second
> - downloaded and burned FreeBSD 13.1 arm65-aarch64-RPI image
> - booted and run bsdinstall
> - selected ZFS
> - selected the USB SSD
>
> Installation ran to completion, but when I reboot without the SD card, I get a “Firmware not found” error message.
> Searching the web gives lots of results for linux, but I can’t find anything for FreeBSD.
> Has anyone successfully done an install like this, and can point me toward some resources that will get me straightened out?
For my RPI4, I burned the SD card and initially booted off of that.
That approach got started from Mark Millard's approach here:
https://marc.info/?l=freebsd-arm&m=162032836014677&w=2
The image I seeded from was "burned" via:
xzcat < FreeBSD-13.1-STABLE-arm64-aarch64-RPI-20220603-185159f77c9-250958.img.xz | dd bs=512b of=/dev/da1
Probably could have used a much bigger multiple of 512 for the
blocksize, da1 happened to be what the disk-to-be showed up as on my
system.
So that's a -STABLE (vs a -RELEASE), and that "arm65" was probably a
human typo I'm guessing (vs arm64).
From the SD card, I did a typical bsinstall onto the USB-connected
disk, then stomped on /boot/efi with the SDCARD's /boot/msdos contents
(uboot). I suspect that is what is biting you. I yanked out the SD card
at that point, and have been USB-only ever since.
root@rpi4:~ # gpart show
=> 40 488397088 da0 GPT (233G)
40 532480 1 efi (260M)
532520 2008 - free - (1.0M)
534528 50331648 2 freebsd-swap (24G)
50866176 437530624 3 freebsd-zfs (209G)
488396800 328 - free - (164K)
This was from the SD card booted, where the USB disk is now da0, and I
think that is bash-style environment variable declaration but you get
the idea. Reformatted what will be /boot/efi, mounted it, copied over
uboot from SD card's /boot/msdos, unmounted it:
export TGT=da0
newfs_msdos -F16 -L uboot /dev/${TGT}p1
mount -vt msdos /dev/${TGT}p1 /mnt
(cd /boot/msdos && tar jcf - .) | (cd /mnt && tar fvx -)
umount -v /mnt
Probably a little old-school.