Matrix Arm mini PC Kernel konfigurieren

  • "earlyprintk" muss sowohl im Kernel aktiviert sein, als auch als zusaetzliches Argument in den bootargs vom u-boot uebergeben werden, damit es etwas bewirkt. Dann macht es das, was der Name sagt: ein paar zusaetzliche Meldungen ganz frueh im Bootprozess. Diese Meldungen braucht man als Normalanwender nicht. earlyprintk hat absolut nichts zu tun mit "Dann werden nur Fehler ausgegeben und keine Bootmeldungen.". Das quiet wird's gewesen sein.


    Du meinst, die SD/eMMC-Devices werden anders nummeriert, als ich es geschrieben hatte? Das waere dann neu fuer mich, welchen Kernel und welche (def)config betrifft das?


    Gruss,
    S:oren

  • S:oren ich hatte deine config-4.6.x benutzt und die ausversehen mit der Kernelversion v4.8.0-rc5 compiliert.

    Das ist an sich kein Problem, es gibt dann nur ein paar Nachfragen von Kconfig zu neuen Optionen. Genau so generiere ich ja auch die configs fuer neue Kernel aus den alten.


    Gut zu wissen, dass es ab 4.6 jetzt immer mmcblk2 ist.

    Ich habe einen u-boot-Patch fuer UUIDs eingereicht. Wenn der drin ist, kann man das root-Filesystem ueber PARTUUID statt ueber /dev/mmcblkXpY angeben, so dass man dann mit unveraenderten u-boot-Settings alle (Mainline-)Kernel mit eMMC verwenden kann...


    Gruss,
    S:oren

  • Ab u-boot-2016.11-rc2 gibt es jetzt den versprochenen PARTUUID-Support. Um immer die eMMC-Karte, Partition 1 ('mmc 2:1' im u-boot) als root-Device fuer Linux zu verwenden (unabhaengig ob man einen Kernel vor oder ab 4.6 verwendet), kann man im u-boot das Environment so modifizieren:

    Code
    setenv bootargs
    setenv set_bootargs 'setenv bootargs console=ttymxc0,115200 console=tty1 consoleblank=0 root=PARTUUID=${uuid} rootwait rw'
    setenv boot_mmc 'load mmc 0 0x10800000 boot/zImage; load mmc 0 0x10700000 boot/dtb; bootz 0x10800000 - 0x10700000'
    setenv bootcmd 'part uuid mmc 2:1 uuid; run set_bootargs; run boot_mmc'
    saveenv


    Man sollte natuerlich darauf achten, dass insbesondere bei DOS-Partitionstabellen auch ein 'Disk identifier' gesetzt ist. Bei meinem originalen eMMC-Image ist das Null, genau wie bei manchen neu gekauften SD-Karten. So eine Null ist dann natuerlich alles andere als ein 'Universally Unique Identifier' und macht dann Probleme, wenn es mehrere Karten mit so einer Null gibt. Es hilft dann, eine neue Partitionstabelle zu schreiben.


    Gruss,
    S:oren

  • Leider hat es eine Aenderung in linux-4.11 gegeben, so dass der Kernel beim Booten haengenbleibt, wenn man das aktuelle (2017.05) u-boot (und auch schon diverse Vorgaengerversionen) verwendet.
    Bis es einen u-boot-Fix gibt, kann man als Abhilfe den PCI-Support im u-boot deaktivieren (z.B. mit make menuconfig).


    Gruss,
    S:oren

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!