Booten von der NVMe Platte



  • Wenn alles funktionieren würde, könnte man den u-boot in den SPI-Speicher flashen und dann würde der ROCKPro64 von der NVMe-Platte booten. Das unterstützt der u-boot aktuell nicht und das SPI flashen funktioniert meiner Meinung nach auch noch nicht. Meine letzten Versuche waren zu mindestens erfolglos.

    Früher auf den BananaPi's haben wir ja immer das Rootverzeichnis umgebogen auf die Festplatte und auf der SD-Karte den Aufruf entsprechend angepasst. Dann brauchte man die SD-Karte nur kurz zum Starten, aber alles andere passierte dann auf der Festplatte. Die bessere Wahl, vor allen Dingen wenn man billige SD-Karten einsetzt.

    Dann versuchen wir es mal, ob man das auch entsprechend umbiegen kann.

    Hardware

    • ROCKPro64
    • NVMe PCIe Karte
    • Samsung 960 EVO m.2 256GB

    Software

    rock64@rockpro64:~$ uname -a
    Linux rockpro64 4.4.132-1075-rockchip-ayufan-ga83beded8524 #1 SMP Thu Jul 26 08:22:22 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
    

    Vorbereitungen

    Ich gehe davon aus, das die Platte entsprechend vorbereitet ist. Formatiert, ext4 Filesystem usw. Wir mounten nach /mnt

    sudo mount /dev/nvme0n1 /mnt
    

    / Verzeichnis kopieren

    sudo rsync -ax / /mnt/
    

    Disk Label erstellen

    sudo e2label /dev/nvme0n1 TEST
    

    Label anzeigen

    rock64@rockpro64:/boot/extlinux$ sudo blkid
    /dev/mmcblk0p6: SEC_TYPE="msdos" LABEL="boot" UUID="F4D5-2B6F" TYPE="vfat" PARTLABEL="boot" PARTUUID="7c5ac738-ff0f-458f-a5af-a4c8e68d4eb2"
    /dev/mmcblk0p7: LABEL="linux-root" UUID="94cf8a89-37ac-40f6-8ead-97986ad4c98f" TYPE="ext4" PARTLABEL="root" PARTUUID="e5904a49-a20b-4300-9e2d-538409b62957"
    /dev/nvme0n1: LABEL="TEST" UUID="fa0af070-498d-4c88-af1f-126f0390e5b8" TYPE="ext4"
    /dev/zram0: UUID="cc0465f6-402f-41dd-b980-41f52d65a3fd" TYPE="swap"
    /dev/zram1: UUID="31513e1d-e80d-4b27-98b1-bf2bdbee302b" TYPE="swap"
    /dev/zram2: UUID="c62d350e-61ee-433d-9b5a-63e5d6459c84" TYPE="swap"
    /dev/zram3: UUID="a6306cf0-8e68-47d1-9c39-6a46f68bd912" TYPE="swap"
    /dev/zram4: UUID="10375922-5008-4f22-beb5-0d09c0f398d0" TYPE="swap"
    /dev/zram5: UUID="a1911e3e-0589-4927-ac12-92e37b0e8e9b" TYPE="swap"
    /dev/mmcblk0: PTUUID="2c9a4a22-7aa8-4a1b-815e-0c3e2e7065e6" PTTYPE="gpt"
    /dev/mmcblk0p1: PARTLABEL="loader1" PARTUUID="45411944-1c6e-4279-8d0b-138e5d048f46"
    /dev/mmcblk0p2: PARTLABEL="reserved1" PARTUUID="aae3009f-3c99-4421-801a-d7e8d25ba5b4"
    /dev/mmcblk0p3: PARTLABEL="reserved2" PARTUUID="512b7b26-a5b8-4e8d-a362-fd692f4fd316"
    /dev/mmcblk0p4: PARTLABEL="loader2" PARTUUID="88a77e9a-27e0-40e7-899b-effcabc6dcaa"
    /dev/mmcblk0p5: PARTLABEL="atf" PARTUUID="b03779fe-7974-40a7-879d-2fe630f01ba2"
    

    Bootparameter ändern

    sudo nano /boot/extlinux/extlinux.conf
    

    Inhalt

    root=LABEL=linux-root
    

    ändern in

    root=LABEL=TEST
    

    Abspeichern - Fertig! Neustarten!

    Nach einem Neustart schauen wir uns mal eben die Platten an

    rock64@rockpro64:~$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    udev            1.9G     0  1.9G   0% /dev
    tmpfs           388M  460K  388M   1% /run
    /dev/nvme0n1    229G  1.4G  216G   1% /
    tmpfs           1.9G     0  1.9G   0% /dev/shm
    tmpfs           5.0M  4.0K  5.0M   1% /run/lock
    tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
    /dev/mmcblk0p6  112M  4.0K  112M   1% /boot/efi
    tmpfs           388M     0  388M   0% /run/user/1000
    

    Da ist die NVMe Platte mit 229GB Kapazität.

    Problem

    Im Moment geht nur ein Kaltstart, ein Reset am Taster oder auch ein

    sudo shutdown -r now
    

    funktionieren im Moment nicht. Muss ich mich mal auf die Suche machen 😉

    Update
    Ein shutdown now funktioniert einwandfrei, auch nach dem Aufwecken über den Power-Button.

    Kernel-Update

    Aufpassen, bei einem Kernel-Update müsst ihr die Änderungen in der Datei /boot/extlinux/extlinux.conf wiederholen.

    Das Problem gestaltet sich etwas komplexer. Da wir ja bei dem Kernel-Update auf der NVMe-Karte rumrödeln, ist auf der SD-Karte der Ordner /boot nicht aktuell, so das immer wieder der alte Kernel geladen werden würde.

    Aber, auch das lässt sich relativ einfach anpassen. Wir sind im gestarteten System mit dem aktualisierten Kernel. Bevor wir neustarten, machen wir nun das.

    Die SD-Karte mounten

    sudo mount /dev/mmcblk0p7 /mnt
    

    Den alten Ordner /boot sichern

     sudo mv /mnt/boot /mnt/boot_BAK
    

    Den Ordner /boot von der NVMe-Karte kopieren

    sudo cp -r /boot /mnt/boot
    

    Die Datei extlinux.conf wieder anpassen

    sudo nano /mnt/boot/extlinux/extlinux.conf
    

    Das kennt ihr ja jetzt schon 😉 Danach ist der Ordner /boot auf der SD-Karte und der NVMe-Karte identisch und das System startet den neuen Kernel. Ok, etwas umständlich, aber leider geht SPI Flash ja noch nicht. Und ob das dann mit NVMe geht steht noch in den Sternen. Aber so kann man ja auch erst mal was spielen 🙂

    Aktuelles System

    rock64@rockpro64:~$ uname -a
    Linux rockpro64 4.4.132-1081-rockchip-ayufan-g50be7e64a779 #1 SMP Tue Jul 31 20:09:25 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
    

    Laufwerke

    rock64@rockpro64:~$ df -h
        Filesystem      Size  Used Avail Use% Mounted on
        udev            1.9G     0  1.9G   0% /dev
        tmpfs           388M  444K  388M   1% /run
        /dev/nvme0n1    229G  1.4G  216G   1% /
        tmpfs           1.9G     0  1.9G   0% /dev/shm
        tmpfs           5.0M  4.0K  5.0M   1% /run/lock
        tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
        /dev/mmcblk0p6  112M  4.0K  112M   1% /boot/efi
        tmpfs           388M     0  388M   0% /run/user/1000
    

    Mainline

    Mit dem Mainline-Kernel habe ich kein funktionierendes System hinbekommen.



  • Mainline hat jetzt jemand hinbekommen.

    forum.pine64.org

    Test folgt heute nachmittag 😉



  • Das aus dem Forum geht perfekt. Thank You Dukla2000

    Ich wusste erst nicht so recht wie ich das mit meiner vorhanden Installation durchführen soll. Aber ist relativ easy 😉 Heute mal in Kurzform.

    • SD-Karte mit 4.4.x flashen.
    • Auf 4.18 bringen
    • Änderungen durchführen
    • Die NVMe SSD mounten
    • boot Ordner sichern
    • boot Ordner von der SD-Karte auf die NVMe SSD kopieren
    • Die extlinux.conf auf SD-Karte und NVMe SSD ändern!
    • Neustart - fertig!


  • @FrankM Hi, Do we need to mount the NVMe at the time of boot by updating fstab in order for the system to boot from the NVMe? Thanks , Deva



  • @rdevarajan No, you don't need to edit /etc/fstab



  • @FrankM thank you Frank. Shall try it out .


 

Diese Artikel könnten Dich auch interessieren.