Howto Google Chrome OS erstellen
von griesgram am Nov.21, 2009, unter Allgemein, Chrome OS, Google
Zur Vorstellung des neuen Google Chrome OS, haben wir uns gedacht, wir schreiben in einer Anleitung auf, wie ihr das neue Web OS auf einem Linux System präparieren und anschliessend auf einem USB Stick installieren könnt, damit ihr es selber ausprobieren könnt.
Das neue Goolge Betriebsystem kann anschliessend von der USB Festplatte gestartet werden oder man installiert es sich mit dem enthalten Script direkt auf die Festplatte des Computers.
Die ganze Installation ist kein Hexenwerk, wenn man weiss wie.
- Howto
- Voraussetzungen
- Vorbereitungen
- Chromium
- Chromium Extras
- Chrome OS Source Code herunterladen
- Chromium Source Code herunterladen
- Build Environment einrichten
- Symlinks einrichten (optional)
- Lokales Repository einrichten
- Workaround für ältere Systeme
- Karmic.list erstellen
- Karmic debootstrap installieren
- Build environment erstellen
- Pakete direkt vom Mirror integrieren (Optional)
- Chromium OS erstellen
- Chromium erstellen(optional)
- Chromium binary herunterladen
- Ins Chroot Verzeichnis wechseln
- Entwicklung vereinfachen
- Lokalen Benutzer Account einrichten
- Paket erstellen
- Image erstellen
- Image benutzen
- Inhalt des Image überprüfen
- Image auf den USB Key kopieren
- Image auf die Festplatte kopieren
- Image für VMWare konvertieren
- Altes Chroot Build Environment löschen
Howto
Voraussetzungen
Vorbereitungen
Chromium
Als erstes stellen wir sicher das wir die Abhängigkeiten zu Chromium erfüllen. Installiert euch dazu folgende Pakete:
sudo apt-get install subversion pkg-config python perl g++ g++-multilib \
bison flex gperf libnss3-dev libgtk2.0-dev libnspr4-0d libasound2-dev \
libnspr4-dev msttcorefonts libgconf2-dev libcairo2-dev libdbus-1-devChromium Extras
Damit man auch die Extras benutzen kann, installiert man sich noch folgende Pakete:
sudo apt-get install wdiff lighttpd php5-cgi sun-java6-fontsChrome OS Source Code herunterladen
Als nächstes können wir uns den Source Code herunterladen. Ladet euch den Tarball herunter und entpackt es in ein Verzeichnis eurer Wahl (z.B /usr/local/src).
chromiumos-0.4.22.8.tar.gz - Chrome OS Source Code
Chromium Source Code herunterladen
Damit wir das Chrome OS überhaupt bauen können, müssen wir den Chromium Source Code haben. Alternative kann auch ein fertiges Binary benutzt werden.
chromium.r32502.tgz - Chromium Source Code
Als erstes wechseln wir in das Installationsverzeichnis, wo wir uns die beiden Source Code herunterladen und anschliessend die Pakete erstellen werden.
Wählt ein Verzeichnis wo ihr etwa 2 -3 GB Freien Speicherplatz habt, damit ihr das Chrome OS und Chromium erstellen könnt.
cd ~/chromLadet euch nun den Source Code herunter.
wget http://build.chromium.org/buildbot/archives/chromiumos-0.4.22.8.tar.gzAnschliessend könnt ihr den Source Code entpacken.
tar xvzf chromiumos-0.4.22.8.tar.gzDamit hätten wir schon mal den Source Code für Chrome OS. Jetzt können wir noch den Source Code für Chromium herunterladen und entpacken.
Ladet euch den Source Code für Chromium herunter.
wget http://build.chromium.org/buildbot/archives/chromium.r32502.tgzEntpackt nun den Source Code.
tar xvzf chromium.r32502.tgz
mv home/chrome-svn/tarball/chromium .Build Environment einrichten
Symlinks einrichten (optional)
Richten wir uns ein paar Symlinks ein, damit wir den Source Code einfacher kompilieren können.
Beachtet den Quell Pfad, er sollte zu eurem entpackten Verzeichnis zeigen, ansonsten wird ein falscher Symlink erstellt.
ln -sf chromiumos-0.4.22.8 ~/chromiumos
Wen ihr den Symlink erstellt habt, solltet ihr im Home Verzeichnis die Ordner ~/chromiumos/src und ~/chromium/src sehen können.
Lokales Repository einrichten
Alle Scripts die benötigt werden, um das Chrome OS Image zu erstellen sind unter ~/chromiumos/src/scripts zu finden.
cd ~/chromiumos/src/scriptsDamit wir uns das Chrome OS erstellen können, basteln wir uns ein Lokales Repository mit den Paketen für die Chroot Umgebung und das Image. Um sicherzustellen das debootstrap und apt-get install nur die Pakete installiert, die wir benötigen, um ein Lokales Repository unter ~/chromiumos/repo zu erstellen, kann man folgendes Script ausführen:
./make_local_repo.shHinweis: Wer die Pakete im Image oder die Chroot Umgebung ändern möchte, kann sich die Dokumentation zum Chrome OS Package Managment ansehen.
Workaround für ältere Systeme
Wenn ihr eine ältere Linux Version benutzt, kann es sein, das debootstrap die neuere Karmic Version die in Ubutunu verwendet wurde, um das Chrome OS zu erstellen, nicht funktioniert.
Wer Probleme hat mit dem erstellen des Lokalen Repositorys oder des Chroots, kann folgenden Workaround versuchen, um Karmic zu installieren:
Karmic.list erstellen
Erstellen wir eine karmic.list die Pakete aus dem Repository holt.
cat > karmic.list << EOF
deb http://build.chromium.org/buildbot/packages chromeos_dev main restricted
deb-src http://build.chromium.org/buildbot/packages chromeos_dev main restricted
EOFKarmic debootstrap installieren
Als nächstes können wir den Karmic debootstrap installieren.
sudo mv karmic.list /etc/apt/source.list.d/karmic.list
sudo apt-get update
sudo apt-get install -y --force-yes debootstrapEnfernt temporär die source.list, damit wir nicht andere Pakete aktualisieren.
sudo rm /etc/apt/sources.list.d/karmic.list
sudo apt-get updateSolltet ihr immer noch Probleme haben, könnt ihr folgendes probieren:
sudo ln -s /usr/share/debootstrap/scripts/gutsy /usr/share/debootstrap/scripts/karmicBuild environment erstellen
Chromium OS kann nur in einer chroot Umgebung erstellt werden. Dadurch spielen die verschiedenen Linux Systeme und deren Abhängigkeiten weniger eine Rolle.
Mit folgendem Script kann man die chroot Umgebung erstellen:
./make_chroot.shHinweis: Das Script konfiguriert standardmässig /etc/apt/source.list, um die Pakete des Lokalen Repositorys, das wir uns vorher erstellt haben, zu installieren.
Pakete direkt vom Mirror integrieren (Optional)
Alternative kann man anstatt des Lokalen Repositorys, die Pakete auch direkt von einem Mirror herunterladen. Ist aber eher für Entwicklungszwecke gedacht.
Mit folgendem Befehl könnt ihr die Pakete von einem Mirror herunterladen:
./make_chroot.sh --mirror=http://build.chromium.org/buildbot/packages --suite=chromeos_devMit diesem Befehl werden die Pakete direkt vom Chromium Repository geholt. Diese Methode ist langsamer als ein Lokales Repository, ihr könnt auch irgend einen anderen Ubuntu Mirror verwenden. Beachtet einfach, das ihr beim build_image.sh Script auch die Mirror und die Suite mit angeben müsst.
Chromium OS erstellen
Chromium erstellen(optional)
Wenn ihr den Chromium Webbrowser aus dem Source Code installieren möchtet, müsst ihr Chromium zuerstellt erstellen, bevor ihr mit dem erstellen des Chromium OS fortsetzt.
Den Browser könnt ihr euch mit folgendem Befehl erstellen:
./build_chrome.sh --chrome_dir ~/chromiumUm eine Debug Version zu erstellen, kann man folgenden Befehl benutzen:
./build_chrome.sh --mode=Debug --chrome_dir ~/chromiumMit diesem Script erstellt ihr Chromium. Das Paket wird als Zip Archiv direkt am richtigen Ort abgelegt, damit man später das Chrome OS erstellen kann.
Chromium binary herunterladen
Erstellt euch das folgende Verzeichnis:
mkdir -p ~/chromiumos/src/build/x86/local_assetsLadet euch die Binary von folgenden Link herunter und kopiert das Zip ins Verzeichnis ~/chromiumos/src/build/x86/local_assets.
Hinweis: Der Dateiname muss chrome-chromeos.zip sein.
cd ~/chromiumos/src/build/x86/local_assets
wget http://build.chromium.org/buildbot/snapshots/chromium-rel-linux-chromiumos/32170/chrome-linux.zip
mv chrome-linux.zip chrome-chromeos.zipIns Chroot Verzeichnis wechseln
Damit man überhaupt die Chroot Umgebung benutzen kann, muss man zuerst noch folgenden Ordner erstellen:
mkdir -p /root/chromiumos/chroot/home/root/trunkMit folgendem Script könnt ihr ins chroot Verzeichnis wechseln:
./enter_chroot.shEntwicklung vereinfachen
Die folgenden Schritte machen die Entwicklung ein bisschen einfacher. Diese Schritte müssen nur einmal ausgeführt werden. Um die Schritte wieder rückgängig zu machen, behachtet bitte die Informationen in den Scripts. Diese Schritte müssen ausgeführt werden bevor der Rest des System erstellt wird.
Lokalen Benutzer Account einrichten
Wen ihr das Chromium OS customizen wollt und ihr nacher Probleme haben solltet euch einzuloggen, ist es von Vorteil, wenn man die Authentifizierung umgehen kann, um sich als Test Benutzer anzumelden. Dies ist deaktivert aus Sicherheitsgründen, ihr könnt euch diese Hintertür jedoch öffnen, wenn ihr wollt. Zum Testen ist es ok, in Produktionsumgebungen ist diese Option jedoch nicht zu empfehlen.
cd ../platform/pam_google && ./enable_localaccount.sh USERNAMEPaket erstellen
Als erstes erstellen wir die Platform Pakete und anschliessend den Kernel. Wer weiss was er macht, kann auch eine andere Config oder Kernel Version verwenden.
cd /home/root/trunk/src/scripts
./build_platform_packages.sh
./build_kernel.shImage erstellen
Als nächstes könne wir das Image erstellen.
./build_image.shDas Image wird unter ~/chromiumos/src/build/images gespeichert.
Image benutzen
Inhalt des Image überprüfen
Um den Inhalt des Image zu überprüfen, kann man das Image lokal mounten.
Beachtet: SUBDIR ist das Unterverzeichnis welches erstellt wurde im vorherigen Schritt.
cd ~/chromiumos/src/build/images/SUBDIR
sudo mount -o loop rootfs.image rootfs
sudo chroot rootfsDas Image wurde gemountet und ihr könnt nun anzeigen, wie viel Platz das Image benötigt oder was für Pakete installiert wurden:
df
dpkg -lWenn das Image kopiert wurde, könnt ihr die chroot Shell schliessen und das Image unmounten:exit
sudo umount rootfs
Image auf den USB Key kopieren
Mit dem Script image_to_usb.sh kann man das Image auf den USB Key kopieren. Kopiert das Image ausserhalb der Chroot Umgebung. Wenn der USB Key leer angezeigt wird, seit ihr möglicherweise in der Chroot Umgebung.
./image_to_usb.sh --from=~/chromiumos/src/build/images/SUBDIR --to=/dev/USBKEYDEVSUBDIR ist das Unterverziechnis, welches durch build_image.sh erstellt wurde und USBKEYDEV ist der Mountpunkt der USB Festplatte die man verwenden möchte.
Um den Mountpoint (USBKEYDEV) der USB Festplatte herauszufinden, kann man einen der folgenden Befehle benutzen:
sudo fdisk -loder
dmesgStandarmässig kopiert image_to_usb.sh das aktuellste Image nach /dev/sdb, ihr könnt die Optionen --from und/oder --to vom Befehl weglassen, sollte die USB Festplatte unter /dev/sdb eingehängt sein.
Image auf die Festplatte kopieren
Achtung: Ihr könnt euch damit die aktuelle System Festplatte zerschiessen! Installation auf eigene Gefahr.
Bootet das System von dem USB image, welches ihr euch vorher erstellt habt. Sollte dies, das erste mal sein, das ihr von einem USB Stick Booten möchtet, kann es sein das ihr zuerst die Boot Reihenfolge im Bios umstellen müsst, damit ihr von der USB Festplatte Booten könnt.
Nachdem ihr euch eingeloggt habt, könnt ihr mit Ctrl+Alt+T ein Terminal öffnen. Mit folgendem Befehl könnt ihr ChromeOS installieren:
/usr/sbin/chromeos-installHinweis: Ihr werdet nach dem Passwort gefragt, dass ihr euch im vorherigen Schritt gesetzt habt.
Nach der Installation könnt ihr die USB Festplatte abhängen und das System neustarten.
Image für VMWare konvertieren
Hinweis: Das VMWare image hat möglicherweise nicht alle Features und Funktionalitäten (z.B kein virtuelles Terminal, langsame Keyboard eingaben etc.).
Damit man ein Image in einer VMWare Session starten kann, muss man das Image zuerst in eine VMWare Disk konvertieren. Um das Image zu konvertieren, benötigt ihr qemu. Führt folgenden Befehl aus, um das Image zu konvertieren:
./image_to_vmware.sh --from=~/chromiumos/src/build/images/SUBDIR \
--to=~/chromiumos/src/build/images/SUBDIR/ide.vmdkStandardmässig nimmt das Script image_to_vmware.sh die letzte Version des Images. Dadurch könnt ihr euch eventuell das --from und --to sparen.
Altes Chroot Build Environment löschen
Damit man eine alte Chroot Umgebung wieder löschen kann, nutzt man am besten folgendes Script:./make_chroot.sh --deleteDas wärs, viel Spass mit dem neuen Chrome OS wünscht euch das Hack2learn Team ![]()

