Sestavení linuxové distribuce
Sestavení vlastní linuxové distribuce je jedním ze zásadních úkolů, které musí vývojář aplikací pro embedded zařízení zvládnout. Málokteré embedded zařízení má natolik neomezené systémové prostředky, že v něm lze provozovat běžnou linuxovou distribuci. O specifičnosti hardware takového zařízení ani nemluvě.
Že jde o úkol nelehký svědčí i řada pokusů o jeho ulehčení. Mám na mysli například projekt Buildroothttp://buildroot.uclibc.org/, což je defakto sada skriptů a souborů makefile, která na základě interaktivně zadané konfigurace dokáže vygenerovat kompletní linuxovou distribuci, včetně jádra a případně i křížových nástrojů (cross tools).
Dalším počinem, který v tomto směru stojí za povšimnutí, je projekt Linux from scratchhttp://www.linuxfromscratch.org/ - anglicky psaný průvodce, který zájemce krok za krokem provede sestavením linuxové distribuce. Toto pojetí je zajímavé i z toho důvodu, že člověka donutí skutečně porozumět tomu, co dělá. Díky tomu pak máme celou distribuci tak říkajíc pevně ve svých rukou.
Následující text je vlastně také takovým stručným průvodcem sestavení vlastní linuxové distribuce. Nejprve si vytvoříme základní adresářovou strukturu, kterou postupně zaplníme systémovými knihovnami a konfiguračními soubory. Pak si nakonfigurujeme a sestavíme jádro a nakonec celý kořenový souborový systém přeneseme do cílového zařízení.
Cílovým zařízením, které bude předmětem našich pokusů s linuxovou distribucí, nemusí být nutně embedded zařízení. Stačí jakékoliv fungující obstarožní počítač typu x86, který odpočívá někde v koutku a čeká na ekologickou (!) likvidaci, pardon, vlastně na odchod do křemíkového nebe.
Než začneme
Pro sestavení naší vlastní linuxové distribuce potřebujeme libovolný pracovní počítač (např. virtuální) se standardní linuxovou distribucí. My jsme zvolili distribuci Debian 6.0 Squeeze. Další text proto bude předpokládat použití této distribuce.
V pracovním počítači s Linuxem (Debianem) si v našem domovském adresáři (např. /home/emlin) vytvoříme adresář mylindist-root/, který bude sloužit jako kořenový adresář naší linuxové distribuce. Jinými slovy obsah tohoto adresáře se po přenesení na cílové zařízení stane kořenovým adresářem naší distribuce v cílovém zařízení.
Postup:
$ mkdir /home/emlin/mylindist-root $ cd /home/emlin/mylindist-root/
Poznámka: Adresář mylindist-root/ bude v dalším textu považován za výchozí adresář. Všechny příkazy budou uváděny tak, jako by byl aktuálním pracovním adresářem.
Vedle pracovního počítače, kde bude vznikat naše vlastní linuxová distribuce, potřebujeme samozřejmě i ono pokusné cílové zařízení. My jsme se jako cílové zařízení rozhodli použít (rozuměj uchránit před likvidací) jedno staré, ale stále fungující PC původem někde z banky. V dalším textu proto budeme předpokládat jeho použití.
Na konfiguraci pokusného počítače nejsou kladeny žádné zvláštní nároky. Jediným požadavkem je dostupnost paralelního ATA rozhraní (případně SATA), IDE harddisk (příp. SATA harddisk) a fungující paralelní port, přes který k našemu pokusnému počítači (cílovému zařízení) později připojíme HW přípravek pro hrátky s ovladači linuxového jádra. Samozřejmě nesmí chybět video karta a potřebovat budeme i jakoukoliv CD-ROM/DVD-ROM mechaniku.
Pokud nemáte nějaké takové PC k dispozici, zkuste navštívit jakýkoliv PC bazar nebo si prostě kupte nejlevnější základní desku typu vše-v-jednom (obvykle formát ITX), kdy je už na desce integrován procesor, video karta a kompletní chlazení. Stačí když dodáte paměť RAM, harddisk a napájecí zdroj (mnohdy stačí i silnější 12V zdroj s konektorem jack 2.5mm, takže nepotřebujete ani ATX zdroj). Zásadní je podpora HW v Linuxu, což produkty postavené na čipech Intel (zvláště na starších typech) snadno splňují.
Co nás čeká ...
Základ distribuce
Prvním krokem při přípravě linuxové distribuce je vytvoření kořenového souborového systému (root file system - dále jen RFS) a jeho obsahu. RFS tvoří jakýsi pomyslný základ linuxové distribuce, do kterého budeme postupně doplňovat všechny další důležité části systému.
Linuxové jádro
Co by byl operační systém Linux bez svého jádra. V dalším textu se proto budeme intenzívně zabývat konfigurací jádra a jeho sestavením.
Instalace distribuce
Máme vytvořený kořenový adresář včetně obsahu a sestavené jádro, takže nic už nebrání tomu, přenést naši distribuci na pokusný počítač a vyzkoušet ji.