Changes between Version 42 and Version 43 of WikiStart


Ignore:
Timestamp:
Mar 7, 2014, 1:43:59 AM (10 years ago)
Author:
walter
Comment:

edit opzet openwrt basis functionaliteiten

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v42 v43  
    1212* [http://web.archive.org/web/20041012203224/http://www.senao.com/english/product/product_wireless01_outdoor.asp?pgtl=Wireless&tp1id=02&tp2id=03 Senao WIFI]
    1313
    14 Het doel van dit project is voor de Soekris-boarden en bijbehorende hardware, startklare images / uitgangssituaties te maken/beschrijven zodat snel, makkelijk en uitgebreid geexperimenteerd kan worden juist door linux-nieuwkomers en enthousiastelingen. Met de openwrt-packetmanager is met bijna hetzelfde gemak als op een linux-desktop een uitgebreide router/server/node te bouwen door (bijna ;-) iedereen! Met de grote hoeveelheid beschikbare hardware-configuraties is de wens om een onafhankelijk testnetwerk te bouwen, zodat met OLSR / MESH etc geexperimenteerd kan worden.
    15 
    16 De opzet van deze pagina is eerst hard- en software inregelen om openwrt uberhaupt ;-) operatief te krijgen op een soekris board en functionerend als een eenvoudige huis-tuin-en-keuken router/accesspoint. Wanneer duidelijk is hoe je het apparaat kunt benaderen en inregelen via cli (telnet/ssh) of gui (webinterface), hostname, tijd inregelen en interfaces ingesteld kunnen worden (bedraad en draadloos), binnen en buiten wereld WAN-LAN concept begrijpen, porten forwarden, packages installeren, dan gaan we kijken hoe we een zelfstandige Wireless-Leiden-node kunnen realiseren met captive portal en proxy. Vervolgens meerdere van deze losstaande soekris Wireless Leiden routers onderling met elkaar kunnen laten communiceren zoals nodes op een Wireless-Leiden-netwerk kortom het concept routing. Dit uitbouwen zodat je de uplink/gateway verbindingen van het ene soekrisboard kunt delen met een ander soekrisboard dat zelf niet een directe uplink aan zijn wan-interface heeft. Nadat er inzicht in static routing is wil ik dynamisch routing met behulp van een routing-protocol uitzoeken, dns-implementatie en uiteindelijk ipv6.
     14Het doel van dit project is voor de Soekris-boarden en bijbehorende hardware, startklare images / uitgangssituaties te maken/beschrijven zodat snel, makkelijk en uitgebreid geexperimenteerd kan worden juist door linux-nieuwkomers en enthousiastelingen met het bouwen van een W.L. achtig community netwerk (from scratch).
     15
     16Met de openwrt-packetmanager is met hetzelfde gemak als op een linux-desktop een uitgebreide router/server/node/netwerk te bouwen door (bijna ;-) iedereen! Met de grote hoeveelheid beschikbare hardware-configuraties is er een wens om een onafhankelijk testnetwerk te bouwen, zodat met OLSR / MESH / etc / routing protocolen geexperimenteerd kan worden.
     17
     18De keuze voor openwrt+soekris als uitgangssituatie voor deze howto is omdat dit stapsgewijs en toegankelijk, het binnen W.L. netwerk gebruikte cruciale basis component "freebsd+alixboard" te benaderen en beschikbaar maakt! Het W.L. netwerk bestaat in een oog aanschouw uit een zo'n 4 bouwstenen die je op enkele onderdelen na kant en klaar kan kopen/gratis zijn, maar nog wel op juiste wijze geconfigureerd moeten worden:
     19
     20* utp netwerk kabel (outdoor,shielded,uvproof)
     21* wireless to ethernet bridges voor "interlinks" of "accesspoints" (UBNT nano bullets/bridges/stations)
     22* alixboard+freebsd (node kasten bevatten daarnaast POE verdelers/switches antenne aansluitingen/etc)
     23* LV-routed+IPplan (i.c.m organisatie en gekoppelde ontwikkel en beheer structuren)
     24
     25De eerste bouwsteen lijkt bijna een grap, maar mag niet onderschat worden het is wellicht wel aardig om een keer uit de boekhouding het aantal ingekochte meters utp kabel voor draadloze verbindingen in beeld te brengen, dit tegenover de draadloze afstanden die overbrugt zijn! De tweede bouwsteen ubnt nano bridges, apparatuur dat Linux gebasseerd is, makkelijk is te configureren/resetten en zonder al te veel knowhow door velen opgepikt kan worden. De derde bouwesteen is deels gekoppeld aan de vierde, maar mag je qua functionaliteit nog steeds zien als een maakbaar/vervangbaar kastje. De vierde, tevens laatste bouwsteen is eigenlijk de kern van de netwerk functionaliteit namelijk routing en wie krijgt welk ip en hoe loopt de routing als node x uitvalt?
     26
     27De opzet van deze pagina is vooral de derde bouwsteen en mogelijk de vierdere bouwsteen inzichtelijk te maken. Dit door eerst hard- en software inregelen om openwrt uberhaupt ;-) operatief te krijgen op een soekris board en functionerend als een eenvoudige huis-tuin-en-keuken router/accesspoint. Wanneer inzichtelijk/duidelijk is hoe je het apparaat kunt benaderen en inregelen via netwerk/serial-console cli (telnet/ssh) of gui (webinterface), hostname, tijd inregelen en interfaces ingesteld kunnen worden (bedraad en draadloos), binnen en buiten wereld WAN-LAN concept begrijpen, porten forwarden, packages installeren, dan gaan we als tweede fase kijken hoe we een soort zelfstandige Wireless-Leiden achtige node functionaliteiten kunnen geven met captive portal en proxy. Vervolgens meerdere van deze losstaande soekris Wireless Leiden routers onderling met elkaar kunnen laten communiceren zoals nodes op een Wireless-Leiden-netwerk kortom het concept routing. Dit uitbouwen zodat je de uplink/gateway verbindingen van het ene soekrisboard kunt delen met een ander soekrisboard dat zelf niet een directe uplink aan zijn wan-interface heeft. Nadat er inzicht in static routing is wil ik dynamisch routing met behulp van een routing-protocol uitzoeken, vervolgens iets met dns-implementatie en uiteindelijk ipv6,beheer/monitoring?
     28
     29De stijl opzet is voornamelijk hele lange "tekst geschreven" blokken wat je zeker niet direct of stipt als sturend of stappenplan moet opvatten, maar enkel als begeleiding in terminologie en mindset iets waardoor je gerust heen kan skimmen opzoek naar de essentie(als die er is). Daadwerkende instruerende stappen zijn beknopt in "codestijl geschreven" blokken opgemaakt het enige waar je je daar van bewust moet zijn (of die bewustwording moet nog even ontstaan) is dat sommige commando's voer je uit in de shell van "client pc/laptop" en sommige in die van de openwrt shell die draait op "de soekris zelf"! Als niet ingewijd persoon kan dit zeer verwarrend overkomen, ik zal trachten de twee shells iedere keer aan tegeven waar je nou eigenlijk bezig bent.
     30
     31Als benodigheid word er vanuit gegaan dat je de stappen van de client pc/laptop in een shell uitvoert bijvoorbeeld in de terminal van Ubuntu 12.04 of hoger, in Mac OSX met de Terminal werkt waarschijnlijk ook. De Windows mensen kunnen beter Oracle Virtualbox installeren en daarin ubuntu 12.04 installeren en vanuit dat OS de boel verkennen. '' Onder Windows kan er via het programma putty een serial/ssh shell mogelijkheid worden toegevoegd, op een enkele handeling na bijvoorbeeld soekris firmware upgraden en het dd-en van de x86 generieke openwrt image naar de compactflash kaart zal je met een Windows alternatief (raw hdd copy etc) geimproviseerd moeten worden. '' 
    1732
    1833== OpenWRT op Soekris 45xx/48xx boards ==
    19 De soekris boarden bezitten een afwijkende 486/586 gebasseerde processor, dit komt overeen met de x86 processor/architectuur die in vele huis tuin en keuken computers is terug te vinden en waar de meeste gebruikers het OS (Operating System) Windows op draaien. Kort gezegd gedraagd een soekris board zich tijdens functioneren, installeren en repareren als een desktop pc. Met al die fases hebben niet alleen de meeste geeks al ervaring maar helaas ook veel thuis gebruikers! Een embedded systeem zoals de soekris is niet veel moeilijker te configureren dan de meesten denken.
     34De soekris boarden bezitten een afwijkende 486/586 gebasseerde processor, dit komt overeen met de x86 processor/architectuur die in vele huis tuin en keuken computers is terug te vinden en waar de meeste gebruikers het OS (Operating System) Windows op draaien. Kort gezegd gedraagd een soekris board zich tijdens functioneren, installeren en repareren als een desktop pc. Met al die fases hebben niet alleen de meeste geeks al ervaring maar helaas ook veel thuis gebruikers! Een embedded systeem zoals de soekris is niet veel moeilijker startend en of geconfigureerd te krijgen dan de meesten denken.
    2035
    2136De reden dat we dit "x86 architectuur" willen weten is dat de soekris boarden in tegenstelling tot de meeste Windows PC's, zonder OS geleverd worden en we er zelf een OS op kunnen/moeten installeren voordat deze gebruikt kan worden. De software instructie set van het OS dat je wil installeren/gebruiken moet matchen met die van de architectuur waar die op komt te functioneren. Dit houd in dat een x86 versie van OpenWrt prima functioneerd op een x86 gebaseerd soekris board of desktop pc. Maar niet op een mips/arm architectuur gebaseerde Linksys of Ubiquity router. De rede dat het OS Windows vroeger niet makkelijk tot niet op een Apple Mac was te installeren en te gebruiken kwam omdat het Windows OS voor de x86 architectuur geschreven was, terwijl Apple voor de Mac hardware de Motorola m86k en PowerPC architectuur gebruikte. Vlak nadat Apple in 2006 in Intel x86 gebaseerde Mac uitbracht, duurde het niet lang voordat daar ook (probleemloos) Windows op was te draaien.
    2237
    23 Netals een desktop pc zonder Windows moet je een "installatie" uitvoeren van het OS dat uren kan duren voordat de machine weer in een werkbare toestand is, of je kan een "image" terugplaatsen van een OS dat veel tijd kan schelen. Dit laatste kun je vaak op afstand zoals via het netwerk of via een andere computer doen die een kant en klare OS "image" bestand al bevat en deze direct naar de harddisk/SSD/CF/SDCARD kan schrijven voor de computer die hem nodig heeft.
     38Netals een desktop pc zonder Windows moet je een "installatie" uitvoeren van het OS dat uren kan duren voordat de machine weer in een werkbare toestand is, of je kan een "image" terugplaatsen van een OS dat veel tijd kan schelen. Een "image" is vaak een enkel bestand waar het hele OS met bootloader/partitielayout/config inzit, denk aan een ISO bestand voor een CD. Een image kun je vaak op afstand zoals via het netwerk of via een andere computer die het "image" bestand al bevat en deze direct naar de harddisk/SSD/CF/SDCARD kan schrijven voor de computer die hem nodig heeft.
    2439
    2540Omdat de soekris machines niet over een toetsenbord/muis en vga aansluiting beschikken maar wel over verwisselbare CF-card (Compact Flash Card) als opslag kan relatief simpel via een andere PC/Notebook met card-reader een x86 gebasseerde OS "image" naar de CF-card geschreven worden en daarna weer worden terug geplaatst in de soerkis.
    2641
    27 Als alles volgens een normale PC bootstrap in orde is op de soekris waaronder POST(power on self test) / correcte BIOS instellingen en juiste opstart medium harddisk/CD-card/CD-rom/Network geselecteerd heb kun je verwachten dat je na het plaatsen van een CF-card met juiste OS image direct een werkende basis router heb!
    28 
    29 === software ===
    30 Zowel kant en klare x86 architectuur images van het Operating Systeem OpenWRT uit de serie[http://downloads.openwrt.org/backfire/10.03.1/x86_generic/ backfire 10.03.1] als [http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/ attitude adjustment 12.09] functioneren op de soekris 4501, 4521, 4801 en 4826 boarden. De gewenste type images zijn "combined-squashfs" images en "combined-extN" images. De eerste term "combined" staat voor een image met daarin zowel de boot partitie inclusief bootloader en kernel en root partitie voor de rest van het OS. De tweede term "squashfs/extfs" staat voor het type Filesystem dat zeer karakteristiek voor de bepaalde fnctionaliteiten. In het geval van squashfs word grotendeels in het RAM de wijzigingen doorvoert en alleen enkele wijzigingen gecomprimeerd naar de disk terugschrijven via JFFS2. Het voordeel hiervan is, dat deze versie de compact-flash card spaart ("wear level protection"),failsafe "factory reset" mogelijk maakt en deze image resistenter is tegen onverwachte power outages. Prima optie voor experimenteren! De tweede optie "extN" schrijft alles direct op de geheugenkaart/disk, werkt sneller en laat meer ram over, echter een simpele failsafe restore/reset is dan niet mogelijk en power outages kunnen beschadigingen op het filesystem achterlaten waardoor het gehele systeem zich zelf vaak niet meer operatief kan krijgen.
    31 
    32 Op de OpenWRT download page vind je naast verschillende releases van OpenWRT 12.09 of 10.03.1 respectievelijk met de naam Attitude Adjustment of Backfire, al die verwijzingen naar andere processor architecturen waar we het eerder over hadden zoals ppc arm mips en nog veel meer! Allemaal direct te downloaden, klein en vaak klaar voor gebruik voor betreffende exotisch systeem. De grote verscheidenheid en het beschikbaar hebben van kleine generieke OS images is een groot pluspunt van openwrt en tevens andere linux gebasseerde distributies zoals debian/ubuntu, waardoor gemakkelijk ergens kan beginnen.
    33 
    34 Houdt er overigens wel rekening mee dat de generieke openwrt-images zo zijn aangepast dat ze op de meeste x86 systemen kunnen werken, dat zijn zowel systemen met toetsenbord/muis/vga-monitor (desktops/laptops) of systemen die serialport( als vervanging van KB/VGA) of machines zonder beide en enkel een ethernet(netwerk) aansluiting.
    35 
    36 Enkel werken starten de "generieke" openwrt images van de OpenWrt website op een Soekris board uit de 45xx 48xx serie, alleen wanneer de juiste comBIOS optie(namelijk ConMute=Enabled) actief is in desbetreffende soerkis (eenmalig actie) of wanneer de soerkis een directe actieve serial-console-verbinding met een draaiende PC heeft tijdens het booten van openwrt op de soekris (sic). Door het flexibele karakter van OpenWRT zijn er meerdere mogelijkheden als je niet aan deze voorwaarden kan/wil voldoen en toch direct met een generiek openwrt image aan de gang wil! Hoe dit opgelost kan worden en of dit in jouw situatie opgelost hoeft te worden kun verderop lezen bij het hoofdstukje comBIOS en start klare image.
     42Als "alles" volgens een normale PC bootstrap in orde is op de soekris, waaronder POST(power on self test) / correcte BIOS instellingen met betrekking tot juiste opstart medium harddisk/CF-card/CD/DVD-rom/Network heb kun je verwachten dat je na het plaatsen van een CF-card met het juiste OS image direct een werkende basis router met openwrt heb!
     43
     44=== images ===
     45Zowel kant en klare x86 architectuur images van het Operating Systeem OpenWRT uit de serie[http://downloads.openwrt.org/backfire/10.03.1/x86_generic/ backfire 10.03.1] als [http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/ attitude adjustment 12.09] functioneren op de soekris 4501, 4521, 4801 en 4826 boarden.
     46
     47De gewenste type images zijn "combined-squashfs" images en "combined-extN" images. De eerste term "combined" staat voor een image met daarin zowel de boot partitie inclusief bootloader en kernel en root partitie voor de rest van het OS. De tweede term "squashfs/extN" staat voor het type Filesystem dat zeer bepalend is voor de bepaalde functionaliteiten. In het geval van "squashfs" word grotendeels in het RAM de wijzigingen t.o.v. de squashfs doorgevoert en alleen enkele wijzigingen gecomprimeerd naar de disk terugschrijven op een stukje JFFS2. Het voordeel hiervan is, dat deze versie de schrijf acties op de compact-flash card spaart ("wear level protection"),failsafe "factory reset" mogelijk maakt en deze image resistenter is tegen onverwachte power outages. Prima optie voor experimenteren! De tweede optie "extN" schrijft alles direct op de geheugenkaart/disk, werkt sneller en laat meer ram over, echter een simpele failsafe restore/reset is dan niet mogelijk en power outages kunnen beschadigingen op het filesystem achterlaten waardoor het gehele systeem zich zelf vaak niet meer operatief kan krijgen.
     48
     49Op de OpenWRT download page vind je naast verschillende releases van OpenWRT 12.09 of 10.03.1 respectievelijk met de naam Attitude Adjustment of Backfire, al die verwijzingen naar andere processor architecturen waar we het eerder over hadden zoals ppc (powerpc) arm(ar71xx) mips(brcm-2.4) en nog veel meer! Allemaal direct te downloaden, klein en klaar voor gebruik voor betreffend exotisch systeem dat zich op de markt bevind. De grote verscheidenheid en het beschikbaar hebben van kleine generieke OS images is een groot pluspunt van openwrt en tevens andere linux gebasseerde distributies zoals debian/ubuntu, hierdoor  kan er makkelijk ergens begonnen worden en snel resultaat worden geboekt, onderhouden en continueren is een andere sport!
     50
     51Houdt er overigens wel rekening mee dat de generieke openwrt-images zo zijn aangepast dat ze op de meeste x86 systemen kunnen werken, dat zijn zowel systemen met toetsenbord/muis/vga-monitor (desktops/laptops) of systemen die serialport( als vervanging van KB/VGA) of machines zonder beide en enkel een ethernet(netwerk) aansluiting met ssh/telnet/webinterface toegang.
     52
     53Enkel werken starten de "x86 generieke" openwrt images van de OpenWrt website op een Soekris board uit de 45xx 48xx serie, alleen wanneer de juiste comBIOS optie(namelijk ConMute=Enabled) actief is in desbetreffende soerkis (eenmalig actie) of wanneer de soerkis een directe actieve serial-console-verbinding met een draaiende PC heeft tijdens het booten van openwrt op de soekris (sic). Door het flexibele karakter van OpenWRT zijn er meerdere mogelijkheden als je niet aan deze voorwaarden kan/wil voldoen en toch direct met een generiek openwrt image aan de gang wil! Hoe dit opgelost kan worden en of dit in jouw situatie opgelost hoeft te worden kun verderop lezen bij het hoofdstukje comBIOS en grub Bootloader.
    3754
    3855=== serial console ===
    39 Omdat de Soekris machines niet over een VGA en toetsenbord aansluiting beschikken en dat voor de meeste mensen een normale manier is om een computer in te regelen is een seriele console de enige manier om de boot-cyclus/strap met BIOS te beinvloeden op de soekris, vooral handig voor uitgebreid recoveren van systemen zonder CF-Kaart. Later kan via het netwerk met webinterface (gui) of telnet/ssh (cli) wanneer openwrt zelf al actief is deze verder ingeregeld worden waardoor de seriele verbinding niet nodig is. De kant en klare x86 images van openwrt hebben standaard hun seriele console werkend op 38400, zowel in de bootloader modus (grub) als de kernelbootlog en uiteindelijke systeem init console. Dit i.t.t. tot de standaard Soekris comBIOS seriele snelheid die vaak 19200 of zelfs 9600 baud is. Om tijdens de hele bootcyclus/bootstrap vanaf de soekris comBIOS, bootloader grub, kernel/boot tot aan de console van openwrt zelf een werkend beeld en toetsenbord aansturing te hebben is het van belang dat al deze fasen op dezelfde seriele settings staan, bij een pc wil je immers ook niet dat in bepaalde fasen van het opstarten het beeld verdwijnt of de toetsenbord invoer niet werkt. In het geval van de soekris met verkeerde instellingen verdwijnt het beeld meestal niet maar wordt onleesbaar en is verdere toetsenbord-interactie in een bepaalde fase uitgesloten.
     56Omdat de Soekris machines niet over een VGA en toetsenbord aansluiting beschikken en dat voor de meeste mensen een normale manier is om een computer in te regelen is een seriele console de enige manier om de boot-cyclus/strap met BIOS te beinvloeden op de soekris, vooral handig voor uitgebreid recoveren van systemen zonder CF-Kaart. Later kan via het netwerk met webinterface (gui) of telnet/ssh (cli) wanneer openwrt zelf al actief is deze verder ingeregeld worden waardoor de seriele console verbinding niet nodig is. De kant en klare x86 images van openwrt hebben standaard hun seriele console werkend op 38400, zowel in de bootloader modus (grub) als de kernelbootlog en uiteindelijke systeem init console. Dit i.t.t. tot de standaard Soekris comBIOS seriele snelheid die vaak 19200 of zelfs 9600 baud is. Om tijdens de hele bootcyclus/bootstrap vanaf de soekris comBIOS, bootloader grub, kernel/boot tot aan de console van openwrt zelf een werkend beeld en toetsenbord aansturing te hebben is het van belang dat al deze fasen op dezelfde seriele settings staan, bij een pc wil je immers ook niet dat in bepaalde fasen van het opstarten het beeld verdwijnt of de toetsenbord invoer niet werkt. In het geval van de soekris met verkeerde instellingen verdwijnt het beeld meestal niet maar wordt onleesbaar en is verdere toetsenbord-interactie in een bepaalde fase uitgesloten.
    4057
    4158Om serieel in te loggen op de soekris zullen we eerst "minicom" installeren en configureren op de client-PC waarmee we de soekris inregelen. Dit zal waarschijnlijk meerdere keren moeten om iedere afwijkende fase van het booten tot het os te kunnen bereiken. Handig is om eenmalig de seriele snelheid in de comBIOS van de soekris gelijk te zetten naar die van de bootloader/bootconsole en definitieve terminal.
     
    88105> boot F0 #will boot from network via PXE
    89106
     107> boot 80 #will boot first CompactFlash/OnboardFlash/Harddisk(IDE 2,5inch)
     108
     109> boot 81 #will boot first CompactFlash/OnboardFlash/Harddisk(IDE 2,5inch)
     110
    90111> reboot #will reboot the board
    91112}}}
     
    93114De laatste bios update beschikbaar voor deze serie soekris boarden is 1.33. Letop dat je wel de goede serie kiest 45xx of 48xx voor het upgraden! Tevens dat de upgrade van de 45xx boarden in 2 fases verloopt eerst een upgrade naar pre 1.20 daarna een post 1.20 upgrade. Updaten via minicom werkt met een omweg maar kan prima op een serial snelheid van 38400, mits je verbinding stabiel is (dus geen goedkope usb>serial dongle)! Je boot naar de comBIOS met CTRL-P en typt daar het commando "download -" met een dash! Vervolgens suspend je de sessie naar de background met "CTRL-a J" en dan in de foreground virtuele terminal ga je handmatig het bios bestand uit je homedir pushen met dit commando "sx -X /root/b45xx_133.bin > /dev/ttyS0 < /dev/ttyS0" na een kleine minuut krijg je de melding 608 blocks ok en kun je met het commando "fg" terug naar de minicom sessie waar je in comBIOS het commando "flashupdate" intypt en vervolgens "reboot". Het is handig dit vanuit de root user op je client machine te doen aangezien anders met pipes en redirect de boel niet lekker loopt!
    94115
    95 === tftp / pxe boot ===
    96 Wanneer je een soekris hebt zonder CF external storage zoals de 4826 met 64MB onboard flash, kun je wellicht een image op de soekris zetten als deze in zijn eigen voormalige OS is gestart en deze zich zelf domweg laat overschrijven van binnenuit. Je moet dan wel de enige kennis van FREEBSD hebben en een root wachtwoord om het kastje in te komen.
    97 
    98 Na inloggen op de op freebsd gebasseerde soekris, moet je de root disk als write mounten zodat je een nieuwe image bestand vanaf het netwerk kan inladen. Dit doe je door "mount -uw /". Met scp of wget/curl laad je een nieuwe image er naar toe. Met chmod 777 geef je iedereen toegang tot dit bestand. Vervolgens moet je in bsd met "sysctl" alsnog een bepaalde flag vrijgeven om het commando dd toegang tot de bootsector/schijven in gebruik te geven zodat deze hem mag overschrijven. sysctl -w kern.geom.debugflags=16 via command line of echo "kern.geom.debugflags: 0-> 16" >> /etc/sysctl.conf. Nu kun je met dd bs=64K het bestand in het geheugen zetten, wanneer die klaar direct stroom eraf en het kastje is geflashed.
    99 
    100 Wel zou de image dan met een hex editor moeten zijn bewerkt om de optie "console" uit het boot bestand te verwijderen, of de soekris zou de optie ConMute op enabled moeten hebben staan in comBIOS. Beide twijfelachtige procedures leiden waarschijnlijk tot een niet started systeem dus de laatste en beste permanente optie is de soekris via comBIOS inregelen en laten netwerkbooten in tftp / PXE in een livesessie van het OS en dan via het netwerk een image dd'en en vervolgens herstarten van de interne flash i.p.v. pxe.
    101 
    102 Voor het recoveren / installeren van openwrt op soekris boarden zonder CF-kaart moet naast een werkende serial console verbinding met comBIOS, een tftp / pxe / bootpserver worden opgezet. Via serial interface tussen PC en Soekris kan deze vanuit comBIOS geinstrueerd worden om met PXE op te starten. Wanneer de toetsen CTRL + P tijdens de comBIOS bootstrap worden ingetoetst kun je met het commando "boot F0" de soekris naar een PXE boot forceren.
    103 
    104 De tftp server die ik in debian heb opgezet heeft de volgende paketten en instellingen nodig: "isc-dhcp-server + tftp-hpa".
    105 
    106116=== grub bootloader ===
    107 De openwrt images gebruiken "grub" als bootloader wel de oude legacy versie, ondanks dat je het weinig of wellicht nooit zal zien in het gebruik van openwrt is het gemakkelijk om bootopties te wijzigen of toe tevoegen bijvoorbeeld memtest86+. Aangezien de oude soekris boarden een dubieus karakter hebben is het uitsluiten van onbetrouwbaar vastgesoldeerd ram geheugen het minste wat je kan doen dus memtest86+ draaien. Opmerking de soekris 4501 en 4526 (de oudere 486based boarden) werken niet met de laatste versie van memtest86+, zodra memtest86+ start herstart deze de hele computer. Versies die wel werken zijn 2.00-4.10 en kun je direct in binary laden van [http://www.memtest.org/download/ memtest86+ old binaries].
    108 
    109 Voeg de volgende optie toe aan het grub config bestand /boot/grub/menu.lst en je kan daarna eenvoudig de soekris op brak ram geheugen laten testen indien gewenst.
     117De openwrt images gebruiken "grub" als bootloader (wel de oude legacy versie), je zal grub weinig of wellicht nooit zien of hoeven aan te passen, mits OpenWRT tenminste kan booten (opstarten). Zo niet dan is het relatief makkelijk om in een enkel configuratie bestand "menu.lst" voor grub of het OS(openwrt of memtest86 payload) specifieke opties/parameters te wijzigen of toe tevoegen zodat deze wel kan booten.
     118
     119De OpenWRT x86 generieke images bestaan uit twee partities, de eerste is een bootpartitie met ext2 of ext4 filesystem dat direct op je client pc/laptop via de filebrowser is te benaderen wanneer je deze naar de CF-card heb geschreven. Vanaf daar kan je het grub configuratie bestand "/boot/grub/menu.lst" bijwerken (wellicht met sudo rechten).
     120
     121Het volgende probleem kan zich helaas voor doen met soekris bootende van de x86 generieke openwrt images van de openwrt website! Wanneer de soekris boot(opstart) onafhankelijk zonder seriele PC connectie (zoals je hem in het veld tegenkomt) en de comBIOS optie ConMute=Enabled ontbreekt, is de kans groot dat de soekris hangt tijdens de boot cyclus voor/op het grub-bootloader keuze menu. Hij wacht daar op een bevestiging om door te gaan met normal booten of recovery booten...
     122
     123Gelukkig is voor een soekrisboard dat niet aan de comBIOS voorwaarde kan/wil voldoen toch een oplossing om een generieke x86 image van de openwrt website te kunnen gebruiken! Wanneer op de eerste partitie van de CF-kaart/image uit de bootloader config file "/boot/grub/menu.cfg" de optie "console" verwijderd wordt, boot de Soekris probleemloos onafhankelijk zonder PC met serial-console! Voor de CF gebaseerde systemen (Soekris 4501/4521/4801) is deze grub optie op de CF-kaart zo te veranderen en kun je in enkele minuten al aan de slag volgende commando's. '' CF-kaartloze systemen zoals de 4826 met OnboardFlash(Solderd) kun je niet door eventjes de grub bootloader opties te tweaken direct voorzien van openwrt, maar zal via serial-console in comBIOS een PXE netwerk boot moeten doen. Zie PXE/tftp ''
     124
     125{{{
     126#download openwrt image to your client pc/laptop which has a CF card-reader
     127wget http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/openwrt-x86-generic-combined-squashfs.img
     128
     129#warning dd will overwrite anything and can destroy data in a inrecoverable fashion on your own PC!!!
     130#write bootable image directly to CF-CARD
     131sudo# dd if=openwrt-x86-generic-combined-squashfs.img of=/dev/sdX
     132
     133#if you don't have ConMute=Enabled in comBIOS nor have a serial
     134#cable active console with soekris follow the following 3 steps
     135
     136#0#re-insert CF-CARD in card-reader after writing openwrt image!
     137
     138#1#mount the first partition on the CF-CARD if re-insert didn't do it
     139sudo mkdir /mnt/booooot
     140sudo mount /dev/sdX1 /mnt/booooot #sdX is de device name of the CF-CARD
     141
     142#2#remove the word "console" from the file /boot/grub/menu.lst
     143#both at the top of the file related to grub itself
     144#and at the kernel boot parameters including "console=tty0"
     145sudo nano /mnt/booooot/boot/grub/menu.lst
     146
     147#3#unmount and eject CF-CARD
     148sudo umount /mnt/booooot
     149sudo rmdir /mnt/boooot
     150
     151#finish
     152place the CF-CARD in the soekris and boot!
     153}}}
     154
     155==== Memtest86 ====
     156Aangezien de oude soekris boarden een dubieus karakter hebben is het uitsluiten van onbetrouwbaar vastgesoldeerd ram geheugen het minste wat je kan doen dus memtest86+ draaien. Opmerking de soekris 4501 en 4526 (de oudere 486based boarden) werken niet met de laatste versie van memtest86+, zodra memtest86+ start herstart deze de hele computer. Versies die wel werken zijn 2.00-4.10 en kun je direct in binary laden van [http://www.memtest.org/download/ memtest86+ old binaries].
     157
     158Voeg de volgende optie toe aan het grub config bestand /boot/grub/menu.lst en kopier de juiste memtest86 binaries in de map /boot/ op de CF-CARD je kan daarna eenvoudig de soekris op brak ram geheugen laten testen, als je dit kiest vanuit het bootloader menu de eerst volgende keer dat je hem start!
    110159
    111160{{{
     
    116165}}}
    117166
    118 === wifi senao cards ===
     167=== self overwrite ===
     168Wanneer je een soekris hebt zonder CF external storage zoals de 4826 met 64MB onboard flash, maar die nog wel FreeBSD boot kun je wellicht een openwrt image op de soekris zetten als deze in zijn eigen voormalige OS is gestart en deze zich zelf domweg laat overschrijven van binnenuit. Je moet dan wel de enige kennis van FREEBSD hebben en een werkende ethernet/wifi toegang tot de shell en root wachtwoord om het oude node kastje te komen. Pluis eerst uit hoe je achter het ip-adres komt van de freebsd node image zodat je kan inloggen?
     169
     170Na inloggen op de op freebsd gebasseerde soekris, moet je de root disk als write mounten zodat je een nieuwe image bestand vanaf het netwerk kan inladen. Dit doe je door "mount -uw /". Met scp of wget/curl laad je een nieuwe image er naar toe. Met chmod 777 geef je iedereen toegang tot dit bestand. Vervolgens moet je in bsd met "sysctl" alsnog een bepaalde flag vrijgeven om het commando "dd" toegang tot de bootsector/schijven te geven zodat deze hem mag overschrijven. sysctl -w kern.geom.debugflags=16 via command line of echo "kern.geom.debugflags: 0-> 16" >> /etc/sysctl.conf. Nu kun je met dd bs=64K het bestand in het geheugen zetten, wanneer die klaar direct stroom eraf en het kastje is geflashed.
     171
     172Echter werkt deze goochel truc alleen als de openwrt image al met een hex editor is bewerkt om de optie "console" uit het boot bestand te verwijderen, of die soekris zou de optie ConMute=Enabled al moeten hebben in comBIOS. Deze twijfelachtige voorwaarden leiden waarschijnlijk tot een niet started systeem. De enige correcte oplossing voor de soekris 4826 is via comBIOS een PXE network boot te doen! 
     173
     174=== PXE BOOT client===
     175Voor het installeren/images van openwrt op soekris boarden zonder CF-kaart moet naast een werkende serial console verbinding met comBIOS, een pxe tftp+dhcp/bootpserver worden opgezet en er een ethernet link tussen de soekris als pxe client en pxe server aanwezig zijn. Via serial interface tussen PC en Soekris kan de soerkis vanuit comBIOS geinstrueerd worden om via PXE netwerk boot op te starten. Wanneer de toetsen CTRL + P tijdens de comBIOS bootstrap worden ingetoetst (snel genoeg binnen 5 seconden) kun je met het commando "show" de huidige PXE bootvoorwaarden aanwezig zijn:PCIROMS=Enabled en PXEBoot=Enabled. Wanneer dat niet zo is corrigeer deze, reboot en keer terug via CTRP + P. Je kan nu via "boot F0" de soekris naar een PXE boot forceren. Zie hoofdstuk aan het eind om "PXE-BOOT server" op te zetten.
     176
     177=== OpenWRT ===
     178In dit hoofdstuk zullen een paar basics worden besproken hoe je in openwrt (dat nu waarschijnlijk al wel op je soekris staat/draait als je CF-card voorbereid en geplaatst heb) moet inloggen, config bestanden aanpassen of terug plaatsen.
     179
     180Openwrt zelf heeft een unieke en uiterst volledig consistente doch gedecentraliseerde versnipperde handleiding, sorry kon het niet laten ;-) hebben meerdere OS's last van. Her en der zul je het een en ander bij elkaar kunnen/moeten googlen via wiki en forum pagina's op hun eigen website en voorbeelden van andermans blogs en creaties zoals deze hier of een mailinglist... Ze zijn er wel mee bezig... Na het laden van een generieke openwrt image, is net dat ene kleine beetje inzicht nodig om het werkend/sluitend in een bepaalde configuratie te krijgen waar het niet voor ontworpen is. Dit gaat op een van de 3 volgende manieren:
     181
     182* via de webinterface
     183* via de cli met programmeer taal uci
     184* direct in de cli met bestandjes editen
     185
     186Deze laatste heeft de voorkeur omdat die het meest consistent is en het makkelijker is om naar textbestanden te verwijzen in mappen dan knopjes in een webinterface, de webinterface word namelijk nogal gerestyled of is traag op apparaten met 16MB ram.
     187
     188==== Firstboot ====
     189Een generieke openwrt image is via serial-console of netwerk(ethernet) te bereiken op 192.168.1.1, stel je client pc/notebook in op dhcp verkrijgbaar ip-adres of op een static ip address om de openwrt router te benaderen.
     190
     191{{{
     192#login via telnet
     193telnet 192.168.1.1
     194
     195#or
     196
     197#login via minicom
     198sudo minicom
     199
     200#add default password requirment!
     201passwd
     202
     203#reboot so rootfs will certainly be writable next boot
     204reboot;exit
     205
     206#login again, but with ssh or minicom
     207ssh root@192.168.1.1
     208
     209#backup original config files
     210cp -r /etc/config /etc/config.ori
     211}}}
     212
     213==== Shell / CLI ====
     214Wanneer je in de openwrt router bent ingelogd via SSH, moet je je daar langzaam thuisvoelen in de shell omgeving. Dit lijkt op voor de leken op MSDOS, maar dan on steroids. Wanneer je je in de shell kan verplaatsen kun je je gaan richten op bepaalde configuratie bestanden en services binnen openwrt. Een korte introductie van de shell kan nog volgen wellicht plaatsen we dat onder algemeen omdat het veel overeenkomsten met shell van bsd en andere posix georienteerde OS's heeft...
     215
     216De volgende stap is tekst bestandjes editen met het programma "vi" wanneer je dat handigheidje doorkrijgt kun je daadwerkelijk je router gaan configureren.
     217
     218==== Router + NAT ====
     219Om OpenWRT als basis router te laten fungeren moet er naast een locale lan interface een wan interface opgegeven worden. Dit doe je door ....
     220
     221{{{
     222#add wan interface
     223vi /etc/config/network #see example code!
     224
     225#to make new settings active restart network interfaces!
     226/etc/init.d/network restart
     227
     228#connect the soekris via wan interface
     229#directly to the local router with internet!
     230}}}
     231
     232==== hostname =====
     233
     234==== ntp ====
     235
     236==== portforwarding ====
     237
     238==== opkg packet manager ====
     239
     240==== wifi senao cards ====
    119241Naast bedrade interfaces kunnen configureren is natuurlijk de draadloze interface opzetten ook een must. Door de generieke mini-pci aansluiting op de soekris en de uitgebreide ondersteuning van openwrt voor diverse wireless chipsets zijn er eindeloos veel wifi mogelijkheden. Oud doch bruikbaar zijn de senao wifi b only kaartjes van W.L., zelfs met WPA2 CCMP in AP mode, tenminste als je weet hoe. Het gaat hier om de volgende twee prism2.5 gebasseerde wifi kaarten:
    120242* pcmcia "senao SL-2511CD PLUS ext2 e200/f200"
     
    163285}}}
    164286
    165 === wifi atheros upgrade/patch ===
    166 Naast dat de prism gebaseerde senao kaarten een firmware upgrade nodig hadden om goed te functioneren, hebben de atheros kaarten bij levering eigenlijk een specifieke landcode nodig in de firmware, de default regdomain code 0x0 debugmode word in de nieuwe linux kernels opgemerkt als US waardoor channel 12-13 op de 2,4ghz en een aantal kanalen op de 5ghz wegvallen en niet direct bruikbaar zijn in native builds van openwrt. Via de Windows tool RCU.exe en de atheros driver van Commview kan wanneer pin13 op de minipci kaart is afgeplakt deze eenvoudig worden gefixed op de juiste regio. Voor europa is ETSI1_WORLD 0x37 als regdomain aan te raden. Via linux kan via ath_info onderdeel van de madwifi driver vaak alleen via een oudere kernel ook het regdomain worden gepatched. Soms moet er nog wel een bepaalde register op de kaart aan of uit geschakeld worden bijvoorbeeld 1:0 4:0.
     287==== wifi atheros upgrade/patch ====
     288Naast dat de prism gebaseerde senao kaarten een firmware upgrade nodig hadden om goed te functioneren, hebben de atheros kaarten bij levering eigenlijk een specifieke landcode nodig in de firmware, de default regdomain code 0x0 debugmode word in de nieuwe linux kernels opgemerkt als US waardoor channel 12-13 op de 2,4ghz en een aantal kanalen op de 5ghz wegvallen en niet direct bruikbaar zijn in native builds van openwrt. Via de Windows tool RCU.exe en de atheros driver van Commview kan wanneer pin13 op de minipci kaart is afgeplakt (PLAKBAND ;-) deze eenvoudig worden gefixed op de juiste regio. Voor europa is ETSI1_WORLD 0x37 als regdomain aan te raden. Via linux kan via ath_info of eth-tool onderdeel van de madwifi driver vaak alleen via een oudere kernel ook het regdomain worden gepatched. Soms moet er nog wel een bepaalde register op de kaart aan of uit geschakeld worden bijvoorbeeld 1:0 4:0.
    167289
    168290== Direct aan de slag! ==
    169 
    170 Onafhankelijk, zonder seriele PC connectie, is de kans groot dat de soekris hangt tijdens de boot cyclus op de grub-bootloader en wacht op bevestiging om door te gaan met booten... Dit terwijl je verwacht dat het board zonder inmenging en zelfstandig kan opstarten. Echter wanneer op de eerste partitie van de CF-kaart/image uit de bootloader config file "/boot/grub/menu.cfg" de optie "console" verwijderd wordt, boot de Soekris probleemloos onafhankelijk, dus zonder PC met serial console en hoef je niet direct comBIOS in! Voor de CF gebaseerde systemen (Soekris 4501/4521/4801) is die grub optie op de CF-kaart zo te veranderen en kun je in enkele minuten al aan de slag. Een andere definitieve oplossing voor systemen zonder CF-kaart, zoals de Soekris 4826, alsook systemen met CF-kaart, is via de seriele console de comBIOS optie ConMute op Enabled zetten, echter voor de CF-kaartloze systemen zoals de 4826 moet je sowieso via serial de comBIOS in om deze met PXE boot op te starten en vanuit een live sessie een openwrt-image naar het onboard flashgeheugen te schrijven, maar dan heb je ook wat ;-)
    171 
    172 === manual / handleiding ===
    173 Openwrt heeft een unieke en uiterst volledig consistente doch gedecentraliseerde versnipperde handleiding, sorry kon het niet laten ;-). Her en der zul je het een en ander bij elkaar moeten googlen via wiki en forum pagina's op hun eigen website en voorbeelden van andermans blogs en creaties zoals deze hier. Naast het laden van een openwrt image, is net dat ene kleine beetje inzicht nodig om het vaak werkend op een bepaald apparaat waar het niet voor ontworpen is werkend te krijgen. Dit kan vaak wel op 3 verschillende manieren. Via de webinterface (als je daar al bij kan) via de cli met programmeer taal uci en direct in de cli met bestandjes editen.
     291Met wat eigenlijk? Met doosjes hardware(soekris boards/wifi uitbreidingen) en software als referentie of functionaliteiten zoals router en accesspoint opzetten en de hardware software instellingen ondersteunend maken aan dat verhaal? Ik heb het nu aan de hand van de hardware beschreven, tegelijk met het mixen van functionaliteiten zonder die direct altijd te benoemen en ook nog eens met verschillende openwrt versies... dit moet nog opgeschoond worden.
     292
     293Het eerste doel is een router op te zetten, die qua functionaliteit overeenkomt met de router in een huis tuin en keuken accesspoint van een reguliere interprovider, daarbij wifi toevoegen en mogelijk wat meer.
    174294
    175295=== soekris 4501 ===
    176 Werkt met standaard image ook prima, net als de 4521 tevens net zo traag ;-).
     296Werkt met standaard image ook prima, net als de 4521 tevens net zo traag ;-) heeft met dns-resolve te maken!
    177297
    178298=== soekris 4521 ===
    179 Ondanks dat de meeste hardware direct is aan te spreken vanuit opernwrt gaan de pcmcia sloten pas werken als daarvoor de juiste (kant en klare) pakketjes uit de reposity zijn geladen, dit geldt voor zowel backfire als attitude adjustment. Maar het laden uit de repository gaat pas werken wanneer het board via de "wan" aansluiting op het internet is aangesloten. Echter de "wan" aansluiting is standaard in de network config afwezig, ondanks dat de soekris standaard over twee ethernet adapters beschikt eth0(poe+lan) eth1(). Daarom moet er eerst een "wan" interface worden toegevoegd en "eth0" bij de lan vervangen worden door "eth1" en "eth0" bij de "wan" plaatsen. Vervolgens nog firewall rules toevoegen zodat je via diezelfde wan interface kunt managen met ssh/http. Tenslotte kun je dan pas na de reboot het board met de pakket manager verder configureren. Nu eerst de CF kaart voorbereiden!
    180 
    181 {{{
    182 #download openwrt image
     299Ondanks dat de meeste hardware direct is aan te spreken vanuit opernwrt gaan de pcmcia sloten pas werken als daarvoor de juiste (kant en klare) pakketjes uit de reposity zijn geladen, dit geldt voor zowel backfire als attitude adjustment. Maar het laden uit de repository gaat pas werken wanneer het board via de "wan" aansluiting op het internet is aangesloten. Echter de "wan" aansluiting is standaard in de network config niet geconfigureerd, dit omdat niemand kenlijk een nette detect board-layout heeft opgegeven aan de openwrt developers, zodat gedetecteerd kan worden welke interfaces in het ergste geval een ethernet adapter heeft beschikt eth0(poe+lan). Daarom moet er eerst een "wan" interface worden toegevoegd en "eth0" bij de lan vervangen worden door "eth1" en "eth0" bij de "wan" plaatsen. Vervolgens nog firewall rules toevoegen zodat je via diezelfde wan interface kunt managen met ssh/http. Tenslotte kun je dan pas na de reboot het board met de pakket manager verder configureren. Nu eerst de CF kaart voorbereiden!
     300
     301{{{
     302#download openwrt image on client pc/laptop with card-reader
    183303wget http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/openwrt-x86-generic-combined-squashfs.img
    184304
    185 #warning dd will overwrite anything!!!
     305#warning dd will overwrite anything and can destroy data in a inrecoverable fashion on your own PC!!!
    186306#write bootable image directly to CF-CARD
    187307sudo dd if=openwrt-x86-generic-combined-squashfs.img of=/dev/sdX
    188308
    189309#if you don't have ConMute=Enabled in comBIOS nor have a serial
    190 #cable active console with soekris follow the following 3 steps
    191 
    192 #1#mount the first partition on the CF-CARD
    193 sudo mkdir /mnt/booooot
    194 sudo mount /dev/sdX1 /mnt/booooot
    195 #2#remove the word "console" from the file /boot/grub/menu.lst
    196 sudo nano /mnt/booooot/boot/grub/menu.lst
    197 #3#unmount and eject CF-CARD
    198 sudo umount /mnt/booooot
    199 sudo rmdir /mnt/boooot
    200 }}}
    201 
    202 Plaats de CF-CARD in de soekris, en sluit een losse lan/poe kabel aan op de eth0 port van de soekris (verst verwijderd vanaf de pcmcia-sloten) direct op je PC aan. Je PC zal via dhcp automatisch een ip van de soekris krijgen, de port is namelijk ingesteld als lokaal LAN en de tweede ethernet port werkt nog niet!
     310#cable active console with soekris follow the steps at chapter "grub boot loader"
     311}}}
     312
     313Plaats de CF-CARD in de soekris, en sluit een losse lan/poe kabel van eth0 port op de soekris (dichtst bij de voeding) direct op je PC aan. Je PC zal via dhcp automatisch een ip van de soekris krijgen zo niet, de port is namelijk ingesteld als lokaal LAN en de tweede/derde ethernet port moet ook geconfigureerd worden!
    203314
    204315{{{