Skip to content

ROCKPro64 - Debian Bullseye Teil 2

Verschoben ROCKPro64
3 1 521
  • 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?? 👿

  • NiceGUI

    Linux nicegui linux python
    2
    0 Stimmen
    2 Beiträge
    398 Aufrufe
    FrankMF
    Ich habe mir das jetzt einige Tage gegeben und habe mich dagegen entschieden. Werde weiterhin PyWebIO benutzen. Hauptgrund ist die wesentlich bessere Dokumentation -> https://pywebio.readthedocs.io/en/latest/index.html Da kann ich mir auch mit meinem Python Kenntnisstand die Informationen holen, die ich brauche um es einzusetzen.
  • checkmk - Debian Bullseye Release

    checkmk checkmk bullseye linux
    1
    0 Stimmen
    1 Beiträge
    404 Aufrufe
    Niemand hat geantwortet
  • Mobian - vollverschlüsselt

    Software pinephone mobian linux
    1
    0 Stimmen
    1 Beiträge
    324 Aufrufe
    Niemand hat geantwortet
  • Linux Mint 20 “Ulyana” Cinnamon released!

    Linux linuxmint linux
    4
    0 Stimmen
    4 Beiträge
    426 Aufrufe
    FrankMF
    Gut, die AMD Grafikkarte hat mich nicht glücklich gemacht Somit ist sie jetzt Geschichte. [image: 1595690007860-3b0958a7-7c12-46cc-b4de-0aeca38ee77b-grafik.png] Nach der Installation war dann die Hardwarebeschleunigung aus. Linux Mint weist einen aber darauf hin, was man nun machen kann. [image: 1595690201876-8105abd7-23a3-41d5-a961-aba2b859dcb9-grafik.png] Ich hatte dann den empfohlenen Treiber installiert. Nach einem Neustart war dann auch die Hardwarebeschleunigung aktiv. Zwei Dinge, die mich an der AMD-Karte im Zusammenspiel mit Linux Mint 20 Cinnamon genervt haben. Suspend ging nicht Ausloggen aus der Session Da ist eine Sache die ich sehr gerne nutze, Suspend, und dann geht das nicht Meine Recherchen im Netz brachten mich zu keinem Ergebnis, deswegen die NVidia Karte. Es kann sein, das ich zu dumm war die Lösung zu finden..... Aktuelle Bildschirmeinstellung. [image: 1595690523392-989d2eb4-f8c9-4c91-b4eb-e862efabac9b-grafik.png] Braucht jemand eine AMD Radeon RX 5500 XT ???
  • Hetzner - Backupspace - Borgbackup

    Linux borgbackup linux
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    FrankMF
    Ok, da gibt es doch wohl noch ein kleines Problem Hetzner hat die Dienste migriert und ich war der Meinung, der Borg funktioniert nicht mehr. Ok, das hat er auch gemacht, aber der Grund wurde mir dann vom Support mitgeteilt, Der Backup Space ist voll. Huch, was läuft denn da falsch!? Ich konnte den Backup Space noch per SFTP erreichen, Borg gab aber immer eine merkwürdige Fehlermeldung heraus. Also aufpassen, wenn ihr mal Probleme habt, schaut mal nach ob ihr noch genug Platz habt Und jetzt muss ich das Script mal ein wenig überarbeiten, irgendwas läuft da nicht so, wie ich mir das vorstelle.
  • pdo Abfrage funktioniert nicht

    Linux linux
    2
    0 Stimmen
    2 Beiträge
    582 Aufrufe
    FrankMF
    Wichtig ist natürlich auch, das folgendes php Paket installiert ist! sudo apt install php7.0-mysql Je nachdem welche PHP Version installiert ist, muss der Befehl angepasst werden. Mit php -v könnt ihr nachschauen welche Version installiert ist.
  • NodeBB - spawn npm ENOENT

    NodeBB nodebb linux
    1
    0 Stimmen
    1 Beiträge
    443 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - Der Bootvorgang

    Verschoben Hardware hardware rockpro64
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    FrankMF
    Um einen neuen Kernel booten zu können, brauche ich diese 4 Dateien unter /boot config-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 initrd.img-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 System.map-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 vmlinuz-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 Und den Ordner /boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06 mit folgendem Inhalt rock64@rockpro64v2_0:/boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06$ ls -la total 104 drwxr-xr-x 26 root root 4096 Sep 30 09:54 . drwxr-xr-x 6 root root 4096 Sep 30 09:55 .. drwxr-xr-x 2 root root 4096 Sep 30 09:54 al drwxr-xr-x 2 root root 4096 Sep 30 09:54 allwinner drwxr-xr-x 2 root root 4096 Sep 30 09:54 altera drwxr-xr-x 2 root root 4096 Sep 30 09:54 amd drwxr-xr-x 2 root root 4096 Sep 30 09:54 amlogic drwxr-xr-x 2 root root 4096 Sep 30 09:54 apm drwxr-xr-x 2 root root 4096 Sep 30 09:54 arm drwxr-xr-x 4 root root 4096 Sep 30 09:54 broadcom drwxr-xr-x 2 root root 4096 Sep 30 09:54 cavium drwxr-xr-x 2 root root 4096 Sep 30 09:54 exynos drwxr-xr-x 2 root root 4096 Sep 30 09:54 freescale drwxr-xr-x 2 root root 4096 Sep 30 09:54 hisilicon drwxr-xr-x 2 root root 4096 Sep 30 09:54 lg drwxr-xr-x 2 root root 4096 Sep 30 09:54 marvell drwxr-xr-x 2 root root 4096 Sep 30 09:54 mediatek drwxr-xr-x 2 root root 4096 Sep 30 09:54 nvidia drwxr-xr-x 2 root root 4096 Sep 30 09:54 qcom drwxr-xr-x 2 root root 4096 Sep 30 09:54 renesas drwxr-xr-x 2 root root 4096 Sep 30 09:54 rockchip drwxr-xr-x 2 root root 4096 Sep 30 09:54 socionext drwxr-xr-x 2 root root 4096 Sep 30 09:54 sprd drwxr-xr-x 2 root root 4096 Sep 30 09:54 synaptics drwxr-xr-x 2 root root 4096 Sep 30 09:54 xilinx drwxr-xr-x 2 root root 4096 Sep 30 09:54 zte Unter /boot/extlinux liegt dann die Datei extlinux.conf Die sieht bei mir dann so aus timeout 10 menu title select kernel label kernel-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 kernel /boot/vmlinuz-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 initrd /boot/initrd.img-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 devicetreedir /boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06 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=TEST rootwait rootfstype=ext4 label kernel-4.19.0-rc4-1065-ayufan-g72e04c7b3e06-memtest kernel /boot/vmlinuz-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 initrd /boot/initrd.img-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 devicetreedir /boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06 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=TEST rootwait rootfstype=ext4 memtest Darunter kommen dann evt. die alten Kernel die installiert waren, das habe ich hier im Beispiel weg gelassen.