Hi, leider habe ich bisher keine Antwort von Kamil erhalten. So habe ich selbst mal einen Kernel kompiliert. Als Vorlage habe ich den Ayufan 5.3 rc4 1118 genommen. Also gleiche config nur zusätzlich den FTDI und den CH341 (Arduino clones) Treiber hinzugefügt. Könnt ihr ja mal bei Lust und Laune testen. Für meine Zwecke funktioniert er gut.
Gruss
https://drive.google.com/file/d/1kJarihL7bAqN9y6tK-m1V4zHCSEiEWtf/view?usp=sharing
Kernel updaten NVMe / SDCard
-
Wir müssen uns nochmal was mit dem Kernelupdaten bei folgender Installation beschäftigen.
Installation
- ROCKPro64
- SD-Karte
- PCIe-NVMe-Adapter mit SSD
Bei dieser Installation nutzen wir die SD-Karte nur zum Booten und binden so früh wie möglich das Rootverzeichnis (/) ein. Dieses Rootverzeichnis liegt auf der SSD.
Verzeichnis Struktur
rock64@rockpro64v2_1_TEST:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 992M 0 992M 0% /dev tmpfs 200M 448K 199M 1% /run /dev/nvme0n1 229G 8,5G 209G 4% / tmpfs 996M 0 996M 0% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 996M 0 996M 0% /sys/fs/cgroup /dev/mmcblk0p6 112M 4,0K 112M 1% /boot/efi tmpfs 200M 0 200M 0% /run/user/1000
Hier sieht man die Rootpartition /, die auf /dev/nvme0n1 verweist.
Und die Bootpartition /boot/efi, die auf /dev/mmcblk0p6 liegt.SD-Karte
Device Start End Sectors Size Type /dev/mmcblk0p1 64 8063 8000 3,9M Linux filesystem /dev/mmcblk0p2 8064 8191 128 64K Linux filesystem /dev/mmcblk0p3 8192 16383 8192 4M Linux filesystem /dev/mmcblk0p4 16384 24575 8192 4M Linux filesystem /dev/mmcblk0p5 24576 32767 8192 4M Linux filesystem /dev/mmcblk0p6 32768 262143 229376 112M Microsoft basic data /dev/mmcblk0p7 262144 124735454 124473311 59,4G Linux filesystem
SSD
rock64@rockpro64v2_1_TEST:~$ ls / bin boot_BAK etc lib media opt root sbin sys usr boot dev home lost+found mnt proc run srv tmp var
Was passiert jetzt, wenn man den Kernel updatet?
Ich mache das fast immer so, das ich mir vom Kamil alle Files runterlade und diese dann per
sudo dpkg -i *.deb
installiere. Dabei werden die neuen Files in /boot reingeschrieben.
rock64@rockpro64v2_1_TEST:~$ ls /boot config-4.4.132-1075-rockchip-ayufan-ga83beded8524 config-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 config-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 dtbs efi extlinux filesystem.packages filesystem.packages-remove initrd.img-4.4.132-1075-rockchip-ayufan-ga83beded8524 initrd.img-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 initrd.img-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 System.map-4.4.132-1075-rockchip-ayufan-ga83beded8524 System.map-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 System.map-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 vmlinuz-4.4.132-1075-rockchip-ayufan-ga83beded8524 vmlinuz-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 vmlinuz-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1
Wir sehen hier, das es dort drei verschiedene Kernel gibt.
- 4.4.132-1075
- 4.4.154-1122
- 4.4.154-1124
Jetzt installieren wir mal einen Mainline Kernel.
Dazu laden wir die drei benötigten Files herunter.- wget https://github.com/ayufan-rock64/linux-mainline-kernel/releases/download/4.19.0-1073-ayufan/linux-headers-4.19.0-1073-ayufan-ga6e013135a6e_4.19.0-1073-ayufan_arm64.deb
- wget https://github.com/ayufan-rock64/linux-mainline-kernel/releases/download/4.19.0-1073-ayufan/linux-image-4.19.0-1073-ayufan-ga6e013135a6e-dbg_4.19.0-1073-ayufan_arm64.deb
- wget https://github.com/ayufan-rock64/linux-mainline-kernel/releases/download/4.19.0-1073-ayufan/linux-image-4.19.0-1073-ayufan-ga6e013135a6e_4.19.0-1073-ayufan_arm64.deb
Dann ein
sudo dpkg -i *.deb
Ausgabe
rock64@rockpro64v2_1_TEST:~$ sudo dpkg -i *.deb Vormals nicht ausgewähltes Paket linux-headers-4.19.0-1073-ayufan-ga6e013135a6e wird gewählt. (Lese Datenbank ... 101525 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Entpacken von linux-headers-4.19.0-1073-ayufan-ga6e013135a6e_4.19.0-1073-ayufan_arm64.deb ... Entpacken von linux-headers-4.19.0-1073-ayufan-ga6e013135a6e (4.19.0-1073-ayufan) ... Vormals nicht ausgewähltes Paket linux-image-4.19.0-1073-ayufan-ga6e013135a6e wird gewählt. Vorbereitung zum Entpacken von linux-image-4.19.0-1073-ayufan-ga6e013135a6e_4.19.0-1073-ayufan_arm64.deb ... Entpacken von linux-image-4.19.0-1073-ayufan-ga6e013135a6e (4.19.0-1073-ayufan) ... Vormals nicht ausgewähltes Paket linux-image-4.19.0-1073-ayufan-ga6e013135a6e-dbg wird gewählt. Vorbereitung zum Entpacken von linux-image-4.19.0-1073-ayufan-ga6e013135a6e-dbg_4.19.0-1073-ayufan_arm64.deb ... Entpacken von linux-image-4.19.0-1073-ayufan-ga6e013135a6e-dbg (4.19.0-1073-ayufan) ... linux-headers-4.19.0-1073-ayufan-ga6e013135a6e (4.19.0-1073-ayufan) wird eingerichtet ... linux-image-4.19.0-1073-ayufan-ga6e013135a6e (4.19.0-1073-ayufan) wird eingerichtet ... update-initramfs: Generating /boot/initrd.img-4.19.0-1073-ayufan-ga6e013135a6e Creating new extlinux.conf... Installing new extlinux.conf... linux-image-4.19.0-1073-ayufan-ga6e013135a6e-dbg (4.19.0-1073-ayufan) wird eingerichtet ...
Jetzt schauen wir uns das Verzeichnis von eben nochmal an.
rock64@rockpro64v2_1_TEST:~$ ls /boot config-4.19.0-1073-ayufan-ga6e013135a6e config-4.4.132-1075-rockchip-ayufan-ga83beded8524 config-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 config-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 dtbs efi extlinux filesystem.packages filesystem.packages-remove initrd.img-4.19.0-1073-ayufan-ga6e013135a6e initrd.img-4.4.132-1075-rockchip-ayufan-ga83beded8524 initrd.img-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 initrd.img-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 System.map-4.19.0-1073-ayufan-ga6e013135a6e System.map-4.4.132-1075-rockchip-ayufan-ga83beded8524 System.map-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 System.map-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 vmlinuz-4.19.0-1073-ayufan-ga6e013135a6e vmlinuz-4.4.132-1075-rockchip-ayufan-ga83beded8524 vmlinuz-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 vmlinuz-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1
Wir sehen den neuen Kernel 4.19 Aktuell läuft folgender Kernel.
rock64@rockpro64v2_1_TEST:~$ uname -a Linux rockpro64v2_1_TEST 4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 #1 SMP Mon Oct 22 20:59:41 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
Wir starten mal neu!
sudo reboot now
Aufpassen! Aktuell geht der Reboot mit Kernel 4.4. so nicht. Mal bitte die Reset Taste auf dem ROCKPro64 betätigen!
Wir schauen mal nach dem Kernel.
rock64@rockpro64v2_1_TEST:~$ uname -a Linux rockpro64v2_1_TEST 4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 #1 SMP Mon Oct 22 20:59:41 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
Hoppla, was das? Er startet immer noch den Kernel 4.4.154 Warum?
Bootvorgang
Beim Booten von der SD-Karte wird von dort der Kernel geladen, erst später schalten wir dann auf die SSD um. Damit ist die Aktualisierung von oben erst mal wirkungslos. Aber das ist recht einfach, wir müssen die Verzeichnisse nur identisch halten.
SD-Karte mounten
Nochmal auf die SD-Karte zurück gehen. Die Struktur von oben sieht so aus.
Device Start End Sectors Size Type /dev/mmcblk0p1 64 8063 8000 3,9M Linux filesystem /dev/mmcblk0p2 8064 8191 128 64K Linux filesystem /dev/mmcblk0p3 8192 16383 8192 4M Linux filesystem /dev/mmcblk0p4 16384 24575 8192 4M Linux filesystem /dev/mmcblk0p5 24576 32767 8192 4M Linux filesystem /dev/mmcblk0p6 32768 262143 229376 112M Microsoft basic data
Die Partition
/dev/mmcblk0p6 112M 4,0K 112M 1% /boot/efi
ist schon gemountet. Die interessiert aber nicht. Wir brauchen das Rootverzeichnis der SD-Karte. Das ist die Partition
/dev/mmcblk0p7
Das Mounten wir jetzt mal eben nach /mnt
sudo mount /dev/mmcblk0p7 /mnt
Dort interessiert uns das Verzeichnis boot
rock64@rockpro64v2_1_TEST:~$ ls /mnt/boot config-4.4.132-1075-rockchip-ayufan-ga83beded8524 config-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 config-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 dtbs efi extlinux filesystem.packages filesystem.packages-remove initrd.img-4.4.132-1075-rockchip-ayufan-ga83beded8524 initrd.img-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 initrd.img-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 System.map-4.4.132-1075-rockchip-ayufan-ga83beded8524 System.map-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 System.map-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 vmlinuz-4.4.132-1075-rockchip-ayufan-ga83beded8524 vmlinuz-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 vmlinuz-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1
Wer bis hierhin mitgekommen ist, weiß jetzt wo das Problem liegt Auf der SD-Karte muss ebenfalls der Mainline Kernel drauf. Also kopieren wir uns das mal eben rüber.
Quelle
rock64@rockpro64v2_1_TEST:~$ ls /boot config-4.19.0-1073-ayufan-ga6e013135a6e config-4.4.132-1075-rockchip-ayufan-ga83beded8524 config-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 config-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 dtbs efi extlinux filesystem.packages filesystem.packages-remove initrd.img-4.19.0-1073-ayufan-ga6e013135a6e initrd.img-4.4.132-1075-rockchip-ayufan-ga83beded8524 initrd.img-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 initrd.img-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 System.map-4.19.0-1073-ayufan-ga6e013135a6e System.map-4.4.132-1075-rockchip-ayufan-ga83beded8524 System.map-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 System.map-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 vmlinuz-4.19.0-1073-ayufan-ga6e013135a6e vmlinuz-4.4.132-1075-rockchip-ayufan-ga83beded8524 vmlinuz-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 vmlinuz-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1
Ziel
rock64@rockpro64v2_1_TEST:~$ ls /mnt/boot config-4.4.132-1075-rockchip-ayufan-ga83beded8524 config-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 config-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 dtbs efi extlinux filesystem.packages filesystem.packages-remove initrd.img-4.4.132-1075-rockchip-ayufan-ga83beded8524 initrd.img-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 initrd.img-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 System.map-4.4.132-1075-rockchip-ayufan-ga83beded8524 System.map-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 System.map-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 vmlinuz-4.4.132-1075-rockchip-ayufan-ga83beded8524 vmlinuz-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 vmlinuz-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1
Kopieren
sudo cp -r /boot/* /mnt/boot
Kontrolle Ziel
rock64@rockpro64v2_1_TEST:~$ ls /mnt/boot config-4.19.0-1073-ayufan-ga6e013135a6e config-4.4.132-1075-rockchip-ayufan-ga83beded8524 config-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 config-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 dtbs efi extlinux filesystem.packages filesystem.packages-remove initrd.img-4.19.0-1073-ayufan-ga6e013135a6e initrd.img-4.4.132-1075-rockchip-ayufan-ga83beded8524 initrd.img-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 initrd.img-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 System.map-4.19.0-1073-ayufan-ga6e013135a6e System.map-4.4.132-1075-rockchip-ayufan-ga83beded8524 System.map-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 System.map-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 test vmlinuz-4.19.0-1073-ayufan-ga6e013135a6e vmlinuz-4.4.132-1075-rockchip-ayufan-ga83beded8524 vmlinuz-4.4.154-1122-rockchip-ayufan-g7859b9b904a9 vmlinuz-4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1
Da ist der Kernel 4.19. Noch was Wichtiges, wir müssen die extlinux.conf wieder anpassen.
sudo nano /mnt/boot/extlinux/extlinux.conf
Ich setze voraus, das das bekannt ist. Ansonsten hier zum Nachlesen!
Wir entfernen den Mount.
sudo umount /mnt sudo reboot now
Erinnerung! Reboot now ist in Kernel 4.4. aktuell kaputt
Und nachschauen!
rock64@rockpro64v2_1_TEST:~$ uname -a Linux rockpro64v2_1_TEST 4.19.0-1073-ayufan-ga6e013135a6e #1 SMP PREEMPT Tue Oct 23 09:19:54 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
Yeah! Kernel 4.19 läuft. Ich hoffe das Prinzip ist verständlich und ihr könnt das gut nachbauen. Wir wollen mal hoffen, das wir in Zukunft einen u-boot sehen, der in der Lage ist direkt von der PCIe-NVMe-Karte zu booten. Das würde einiges vereinfachen, den u-boot in den SPI Flash und fertig! Ob es das mal gibt, weiß ich nicht. Im Moment müssen wir uns so behelfen. Da man den Kernel im Normalfall ja nicht jeden Tag aktualisiert, ist das eine praktikable Lösung!
Viel Spaß mit einem flotten ROCKPro64!
-
-
-
-
-
ROCKPro64 Armbian Image - erster Test
Verschoben Armbian -
-
-