Skip to content

ROCKPro64 - Debian Bullseye Teil 2

Verschoben ROCKPro64
  • Wichtig, nach der Installation!

    Schritt 1

    SSD an anderen Rechner anschließen

    Image vom Kamil -> buster-minimal-rockpro64-0.10.12-1184-arm64.img lokal einhängen!

    Dateien kopieren!

    Von Kamils Boot-Partition werden die zwei Ordner auf die Boot-Partition der SSD kopiert.

    • /boot/dtbs
    • /boot/extlinux

    Damit die Installation startet, müssen wir jetzt auf der SSD in der Boot-Partition folgende Datei bearbeiten.

    /boot/extlinux/extlinux.conf
    

    Original Inhalt vom Kamil

    timeout 10
    menu title select kernel
    
    label kernel-5.6.0-1137-ayufan-ge57f05e7bf8f
        kernel /vmlinuz-5.6.0-1137-ayufan-ge57f05e7bf8f
        initrd /initrd.img-5.6.0-1137-ayufan-ge57f05e7bf8f
        devicetreedir /dtbs/5.6.0-1137-ayufan-ge57f05e7bf8f
        append rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=${ethaddr} eth1addr=${eth1addr} serial=${serial#} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 root=LABEL=linux-root rootwait rootfstype=ext4
    
    label kernel-5.6.0-1137-ayufan-ge57f05e7bf8f-memtest
        kernel /vmlinuz-5.6.0-1137-ayufan-ge57f05e7bf8f
        initrd /initrd.img-5.6.0-1137-ayufan-ge57f05e7bf8f
        devicetreedir /dtbs/5.6.0-1137-ayufan-ge57f05e7bf8f
        append rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=${ethaddr} eth1addr=${eth1addr} serial=${serial#} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 root=LABEL=linux-root rootwait rootfstype=ext4 memtest
    

    Das müssen wir jetzt an die Installation anpassen. Je nachdem auf welchem Device wir das Debian installiert haben, muss das entsprechend angepasst werden.

    Devices

    Erster Fall wäre eine PCIe NVMe SSD, zweiter Fall wäre eine SSD, die an einer PCIe SATA Karte angeschlossen ist.

    root=/dev/nvme0n1p2 (unverschlüsselt)
    root=/dev/mapper/debian--vg-root (verschlüsselt)
    
    root=/dev/sda2 (unverschlüsselt)
    root=/dev/mapper/debian--vg-root (LVM verschlässelt)
    

    Beispiel für eine Installation auf sda (unverschlüsselt)

    timeout 10
    menu title select kernel
    
    label kernel-5.7.0-1-arm64
        kernel /vmlinuz-5.7.0-1-arm64
        initrd /initrd.img-5.7.0-1-arm64
        devicetreedir /dtbs/5.6.0-1137-ayufan-ge57f05e7bf8f
        append rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=${ethaddr} eth1addr=${eth1addr} serial=${serial#} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 root=/dev/sda2 rootwait rootfstype=ext4
    
    label kernel-5.6.0-1137-ayufan-ge57f05e7bf8f-memtest
        kernel /vmlinuz-5.6.0-1137-ayufan-ge57f05e7bf8f
        initrd /initrd.img-5.6.0-1137-ayufan-ge57f05e7bf8f
        devicetreedir /dtbs/5.6.0-1137-ayufan-ge57f05e7bf8f
        append rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=${ethaddr} eth1addr=${eth1addr} serial=${serial#} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 root=LABEL=linux-root rootwait rootfstype=ext4 memtest
    

    Kurzerklärung

    Wir passen den kernel und die initrd.img an die Daten der Debian Installation an. Da wir von Debian keinen devicetree haben, benutzen wir den von Kamil. Da funktioniert ja auch das Meiste 😉

    Das zweite label kernel-5.6.0-1137-ayufan-ge57f05e7bf8f-memtest soll uns jetzt hier mal nicht interessieren.

    Nach dieser Änderung, können wir die SSD wieder aushängen und an den ROCKPro64 hängen. Danach booten.
    Bitte beachten, wenn ihr eine verschlüsselte Installation gewählt habt, könnt ihr das Passwort NUR über die UART-Schnittstelle eingeben. Für mich kein Problem, die gehört bei mir zur Standardausstattung 🙂 Es kann aber da draußen welche geben, die keine haben. Dann bitte keine verschlüsselte Installation wählen!

    Jetzt sollte der ROCKPro64 mit dem Debian Bullseye starten 🙂

    root@debian:/boot/extlinux# uname -a
    Linux debian 5.7.0-1-arm64 #1 SMP Debian 5.7.6-1 (2020-06-24) aarch64 GNU/Linux
    

    und

    root@debian:/boot/extlinux# cat /etc/debian_version
    bullseye/sid
    

    🤓

    Schritt 2

    Wir wollen es etwas bequemer haben, wenn ein neuer Kernel auftaucht. Dann müsste man ständig das File anfassen. Ok, wir sind faul 🙂 Wir kopieren ein paar Dinge vom Kamil.

    In /etc/default/ die Datei extlinux erzeugen.

    # Configure timeout to choose the kernel
    # TIMEOUT="10"
    
    # Configure default kernel to boot: check all kernels in `/boot/extlinux/extlinux.conf`
    # DEFAULT="kernel-4.4.126-rockchip-ayufan-253"
    
    # Configure additional kernel configuration options
    APPEND="$APPEND root=LABEL=linux-root rootwait rootfstype=ext4"
    

    In /usr/local/sbin das Script update-extlinux.sh erzeugen

    #!/bin/bash
    
    TIMEOUT=""
    DEFAULT=""
    APPEND="rw"
    APPEND="$APPEND panic=10"
    APPEND="$APPEND init=/sbin/init"
    APPEND="$APPEND coherent_pool=1M"
    APPEND="$APPEND ethaddr=\${ethaddr} eth1addr=\${eth1addr} serial=\${serial#}"
    APPEND="$APPEND cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1"
    
    set -eo pipefail
    
    . /etc/default/extlinux
    
    echo "Creating new extlinux.conf..." 1>&2
    
    mkdir -p /boot/extlinux/
    exec 1> /boot/extlinux/extlinux.conf.new
    
    echo "timeout ${TIMEOUT:-10}"
    echo "menu title select kernel"
    [[ -n "$DEFAULT" ]] && echo "default $DEFAULT"
    echo ""
    
    emit_kernel() {
      local VERSION="$1"
      local APPEND="$2"
      local NAME="$3"
    
      echo "label kernel-$VERSION$NAME"
      echo "    kernel $MOUNT_PREFIX/vmlinuz-$VERSION"
      if [[ -f "/boot/initrd.img-$VERSION" ]]; then
        echo "    initrd $MOUNT_PREFIX/initrd.img-$VERSION"
      fi
      if [[ -f "/boot/dtb-$VERSION" ]]; then
        echo "    fdt $MOUNT_PREFIX/dtb-$VERSION"
      else
        if [[ ! -d "/boot/dtbs/$VERSION" ]]; then
          mkdir -p /boot/dtbs
          cp -au "/usr/lib/linux-image-$VERSION" "/boot/dtbs/$VERSION"
        fi
        echo "    devicetreedir $MOUNT_PREFIX/dtbs/$VERSION"
      fi
      echo "    append $APPEND"
      echo ""
    }
    
    if findmnt /boot >/dev/null; then
      # If we have `/boot` the files are in `/`
      MOUNT_PREFIX=
    else
      # If we don't have `/boot` mount the files are in `/boot`
      MOUNT_PREFIX=/boot
    fi
    
    linux-version list | linux-version sort --reverse | while read VERSION; do
      emit_kernel "$VERSION" "$APPEND"
      emit_kernel "$VERSION" "$APPEND memtest" "-memtest"
    done
    
    exec 1<&-
    
    echo "Installing new extlinux.conf..." 1>&2
    mv /boot/extlinux/extlinux.conf.new /boot/extlinux/extlinux.conf
    

    Danach

    chmod +x /usr/local/sbin/update-extlinux.sh
    

    Danach

    cd /boot/extlinux/
    

    Zur Sicherung der Datei, falls was schief geht.

    cp extlinux.conf extlinux.conf_BAK
    

    Dann Script ausführen

    /usr/local/sbin/./update-extlinux.sh
    

    Ich wollte jetzt eigentlich davon schreiben, wie man das Devicetree austauscht.

    ---ALT--
    Jetzt müssen wir was austauschen. Da Debian kein devicetree ausliefert (?) passen wir das an Kamils an.

    Und zwar muss das -> /dtbs/5.7.0-1-arm64 gegen das -> devicetreedir /dtbs/5.6.0-1137-ayufan-ge57f05e7bf8f getauscht werden.

    Wir tauschen das dtbs aus!!

    sed /devicetreedir/s/5.7.0-1-arm64/5.6.0-1137-ayufan-ge57f05e7bf8f/g extlinux.conf > extlinux.conf_NEW
    mv extlinux.conf_NEW extlinux.conf
    

    Das sollte soweit alles kein Problem sein. Ich hatte beim Testen einmal den Fall, das ein neuer Kernel ausgeliefert wurde. Ich bin mir nicht 100% sicher, aber ich meine mich erinnern zu können, das ich danach einen Debian Devicetree hatte. Also aufpassen, sollte das der Fall sein, dann machen wir das o.g. nur einmal! Danach nicht mehr. Ich werde das beobachten und dann hier ergänzen.
    ---ALT---

    Da ich aber immer beim Schreiben meistens alles noch mal kontrolliere, fällt mir gerade auf das ein 5.7er dtbs File vorhanden ist. 🤔

    root@debian:/boot/dtbs# ls -lha
    insgesamt 4,0K
    drwxr-xr-x  4 root root 1,0K Jul  9 17:22 .
    drwxr-xr-x  5 root root 1,0K Jul  8 19:22 ..
    drwxr-xr-x  3 root root 1,0K Apr 15 13:15 5.6.0-1137-ayufan-ge57f05e7bf8f
    drwxr-xr-x 16 root root 1,0K Jul  8 18:13 5.7.0-1-arm64
    

    Und NEIN, ich habe im Moment keine Ahnung woher das kommt!? OK, also kein Handlungsbedarf 🙂

    Update Anfang

    Die dtbs findet man unter /usr/lib/linux-image-5.7.0-1-arm64/. Wenn man jetzt Kamils Script aufruft, wird das dtbs auch entsprechend eingebunden. Also alles richtig und wieder was gelernt 😉

    Update Ende

    Wenn wir jetzt den ROCKPro64 neustarten würden, dann würde er nicht mehr starten. Zur Erinnerung, wir hatten am Anfang folgendes eingestellt.

    /dev/sda2
    

    Kamil nennt in /etc/default/extlinux die Partition aber

    root=LABEL=linux-root
    

    Wir können jetzt die Partition entsprechend umbenennen. Wir setzen das Label für eine verschlüsselte Installation mit

    e2label /dev/mapper/debian--vg-root linux-root
    

    Kontrolle mit

    root@debian:/boot/extlinux# blkid
    /dev/sda1: UUID="ec5b47cc-37d3-4e9b-ad20-5cba17359bfb" BLOCK_SIZE="1024" TYPE="ext2" PARTUUID="7dd28db4-64aa-436e-ace8-7a38f677a8ef"
    /dev/sda2: UUID="6a2c0191-e203-4aa8-a495-6782446be221" TYPE="crypto_LUKS" PARTUUID="1ac7e6d5-9011-4ca0-b513-ca5dec17b37f"
    /dev/mapper/sda2_crypt: UUID="Rehnyo-b7ts-y1pZ-Wm9L-31jO-ujMl-bgay2L" TYPE="LVM2_member"
    /dev/mapper/debian--vg-root: LABEL="linux-root" UUID="dada87c3-0f80-4c0a-af54-ba41f5a0baea" BLOCK_SIZE="4096" TYPE="ext4"
    /dev/mapper/debian--vg-swap_1: UUID="de58befb-d63f-49d0-ba62-fc2738430dab" TYPE="swap"
    

    Man könnte aber auch in die extlinux.config einfach folgendes eintragen

    root=/dev/debian-vg/root
    

    Es kommt hier jetzt etwas drauf an, wie man die Installation gemacht hat usw. Als Gedankenstütze, in die extlinux.config muss die Rootpartion rein, das könnte z.B. folgendes sein

    /dev/sda2
    /dev/root=LABEL=linux-root
    /dev/mapper/debian--vg-root
    

    Kommt jetzt ein neuer Kernel, muss man danach nur noch kurz das Script ausführen.

    /usr/local/sbin/./update-extlinux.sh
    

    ROCKPro64 - Debian Bullseye Teil 1

  • Viel Spaß beim Ausprobieren!

  • Gestern mal das Ganze mit einem Cinnamon Desktop ausprobiert. Eine verschlüsselte Installation auf eine PCIe NVMe SSD. So weit lief das alles reibungslos. Der Cinnamon Desktop hat dann leider keine 3D Unterstützung. Sieht so aus, als wenn keine vernünftigen Grafiktreiber genutzt würden. Da ich auf diesem Gebiet aber eine Null bin, lassen wir das mal so. Außerdem mag ich sowieso keine Desktops auf diesen kleinen SBC. Da fehlt mir einfach der Dampf 😉

    Gut, was ist mir so aufgefallen?

    Unbedingt die Daten des Daily Images erneuern, keine alten Images nutzen. Ich hatte da jetzt ein paar Mal Schwierigkeiten mit. Da das ja nun keine Arbeit ist, vorher einfach neu runterladen und Image bauen.

    Warum zum Henker bootet eigentlich. außer meiner Samsung T5, nichts vom USB3 oder USB-C Port?? 👿

  • 0 Stimmen
    1 Beiträge
    60 Aufrufe
    Niemand hat geantwortet
  • Zima Board

    Linux
    6
    0 Stimmen
    6 Beiträge
    644 Aufrufe
    FrankMF

    Wer noch einen braucht, sind wieder ein paar im Shop erhältlich.

    ZimaBoard 832 is IN STOCK & AVAILABLE NOW
    ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌
    ZimaBoard Official Store

    Back In Stock

    The item you've been waiting for is back in stock

    ZimaBoard 832 - Single Board Server for Creators

    $199.90

    Model: ZimaBoard 832

    Stock: 190

  • Debian 11.6 released

    Linux
    1
    0 Stimmen
    1 Beiträge
    63 Aufrufe
    Niemand hat geantwortet
  • Manjaro KDE Plasma 21.2.6

    Linux
    16
    0 Stimmen
    16 Beiträge
    418 Aufrufe
    FrankMF

    @FrankM sagte in Manjaro KDE Plasma 21.2.6:

    Eines betrifft die Anordnung der Icons auf dem Desktop. Die Anordnung, die ich wähle, werden immer wieder geändert. Unschön, aber den Desktop nutze ich so gut wie gar nicht. Also kann ich auch auf den Fix warten.

    Kann noch was dauern
    https://pointieststick.com/2023/03/03/this-week-in-kde-plasma-6-begins/

    Desktop icons on the active activity should no longer inappropriately re-arrange themselves when the set of connected screens changes. However during the process of investigation, we discovered that the code for storing desktop file position is inherently problematic and in need of a fundamental rewrite just like we did for multi-screen arrangement in Plasma 5.27. This will be done for Plasma 6.0, and hopefully make Plasma’s long history of being bad about remembering desktop icon positions just that–history (Marco Martin, Plasma 5.27.3. Link)

  • 0 Stimmen
    1 Beiträge
    420 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    17 Beiträge
    1k Aufrufe
    FrankMF

    Durch diesen Beitrag ist mir mal wieder eingefallen, das wir das erneut testen könnten 😉

    Also die aktuellen Daten von Debian gezogen. Das Image gebaut, könnt ihr alles hier im ersten Beitrag nachlesen. 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 🤓

    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.

  • checkmk - Dockerinstallation

    Verschoben checkmk
    9
    0 Stimmen
    9 Beiträge
    949 Aufrufe
    FrankMF

    Und noch was Wichtiges.

    6777da6e-3b4f-41b9-bf6e-26496ae67cd8-grafik.png

    Damit sichert man den Datenaustausch ab.

    Kapitel 7.4. Inbuilt encryption

    Den Ordner findet man hier -> /etc/check_mk/encryption.cfg

  • 0 Stimmen
    1 Beiträge
    462 Aufrufe
    Niemand hat geantwortet