Sorry for the late reply. I didn’t find the time to implement everything into our image OOTB, but the needed changes to the bootloader environment have been done since StarFive’s U-Boot/software v3.x.x release already. Here is how to enable 8 GiB support: RISC-V and VisionFive 2 testing · Issue #6212 · MichaIng/DietPi · GitHub
Thanks, any chance you can provide the log lines above the kernel panic? Was this when the init system was loaded already?
Our Trixie and Forky images both ship with identical kernel and setup, only the Debian repo, hence e.g. systemd version, is different.
QSPI → NVME(grub) → USB(Ubuntu240404)
Does this apply to all your tests? The GRUB EFI bootloader in the SPI flash, GRUB configs with boot menu on the NVMe? Was this installed via grub-efi-riscv64 from a Debian system on the NVMe? DietPi Trixie and Forky tested with the same USB stick? And how did you generate the boot menu entries? I wonder e.g. how it knows e.g. the device tree to load, and the cmdline, whether GRUB detects and parses /boot/extlinux/extlinux.conf automatically or so.
The grub configuration file is automatically generated by update-grub.
YES, The official version of debian13 is installed on /dev/nvme0n1p8. /dev/nvme0n1p1 is /boot/efi.
I’m not sure if it’s the same USB stick. I used two for testing. I will use the same USB stick to retest the two DietPIs in a few days and then inform you of the results.
grub will not modify /boot/extlinux/extlinux.conf。
After constructing the menu in grub, I corrupted extlinux.conf, resulting in a failed boot process.
I guess, QSPI → efi → grub → uboot, so most systems that were originally booted by uboot, can now be booted by grub.
My nvme:
/dev/nvme0n1p1 = /boot/efi
/dev/nvme0n1p2 = archlinux-cwt /boot(Original image partition 3)
/dev/nvme0n1p3 = starfive-debian202510 /boot (Original image partition 3)
/dev/nvme0n1p4 = archlinux-cwt / (Original image partition 4)
/dev/nvme0n1p6 = starfive-debian202510 / (Original image partition 4, Upgraded to debian13.5, GPU VPU is working properly)
/dev/nvme0n1p7 = starfive-debian202510 /home
/dev/nvme0n1p8 = debian13.5 / (The official version was installed through debian ISO on a USB drive)
I have modified /boot/extlinux/extlinux.conf and /etc/fstab on nvme.
So, if my nvme capacity is large enough, I can install various system images that were originally booted on uboot onto nvme and boot them through grub.
The menu of Grub not be displayed on the monitor, but I can modify the default startup value of Grub to boot the required OS.
And update-grub most likely invokes os-prober to check for available distros on all drives and partitions.
I do not have a VisionFive 2 here, but a Star64, which has the same SoC, shares the same kernel (with some added onboard WiFi driver), and boots with the same StarFive U-Boot. It does not have an M.2 NVMe slot, but I try to replicate the setup as close as possible with an SD card and USB stick, when I find time.
Use SD card and USB stick good. There seems to be an issue with debian’s uboot. The grub startup sequence on nvme should take priority over TF and USB stick; TF and USB stick can only boot when there is no grub on nvme.
The boot priority is usually set via boot_targets variable. You could check in DietPi via fw_printenv command whether there is a persistent environment stored on the QSPI, or whether it just prints our defaults from /etc/u-boot-initial-env. In that case, U-Boot takes its internal/embedded defaults.
We do set boot_targets=mmc1 usb0 nvme0 mmc0 dhcp in our environment, hence SD card > USB > NVMe > eMMC > DHCP. If there is an environment present on the QSPI device (exposed as /dev/mtd1 on DietPi), then you can you can just edit it from DietPi with this command:
Great, so something is wrong with the other USB stick, or the board/bootloader/kernel is a bit picky/prone regarding USB slot connectivity/power or something.
Great to see some upstreaming work for the GPU driver. This, along with general HDMI/DRM/KMS support is the missing piece which prevents us from switching to mainline Linux. But according to Debian, it is still too slow to be practically usable.