= Soekris revival with OpenWRT = Is er een zinvol tweede leven voor de stapel Soekrissen die in de WL-kast liggen? We hebben enkele tientallen Soekrissen net: 4501, 4521, 4801, 4826. De hardware heeft zijn beperkingen en is niet geschikt voor de huidige nodes. Hierbij hoort tevens de erfenis aan SENAO pcmcia en mini-pci b-only wifi kaartjes! * [http://www.openwrt.org OpenWRT] * [http://soekris.com/products/net4501-1.html Soekris net4501] cpu 486 133mhz RAM 064MB 0xusbport 3xlan 1xmini-pci 0xpcmcia 1xpci CF-CARD NO POE??? * [http://soekris.com/products/net4521.html Soekris net4521] cpu 486 133mhz RAM 064MB 0xusbport 2xlan 1xmini-pci 2xpcmcia 0xpci CF-CARD ~24/66Mbit POE * [http://soekris.com/products/net4801.html Soekris net4801] cpu 586 267mhz RAM 128MB 1xusbport 3xlan 1xmini-pci 0xpcmcia 1xpci CF-CARD ~36Mbit NO POE! * [http://soekris.com/products/net4826.html Soekris net4826] cpu 586 267mhz RAM 128/256MB 1xusbhead 1xlan 2xmini-pci 0xpcmcia 0xpci ONBOARD-64MB ~36Mbit POE * [http://web.archive.org/web/20041012203224/http://www.senao.com/english/product/product_wireless01_outdoor.asp?pgtl=Wireless&tp1id=02&tp2id=03 Senao WIFI] Het doel van dit project is voor de Soekris-boarden en bijbehorende hardware, start klare 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 test netwerk te bouwen zodat met OLSR / MESH etc geexperimenteerd kan worden. == OpenWRT == Zowel kant en klare x86 images van 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. De gewenste type images zijn "combined-squashfs" images en "combined-extN" images, hierin "combined" zit namelijk zowel de boot partitie met kernel en root partitie. Op sommige embedded systemen is het mogelijk direct de kernel en het rootfs te uploaden omdat er dan een bootloader in het systeem zelf zit die deze kan opstarten. De soekris boarden gedragen zich netals x86 systemen die gewoon via een MBR bootstrap op een ide disk een bootsector willen laden die weer naar de bootloader verwijst "grub" en dat laatste de kernel. Het eerste type "squashfs" zal grotendeels in het ram de wijzigingen doorvoeren en alleen enkele wijzigingen gecomprimeerd naar de disk terug schrijven via JFFS2, voordeel hiervan is dat deze versie de geheugenkaart spaard "wear level protection" en tevens een failsafe "factory reset" mogelijk maakt. 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 tevens niet mogelijk. Houd er overigens wel rekening mee dat de standaard openwrt images alleen booten op een Soekris als deze direct via serial console op een continu draaiende PC is aangesloten (sic), onafhankelijk zonder PC connectie pauzeert de boot cyclus namelijk op de grub bootloader! Echter wanneer op de eerste partitie van de CF-kaart/image uit de bootloader config file "/boot/grub/menu.cfg" de optie "console" verwijdert word, boot de Soekris probleemloos onafhankelijk zonder PC met serial console! Voor de CF gebasseerde 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. Voor de systemen zonder CF kaart zoals de Soekris 4826 betekent het dat je waarschijnlijk met uitgebreidere/moeizame ouderwetse seriele console en met tftp/pxe aan de gang moet, mits ConMute enabled staat in de comBIOS op dit model die de verkeerde bootloader opties kan negeren! == serial console == Omdat de Soekris machines niet over een VGA en toetsenbord aansluiting beschikken is een serial console de enige manier om de bootcyclus en BIOS te beinvloeden, vooral handig voor uitgebreid recoveren van systemen zonder CF-Kaart. De kant en klare x86 images van openwrt hebben standaard hun serial console werkend op 38400, zowel in de bootloader modus (grub) als de kernellog en uiteindelijke systeem console. Dit i.t.t. tot de standaard Soekris comBIOS serial speed die vaak 19200 is. Om tijdens de hele bootcyclus/bootstrap vanaf de soekris comBIOS, bootloader grub, kernel/boot tot aan de console een werkend beeld en keyboard aansturing te hebben is het van belang dat al deze fases op dezelfde serial settings staan. Anders verdwijnt het beeld of word onleesbaar en is verdere keyboard interactie in een bepaalde fase uitgesloten. Om serial in te loggen zullen we eerst "minicom" installeren en configureren dit laatste zal waarschijnlijk meerdere keren moeten om iedere afwijkende fase van het booten tot het os te kunnen bereiken. Handig is om eenmalig de serial snelheid in de comBIOS van de soekris gelijk te zetten naar die van de bootloader/bootconsole/terminal. *Goedkope usb-serial dongles werken niet altijd lekker met hoge com snelheden! {{{ ## install software for serial terminal sessions sudo apt-get update && apt-get install minicom cu ## setup minicom sudo minicom #press CTRL+A than Z for info #press O for options #select "Serial Port Setup" #press A, ##nullmodem cable port probably is /dev/ttyS0 #press E ##set speed for soekris board 9600/19200/38400 8n1 #press F,G no, no #flow controls #press enter to save #select "Save setup as default" #select "exit" #press X exit minicom #connect soekris via rs232 null modem to pc poweron/reset soekris #login with minicom sudo minicom #press CTRL-P to enter comBIOS #if you see garbage change port settings of minicom }}} == comBIOS == Dit is de naam van de BIOS op de soekris boarden. Hierin kun je verschillende systeem en boot gerelateerde parameters vastzetten zoals de serial port snelheid "ConSpeed" en fixen dat een onaangepaste openwrt image niet blijft hangen in de grub bootloader door "ConMute" op enable te zetten. Tevens kun je vanuit comBIOS het systeem via network laten booten "PXE" of comBIOS upgrades uitvoeren. Je hebt ongeveer 2-5 seconden na het aanzetten van de soekris om de comBIOS in te komen met het intoetsen van de CTRL-P toets combinatie! Dan moet je ook toevallig de juiste serial settings hebben voor die fase anders zie en kun je alsnog niets, dit kan met de gebruikte soekris boarden met verscheidene instellingen een trial & error werkwijze zijn. Als je de goede serial instellingen heb, dan zie je vanzelf BIOS/POST messages voorbij komen wanneer de soekris aangaat als je minicom hebt gestart. Je ziet dan tevens de comBIOS post melding voorbijkomen dat je met CTRL-P de comBIOS in kan! *Daarentegen als de comBIOS parameter ConMute=Enabled stond dan blijft het beeld altijd zwart en zie je alleen grub of de bsd bootloader. Mits je direct na het aanzetten van het apparaat CTRL-P indrukt komt je alsnog in comBIOS! {{{ > _ # default comBIOS prompt > ? # ? shows help / possible commands > show # show current fixed paramters like serial speed > set ConMute=Enabled # will set the parameter ConMute to Enabled > set ConSpeed=38400 #will set the serial to the speed of openwrt image > boot F0 #will boot from network via PXE > reboot #will reboot the board }}} De 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! 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 680 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". == tftp / pxe boot == Wanneer je een soekris hebt zonder 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 zich domweg laat overschrijven. 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 optie is de soekris via comBIOS laten netwerkbooten in tftp / PXE via het netwerk een image pushen en deze via de serial console verder in te richten. Voor het recoveren / installeren van 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. De tftp server die ik in debian heb opgezet heeft de volgende paketten nodig: "isc-dhcp-server + tftp-hpa". == grub bootloader == 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 memtest, zodra memtest 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]. Voeg de volgende optie toe aan het grub config bestand /boot/grub/menu.lst {{{ title memtest86+ root hd0,0 kernel /boot/memtest86+.bin console=ttyS0,38400n8 boot }}} == soekris 4501 == Werkt met standaard image ook prima, net als de 4521 tevens net zo traag ;-). == soekris 4521 == Ondanks dat de meeste hardware direct is aan te spreken gaan de pcmcia sloten pas werken als daarvoor de juiste (kant en klare) pakketjes uit de reposity zijn geladen, dit geld 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 kan 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! {{{ #download openwrt image wget http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/openwrt-x86-generic-combined-squashfs.img #warning dd will overwrite anything!!! #write bootable image directly to CF-CARD sudo dd if=openwrt-x86-generic-combined-squashfs.img of=/dev/sdX #mount the first partition on the CF-CARD sudo mkdir /mnt/booooot sudo mount /dev/sdX1 /mnt/booooot #remove the word "console" from the file /boot/grub/menu.lst sudo nano /mnt/booooot/boot/grub/menu.lst #unmount and eject CF-CARD sudo umount /mnt/booooot sudo rmdir /mnt/boooot }}} 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! {{{ #login via telnet telnet 192.168.1.1 #add default password passwd #reboot so rootfs will be writable next boot reboot;exit #login again, but with ssh ssh root@192.168.1.1 #backup original config files cp -r /etc/config /etc/config.ori #add wan interface vi /etc/config/network #see example code! #add 'ssh' and 'http' to firewall rules vi /etc/config/firewall #see example code! #finish setting up networkinterface and firewall reboot;exit #disconnect PC lan cable from soekris #connect the soekris via wan interface #directly to the local router with internet! }}} # example code # /etc/config/network {{{ # Copyright (C) 2006 OpenWrt.org config interface loopback option ifname lo option proto static option ipaddr 127.0.0.1 option netmask 255.0.0.0 config interface lan option ifname eth1 #! <--- option type bridge option proto static option ipaddr 192.168.54.1 option netmask 255.255.255.0 config interface wan option ifname eth0 #! <--- option type bridge option proto dhcp }}} # add. example code # /etc/config/firewall {{{ #Add + these additional rules #! Allow SSH <--- config rule option src wan option proto tcp option dest_port ssh option target ACCEPT #! Allow http <--- config rule option src wan option proto tcp option dest_port http option target ACCEPT #! Allow proxy <--- config rule option src wan option proto tcp option dest_port 3128 option target ACCEPT #! Allow iperf <--- config rule option src wan option proto tcp option dest_port 5001 option target ACCEPT }}} Driemaal scheepsrecht, na de derde boot kun je het systeem op reguliere OpenWRT wijze beheren. Eerst wat pakketten installeren, daarna de pcmcia sloten inregelen en de wifi aanzetten. De snelheid van de soekris is erg laag dus alle pakketten in eenkeer installeren doet de ssh sessie enkele minuten stil staan/freezen maar hij hangt niet dus wacht rustig af! {{{ #login via ssh ssh root@routeradres #update list of available packages opkg update #install packages opkg install pcmciautils pciutils kmod-hostap-cs kmod-pcmcia-core kmod-pcmcia-yenta iperf nmap tcpdump nano luci-app-olsr nodogsplash tinyproxy openvpn }}} De PCMCIA sloten waar de wifi adapters opzitten moeten tijdens de boot worden aangezet. Dat kan door in /etc/init.d/pcmcia* enable te doen. Echter het S20 netwerk/wifi start al voordat de S42/41 PCMCIA sloten tot leven zijn gekomen. Een snelle Q&D fix is S20network in /etc/rc.d/ te verplaatsen naar S43network. {{{ #enable pcmcia services on boot /etc/init.d/pcmci* enable #quick and dirty delay network initialization after pcmcia mv /etc/rc.d/S20network /etc/rc.d/S43network }}} Stabiliteit PCMCIA bus hangt af van mogelijke bootparameters, irq bezetting en memoryranges. Voor 10.0.3.1 zorgt de boot parameter (TODO wel nog even checken of /etc/pcmcia/conf.opt speciale settings in 12.09 nodig heeft, irqpoll is no wifi). Bij de 10.03.1 kan "irqpoll" er juist voor zorgen dat de pcmcia bus het systeem niet doet freezen. Dit freezen houd in dat wanneer de pcmcia kaart verwijdert word het systeem direct weer reageert en niet is vastgelopen, dit komt uit eigen ervaring ook voor op laptops en kan met boot parameter "irqpoll" verholpen worden. == soekris 4801 == Setup idem as 4521/4501? # add. example code # /etc/config/dhcp {{{ config dhcp lanb option interface lanb option start 100 option limit 150 option leasetime 12h }}} # add. example code # /etc/config/firewall {{{ config zone option name lanb option network 'lanb' option input ACCEPT option output ACCEPT option forward REJECT config forwarding option src lanb option dest wan #! Allow SSH <--- config rule option src wan option proto tcp option dest_port ssh option target ACCEPT #! Allow http <--- config rule option src wan option proto tcp option dest_port http option target ACCEPT #! Allow proxy <--- config rule option src wan option proto tcp option dest_port 3128 option target ACCEPT #! Allow iperf <--- config rule option src wan option proto tcp option dest_port 5001 option target ACCEPT }}} # example code # /etc/config/network {{{ # Copyright (C) 2006 OpenWrt.org config interface loopback option ifname lo option proto static option ipaddr 127.0.0.1 option netmask 255.0.0.0 config interface lan option ifname eth1 option type bridge option proto static option ipaddr 192.168.11.1 option netmask 255.255.255.0 config interface lanb option ifname eth2 option type bridge option proto static option ipaddr 192.168.12.1 option netmask 255.255.255.0 config interface wan option ifname eth0 option type bridge option proto dhcp }}} == soekris 4826 == Dit board zonder CF kaart moet waarschijnlijk wel via de serial port aansturen tot een tftp / PXE boot om openwrt te laden, maar wanneer het er eenmaal opstaat kun je blijven experimenteren. USB headers onboard kan direct een werkende usbport van gemaakt worden. Deze usb port kan via plop bootmanager geboot worden (mits syslinux op de usb staat ipv grub). Openwrt moet dan als die op de usbstaat met extroot werken en usb modules in de image hebben. == senao wifi == Oud doch bruikbaar zelfs met WPA2 CCMP in AP mode, tenminste als je weet hoe. Het gaat hier om de volgende twee prism2.5 gebasseerde wifi kaarten: * pcmcia "senao SL-2511CD PLUS ext2 e200/f200" * mini-pci "senao SL-2511MP 210". Naast dat er legio aan firmware versies / combinaties zijn voor deze kaarten is van eerste belang om te weten dat de pcmcia versie 16bit is en daarom het pakket "pcmciautils" nodig heeft om op moderene distributies probleemloos herkent te worden. Als tweede is er een legio aan drivers voor deze kaarten beschikbaar, waaronder "prism", "hermes", "intersil", "orinoco", "wi" met tenslotte de "hostap-pci/cs" deze laatste is het meest stabiel en feature rijk. Verwarrend is wel de naam "hostap" aangezien dit naast driver ook de service is die op vele routers het opzetten van een AP + WPA aanstuurt. Als derde zullen de meeste van deze antieke kaartjes uit de kast van W.L. wel een firmware update nodig hebben. Minstens station firmware 1.5.6/1.6.3 om uberhaupt goed aangestuurd te worden door hostap en verder schijnt 1.7.4 en 1.8.2 het stabielst getest te zijn en nodig voor WPA2 CCMP modi. Tenslotte word de kaart in de meeste distributies in AP modus gestart en zal daarom niet met andere AP's kunnen connecten totdat je de modus van de kaart omzet naar "iwconfig wlan0 mode managed". De benodigde firmware is beschikbaar in twee vormen namelijk een AP/master en client/station firmware. Beide bestanden zijn vereist om tegelijk en betrouwbaar te kunnen flashen. De AP firmware is 1.1.1 de STA firmware is 1.8.2. details om te flashen via windows xp volgen nog, een oude linksys driver en het programma winflash 0.7 is voldoende. Inmiddels is gebleken dat deze kaartjes met de "hostap-pci/hostap-cs" niet alleen instaat zijn WPA TKIP in station/client mode maar zelfs WPA2 CCMP in AP modus. * pcmciautils * kmod-pcmcia-core * kmod-pcmcia-yenta * kmod-hostap-cs * kmod-hostap-pci Wanneer in Openwrt na installatie de wifi kaarten niet direct in de webinterface van luci herkent worden, moet je ze zelf even in het volgende configuratie bestand zetten en zorgen dat de macadressen van de kaarten 0/1 overeen komen met die van de config. Zie ifconfig voor de macadressen voor juiste kaart. # example code # /etc/config/wireless {{{ config wifi-device 'radio0' option type 'prism2' option macaddr '00:02:6F:xx:xx:xx' option channel '6' option diversity '0' config wifi-device 'radio1' option type 'prism2' option channel '11' option macaddr '00:02:6f:xx:xx:xx' option diversity '0' config wifi-iface option device 'radio0' option mode 'ap' option encryption 'none' option ssid 'http://wirelessleiden.nl/cp' option network 'lan1' config wifi-iface option device 'radio1' option mode 'ap' option encryption 'none' option ssid 'http://wirelessleiden.nl/splash' option network 'lan2' }}} == firmware update/patch wifi cards == Naast de prism gebaseerde senao kaarten hebben de atheros kaarten bij levering eigenlijk een landcode nodig in de firmware de regdomain code 0x0 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. Via de windows tool RCU.exe en de atheros driver van comview kan wanneer pin13 op de minipci kaart is afgeplakt deze worden gefixed op de juiste regio. Voor europa is ETSI0-europe 0x37 als regdomain aan te raden. == Links == * [http://wiki.hwmn.org/w/PXE_with_serial_console pxe boot] * [http://www.debian.org/releases/stable/i386/ch04s05.html.en pxe boot] * [http://wiki.debian.org/PXEBootInstall pxe boot] * [http://www.plop.at/en/bootmanager/download.html usb boot] * [http://macbruins.com/2011/09/01/easy-live-usb-for-x86-openwrt/ openwrt live usb] * [http://linux.junsun.net/intersil-prism/ update prism firmware] * [http://soekris.com/downloads.html Soekris comBIOS downloads] * [http://wiki.soekris.info/Updating_Bios Soekris comBIOS upgrade procedure] * [https://forum.openwrt.org/viewtopic.php?id=35828&p=3 atheros regulatory channelfix NL 2,4ghz 12,13 / 5ghz channels] * [http://smorgasbord.gavagai.nl/2010/09/wifi-regulatory-compliance-and-how-to-fix-it/ datatomb.de regulatory] == Trac Info == Trac is a '''minimalistic''' approach to '''web-based''' management of '''software projects'''. Its goal is to simplify effective tracking and handling of software issues, enhancements and overall progress. All aspects of Trac have been designed with the single goal to '''help developers write great software''' while '''staying out of the way''' and imposing as little as possible on a team's established process and culture. As all Wiki pages, this page is editable, this means that you can modify the contents of this page simply by using your web-browser. Simply click on the "Edit this page" link at the bottom of the page. WikiFormatting will give you a detailed description of available Wiki formatting commands. "[wiki:TracAdmin trac-admin] ''yourenvdir'' initenv" created a new Trac environment, containing a default set of wiki pages and some sample data. This newly created environment also contains [wiki:TracGuide documentation] to help you get started with your project. You can use [wiki:TracAdmin trac-admin] to configure [http://trac.edgewall.org/ Trac] to better fit your project, especially in regard to ''components'', ''versions'' and ''milestones''. TracGuide is a good place to start. Enjoy! [[BR]] ''The Trac Team'' == Starting Points == * TracGuide -- Built-in Documentation * [http://trac.edgewall.org/ The Trac project] -- Trac Open Source Project * [http://trac.edgewall.org/wiki/TracFaq Trac FAQ] -- Frequently Asked Questions * TracSupport -- Trac Support For a complete list of local wiki pages, see TitleIndex.