Skryté volby Cr-48 a vývoj pro něj

Adam Štrauch 16. 2. 2011

S Cr-48 jsme se již seznámili a teď nastal čas zjistit, co dalšího nabízí. Nejdříve se podíváme, co se skrývá za magickým přepínačem vývojářského módu pod baterkou, a pak na možnosti instalace Chrome OS do běžného hardwaru, ať už jde o desktop nebo notebook. Fajnšmekři najdou i návod na kompilaci celého Chrome OS.

Magický přepínač

Na zadní straně stoje pod baterkou se schovává malý přepínač, který slouží k přepnutí do vývojářského módu a vypnutí kontroly integrity flash paměti. S touto kontrolou můžete do Cr-48 nahrát jen Chrome OS od Googlu. Jde o ochranu dat uživatele. Během používání Chrome OS se občas do systému něco uloží, jsou tam hesla nebo historie prohlížení, také může zůstat někde v paměti heslo na váš Google účet a podobně. Když necháte tuto ochranu zapnutou a někdo se pokusí s vaší pamětí něco provést, resp. ji poupraví tak, že bude dělat i něco navíc, Cr-48 odmítne nabootovat.

Pro vývojáře je tohle překážka, protože sami nemohou do flash paměti nahrát třeba systém zkompilovaný s novou funkcí. Proto má Crko přepínač, kterým se ochrana vypne a vývojář, nebo i uživatel, může do systému nahrát systém neposvěcený Googlem.

Po vypnutí ochrany se uživatel dostane k příkazové řádce klasicky přes Ctrl+Alt+F2 (F1 jsou Xka) a odsud už lze zjistit základní informace o systému a prolézat adresářovou strukturu. Nějaká příkazová řádka je k dispozici i na kombinaci Ctrl+Alt+t. Ta je na první pohled omezená, ale po zadání help zjistíme, že se tu dá zjistit stav sítě, systému a spustit i plnohodnotnou příkazovou řádku. Přes tu by také mělo jít do systému doinstalovat téměř cokoli. Zatímco první varianta přes funkční klávesu je k dispozici všude, druhá pouze ve vývojářském módu.

Systém má v sobě mnoho nástrojů, které najdete v běžném Linuxu. Můžete tady třeba skriptovat Bashem, prohlížet si běžící procesy přes ps nebo top, zabíjet procesy, stahovat wgetem nebo se přes SSH připojovat na jiné stroje. Lokální SSH server bohužel chybí.

Skyté volby

Prohlížeč Chrome obsahuje skryté volby a některé jsou specifické pro Chrome OS. Na Cr-48 je Chrome bránou jak do prohlížeče, tak do systému, takže když se vám nějaký stroj s Chrome OS dostane od ruky, začnete se po nich dřív nebo později shánět.

Hned z kraje, když jsem chvilku Cr-48 používal jsem hledal, jak si zobrazit využitou paměť. Později jsem pak přišel na to, že stačí do URL zadat about:memory a ještě později, že Chrome má v jedné z nabídek tzv. “Správce úloh”, který dává podobný přehled, i když v mnohem menším okně.

Hned druhý v pořadí v mém žebříčku důležitosti byl přehled o aktivním připojení. Chrome OS jako takový zrovna ukecaný není, takže jsem musel zabrousit do “about:network, které zobrazí informace o WiFi. Tahle “about” stránka mi funguje jen u Cr-48. Na desktop ani notebooku s WiFi kartou nikoli. Pokud chcete stránku obnovovat, stačí zadat *about/network/2. Každé dvě sekundy pak budete mít čerstvé informace.

Nejdůležitější nabídkou je about:flags, kde se zapínají a vypínají experimentální vlastností. To je třeba relativně důležitý multimediální přehrávač nebo pokročilý souborový systém. Ten zpřístupní SD kartu a USB flash disk.

Screenshoty lze v Chrome OS také dělat, a to pomocí klávesové zkratky Ctrl+klávesa pro přepínání oken.

Chrome OS na vlastním stroji

Chrome OS je Linux jako každý jiný, dá se stáhnout obraz, dá se zkompilovat a nahrát do běžně dostupného hardwaru. To asi nebude masově využívaná možnost, ale pro občasné nahlédnutí jak je Google daleko se to hodí.

Obrazy

Pravděpodobně jediným zdrojem posledních obrazů je Hexxeh, který vydává zkompilované Chrome OS, respektive open source variantu Chromium OS, každý den a jednou za čas připraví upravený obraz s nějakými vylepšeními. Všechno co Hexxeh nabízí, najdete na chromeos.hexxeh­.net a pro novinky můžete sledovat jeho Twitter @Heexeh.

Automaticky zkompilované Hexxehovy obrazy jsou určené pro USB flash disk, na který stačí jeden nakopírovat, strčit do nějakého notebooku a nabootovat. V Linuxu na to můžeme použít utilitku dd. Tady je ukázkový příklad:

$ tar xf ChromeOS-Vanilla-0.11.157.20110207_2258-rfa42b03f.tar.gz
$ dd if=ChromeOS-Vanilla-0.11.157.20110207_2258-rfa42b03f.img of=/dev/sdX bs=4096

Dejte si pozor, jaké písmena jednotky napíšete místo X.

Kompilace

Druhá a zábavnější možnost je potrápit trochu procesor a zkompilovat si Chrome OS s výpomocí. Takhle můžete získat obrazy jak pro Cr-48, tak pro virtuální stroje nebo USB flashku. Jde o zdlouhavou akci a navíc je potřeba 64bitový systém. Pokud chcete jen obraz pro USB flash disk, spíše sáhněte po již vytvořených obrazech.

Návod na kompilaci najdete v developer-guide na chromium.org. Na prostředí, respektive operační systém, se kladou vcelku velké nároky. V návodu je jako fungující a vyzkoušený systém uvedeno Ubuntu 10.10 v 64bit verzi. Zatímco s jinou novější distribucí možná uspějete, bez 64bitu se neobejdete.

Pokud máme potřebné rekvizity, tak prvním krokem je instalace depottools. Jde o sadu skriptů na správu zdrojového kódu. Depottools je možné získat mnoha způsoby včetně stažení archivu.

$ wget http://src.chromium.org/svn/trunk/tools/depottools.tar.gz
$ tar xf depottools

Po rozbalení přidáme do proměnné PATH cestu k čerstvě rozbaleným depot_tools. Nejlépe někam do ~/.bashrc.

export PATH="$PATH":/cesta/k/depot_tools

Dalším krokem je získání zdrojových kódů Chromium OS, open source varianty Chrome OS. Tady si dejte pozor, abyste na cílovém disku měli dostatek prostoru. Zdrojové kódy mají přibližně 2 GB a další 4 GB budete potřebovat na kompilaci. Lepší než nakonec neočekávaně bojovat s místem je vhodné počítat s tím, že 20 GB i víc na Chromium OS padne.

$ mkdir chromiumos
$ cd chromiumos
$ repo init -u http://git.chromium.org/git/manifest -m minilayout.xml
$ repo sync

XML na konci třetího příkazu není povinné, ale pokud ho uvedete, nebudete si do počítače stahovat kompletní zdrojové kódy, což zas tolik nevadí a synchronizace je mnohem rychlejší. Stahování u mě trvalo asi hodinu a půl.

Druhý krok také nepatří k nejrychlejším a během něj si postavíte toolchain. To jsou nástroje, které jsou potřeba pro kompilaci samotného systému. V tomto případě jde o kompletní chroot prostředí.

$ cd src/scripts
$ ./make_chroot

Opět po nějakém čase, přibližně hodině až dvou, záleží na konfiguraci vašeho stroje, budete moci vstoupit do čerstvého chrootu.

$ sudo ./enter_chroot.sh

Chromium OS může být zkompilováno pro konkrétní architekturu, resp. stroj. Třeba pro ARM nebo x86 a na to slouží volby:

  • x86-generic
  • arm-generic

Když se trošku pohrabete ve stažených zdrojových kódech, zjistíte, že tohoto je trochu víc. Ale pokračujeme nastavením stroje.

(chroot) # ./setup_board --board=x86-generic

Zkompilujeme balíčky.

(chroot) # ./build_packages --board=${BOARD} --oldchromebinary

A vytvoříme si image.

(chroot) # ./build-image --board=x86-generic --withdev --noenablerootfs_verification

Volba –withdev přidá do obrazu vývojářské nástroje a –noenable_root­fs_verificati­on vypne kontrolu správnosti obrazu. Každé spuštění a dokončení tohoto skriptu vás připraví přibližně o 4 GB místa, pokud nebudete staré obrazy odmazávat.

Pokračujeme přesunutím obrazu na flash disk, ten musí mít kapacitu 4 GB a více.

(chroot) # ./image-to-usb.sh --board=x86-generic --to=/dev/sdX

Když se vám po nabootování Chromium zalíbí, můžete zkusit instalaci přímo na disk běžícího stroje. Do příkazové řádky se dostanete přes Ctrl+Alt+F2, jak jsme si řekli výše. Uživatel je chronos

$ /usr/sbin/chromeos-install

Pokud chcete zůstat v pohodlí svého počítače a Chromium OS vyzkoušet jen ve virtuálním stroji, k vytvoření obrazu můžete použít:

(chroot) # ./image-to-vm.sh --board=x86-generic --format=virtualbox

Jako formát lze použít i vmware. Obraz se relativně jednoduše ztratí, takže kam se má vytvořit můžete určit pomocí parametru –to.

widgety

Informace k postupu a k jednotlivým skriptům najdete v odkazované vývojářské příručce. Jde o dobře napsaný dokument, kde najdete všechno, co budete potřebovat jak k vyzkoušení, tak k samotnému vývoji. Díky skriptům, které většinu práce udělají za vás, je kompilace Chromium OS hračkou a spíše než nějaké bádání, budete čekat, než se jednotlivé kroky dokončí.

Závěr

Rád bych poděkoval českému zastoupení společnosti Google za zapůjčení notebooku Cr-48.

Našli jste v článku chybu?
Root.cz: Hořící telefon Samsung Note 7 zapálil auto

Hořící telefon Samsung Note 7 zapálil auto

Vitalia.cz: Tesco nabízí desítky tun jídla zdarma

Tesco nabízí desítky tun jídla zdarma

Lupa.cz: Cimrman má hry na YouTube i vlastní doodle

Cimrman má hry na YouTube i vlastní doodle

120na80.cz: Hrbatá prsa aneb mýty o implantátech

Hrbatá prsa aneb mýty o implantátech

Měšec.cz: „Ukradli“ jsme peníze z bezkontaktních karet

„Ukradli“ jsme peníze z bezkontaktních karet

Podnikatel.cz: Nemá dluhy? Zjistíte to na poště

Nemá dluhy? Zjistíte to na poště

Vitalia.cz: 5 chyb, které děláme při skladování potravin

5 chyb, které děláme při skladování potravin

Vitalia.cz: Test dětských svačinek: Tyhle ne!

Test dětských svačinek: Tyhle ne!

Vitalia.cz: Voda z Vltavy před a po úpravě na pitnou

Voda z Vltavy před a po úpravě na pitnou

Lupa.cz: Patička e-mailu závazná jako vlastnoruční podpis?

Patička e-mailu závazná jako vlastnoruční podpis?

DigiZone.cz: Sat novinky: NASA Ultra HD (4K)

Sat novinky: NASA Ultra HD (4K)

Podnikatel.cz: Udělali jsme velkou chybu, napsal Čupr

Udělali jsme velkou chybu, napsal Čupr

120na80.cz: Galerie: Čínští policisté testují českou minerálku

Galerie: Čínští policisté testují českou minerálku

DigiZone.cz: Technisat připravuje trojici DAB

Technisat připravuje trojici DAB

Vitalia.cz: Nová vakcína proti chřipce se aplikuje nosem

Nová vakcína proti chřipce se aplikuje nosem

Lupa.cz: Adblock Plus začal prodávat reklamy

Adblock Plus začal prodávat reklamy

Lupa.cz: Další Češi si nechali vložit do těla čip

Další Češi si nechali vložit do těla čip

Vitalia.cz: Tohle jsou nejlepší česká piva podle odborníků

Tohle jsou nejlepší česká piva podle odborníků

Lupa.cz: Jak se prodává firma za miliardu?

Jak se prodává firma za miliardu?

DigiZone.cz: Parlamentní listy: kde končí PR...

Parlamentní listy: kde končí PR...