Kuidas alustada?

Hetkel on jooksev (current) versioon saadaval vaid algtekstidena, et sellest saada firmware on vajalik linuxi baasil süsteem 1GB vaba kõvakettaruumiga algtekstide ja tööriistadega.

Täiendus: jooksvast firmwarest on saadaval 'pildistused'(snapshot) http://openwrt.org/downloads/snapshots; see kood kompileeritakse iga päev sõltumata kas algkoodis midagi muudetakse või mitte. . Jäta allpool vahele "Enne kui sa firmware flashid.." juhul kui kasutad snapshotte

Algtekstide saamine

Algkoodi saab alla lugeda CVS'i kasutades või siis otse veebisaidist, vahet pole, tegemist on samade tekstidega.

CVSiga allalaadimine:
(kui küsitakse CVS parooli vajuta enterit)

cvs -d:pserver:anonymous@openwrt.org:/openwrt login
cvs -d:pserver:anonymous@openwrt.org:/openwrt co buildroot

Eelneva CVSi puu uuendamine:

cvs up -Pd

Veebilehelt allalaadimine:

wget http://openwrt.org/cgi-bin/viewcvs.cgi/buildroot/buildroot.tar.gz
tar zxvf buildroot.tar.gz

Algtekstide kompileerimine

cd buildroot
make

Kui 'make' lõpetab on tulemuseks järgnevad failid:

Failid

openwrt-g-code.bin :Firmware WRT54G (v1.0, v1.1, v2.0) jaoks
openwrt-gs-code.bin :Firmware WRT54GS jaoks
openwrt-linux.trx :Firmware teiste mudelite ja tootjate jaoks
openwrt-kmodules.tar.gz :Linuxi tuuma moodulid

Enne kui sa asud uut firmware't seadmesse laadima...

/!\ MITTEAMETLIKU FIRMWARE LAADIMINE RIKUB SEADME GARANTII!

Üks võimalikke ettevaatusabinõusid ebaõnnestunud flashimise vastu on nvram'i sätung nimega boot_wait. Kui boot_wait on aktiivne, siis alglaadimisprotsess ootab mõned sekundid juhul kui on soovi saata uus firmware üle TFTP seadmesse. (sellest hiljem).

boot_wait parameetri aktiviseerimise saab ära teha lollitades originaalfirmware veebiserverit, andes järgmised käsud: (ära trüki neid kusagile, need on vaid näiteks siia toodud)

cp */*/nvram /tmp/n
*/n set boot_wait=on
*/n commit
*/n show

See tegevus kopeerib nvram käsu tmp kataloogi, aktiviseerib boot_wait parameetri, muudab selle permanentseks ja näitab lõpuks nvrami sisu

Käskude tegelik käivitamine

Esiteks kontrolli kas seadmel on interneti aadress defineeritud, see pole tähtis mis ta on, pane kasvõi staatiline ip. Järgmiseks käivita veebiadminliides ja otsi üles Ping.asp leht (leitav Administration >> Diagnostics) ja tee "pingimised" järgnevatele 'aadressitele':
;cp${IFS}*/*/nvram${IFS}/tmp/n
;*/n${IFS}set${IFS}boot_wait=on
;*/n${IFS}commit
;*/n${IFS}show>tmp/ping.log

Need on täpsed samad käsud, mis üleeelmises blokis on näidatud, kuid muudetud töötamaks Ping.asp lehel. Lõika ja kleebi hoolikalt eelnevad käsud IP aadressi välja ja käivita. Pole vaja muretseda, et mingeid vastuseid ei tule. See peabki nii olema. Viimane käsk võtab pisult aega aga siis on tulemuseks pikk list nvrami parameetritest millest otsi üles boot_wait ja mis peab võrduma 'on'. (boot_wait=on)

Firmware seadmesse laadimine

Kui pole nõutud boot_wait'i sisselültamine, soovitame sellegipoolest seda teha.

Mis faili ma pean üles laadima?

Linksys WRT54G :openwrt-g-code.bin
Linksys WRT54GS :openwrt-gs-code.bin
Teised mudelid/tootjad:openwrt-linux.trx

Kasutades veebilehte

Kui su seadmel on uuendamise veebileht (upgrade webpage), siis kasuta seda.

Kasutades boot_wait tftp meetodit

Kui boot_wait on sees (vaata ülalt), siis diag tuli (või power tuli, kui sul pole diag tult) vilgub umbes 3 sekundit kui toide sisse lülitada. Kuni tuli vilgub, on võimalik firmwaret tavalise tftp kliendiga üles laadida.

Hangi tavaline tftp klient, juhul kui see juba pole sul masinas. Netkit tftp on enamike linuxi distributsioonidega kaasas. Ära kasuta linksysi parooliga tftp kliente, parooli pole vaja boot_wait'i jaoks. Ruuter konfib end boot_wait ajaks aadressile 192.168.1.1 netmaskiga 255.255.255.0, niiet muuda oma linuximasina IP selleks ajaks näiteks 192.168.1.2'ks. Kui sul on mõni seade võrgus sama 192.168.1.1 aadressiga, siis kasuta tavalist patch kaablit arvuti ja ruuteri vahel, ristkaablit pole tarvis.

Järgmiseks, tftp upload on väike trikitamine, seega soovitame teha järgnevat:

Ühenda lahti ruuteri küljest toitejuhe, ava tftp aadressile 192.168.1.1, lülita klient binaarmeetodi peale ja hakka firmwaret üles laadima juba siis kui ruuter ise on toiteta. Kohe kui tftp klient üritab tarkvara üles laadida, lükka toide taas ruuterile järgi. Muide, toite katkestus on väga hea meetod ruuteri alglaadimise tegemiseks.

Kui sa kasutad linuxit siis:

tftp 192.168.1.1
tftp> binary
tftp> rexmt 1
tftp> trace
Packet tracing on.
tftp> put openwrt-g-code.bin

Võimalikud tftp veateated:

Code pattern is incorrect :Sa püüdsid üles saata valet firmware't
Invalid password :Ruuter pole enam boot_wait modes, sa lasid boot_wait'i mööda.
Other issues :Vaata oma tulemüüri häälestust. (keera tulemüür maha)
Proovi mõnd teist tftp klienti.
Pane ruuter otse arvuti järgi. (patch kaabliga)

Ainukene kord kui sa näed vale parooli teadet tftp kliendist, on siis kui seadmes on linksysi originaalfirmware ja boot_wait on juba lõpetanud, ning selle tftp teenuse on asendanud linksysi enda tftp server. Proovi uuesti selle alampeatüki algusest.

Eelmiste OpenWrt versioonide uuendamine

Kahjuks pole see veel täielikult dokumenteeritud, aga OpenWrt käsurealt on võimalik uuendus sisse flashida. Idee on saata openwrt-linux.trx otse ruuteri flashi kasutades järgnevat käsku:
mtd write openwrt-linux.trx linux && reboot

Alternatiiv on alglaadimine ja boot_wait meetod.

NB! Mitmel juhul on vajalik peale OpenWrt uuendamist bootida 'failsafe modesse'.

Esmane sisselogimine OpenWrt'sse

Alglaadimisel üritab OpenWrt konfigureerida end parameetritega mis olid eelneva firmwarega sisestatud. Lihtsalt telneti sellele ip aadressile, mingit kasutajanime ja parooli ei vajata.

Failisüsteemi ülesehitus.

OpenWrt kasutab kahte failisüsteemi. squashfs ja jffs2. Esimest korda laeb OpenWrt end üles kasutades (ainult lugemiseks) squashfs partitsiooni mis on sisseehitatud firmwaresse. firstboot nimeline skript käivitub peale seda ja tekitab jffs2 partitsiooni kasutamata välkmälu (flash rom) osasse. Peale seda saab jffs2 uueks juurpartitsiooniks, protsess võtab aega mõned minutid.

jffs2 failisüsteemi suurus oleneb välkmälu suurusest ja firmware suurusest. WRT54G'l on 4MB välkmälu mis jätab jffs2'e 2MB ruumi ja WRT54GS'il on 8MB välkmälu mis jätab jffs2'e 6MB ruumi. On tähis ära märkida, et jffs2 partitsioon on pakitud (compressed), see tähendab et WRT54GS tegelik failide suurus võib olla rohkem kui 6MB.

Failide majandamine ja manipuleerimine

jffs2 partitsiooni ruumi kokkuhoiu pärast on failid esialgu sümlingid squashfs'il paiknevast. See tähendab et failid suunatakse ainult lugemiseks olevale partitsioonile kui neid avada. Neid ei saa sümlingi kujul muuta. Kui sa tahad neid muuta, siis pead kõigepealt kustutama sümlingi ja asendama koopiaga /rom failisüsteemist.

rm /etc/ipkg.conf
cp /rom/etc/ipkg.conf /etc/ipkg.conf
vim /etc/ipkg.conf

Ipkg

Ipkg nimeline utiliit on väga minimalistlik pakimajandaja (package manager) mis on võimeline alla laadima ja installima eepakitud OpenWrt tarkvara otse internetist. Linuxis on samalaadne Debian/GNU Linuxi'st pärinev süsteem apt-get.

Pakkide nimekirja uuendamine

ipkg majandab ise tarkvara loeteluga, mida peaks perioodiliselt uuendama, et saada värske loend saadaolevast tarkvaras.
ipkg update

Saadaoleva tarkvara vaatamine

Loendi saamiseks on järgnev käsk:
ipkg list

Paki paigaldamine/installeerimine

ipkg install dropbear

Paki eemaldamine

ipkg remove dropbear

Veel pakke ...

Ekstra pakid on saadaval kolmandate osapoolte poolt pakituna. Täielik list tarkvara pakkujaid saab sellelt aadressilt: OpenWrtPackages. Lisa lihtsalt vastavad read oma /etc/ipkg.conf faili.

NVRAM

Originaalfirmwares on kõik häälestus hoiul nvram partitisioonil, formaadis "nimi=väärtus". Kuna OpenWrt'l on jffs2 partitsioon häälestuse ja konfiguratsiooni hoidmiseks, siis paljusid parameetreid NVRAM'ist ignoreeritakse, jättes järele vaid käepärased võrguparameetrid.

/!\ Hoiatus: Muutes või kustutades teatuid NVRAMi parameetreid, võid sa oma ruuteri mittebootivaks teha, kui sa täpselt ei tea mis miski parameeter teeb, ära seda puutu.

nvram utiliit

nvrami'le ligipääsemiseks on nvram utiliit, kõik muudatused hoitakse seni operatiivmälus juhul kui sa pole neid 'kinnitanud' nvram partitsioonile.

Pika listingu saamikseks nvrami sisust:
Pikem list on saadaval siin : OpenWrtNVRAM

nvram show

Nägemaks täpset nime:

nvram get nimi

Parameetri sättimiseks:

nvram set nimi=väärtus
# Kasuta kindlasti võrdusmärki kui sa kasutad set käsku.

NVRAMi muudatuste kinnitamine kandes muudatused nvram partitsioonile.

nvram commit

NVRAMi sisu nullimine ja alglaadimine

Kuigi see pole soovituslik on võimalik NVRAM'i sisu nullida vaikeväärtuste peale, hoides toite sisselülitamise ajal all reset nuppu.

Failsafe tööreziim (failsafe mode)

Kui adminni tegevuse või failisüsteemi vea tõttu peale OpenWrt firmware uuendamist muutub jffs2 partitsioon kasutuskõlbmatuks või on võrguparameetrid valed, saab ruuteri nn 'failsafe mode' reziimi lülitada, mispeale ruuter teeb alglaadimise vaid squashfs partitsioonilt ja kasutades vaikimisi (192.168.1.1) võrguparameetreid.

Failsafe alglaadimiseks, võta toide maha ja uuesti peale, oota kuni DMZ tuli süttib ja siis hoia all reset nuppu umbes 2 sekundit. OpenWrt ignoreerib jffs2 partitsiooni ja teeb terve alglaadimise ainult squashfs partitsioonilt, jättes vahele kõik muudatused mis on tehtud alglaadimisskriptidesse. Samuti pole safe modes võimalik kasutada omainstalleertud pakke.

Jffs2 haakimine (mountimine) failsafe modes

mtd unlock mtd4
mount -t jffs2 /dev/mtdblock/4 /jffs

Sellest hetkest saad sa oma jffs2 asuvatele failidele ligi /jffs kataloogist.


mbm at alt dot org, tõlge sys at bumpclub dot ee