Remake a Chromebook with LINUX - howto?

Il chromebook sarebbe pronto… si cerca un percorso sicuro :slight_smile:

Das Chromebook wartet schon … der genaue Fahrplan fehlt noch :slight_smile:

(questo post e’ in modalita’ wiki … wiki-like unmittelbar bearbeitbar ???)

Qual è il modello di Chromebook?

ASUS Chromebook C14 Model C424MA haben wir den Developer Mode aktiviert:

  1. [Esc]+[Aktualisieren] (Taste mit kreisförmigen Pfeil) gedrückt halten und kurz die Power-Taste Drücken
  2. [Esc]+[Aktualisieren] erst los lassen wenn die “ChromeOS fehlt” Meldung am Bildschirm kommt
  3. Im Recovery-Bildschirm [Ctrl]+[D] drücken um die OS-Verification auszuschalten
  4. Mit [Enter] bestätigen
  5. Chromebook startet neu und löscht alle vorhandenen Daten (Chrome OS wird zurückgesetzt, dauert bis zu 15min)
  6. Neustart und Chrome OS einrichten, damit eine Internet-Verbindung besteht, und dann Ausloggen
  7. Am Chrome OS Login-Bildschirm mit [Ctrl]+[Alt]+[F2] (USB-Tastatur) die Developer Console starten; Login mit Benutzer chronos, kein Passwort - einfach [Enter] drücken zum login.
  8. FIrmware-Tool starten: curl -LOf https://mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.sh [Enter]
  9. Im FW-Tool Option [1] auswählen und RW_LEGACY Firmware installieren, und neu starten

Ab diesen Schritt können USB-Sticks mit Linux Installationen per [Ctrl]+[L] am OS-Verification Bildschirm gestartet werden. Mit [Ctrl]+[D] hingegen kann direkt das Chrome OS gestartet werden (Dual Boot).

Um Speicherplatz für das Linux im Dualboot zu reservieren das Tool chrx benutzen.

  1. Chromebook wieder mit Chrome OS mit dem Internet verbinden und am Login-Screen im Developer Mode starten Ctrl]+[Alt]+[F2] (USB-Tastatur); am Terminal mit chronos ohne Passwort einloggen;
  2. Eine Partition für das Linux-System vorbereiten: curl https://chrx.org/ | sudo tar xzfC - /usr/local && chrx und ignorieren, dass das Chromebook nicht erkannt wurde; Die vorgeschlagene Partition z.B. /dev/mmcblk0p12 nach belieben in der größe in GiB einstellen z.B. 100GiB; anschließend neustarten, und vom USB-Installationsmedium mit [Ctrl]+[L] starten;
  3. Installation von Linux Mint von USB: sobald die Live-Distro gestartet ist mit gparted die bereitgestellte Partition vom chrx Tool mit EXT4 formatieren und in der Größe reduzieren, um Platz für die Swap-Partition zu machen z.B. 4GiB; im freien Speicher die Swap-Partition erstellen /dev/mmcblk0p17;
  4. Linux Mint Installationsprogramm starten und die gewünschten werte für Sprache und Lokalisation, und Benutzekonto eingeben; im Schritt der Partionierung auf “Etwas anderes machen” gehen, und dort die zuvor erstellten Partitionen für das Root-Filesystem auf Mountpoint / mit EXT4 und der Swap einstellen; für den GRUB-Bootloader die EFI-Partition suchen mit FAT16 und als EFI-Partiton kennzeichnen (/boot/efi) bzw. auf /dev/mmcblk0 installieren auswählen;
  5. Installation abwarten, und booten mit [Ctrl]+[L] (legacy boot)

Anschließend startet das Linux Betriebsystem das erste mal von dem internen Datenträger, es kann aber sein, dass die Audio-Ausgabe noch nicht funktioniert.

  1. Audio-Konfiguration: Das Setup-Script von GIT holen und ausführen; benötigt sudo apt install git; das Tool gibt auch den verwendeten Chipsatz aus z.B. rt5682ma;
git clone --depth 1 https://github.com/WeirdTreeThing/chromebook-linux-audio
cd chromebook-linux-audio
sudo ./setup-audio
  1. Es kann sein, dass das Setup-Script einen Fehler wie alsa-lib parser.c270:(parse_syntax_field) Incompatible syntax 7 in sof-glkrt5682max.conf ausgibt; wenn das der Fall ist muss man die conf Datei suchen und eine Zeile ersetzen:
sudo find / -name "*rt5682*.conf"
/usr/share/alsa/ucm2/conf.d/sof-glkrt5682max/sof-glkrt5682max.conf
  1. Die erste Zeile Syntax 7 mit einen Texteditor durch Syntax 6 ersetzen (Linux Mint benutzt eine ältere Syntax als das GIT-Repository);
  2. Mit dem Befehl sudo alsactl init kontrollieren ob nun die Syntax akzeptiert wird; wenn ja, alte Konfiguration entfernen mit rm -rf ~/.config/pulse ~/.local/state/wireplumber und die Audio-Dienste neustarten mit systemctl --user restart pipewire pipewire-pulse wireplumber und einen Sound-Test in den grafischen Einstellungen durchführen;

Referenzen:

heise.de hat gestern einen Artikel dazu gepostet: Chromebooks: ChromeOS entfernen und stattdessen Linux oder Windows installieren | heise online (leider heise+)

Danke @j54n1n !

Era uno dei highlights dell’installation-party ieri al di.day !!

Prossimo appuntamento chrome-book allora allo spazio77 il 15.6. - sportello.

Confermato l’appuntamento !

Hier ist der Geschenklink zum Artikel. Er kann maximal 10 mal innerhalb von 7 Tagen aufgerufen werden.

Kurzes Nachspiel zum Chromebook heute beim Repair Café im “Fablab UniBz” mit Linux Mint Installation. Nachdem die Systemupdates den Kernel auf die Version 7.0 gebracht hat, ist das Chromebook beim einstecken des USB-C Netzteil mit USB-PD Kernel-Fehler abgestürzt.

Ich habe in der GRUB Konfigurationsdatei /etc/default/grub die voreingestellten Werte geändert:

#GRUB_DEFAULT=0
# Merkt sich den zuletzt erfolgreich gebooteten Eintrag (6.17)
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

#GRUB_TIMEOUT_STYLE=hidden
# Bootmenü immer anzeigen (nicht verstecken)
GRUB_TIMEOUT_STYLE=menu

#GRUB_TIMEOUT=0
# Wartezeit für manuelle Auswahl vor dem automatischen Boot
GRUB_TIMEOUT=3

und mit sudo update-grub und nach einen Neustart, so den letzen funktionierenden 6.17 Linux-Kernel booten können.

Mit diesen Kernel habe ich dann die Kernel-Pakete vor Updates geschützt:

sudo apt-mark hold linux-image-$(uname -r)
sudo apt-mark hold linux-headers-$(uname -r)
sudo apt-mark hold linux-modules-$(uname -r) 2>/dev/null || true
sudo apt-mark hold linux-modules-extra-$(uname -r) 2>/dev/null || true
sudo apt-mark hold linux-generic linux-image-generic linux-headers-generic

Leider hat ein Update der RW_LEGACY Firmware über der https://mrchromebox.tech/firmware-util.sh keine Besserung gebracht.

Im Github hat noch jemand so einen Fehler gemeldet Kernel panic on charger hot-plug — RIP: native_queued_spin_lock_slowpath (Asus C433/C434 SHYVANA, RW_LEGACY) · Issue #983 · MrChromebox/firmware · GitHub wobei angeblich das Problem vom USB-C Netzteil schon von der Google Firmware verursacht wird.
K.a. ob das ohne ein neues BIOS von Google gelößt werden kann.

LG Julian

Hallo Julian,

danke für das ausführliche Update!

Interessant, dass es in diesem Fall auch am Kernel lag. Wie ich dir vor Ort schon erzählt hatte, hatte eine Bekannte von mir ein ähnliches Problem: Ihr MacBook ließ sich nach dem Systemupdate auf Kernel 7.0 nicht mehr booten.

Gestern bin ich im Grunde genauso vorgegangen: Ich habe den Laptop zunächst mit einer älteren Kernel-Version gestartet, was problemlos funktioniert hat. Anschließend habe ich das Update auf Kernel 7.0 sauber durchgeführt, und danach lief alles reibungslos.

Interessanter Zufall :smiley:

Viele Grüße
Adrian

This is an old talk, but it might still be interesting: