Nach langer Zeit habe ich mich mal wieder mit diesem Image beschäftigt. Peter hat da mittlerweile viel dran gearbeitet und jetzt schau ich mal, was so wie funktioniert. Also, das Image wie gewohnt auf eine SD-Karte und starten. Gewählt habe ich dieses Image -> rk3566-quartz64-a.dtb.img
Wenn man das Image startet, wird man hiermit begrüßt
- Punkt 1Buildroot-recovery startet ein Minimalsystem, womit man verschiedene Dinge auf der Konsole durchführen kann. Das brauchen wir gleich noch.
- Punkt 2 startet den Debian Installer
- Punkt 3 startet ein installiertes Debian von der SD-Karte
- Punkt 4 startet ein installiertes Debian vom eMMC-Modul
Ich möchte heute mal schauen, ob man ein Minimal-System auf die PCIe-NVMe-Karte installieren kann. Peter hat nämlich den PCIe-Treiber mittlerweile im Kernel mit eingebaut.
Dazu starte ich den Debian-Installer und führe die Installation durch. Für mich nichts besonderes, das mache ich ja sehr oft. Nach erfolgreicher Installation startet die Installation nicht, weil Peter in seinem Image das so nicht vorgesehen hat.
Es gibt mehrere Möglichkeiten, das jetzt zu ändern. Wir machen das über UART direkt auf dem Quartz64.
Die Struktur von Peters Image sieht so aus.
Ich gehe nicht auf alles ein, die wichtigsten Partitionen haben einen Namen. Uns interessiert hier die Partition Nummer 5 mit dem Namen efi. (Auf der SD-Karte!!) Der Inhalt
Im Ordner extlinux liegt die Konfigurationsdatei, die wir bearbeiten müssen. extlinux.config
default l0
menu title Quartz64 Installer
prompt 0
timeout 50
label l0
menu label Buildroot-recovery
linux /vmlinuz
initrd /rootfs.cpio.zst
fdt /dtbs/rockchip/rk3566-quartz64-a.dtb
append earlycon=uart8250,mmio32,0xfe660000 console=ttyS2,1500000n8
label l1
menu label Debian-Installer
linux /vmlinuz
initrd /initrd.gz
fdt /dtbs/rockchip/rk3566-quartz64-a.dtb
append earlycon=uart8250,mmio32,0xfe660000 console=ttyS2,1500000n8
label l6
menu label Boot Root SDMMC
linux /vmlinuz
fdt /dtbs/rockchip/rk3566-quartz64-a.dtb
append earlycon=uart8250,mmio32,0xfe660000 console=ttyS2,1500000n8 root=/dev/mmcblk0p7 rootwait
label l9
menu label Boot Root eMMC
linux /vmlinuz
fdt /dtbs/rockchip/rk3566-quartz64-a.dtb
append earlycon=uart8250,mmio32,0xfe660000 console=ttyS2,1500000n8 root=/dev/mmcblk1p7 rootwait
Ich nehme den Eintrag label l9 und passe ihn ein wenig an.
label l9
menu label Boot Root NVMe
linux /dev/nvme0n1p1/vmlinuz
fdt /dtbs/rockchip/rk3566-quartz64-a.dtb
append earlycon=uart8250,mmio32,0xfe660000 console=ttyS2,1500000n8 root=/dev/nvme0n1p2 rootwait
Das wird abgespeichert, danach kann man den Quartz64 neustarten und mit Eingabe der Taste 4 startet man dann das Debian von der NVMe SSD.
root@debian:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 457G 926M 432G 1% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 17M 1.9G 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/nvme0n1p1 472M 49M 400M 11% /boot
tmpfs 391M 0 391M 0% /run/user/1000
PCIe
root@debian:~# lspci
00:00.0 PCI bridge: Fuzhou Rockchip Electronics Co., Ltd Device 3566 (rev 01)
01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981
Es handelt sich um ein Debian Buster 10
VERSION="10 (buster)"
Wollen wir das? Nö
# deb http://deb.debian.org/debian/ buster main
deb http://deb.debian.org/debian/ bullseye main
deb-src http://deb.debian.org/debian/ bullseye main
deb http://security.debian.org/debian-security bullseye-security main
deb-src http://security.debian.org/debian-security bullseye-security main
# buster-updates, previously known as 'volatile'
deb http://deb.debian.org/debian/ bullseye-updates main
deb-src http://deb.debian.org/debian/ bullseye-updates main
Danach ein
apt update && apt upgrade
Neustarten und wir haben ein Debian Bullseye 11 Dieses Debian nutzt so jetzt nicht den Kernel von Debian, sondern Peters
root@debian:/etc# uname -a
Linux debian 5.17.0-rc3 #1 SMP PREEMPT Wed Feb 16 00:41:25 UTC 2022 aarch64 GNU/Linux
Die Entscheidung überlasse ich Euch, ob ihr das Ändern wollt. Ich lasse das jetzt mal so. Wenn ihr wollt, das die Installation von alleine startet, dann müsst ihr Label 0 anpassen, das startet nach einem Timeout automatisch.