Hardware
- ROCKPro64
- SD-Karte
- PCIe NVMe Adapter
- NVMe SSD
- USB-to-LAN Adapter
Image bauen
Also die aktuellen Daten von Debian gezogen, bekommt man hier
Wir laden uns die zwei benötigten Files herunter.
- https://d-i.debian.org/daily-images/arm64/daily/netboot/SD-card-images/firmware.rockpro64-rk3399.img.gz
- https://d-i.debian.org/daily-images/arm64/daily/netboot/SD-card-images/partition.img.gz
Diese beiden Dateien müssen wir zusammenfügen. Das geschieht mittels zcat.
zcat firmware.<board_name>.img.gz partition.img.gz > complete_image.img
In unserem Fall muss das so aussehen
zcat firmware.rockpro64-rk3399.img.gz partition.img.gz > image.img
Das resultierende File image.img schreiben wir wie gewohnt auf eine SD-Karte.
Installation Debian
Da die eingebaute Netzwerkschnittstelle nicht erkannt wurde, habe ich mal wieder den USB-to-LAN Adapter eingesetzt.
Bus 005 Device 002: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Die Installation wollte ich auf einem NVMe Riegel installieren.
Die Debian Installation durchgezogen und nach erfolgreicher Installation neugestartet. Und siehe da, ohne das man alles möglich ändern musste, bootete die NVMe SSD :nerd_face:
Eingesetzter uboot -> 2020.01-ayufan-2013......
Die nicht erkannte LAN-Schnittstelle müsste an nicht freien Treibern liegen, hatte ich da irgendwo kurz gelesen. Beim Schreiben dieses Satzes kam die Nacht und ich konnte noch mal drüber schlafen. Heute Morgen, beim ersten Kaffee, dann noch mal logischer an die Sache ran gegangen.
Wir schauen uns mal die wichtigsten Dinge an.
root@debian:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 62:03:b0:d6:dc:b3 brd ff:ff:ff:ff:ff:ff
3: enx000acd26e2c8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0a:cd:26:e2:c8 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.208/24 brd 192.168.3.255 scope global dynamic enx000acd26e2c8
valid_lft 42567sec preferred_lft 42567sec
inet6 fd8a:6ff:2880:0:20a:cdff:fe26:e2c8/64 scope global dynamic mngtmpaddr
valid_lft forever preferred_lft forever
inet6 2a02:908:1260:13bc:20a:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr
valid_lft 5426sec preferred_lft 1826sec
inet6 fe80::20a:cdff:fe26:e2c8/64 scope link
valid_lft forever preferred_lft forever
Ok, er zeigt mir die Schnittstelle eth0 ja an, dann kann es an fehlenden Treibern ja nicht liegen. Lässt dann auf eine fehlerhafte Konfiguration schließen. Nächster Halt wäre dann /etc/network/interfaces
Das trägt Debian ein
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug enx000acd26e2c8
iface enx000acd26e2c8 inet dhcp
# This is an autoconfigured IPv6 interface
iface enx000acd26e2c8 inet6 auto
Gut, bei der Installation hat Debian ja nur die zusätzliche Netzwerkschnittstelle erkannt, folgerichtig ist die auch als primäre Schnittstelle eingetragen. Dann ändern wir das mal...
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#allow-hotplug enx000acd26e2c8
allow-hotplug eth0
#iface enx000acd26e2c8 inet dhcp
iface eth0 inet dhcp
# This is an autoconfigured IPv6 interface
#iface enx000acd26e2c8 inet6 auto
iface eth0 inet6 auto
Danach einmal alles neu starten bitte ;)
systemctl status networking
Da fehlte mir aber jetzt die IPv4 Adresse, so das ich einmal komplett neugestartet habe. Der Ordnung halber, so hätte man die IPv4 Adresse bekommen.
dhclient eth0
Nachdem Neustart kam dann das
root@debian:/etc/network# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 62:03:b0:d6:dc:b3 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.172/24 brd 192.168.3.255 scope global dynamic eth0
valid_lft 42452sec preferred_lft 42452sec
inet6 fd8a:6ff:2880:0:6003:b0ff:fed6:dcb3/64 scope global dynamic mngtmpaddr
valid_lft forever preferred_lft forever
inet6 2a02:908:1260:13bc:6003:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr
valid_lft 5667sec preferred_lft 2067sec
inet6 fe80::6003:b0ff:fed6:dcb3/64 scope link
valid_lft forever preferred_lft forever
3: enx000acd26e2c8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:0a:cd:26:e2:c8 brd ff:ff:ff:ff:ff:ff
Fertig, eth0 läuft. Nun kann man den zusätzlichen Adapter entfernen oder halt konfigurieren, wenn man ihn braucht.
Warum der Debian Installer die eth0 nicht erkennt verstehe ich nicht, aber vielleicht wird das irgendwann auch noch gefixt. Jetzt habe ich erst mal einen Workaround um eine Installation auf den ROCKPro64 zu bekommen.
root@debian:/etc/network# cat /etc/debian_version
11.0
Somit hätte man eine Debian 11 Bullseye Installation auf dem ROCKPro64.