Uporabniki se zelo hitro razvadimo. Če je naša uporabniška izkušnja dobra, pričakovanja s časom še rastejo. Od novejšega izdelka pričakujemo, da bo vsaj tako dobro deloval kot predhodnik, hkrati pa bo še boljši, hitrejši ... Vedno se to seveda ne zgodi. Del krivde lahko pripišemo tako proizvajalcem kot uporabnikom. Prvi dajejo izdelke na trg, še preden so do konca preizkušeni, in jih nato »krpajo« z najrazličnejšimi popravki, hkrati pa s svojo poslovno politiko ne vplivajo vedno najbolj pozitivno na razvoj izdelkov. Na drugi strani smo kupci/uporabniki, ki nas je »marketing« naučil, da ni nič več nemogoče, zato od novih modelov izdelkov pričakujemo še več, včasih morda celo preveč. Če se naša pričakovanja in predvidevanja na podlagi informacij, ki jih imamo, ne izidejo«, smo kljub vsem novostim in prednostim razočarani.

Pred časom smo si ogledali možnost nadgradnje Linksysovega usmerjevalnika WRT54GL (www.mojmikro.si/v_praksi/naredi_sam/nadgradnja_linksysovega_usmerjevalni...). Tovarniško nameščeno programsko opremo smo nadomestili z alternativno in pridobili funkcionalnosti, ki smo jih vajeni pri izdelkih precej višjih cenovnih razredov. Vse to je bilo mogoče, ker smo izkoristili določene »luknje« v sistemu in nadomestili tovarniško nameščen sistem (npr. VxWorks) z drugim (Linux), ali pa smo v okviru istega operacijskega sistema namestili drugo različico (npr. OpenWrt – http://wiki.openwrt.org ).

Nadgradnja pa je včasih lahko tudi problematična. Največja slabost je, da lahko pri postopku nadgradnje zaradi nepazljivosti/smole ali slabe priprave (nismo prebrali vseh opozoril glede na našo različico strojne opreme) zaidemo v položaj, ki utegne biti neprijeten. Kdo nam bo pomagal, če nimamo ustreznega znanja ali pripomočkov. V najboljšem primeru pride naprava med postopkom »nadgradnje« v neobičajno stanje, iz katerega ji je treba pomagati. Če imamo dovolj znanja, ne bo težav, seveda pa bomo v tem primeru (npr. odpiranje ohišja) vse skupaj začeli z mislijo »Zavihajmo rokave ….«, končali pa z »Adijo, garancija ...«, da o izgubljenih živcih in času sploh ne govorim. Seveda je končni rezultat lahko tudi slabši. Skoraj nov usmerjevalnik bo morda končal v vlogi običajnega zvezdišča (switch) za krajevno omrežje, za vse drugo pa bo neuporaben. Ali pa še to ne. Vsekakor pa je nadgradnja smiselna, če potrebujete tako pridobljene funkcionalnosti in jih nameravate uporabiti.

Tudi v okolju X86 je vmesnik enak, kot smo ga vajeni.

KAJ JE DD-WRT
Zaradi možnosti, preproste namestitve ter prijaznosti do uporabnika je zelo priljubljen DD-WRT (www.dd-wrt.com), ki smo ga prav tako že spoznali. DD-WRT je strojna programska oprema (firmware), ki temelji na Linuxu in ga lahko namestimo v različne tipe Linksysovih usmerjevalnikov (npr. WRT54G, WRT54GS, WRT54 GL …), pa tudi v nekatere izdelke drugih proizvajalcev. Seznam podprtih modelov skupaj z morebitnimi omejitvami posameznega modela lahko preverimo na strani www.dd-wrt.com/wiki/index.php/Supported_Devices. Ta tabela nas spomni na skorajda smešen nivo strojne opreme, ki smo ga v svetu osebnih računalnikov skorajda že pozabili. Nič neobičajnega niso procesor z nekaj 100 MHz, 32 MB delovnega pomnilnika in 16 MB bliskovnega pomnilnika, ki mu je namenjena vlogi diska. Pravzaprav sodijo tako opremljeni modeli med razkošnejše. DD-WRT je na voljo v več različicah, med katerimi se uporabnik odloči na podlagi strojne opreme (kaj ta omogoča) in svojih potreb. Glede na vključene funkcionalnosti so različice Micro (usmerjevalniki z 2 MB bliskovnega pomnilnika), Mini, Standard, VoIP, VPN, Mega (za usmerjevalnike z 8+ MB bliskovnega pomnilnika). Razlike med posameznimi različicami si lahko ogledate na spletni strani http://en.wikipedia.org/wiki/DD-WRT.

informacije o sistemu - le majhen del diska je izkoriščen

DD-WRT lahko uporabniki brezplačno prenesejo z domače spletne strani. Prav v zvezi z različicami pa se postavlja precej, če že ne z drugim, vsaj z moralo povezanih vprašanj (npr. http://xwrt.blogspot.com/2007/02/dd-wrt-continues-to-exploit-free-open.h...). Razlog je, da je od julija leta 2006 na voljo tudi različica, ki ni odprtokodna, kar naj ne bilo v skladu z licenco GPL. Kakorkoli že, pregled po imenikih s slikami diska (image) programske opreme za trenutno aktualno različico v24 nas pripelje tudi do imenika X86. V njem lahko najdemo različico DD-WRT, ki je namenjena namestitvi v osebni računalnik. To, da bi namensko programsko opremo lahko uporabili tudi v osebnem računalniku, je sicer logično (Linux), ni pa ravno običajno. Če primerjamo strojno opremo, ki je navedena v tabeli podprtih modelov, bomo ugotovili, da bomo lahko brez težav uporabili tudi odslužen star računalnik. Ker imam s starejšo različico v usmerjevalniku WRT54GL dobre izkušnje, se je zdela odločitev o namestitvi v osebni računalnik smiselna. Tako bi lahko odpravil problem vmesnika USB (ki ga WRT54GL nima), omejitev bliskovnega pomnilnika (namesto njega bi uporabil trdi disk), hitrejša bosta tudi procesor in delovni pomnilnik. Vmesnika WLAN na WRT54GL ne uporabljam (uporabo WLAN-a z X86 podpira plačljiva različica DD-WRT), zato bo računalniku treba dodati le eno omrežno kartico.

dostop preko ukazne vrstice omogoči dostop do particije 3

KO NE GRE VSE TAKO, KOT JE TREBA
V starejšem računalniku s procesorjem Pentium II (200 MHz) zaradi kančka lenobe nismo odvzeli delovnega pomnilnika, zato je v ostal na skupaj (384 MB) MB. Uporabili smo starejši Samsungov disk (2 GB), na katerem je bila pred časom nameščena ena od distribucij Linuxa. Prvo vprašanje, ki se je zastavilo samo, je bilo, kako se lotiti namestitve? Na spletni lahko najdemo več datotek. Glede datoteke (slike), namenjene virtualizaciji v okolju VMware, ter datotek, namenjenih nadgradnji, ni bilo dileme (dd-wrt-webupgrade_public ...). Preostali sta še dve, in sicer dd-wrt_public_vga.image ter dd-wrt_public_serial.image. V skladu z informacijami na spletnih strani smo izbrali prvo, druga pa je zanimiva, kadar želimo do usmerjevalnika zagotoviti dostop prek zaporedne povezave.

V skladu z navodili poskusim z namestitvijo v Linuxu. Zaradi boljšega občutka je bil izveden zagon sistema s CD-ja (starejši BIOS, zato matična plošča podpira uporabo USB-naprave, ne pa tudi zagona sistema z nje), na katerem je bila distribucija DSL (Damm Small Linux http://damnsmalllinux.org/). V skladu z navodili sem se prijavil v sistem kot administrator (sudo su). Sledilo je preverjanje, ali je bil izveden priklop diska v sistem (ukaz mount). Prek USB- ključka (mount /dev/sda1 /mnt/USB, cp …) je bila na disk prenesena datoteka dd-wrt_public_vga.image. Prenos datoteke oziroma slike na disk se izvede z ukazom dd. Celotna vrstica, ki poskrbi za prenos, je videti takole:

dd if=dd-wrt_public_vga.image of=/dev/hda

Pri izvajanju tega ukaza moramo biti zelo pazljivi, da ne naredimo napake. Izbrati moramo izberemo pravi disk, saj lahko sicer sliko prepišemo na napačno mesto in izgubimo dragocene podatke. Lahko bi si pomagali tudi z drugim računalnikom. Trdi disk bi vstavili na prvi položaj sekundarnega krmilnika in prenesli nanj sliko s podobnim ukazom (dd if=dd-wrt_public_vga.image of=/dev/hdc), disk pa bi po zaustavitvi sistema prenesli v drug računalnik, v katerem bo disk deloval.

Vse, kar je treba še storiti, je vnovični zagon sistema, ki se bo po novem naložil kot DD-WRT. A žal temu ni bilo čisto tako – če verjamete ali ne, zadeva tudi po nekaj poskusih ni delovala. V času, ko bi se moral sistem zagnati, je sporočil, da particija na trdem disku ni aktivna.

priklop zunanjega diska

DOS IN OKNA
Ker disk že lep čas ni bil v delovanju, sem se odločil za drugo možnost, ki je predvidevala namestitev v ukazni vrstici okenskega okolja (Command Prompt oziroma DOS, ki ga pokličemo z ukazom cmd). Po zagonu sistema z diskete sem se odločil za radikalnejše dejavnosti. Najprej sem z ukazom fdisk preveril stanje particij na disku. Program je prikazal particije (ne)DOS, kar je logično, saj tako prepozna različne tipe Linuxovih particij. Vse particije sem ročno izbrisal, za vsak primer pa izvedel še ukaz fdisk /MBR. Slike naj bi v drugem scenariju prenesel z ukazom physdiskwrite (http://m0n0.ch/wall/downloads/physdiskwrite-0.5.1.zip ) ali podobnim. A glej ga zlomka, program, ki deluje v dosovskem oknu, ne deluje v okolju DOS-a. Sledila je začasna namestitev različice Windows, ki mi je omogočila zagon programa physdiskwrite (physdiskwrite –u ime_datoteke) s parametrom –u, ki mu sledi ime datoteke (dd-wrt_public_vga.image). Globoko sem bil prepričan, da bo Microsoftov sistem ob namestitvi neusmiljeno počistil z Linuxovo »navlako«, povezano z zagonskimi težavami (GRUB) in po prenosu slike na disk ter ponovnem zagonu ne bo več težav. Napaka! Zadeva se je pri zagonu ponovila. Še enkrat sem ponovil vajo, izbrisal particije, zagonski sektor, sistem namestil na novo, pazljivo izvedel prenos datoteke ... rezultat – enako kot prej, sporočilo o neaktivnosti particije. Windoss očitno niso v popolnosti izbrisala GRUB-ov MBR. Vrnil sem se v Linux, ponovno izvedel fdisk /dev/hda (možnost »d« in »w«) ter ročno določil prvo particijo kot zagonsko. Ob ponovnem zagonu pa ...

DD-wrt X86 v okolju VmWare

EUREKA!
Sistem se je končno postavil. Po znanem scenariju zagona Linuxa sem čakal, da se pokaže prijavno okno (login). To se pojavi šele takrat, ko pritisnemo tipko Enter. Ker eden od omrežnih ethernetnih vmesnikov še ni bil vključen, je sistem ves čas obveščal o »napaki«, kar je nekoliko moteče. Do svojega usmerjevalnika lahko dostopamo tako, kot bi do katerega koli usmerjevalnika z nameščenim programom DD-WRT. Privzeti IP-naslov je 192.168.1.1, ki ga je treba vnesti v naslov spletnega brskalnika (http://192.168.1.1). Tudi v tem primeru je privzeto uporabniško ime root, geslo pa admin.

Po uspešni prijavi nas pričaka večina možnosti, ki smo jih vajeni. Skok po menijih pa hitro pokaže, da niso podprte vse možnosti, ki smo jih vajeni iz »routerskih« različic. Ustrezna količina pomnilnika je bila zaznana (376 MB), prav tako količina, ki je na voljo. Prvo neprijetno presenečenje je bilo pri disku neaktivnost datotečnega sistema JFFS (Journalling Flash File System) v meniju Services oziroma njegove alternative – trdega diska. Od praktično 2 GB prostora na disku je sistem zaznal skromnih 14,4 MB. Vse drugo pa je bilo za sistem nevidno. Ker grafični vmesnik pač pokaže tisto, kar želi razvijalec, aktiviram možnost SSH in se v sistem prijavim prek odjemalca (z odjemalcem PuTTy). Vnesemo te ukaze:

nvram set jffs_mounted=1
nvram set enable_jffs2=1
nvram set sys_enable_jffs2=1
nvram set clean_jffs2=1
nvram set sys_clean_jffs2=1
nvram commit
reboot

Po ponovnem zagonu sistema bo vidna možnost uporabe sistema JFFS tudi v grafičnem vmesniku. Nikakor pa se ni bilo mogoče otresti misli na nevidni del trdega diska in kako izkoristiti še tistega, ki ga sistem ne vidi. Zato poskusimo z ukazom df –h, ki nam da to informacijo:

Filesystem.....................Size.....Used.....Available.......Use%...........Mounted on
rootfs.............................7.3M....7.3M.........0..............100%..................../
/dev/root........................7.3M....7.3M.........0..............100%..................../
/dev/discs/disc0/part3....14.8M...48.0k......14.0M.............0%............./usr/local

Iščemo torej particijo part3, ki je priključena v točko /usr/local. Preverimo še, kako je z lastnostmi. Ukaz mount nam izpiše.

rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro)
none on /dev type devfs (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
ramfs on /tmp type ramfs (rw)
devpts on /dev/pts type devpts (rw)
/dev/discs/disc0/part3 on /usr/local type ext2 (ro)

Zadnja vrstica pove, da je tretja particija, kakršna je, »neuporabna«, saj omogoča le branje, ne pa tudi pisanje. To lahko popravimo z ukazom:

mount -o rw,remount /dev/discs/disc0/part3 /usr/local

Učinek preverimo s ponovnim ukazom mount, ki nam tokrat v zadnji vrstici izpiše:

/dev/discs/disc0/part3 on /usr/local type ext2 (rw)

Particija bo zdaj uporabna tudi za pisanje, učinek pa bo trajal do ponovnega zagona računalnika (reboot, reset). Takrat bomo le ponovili ukaz. Če želimo iz kakršnega koli razloga preprečiti pisanje, vnesemo ukaz:

mount -o ro,remount /dev/discs/disc0/part3 /usr/local

Ta nam vrne lastnosti particije v prvotno stanje.

možnost priklopa zunanjega diska preko omrežja - CIFS

OSTAJA PA VPRAŠANJE …
Pustiti del diska neizkoriščen ali ne? Pri ročni spremembi velikosti particije (npr. Gparted – http://gparted.sourceforge.net/) izgubimo možnost osveževanja/nadgradnje prek spletnega vmesnika (webupdate). Poleg tega lahko takšni posegi povzročijo določene skrite napake, ki so vidne v obliki različnih težav oziroma nedelovanja. Izkazalo se je, da druga možnost ne pride v poštev, saj različica DD-WRT X86 ne podpira uporabe vmesnika USB (npr. razširitev z uporabo USB- ključka ali zunanjega diska). Ostane še tretja možnost, ko namesto diska uporabimo IDE/CF-adapter (ali manjši disk), ki bo prevzel vlogo dosedanjega diska, sedanji večji disk pa bo njegova razširitev. Priklop particije na disku bomo izvedli v imenik /tmp (pravice za branje in pisanje). V njem lahko ustvarimo imenik, v katerega bomo izvedli priklop (npr. HDD). To storimo z ukazom (v imeniku /tmp) mkdir HDD. Enoto najdemo z ukazom ls -la /dev/discs/disc0/. Na koncu izvedemo še priklop:

mount -o rw /dev/discs/disc0/particija_diska /tmp/HDD

Ko imamo možnost uporabe zunanjega pogona, lahko prek omrežja uporabljamo še vedno CIFS oziroma povezavo prek datotečnega sistema Common Internet File System (Administration – Management – CIFS Automount). Ko storitev omogočimo, vnesemo le še IP-naslov strežnika z imenikom, ki je na njem dan v skupno rabo ter uporabniško ime ter geslo. V programu DD-WRT pa bo ta imenik (ali disk) viden »priklopljen« pod imenikom /tmp/smbshare. Edina slabost tega načina je, da mora biti računalnik, ki daje imenik v skupno rabo, ves čas vključen (medtem ko imamo v računalniku z DD-WRT-jem tega neizkoriščenega).

ZA KONEC
Različica V24 prinaša v splošnem kar nekaj novosti. Podprta je uporaba strojne opreme x86, ki žal ne izkorišča vseh možnosti strojne opreme (trdi disk, uporaba vmesnika USB). V praksi se delovanje v okolju VMware obnese v skladu s pričakovanji, nekaj več spretnosti zahteva postavitev pri enem fizičnem vmesniku (več o tem v kateri od naslednjih številk Mojega mikra) in je uporabno predvsem za potrebe testiranja. Navidezno omrežje za usmerjevalnikom lahko postavimo iz virtualnih računalnikov. Če preverimo delovanje navideznega usmerjevalnika, imajo dostop do preostalega omrežja, dokler je navidezni DD-WRT delujoč, v času izklopa ali ponovnega zagona pa je komunikacija s preostalim delom omrežja onemogočena.

V različici V24 trenutno tudi ni podprta uporaba paketov IPKG (Itsy Package Management System – http://en.wikipedia.org/wiki/Ipkg), kar vsekakor zasluži grajo. Dobrodošla pa je razširitev obstoječih funkcionalnosti (Up/Downstream QoS) in vpeljava novih (npr. EoIP - Ethernet Over IP Tunneling), ki jih do te različice ni bilo. Namestitev DD-WRT v okolje osebnega računalnika je lahko zanimiva za marsikoga. Morda vam ne diši modifikacija komercialnega izdelka ali pa šele iščete pravo »platformo« in želite izvesti »emulacijo«. Ostane pa občutek o solidnem delovanju z grenkim priokusom, da bi lahko bila zadeva tudi bolje/drugače narejena. Morda bo še najbolj pošteno, da se vrnem na svoje uvodne misli – morda so bila le pričakovanja prevelika.


Zanimivosti in nasveti
• Namestitev programa DD-WRT v osebni računalnik je zanimiva predvsem za uporabnike, ki ne potrebujejo podpore brezžičnemu omrežju (WLAN). Brezplačna različica te podpore nima.
• Strojne zahteve za postavitev so resnično minimalne. Že starejši računalnik lahko hitro preseže strojne zmogljivosti komercialnih modelov.
• Grafični vmesnik pokaže pač tisto, kar je definirano. Včasih je zato skok v ukazno vrstico nujen. To lahko storimo na več načinov (lokalno ali preko omrežja).
• Tudi pri programu DD-WRT ne moremo mimo vse bolj priljubljene virtualizacije. Če smo bili v preteklosti priča virtualizaciji strežnikov, se vse pogosteje srečujemo tudi z virtualizacijo omrežne opreme. Med programskimi različicami DD-WRT najdemo tudi paket, namenjen za uporabo v virtualizacijskem okolju VMware.
• DD-WRT ni edini, ki prenaša programsko opremo, ki smo je vajeni v usmerjevalnikih, v osebne računalnike. Podoben prijem so ubrali tudi nekateri drugi, npr. OpenWRT (http://wiki.openwrt.org/SoekrisPort )

Moj mikro, Januar 2009 | Marko Koblar