OpenWrt 2: tvorba vlastniho obrazu systemu

Na webu OpenWrt jsou ke stazeni uz hotove obrazy pro ruzne procesorove architektury a konkretni zarizeni. Kdyz vsak potrebujeme neco upravit, musime si pomoct sami. Dale se budu zabyvat pouze nejnovejsi verzi OpenWrt backfire. Jak jsem uz psal minule, pouzivam Router Station od Ubiquity. Proto se zamerim na praci s touto deskou. Pro ostatni bude postup pravdepodobne podobny. 

RouterStation ma Atheros procesor (Atheros AR7161 MIPS 24K running @ 680MHz) architektura ar71xx. Pokud chcete mit nad vsim totalni kontrolu, stahnete si zdrojaky a zkompilujte si vse (celou distribuci) samy. Ovsem to neni taky jednoduche a ani to vetsinou neni potreba.

Ja pouzivam Image Builder. Pomoci tohoto baliku se da zmenit obraz ciloveho systemu. Je mozne pridavat ruzne balicky a menit nastaveni. Samozrejme by slo pouzit vychozi obraz, nahrat ho do RouterStation a potom si vse potrebne nastavit a doinstalovat. Tohle je ale jednodussi. Kdyz budete delat velkou serii, nebo budete chtit svuj obraz uverejnit na Internetu, je tento postup nejlepsi. Dulezite je stahnou Image Builder pro svou architekturu!

Vse se da stahnout tady: http://downloads.openwrt.org/backfire/10.03/ar71xx/

 

openwrt-ar71xx-ubnt-rs-jffs2-factory.bin  je vychozi obraz, jestlize se vam vsechno po**re, nahrajte do RouterStation tento obraz a vse bude OK  V adresari packages/ jsou vsechny dostupne balicky. Pro nas bude nejzajimavejsi soubor OpenWrt-ImageBuilder-ar71xx-for-Linux-i686.tar.bz2 ten obsahuje nastroj pro sestaveni vlasniho obrazu.

Stahneme si tedy OpenWrt-ImageBuilder-ar71xx-for-Linux-i686.tar.bz2. Ve svem domovskem adresari si vytvorime slozku openwrt a rozbalime v ni tento soubor:

Po rozbaleni dostaneme adresar. Prejdeme tedy do neho a zkusime spustit make pro zobrazeni informaci:

 

Nyni si vypiseme prikazem make info dostupne profily:

Z tohoto vypisu je videt architektura, vychozi balicky, ktere se vzdy pouziji a seznam profilu. Pro RouterStation je to UBNT.

Profily nas ale nazajimaji. My si budeme chit pridat vlasni balicky a soubory s nastavenim. V adresari packages/ jsou vsechny dostupne balicky, ktere muzeme pouzit. Ted je potreba rict make co chceme, podle make info:

Balicek (z adresare packages/) se jmenuje napr. tar_1.22-1_ar71xx.ipk ale mi budeme uvadet nazev tar, u syslog-ng_1.6.12-2_ar71xx.ipk uvedeme syslog-ng
Dale budeme chtit nahradit soubor /etc/config/network, ve kterem je nastavena sit. vytvorime si tedy v adresari ImageBuilderu adresar nastaveni a v nem odpovidajici adresarovou strukturu a soubory:

Nyni se muzeme pustit do samotneho sestaveni, nejdrive spustime make clean (vycisti nepovedene blbosti) a pote uz samotny make, kteremu v parametrech predame nazvy balicku a cestu k nastaveni:

Nyni uz jenom staci cekat. Format prikazu je vic nez jasny:
make image PACKAGES="kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-acm python mc" FILES="/home/martin/openwrt/OpenWrt-ImageBuilder-ar71xx-for-Linux-i686/nastaveni"

Kdyz mame hodne balicku, muzeme si to trochu usnadnit. Vytvorime si soubor, nazveme ho treba balicky a tam je vsechny napiseme na jeden radek oddelene mezerou. Pri volani make misto seznamu vypiseme obsah souboru PACKAGES="cat balicky :

a zase pul dne cekat 

Skoro vzdy, kdyz vybereme velke mnozstvi balicku, skonci ImageBuilder chybou:

Duvod je jasny, obraz je moc velky. ImageBuilder totiz nesestavuje obraz jenom pro RouterStation, ale pro vsechny ar71xx zarizeni. Takze se stane, ze ikdyz ma RouterStation 16MB flash, nektere jine zarizeni muze mit treba jenom 5MB flash.
Vetsinou neni duvod kazit si radost, chyba vetsinou nastane az po sestaveni obrazu pro RouterStation, ktery potrebujeme. To si muzeme snadno overit v adresari bin/ar71xx/.  

V adresari build_dir/  se nachazi  podklady pro sestaveni. V adresari build_dir/target-mips_r2_uClibc-0.9.30.1/root-ar71xx/ je vse, co obsahuje nas obraz:

To je ale spis pro kontrolu, nejdulezitejsi je adresar bin/ar71xx/ prave ten obsahuje vysledne obrazy, ktere budeme nahravat do zarizeni:

Obrazu tam bude asi hodne, nas vsak zajima pouze  openwrt-ar71xx-ubnt-rs-jffs2-factory.bin. Prave ten budeme nahravat do sveho RouterStation. Kdyby tam tento soubor nebyl, stala se nekde chyba. Nejpravdepodobnejsi je, ze jsme vybrali moc balicku a vysledny obraz tak byl moc velky.

A to je vse  Nyni uz staci jenom nahrat soubor do zarizeni a melo by to fungovat. Chapu, ze je postup hodne neprehledny, ale psal jsem to narychlo. Funkcni to ale je a to je hlavni.

 

Dalsi clanky o OpenWrt.

 

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *