ARM-Chromebook mit Arch Linux: schneller Silent-Boot

Die neuen Images, die Arch Linux ARM fürs Chromebook bereitstellt, haben von Haus aus eine ausführliche Debug-Ausgabe aktiviert, was bedeutet, dass Systemctl die Standardausgabe regelrecht vollspamt. Selbst, wenn man eine Datei mit Nano oder Vi bearbeitet, hat man plötzlich eine Zeilenausgabe von Systemctl auf dem Monitor. Das ist, wenn man nicht gerade Tester ist und das Image debuggen möchte, nicht nur lästig, sondern verlangsamt unter anderem auch massiv Prozesse wie den Systemstart oder das Verbinden mit einem WiFi-Netzwerk (die Bildschirmausgabe über tty gilt gemeinhin als Flaschenhals). Doch es ist recht einfach, Systemctl „mundtot“ zu machen.

Um für Ruhe im System zu sorgen, müssen wir das U-Boot Boot-Image modifizieren. Dazu installieren wir zunächst die U-Boot-Tools aus dem alarm-Repository:

$ sudo su
# pacman -Syu uboot-tools

Anschließend mounten wir die Boot-Partition und legen eine Sicherheitskopie des U-Boot – Boot-Images an:

# mount /dev/mmcblkXp12 /mnt
# cd /mnt/u-boot
# cp boot.scr.uimg boot.scr.uimg.bak
# cp boot.scr.uimg boot.scr

Ist Arch Linux anstelle von Chrome OS auf dem internen eMMC-Speicher installiert, so muss oben für das X eine 0 eingesetzt werden. Falls das System auf einer SD-Karte installiert wurde, so muss man eine 1 einsetzen.

Als nächstes öffnen und bearbeiten wir die Datei boot.scr. In der ersten Zeile entfernen wir sämtlichen Kauderwelsch bis auf die letzte Anweisung (setenv …). Ans Ende der Datei fügen wir die Zeile

setenv common_bootargs cros_legacy console=/dev/ttyS0

an. Das führt zu einem normalen Systemstart ohne Debug-Ausgabe von Systemctl. Möchte man überdies hinaus einen Silent-Boot ganz ohne Textausgabe, so fügt man ans Ende der letzten Zeile noch das Argument quiet an. Im Ganzen sieht die Datei dann (ohne quiet) wie folgt aus:

setenv bootpart 3
setenv rootpart 2
setenv regen_ext2_bootargs 'setenv bootdev_bootargs root=/dev/${devname}${bootpart} rootwait rw; run regen_all'
setenv cros_bootfile /vmlinux.uimg
setenv extra_bootargs console=tty1
setenv mmc0_boot echo ERROR: Could not boot from USB or SD
setenv common_bootargs cros_legacy console=/dev/ttyS0

Anschließend speichern wir die Datei und kompilieren sie für U-Boot neu:

# mkimage -A arm -T script -C none -n 'Chromebook Boot Script' -d boot.scr boot.scr.uimg
# cat boot.scr.uimg
# cd -
# umount /mnt

Der cat-Befehl dient hier zur Kontrolle der kompilierten Datei. Der Kauderwelsch, den wir zu Beginn aus der Datei entfernt haben, sollte wieder da sein, ebenso unsere angefügte letzte Zeile. Wenn alles passt, steht einem stillen, schnellen Neustart nichts mehr im Wege.

GD Star Rating
loading…

Dieser Blogeintrag wurde 2764 mal gelesen.

Kategorien: Computer, Hardware und Linux.