Boot Debian from NVMe

Good morning

Received a NVME SSD this morning to test with my new R4 board…

Haven’t found any useful information (at least for me ;o) how to proceed to get Debian directly from NVMe.

Boot from SD and flash “u-boot-r4_2025.04-bpi-arm64-spi-nand.bin” over to NAND?

You cannot boot directly from nvme,you have to boot from mmc or spi first.

My uboot binaries have nvme support and then you can try to do manually booting linux kernel and rootfs from nvme before setting it as default.

i boot from emmc first (because i can change uboot environment there easier) and then from nvme

frank@bpi-r3-nvme:~$ mount | grep -v '/sys\|tmpfs'
/dev/nvme0n1p2 on / type ext4 (rw,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
/dev/nvme0n1p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/dev/mapper/vg--nvme-data on /mnt/data type ext4 (rw,relatime)
/dev/mapper/vg--nvme-var on /var type ext4 (rw,relatime)
/dev/mmcblk0p5 on /mnt/emmc1 type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
frank@bpi-r3-nvme:~$ cat /mnt/emmc1/uEnv.txt 
bootnvme=run usenvme; if test "$device" = "nvme"; then run loadenv; printenv; run newboot;fi
bootmenu_3=4. Boot kernel from NVME.=run bootnvme
bootmenu_default=3
frank@bpi-r3-nvme:~$ cat /boot/uEnv.txt 
root=/dev/nvme0n1p2 rootwait
fit=6.12.x-main.itb

so emmc-env is modified by the emmc uEnv.txt pointing to nvme and then the uEnv.txt from nvme is read to set kernel and root partition

You can use my archlinux tool to get u-boot on nand and have a linux-based rescue initrd.

Once installed, you can boot from and and use debootstrap to install debian on nvme. But you would still need a kernel.

Also it is possible ti use my tool

bpir-build

and choose to install Ubuntu. It installs ubuntu and a few of my tools + linux-kernel, maintained through archlinux packages though. It may not be what you want, but this is possible.

These options are quite new, so expect to run into bugs.