wiki:WikiStart

Version 9 (modified by walter, 11 years ago) ( diff )

--

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!

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 backfire 10.03.1 als attitude adjustment 12.09 werken op de soekris 4826 en 4521, overige boarden moet nog getest worden. De gewenste type images zijn "combined-squashfs" images en "combined-extN" images. 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 via serial console direct op een draaiende pc is aangesloten (sic), hij hangt namelijk op het bootloader scherm! 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 onafhankeliojk 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, wanneer ConMute niet enabled is!

De kant en klare x86 images van openwrt hebben standaard een serial console werkend op 38400 i.t.t. tot de standaard Soekris comBIOS serial speed die vaak 19200 is. Het is handig voor debuggen/recoveren/pxe booten de boarden zonder CF-kaart comBIOS zelf ook op deze snelheid in te stellen zodat de hele bootcyclus/bootstrap vanaf het soekris comBIOS, bootloader grub, kernel/boot tot aan de console te zien en werkend is. Goedkope usb-serial dongles werken niet altijd lekker met hoge com snelheden!

serial console rs232

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 bootbaar board dus de andere optie is de soekris via comBIOS laten netwerkbooten in tftp / PXE en dan via het netwerk een image overpompen en deze via de serial console verder in te richten.

## 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
#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

#if you see garbage change settings of minicom

tftp / pxe boot

Voor het recoveren / installeren van soekris boarden zonder CF-kaart, moet een tftp / pxe server worden opgezet. Via directe seriale interface tussen PC en Soekris kan deze vanuit comBIOS geinstrueerd worden om met PXE op te starten.

Soekris comBIOS

Wellicht nog updates beschikbaar voor deze oude boarden?

soekris 4501

soekris 4526

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

# 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

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 nmap tcpdump nano luci-app-olsr openvpn nodogsplash tinyproxy

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

(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

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. TODO (checken of de factory reset wel de boot partitie met aangepaste boot parameters met rust laat). 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"
  • mini-pci "senao SL-2511MP210".

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. De meeste van deze antieke kaartjes uit de kast van W.L. zullen wel een firmware update nodig hebben. Minstens station firmware 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. De 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. 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'

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.

"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 documentation to help you get started with your project.

You can use trac-admin to configure Trac to better fit your project, especially in regard to components, versions and milestones.

TracGuide is a good place to start.

Enjoy!
The Trac Team

Starting Points

For a complete list of local wiki pages, see TitleIndex.

Note: See TracWiki for help on using the wiki.