Googles Chrome OS gibt es ja nun schon länger, ausprobiert habe ich es bisher nie. Das wollte ich ändern. Dieses Unterfangen hat sich jedoch als schwieriger herausgestellt als ich zuerst erwartet hatte. 

[HowTo] Wie baue ich mir ein Chrome OS?

Ueber den Autor

Diese Anleitung stammt von Max aus unserem MobileGeek Forum. Er ist neben aktiver Mitstreiter in der Community auch gleich in der Position des Tech-Admins des Forums verankert. Ihr habt auch Lust Beiträge auf MobileGeeks zu veröffentlichen? Dann macht mit oder komm einfach direkt in unser Forum und schreibe Tobias eine private Nachricht!

Los geht’s!

Der geneigte Leser fragt sich jetzt vielleicht: „Wieso das denn, es gibt doch fertige Pakete für beispielsweise VMware?“. Ja vmWare war mein Ziel, jedoch war es auch mein Ziel Chrome OS zu testen und nicht Chromium OS. Der Unterschied ist nicht unerheblich. Chromium OS bezeichnet das Open Source Projekt, das von den Entwicklern als Basis genutzt wird. Der Code ist frei verfügbar und kann heruntergeladen, verändert und kompiliert werden. Google Chrome OS hingegen enthält einige Anpassungen, die nicht in das Open Source Projekt Chromium OS passen. Als Beispiele seien Plug-Ins wie Flash, PDF oder gar Google Talk genannt. Weiterhin ist Chrome OS für den Betrieb auf der entsprechenden Chromebook Hardware optimiert.

Nichts desto trotz muss für meinen Test Chromium OS als Zwischenstation herhalten. Achtung, jetzt wird es etwas technisch. Das Betriebssystem verwendet eine ziemlich komplexe Partitionsstruktur mit insgesamt 12 (teilweise ungenutzten) Partitionen. Das Bauen dieser Struktur übernimmt Chromium OS aber bei der Erstellung des Images automatisch. Das Erstellen eines Images erfolgt unter Linux, in meinem Fall Linux Mint in der aktuellen Version 14 in vmWare. Falls ihr es später selbst versuchen wollt: Installiert ein 64 Bit Linux. Das ist Voraussetzung für das Bauen von Chromium OS. Nebenbei solltet ihr einer eventuellen Linux VM sofern möglich alle CPU-Kerne und 4GB RAM oder mehr zur Verfügung stellen. Außerdem benötigt ihr etwa 35GB Festplattenplatz inklusive der Linux Installation. Weiterhin sollte man eine aktuelle CPU haben, die Virtualisierung nativ unterstützt (Intel VT-x oder AMD-V), ansonsten kann es sein, dass Chrome OS den Start verweigert.

Nachdem ich also mein Linux neu aufgesetzt hatte (64 Bit…) machte ich mich daran die Build-Umgebung für Chromium OS vorzubereiten. Zum Glück wird eine sehr umfangreiche Anleitung dazu vom Chromium Projekt selbst geliefert.

Begonnen habe ich demnach mit der Einrichtung einiger Voraussetzungen. Etwas Erfahrung mit Linux sollte man auf jeden Fall mitbringen. Nachdem git, repo und die ssh kyes eingerichtet waren, konnte ich den Quellcode laden. Ich empfehle hier das minilayout. Dieses ist vollkommen ausreichend für ein funktionierendes Image und ist nebenbei um ein vielfaches kleiner. Der Download der Quellpakete liegt bei grob geschätzten 500 MB.
Weitergeht es mit der einmaligen Erstellung einer chroot-Umgebung. Diese eigene kleine Welt beinhaltet alles, was man für das Bauen des Images braucht. Somit braucht man sich keine Gedanken um Compiler oder Bibliotheken zu machen. Auch hier wird das passende Skript gleich mitgeliefert. Innerhalb der chroot wählt man dann eine Board-Konfiguration. Hier habe ich mich für x86-generic entschieden. Bevor es ans Kompilieren an sich geht, setzt man noch ein Passwort für den Benutzer „chronos“. Dieses gut merken, da es später noch mal gebraucht wird.

Ein beherztes:

Code:
./build_packages --board=${BOARD}

startet das Kompilieren der Packages. Jetzt ist es Zeit für einen Kaffee, bei mir am Desktop mit 4 Kernen hat der Prozess etwa eine Stunde gedauert. Nach Abschluss kann dann direkt das Image an sich gebaut werden, was so ca. 15 Minuten Dauert:

Code:
./build_image --board=${BOARD} --noenable_rootfs_verification dev

Danach überspringe ich einige Schritte und konvertiere das Image per

Code:
./image_to_vm.sh --board=${BOARD} --format=vmware

in ein vmWare Image. Das schöne ist: Dieses bootet direkt! Wichtig noch zu wissen: Die .vmx Datei muss mit einem Texteditor geöffnet und folgende Zeilen eingefügt werden:

Code:
ethernet0.virtualDev = "e1000"
svga.autodetect = "FALSE"
svga.maxWidth = 1024
svga.maxHeight = 768

Und eine Info noch für Virtualbox Nutzer: Die Mausintegration muss abgeschaltet sein, und als Netzwerkkarte muss eine Intel emuliert werden.

Dann klappen auch der Netzwerkzugang und die später notwendige Auflösung.

Jetzt hatte ich also ein Chromium OS. Alles in allem ein gut beschriebener und mit etwas Geschick einfach zu handhabender Prozess. Lob an die Entwickler!

30 03 2013 21 10 50 605x340 [HowTo] Wie baue ich mir ein Chrome OS?

Damit war ich jedoch noch nicht am Ziel…

Ich hole mir von folgendem Link ein Recovery Image: https://dl.google.com/dl/edgedl/chro…_mp-v2.bin.zip (etwa 400MB).
Den später aktuellen Link muss man manuell auf einer Datei auslesen:https://dl.google.com/dl/edgedl/chro…/recovery.conf.
Dort nach „name=Samsung Chromebook Series 5 550“ suchen und am Ende des Absatzes den Link kopieren.

Die Datei entpacken wir nun auf einen USB Stick. Auf diesem erstellen wir zusätzlich noch zwei Ordner: „chrome_efi_mount“ und „chromium_efi_mount“.

file 605x146 [HowTo] Wie baue ich mir ein Chrome OS?

Den Stick dann mit der VM verbinden.

In ChromiumOS arbeiten wir nun auf der Konsole. Dazu wechselt man per Strg+Alt+F2 auf eine Konsole und meldet sich als „chronos“ mit dem zuvor festgelegten Passwort an. Danach habe ich des Komforts halber per

Code:
sudo bash

eine Shell gestartet.

Im nächsten Schritt sage ich Chrome OS, dass es im Entwicklermodus ist:

Code:
touch /mnt/stateful_partition/.developer_mode

(„_“ liegt auf „?“ und „/“ auf „-„)

Danach habe ich meinen USB Stick ins System eingebunden:

Code:
mount /dev/sdb1 /media/removable

Jetzt noch einen Shortcut auf das Chrome OS Image anlegen:

Code:
image_file=/media/removable/cos/chromeos_3428.210.0_lumpy_recovery_stable-channel_mp-v2.bin

(Name ist entsprechend anzupassen.)
Und einen weiteren auf meinen Arbeitsordner:

Code:
workdir=/media/removable/cos

Und nun folgt der etwas schwierigere Part. Wir berechnen uns zuerst mal zwei Werte, die wir gleich noch brauchen.
Zuerst die Größe, nennen wir sie rootfs_size:

Code:
rootfs_size=$(cgpt show -i 3 -n -s -q $image_file)

(„( und )“ liegt auf „9 und 0“ und „-“ auf „ß“)
Danach der Offset, nennen wir ihn rootfs_start:

Code:
rootfs_start=$(cgpt show -i 3 -n -b -q $image_file)

Nun werden die nötigen Partitionen auf der Festplatte eingebunden, wozu etwas Rechenarbeit nötig ist:

Code:
cgpt show -i 12 -n -b -q $image_file

Das Ergebnis davon wird mit 512 multipliziert und im folgenden Befehl hinter „offset=“ geschrieben.

Code:
mount -ro loop,offset= 127926272 $image_file $workdir/chrome_efi_mount

und

Code:
mount /dev/sda12 $workdir/chromium_efi_mount -t vfat

Jetzt noch 2 Dateien kopieren:

Code:
cp $workdir/chrome_efi_mount/syslinux/vmlinuz.B $workdir/chromium_efi_mount/syslinux/vmlinuz.B -f
cp $workdir/chrome_efi_mount/syslinux/vmlinuz.B $workdir/chromium_efi_mount/syslinux/vmlinuz.A -f

Die beiden Partitionen wieder abhängen:

Code:
umount $WORKDIR/chrome_efi_mount
umount $WORKDIR/chromium_efi_mount

Und schließlich im letzten Schritt das eigentlich Image schreiben, was wieder ein paar Minuten dauert:

Code:
dd if=$image_file of=/dev/sda3 bs=512 skip=$rootfs_start count=$rootfs_size

Möglicherweise schließt der Vorgang mit einem „Bus Error“ ab. Keine Panik, einfach die VM hart abschalten und neu starten.

Und wenn alles geklappt hat, dann begrüßt euch nun Chrome OS statt Chrmoium OS.

30 03 2013 22 13 41 605x454 [HowTo] Wie baue ich mir ein Chrome OS?

Rückblickend war das eine ganze Menge Arbeit, die mich zwei Abende gekostet hat. Ich konnte dabei trotzdem noch ein paar Erfahrungen sammeln. Warum der Prozess an sich so schwer ist, liegt mir fern zu beurteilen, jedoch gehe ich mal von Lizenzproblemen aus, die mit der proprietären Software wie eingangs erwähnt zusammenhängen. Jedenfalls kann ich nun in Ruhe testen, wenn auch leider mit einer eingeschränkten Auflösung von 1024*786. Mehr ist wegen der Treiber nicht fehlerfrei möglich.

Einen Testbericht des eigentlichen Betriebssystem Chrome OS wird es mit meinem Image auf Grund der Nachfragen auch noch geben.

Ihr habt noch Fragen? Dann ab damit in die Kommentare!

Newsletter abonnieren

RSS-Icon Immer auf dem Laufenden bleiben? Dann abonniere unseren RSS-Feed!
  • Timo

    Zum Verständniss, dass ist nicht das gleiche ?

    http://chromeos.hexxeh.net/

    • miweru

      Das kenne ich auch und es funktioniert. Ist vielleicht von den Treibern her anders oder so.
      Aber es sollte ja Chrome OS und nicht Chromium OS getestet werden.

    • http://twitter.com/langer_hans M. K.

      Nein, das ist nicht das gleiche. Dabei handelt es sich um Chromium OS, nicht Chrome OS.

      Chromium OS ist das Open Soruce Projekt, während Chrome OS das Google Produkt ist, das die OEM auf ihre Geräte installieren. Mehr zu den Unterschieden kannst du hier erfahren: http://www.chromium.org/chromium-os/chromium-os-faq

      -Max

      • Timo

        Genau so ein link habe ich gesucht, danke ;)

  • DingDong

    Ich verstehe nicht warum Google keine offiziellen Chrome OS Builds für jedermann anbietet.

  • Artus Elias

    Hallo,

    ich verstehe jetzt nicht wirklich viel davon, aber früher habe ich immer Chromium OS von Liam McLoughlin auf einem Netbook genutzt. Jetzt aber unterstützt es kein Flash mehr, und daher will ich eigentlich zu Chrome OS wechseln. Gibt es irgendwo Downloads von _ChromeOS_ die man ähnlich komfortabel installieren kann wie die von Hexxeh? Natürlich wäre das Anbieten nicht ganz so erlaubt, aber man könnte es ja anonym einfach irgendwo hochladen…

Trackbacks & Pingbacks