RTEM Project Project Verslag Lynksys WRT54GL Router. Met SD-Card Modificatie Joram Dillen, Ruben Middel, Niels ter Horst TIV3E Inhoud`s Opgave Lynksys WRT54G Verschillende Routers WRT54GL Ombouwen van de router Soldeerpunten Open WRT SD Card configuratie Andere Open source Distributies Andere toepassingen voor de WRT-54GL Toevoegen van SD kaart POE Overclocking Bestuurbare Robot Lynksys WRT54G De Lynksys WRT54G is een serie routers die in 2002 is begonnen en als eerste voor consumenten het mogelijk maakte Linux te draaien op een router. De meeste routers uit deze serie draaien echter op het realtime operating system VxWorks is een operating system dat gemaakt en commercieel verkocht wordt door Wind River Systems. De bron hiervan is daarom helaas ook niet open. Per model kan er een andere processor in zitten, maar wat ze gelijk hebben, is dat het allemaal 32-bit MIPS architectuur processors (Microprocessor without Interlocked Pipeline Stages). Dit zijn RISC(reduced instruction set computing) processors. Ze verschillen qua snelheid van 125 tot 266 MHz. De meeste routers uit de serie hebben 4+1 netwerk poorten. Dit is er een voor het internet en 4 voor het vaste netwerk. De Wifi snelheid is 54 mbps met een frequentie van 2,4 ghz. Dit netwerk gaat de lucht in met 1 tot 3 antennes. De antennes hebben een reverse polarity TNC connector. De reverse polarity wordt gebruikt om te voorkomen dat andere netwerken niet verstoord worden. Verschillende routers In de WRT54G serie zitten 14 verschillende routers. Deze routers verschillen soms redelijk in functionaliteit. Hieronder staat een klein lijstje met voorbeelden van verschillende routers: • • WRT54GS • SpeedBooster software • 8MB flash ram (4MB firmware, 4MB JFFS2 R/W) WRTSL54GS • • WRT54GP2 • • Analoge telefoon adapter WRT54G3G Mobile Broadband router • • USB 2.0 i.p.v. 2e antenne PCMIA slot voor aircard. Hiermee kan via het data netwerk voor de telefoon een internet verbinding gemaakt worden via een sim kaart. WRT54G-TM • T-mobile hotspot@home. Hiermee kun bellen via WiFi of het op de router aangesloten telefoonnetwerk. WRT54GL Dit is het op OpenWRT draaiende model dat we hebben gebruikt voor ons project om onderzoek te doen of het mogelijk is een plug en play gameserver te maken vanaf een router. Het model komt uit 2005 en draaid op OpenWRT wat een GNU GPL licentie heeft. GNU GPL is een afkorting van “GNU’s Not Unix” “General Public Licence”. Dit houd in dat het besturingssysteem dus geen Unix is, omdat het geen code bevat uit Unix en dus helemaal open en gratis kan zijn. Het is qua werking echter wel vergelijkbaar aan Unix. In de router zitten: een 200 MHz processor, 4MB flash geheugen en 16 MB ram. Het ingebouwde flash geheugen kan vanuit een simpele webinterface opnieuw geflasht worden. Dit heeft als grote voordeel dat je geen aparte kabel nodig hebt om de router te updraden. Het nadeel is echter wel, dat je router niet meer werkt wanneer deze upgrade mislukt. Hier hebben wij veel last van gehad. Om dit op te lossen, is er software beschikbaar die tijdens het opnieuw opstarten van de router de router opnieuw flasht. Hier is echter ongeveer 0,05 seconden de tijd voor. Het moet dus heel precies getimed gebeuren en vaak lukt het pas na vele tientallen pogingen. Naast OpenWRT zijn er ook vele andere Linux projecten op te zetten, waaronder Tomato, Sveasoft en DD-WRT. Ombouwen van de router Op het moederbord is het mogelijk een SD kaartje vast te solderen. Hiermee kunnen gegevens vanuit de router worden uitgelezen en opgeslagen. Hiervoor zijn op een SD kaart 7 punten nodig, welke worden vastgesoldeerd op bijbehorende punten in de router. Hiervoor zijn gelukkig zat voorbeelden te vinden. Waarom welk punt waar gesoldeerd moet worden is helaas niet helemaal duidelijk te vinden. Gelukkig is wel te vinden waar welk punt voor dient. Soldeerpunten 1. CS – Chip select 2. DI – Data in (vanaf SD gezien) 3. VSS – Ground 4. VDD – Power 3.3V 5. CLK – Clock voor de SD kaart 6. VSS2 – Nog een ground 7. DO – Data out (vanaf SD gezien) Open WRT OpenWRT is een op linux gebaseerde firmware die gebouwd is voor embedded apperaten zoals bijvoorbeeld in ons geval een Router WRT54GL . In het begin was de ondersteuning alleen voor de Linksys WRT54G series maar is vanaf die tijd ook overgegaan op andere chipsets en ontwikkelaars zoals bijvoorbeeld Netgear,D-Link en ook Asus. Om te communiceren gebruikt OpenWRT voornamelijk de commandline, Maar er zit ook een webinterface ingebouwd om gemakkelijk modules te kunnen in-/uitschakelen of een aantal andere instellingen te veranderen. Ook is er een hoop ondersteuning op internet en forum`s te vinden en ook is er een IRC kanaal beschikbaar. OpenWRT valt onder de GNU General Public License (GPL), hierdoor zijn de ontwikkelaars verplicht hun (aangepaste) source code vrijtegeven. De grootste feature van OpenWRT is een volledig beschrijfbare JFFS2 (Journalling Flash File System 2), en maak gebruik van het IPKG (Itsy Package Management System) module systeem. Dit systeem is speciaal gemaakt voor embedded systemen en dat maakt OpenWRT makkelijk aanpasbaar voor verschillende gebruiksdoeleinden. Ook zijn ere en aantal gemakkelijke commands voor beschikbaar bijvoorbeeld. ipkg update Download a list of packages available ipkg list View the list of packages ipkg install [package] Install the [package] ipkg remove [package] Remove the [package] SD Card configuratie Een aantal modules die gebruikt worden om een SD card te kunnen draaien zijn: kmod-ext2_2.4.30-brcm-5_mipsel.ipk ~ Deze is bijvoorbeeld om het filesysteem (het SD kaartje) te formateren naar een extern2 format. kmod-ipv6_2.4.30-brcm-5_mipsel.ipk ~ Met deze module kan je de IPv6 protocool van windows vista gebruiken Hier onder een stukje config wat betrekking heeft tot het instaleren van het SD kaartje. tar zxvf mmc-v1.3.4-gpio2.tgz cp mmc-v1.3.4-gpio2/mmc.o /lib/module/2.4.34/ ~ Eerst het installeren van de mmc drivers. ipkg install kmod-fs-vfat ipkg install kmod-fs-ext3 mount /dev/mmc/disc0/part1 /mnt/ # alternatively add -t vfat or ext3 ~ Hierna het installeren van de modules om het kaartje te kunnen formateren in het juiste filesysteem. En het mounten van de partitie met de inhoud van het kaartje. In principe is dit alles wat er nodig is voor de installatie van het kaartje. Makkelijker is het natuurlijk als de ‘mount’ en alles wat er vanaf dat moment geinstaleerd word op het kaartje te recht komt automatisch wel te verstaan, hieronder een voorbeeld van een config bestandje die ervoor zorgt dat dit gebeurt. config bootfromexternalmedia option target '/mnt' option device '/dev/mmc/disc0/part1' option gpiomask '0x9c' option modules 'mmc jbd ext3' option enabled '1' vanaf nu is het SD kaartje klaar voor gebruik elke keer als de router opgestart is… Andere Open source Distributies Andere open source operating systemen die onder anderen voor de WRT54G(L) beschikbaar zijn: Fdgw Fdgw is een floppy versie van het open source Unix operating system NetBSD/i386. Het kan draaien op oude pc`s zonder hardeschijf en kan gebruikt worden als een kleine router, natbox of ADSL router. Het is een minimaal NetBSD systeem. Floppyfw Floppyfw is een Linux based distributie die Busybox draait om een firewall/gateway/router op een bootable floppy disk te kunnen draaien.Het ondersteunt items zoals PPPoE, traffic shaping, DHCP, en network address translation.Ook draait het op x86 processors, beginnende bij de Intel 80386SX en gebruikt maar 12 MB RAM. FREESCO FREESCO is ook een floppy disk based router, wat betekend dat het volledige systeem draait vanaf een 1.44 MB floppy disk.Ook is het mogelijk hetvolledige systeem te draaien in RAM, waardoor er geen harde schijf reads of writes gedaan hoeven te worden na startup. Het is ook mogelijk het gewoon te instaleren op een hardeschijf. FreeWRT FreeWRT is een Linux distributie voor embedded systems zoals de wireless routers van Linksys en Asus.Het is een afstamming van het OpenWrt project. De naam FreeWRT moet niet verward worden met een ander project wat inmiddels is gestopt, deze hebben de Sveasoft firmware gekopieerd en het gratis aangeboden. Helaas net als OpenWRT zijn nog niet alle opties toegankelijk voor de opensource software. Als voorbeeld wifi ondersteuning op de WRT54GL heeft een wl.o kernel module nodig die alleen voor linux 2.4 beschikbaar is. DD-WRT DD-WRT is gratis Linux-based firmware voor verschillende wireless routers, meet gangbare is de Linksys WRT54G (ook de WRT54GL en WRT54GS). DD-WRT heeft de GNU General Public License version 2. Net als andere gelijkwaardige projecten word DD-WRT gezien als een third-party firmware solution gemaakt om de firmware te vervangen die standaart op de meeste routers zit. Dit hebben ze om een aantal redenen gedaan ; DD-WRT heeft opties als ondersteuning voor Kai network, daemon-based services, IPv6, Wireless Distribution System, RADIUS, radio output power control, overclocking capability, en software ondersteuning voor Secure Digital Card hardware mod. DD-WRT versies tot v22 waren gebaseerd op de Alchemy firmware van Sveasoft, Die weer op zijn beurt gebaseert is op de originele Linksys firmware. DD-WRT versies vanaf v23, zijn ze vanaf toen bijna helemaal opnieuw geschreven. The Linux kernel is gebaseert op de OpenWrt kernel, wat begon als de Linksys-based firmware maar later zijn eigen framework gebouwd heeft. Alle firmwares zijn gebaseert op Linux, net als OpenWrt en Alchemy. LEAF Project The LEAF Project (Linux Embedded Appliance Firewall) is een collectie van Linux distributies die begonnen zijn als aftakking van The Linux Router Project (LRP) "linux-on-afloppy" distributie. Meeste gebruikers van deze distro`s zijn vooral geintreseert in router en firewall functies, vooral als deze gecombineerd zijn met de vele gemakkelijke andere opties van general Linux distributions zoals shells, packet filtering, SSH servers, DNS services, file servers, webmin. Gargoyle Gargoyle is een interface voor kleine, veel toegankelijke routers zoals de Linksys WRT54G series en de La Fonera. Het geeft functies die verder gaan dan de default software meegeeft. Onder andere: sophisticated dynamic DNS, bandwidth monitoring tools. Het voornaamste doel is een gemakkelijke en simple interface te hebben voor deze uitgebreide tools en net zo simple te configureren als bestaande firmware. Gargoyle is gebaseert boven op de meest recente Kamikaze versie van OpenWrt firmware, Maar in verschil met andere OpenWRT interfaces is Gargoyle gemaakt voor de wat meer ‘gewone’ gebruikers. Tomato Firmware Tomato Firmware is een gratis HyperWRT-based, Linux core firmware voor verschillende wireless routers,vooral de Linksys WRT54G (ook de WRT54GL en WRT54GS), Buffalo AirStation en Asus Routers. Tomato is gebaseert op de GPL sourcecode vrijgegeven door Linksys, Delen van de code vallen onder de GNU General Public License, maar de source code voor de user interface heeft een wat strengere licentie, deze verbied gebruik als er geen toestemming is van de maker. De meest geziene optie is de user interface, Die zwaar gebruik maakt van AJAX en een SVG-based grafische bandwidth monitor. Vyatta Vyatta ontwikkeld een open source router/firewall/VPN produkt voor Internet Protocol Version 4 (IPv4) netwerken. Een gratis download van Vyatta is beschikbaar sindse March 2006. Het Systeem specializeerd zich in Linux distro`s met netwerk applicaties en beheer interface`s voor deze applicaties. Het Vyatta systeem was bedoeld als vervanging voor Cisco IOS 1800 tot 7200 series Integrated Services Routers (ISR), Met de nadruk op de kosten en flexibiliteit voor een open source, Linux-based system draaiend commodity x86 hardware.Ook heeft Vyatta een Cisco Replacement Guide op hun website wat de verschillende Cisco products en de compatible Vyatta/x86 oplossingen laat zien. WiFi-Box WiFi-Box is een “aftermarket” distributie voor de Linksys WRT54G series vam wireless routers, gebaseert op de originele Linksys source code. Linksys heeft hun source code gebaseert op Linux, wat onder de GNU General Public Licence (GPL) valt, daarom moeten alle gemodifiseerde source code`s gereleased worden, wat het ontwikkelen van ‘aftermarket’ zoals WiFi-Box mogelijk maakt. Het originele WiFi-Box project is begonnen in 2002 door Augustin VU Huy Bang en door de contributie van vele dslreport's forum gebruikers gefinancieerd. De recente versie van WiFi-Box ondersteunt WRT54G(L)(S) router en de Asus WL-500. Zeroshell Zeroshell is een kleine Linux distributie voor servers en embedded systemen die gericht zijn op het bieden van netwerk services. Zoals de naam al zegt, er is geen shell nodig om de beol te kunnen configureren, want je kan gewoon de web based Graphical user interface gebruiken. Zeroshell is beschikbaar als een Live CD and CompactFlash images, en ook voor VMware virtual machines. The Linux Router Project The Linux Router Project (LRP) is een open-source software project. Er word sindse June 22, 2003 niet meer verder ontwikkeld. Het vrijwel hetzelfde als the LEAF Project. LRP begon als een Linux floppy distro. Gebruikt hardware wat normaal gesproken te oud of te langzaam is voor desktop gebruik. The originele distributie was gebaseert op Debian. Andere toepassingen voor de WRT-54GL De WRT54-GL is heel erg populair in de mod-scene, vanwege het gemak waarmee de firmware aangepast kan worden. En het aantal custom made firmware die er voor bestaat zoals, OpenWRT, Tomato etc. Toevoegen van SD kaart Er zijn daarom ook vele uiteenlopende voorbeelden van mods die mensen hebben gedaan op de WRT-54GL, het toevoegen van een SD kaart is bijvoorbeeld een veel voorkomende mod. Omdat mensen die de router als server gebruiken vaak meer opslag ruimte nodig hebben. Het toevoegen van een SD kaart is op meerdere sites uitvoerig gedocumenteerd en daardoor een van de meest voorkomende mods voor de WRT-54GL. Het is voor velen ook een hele belangrijke aanpassing omdat het de router in een echte mini pc veranderd. POE POE staat voor Power Over Ethernet. Dat betekent dus dat alle stroom voor de hardware in de router vanaf de ethernet kabel word gebruikt, de adapter hoeft dus niet aangesloten te worden, dit is natuurlijk altijd handig maar in sommige gevallen als er geen stopcontact aanwezig is zelfs essentieel. De meest nette optie voor POE is direct de link tussen de ethernet poort en de voeding poort te solderen, dit zorgt er wel voor dat de garantie verloopt omdat de behuizing geopend dient te worden. Een andere oplossing is het strippen van de ethernet kabel en de draden door te verbinden aan een voedings stekker en die daarna in te pluggen in de router. Overclocking Voor de wat geavanceerdere mods is de WRT-54GL ook geschikt het is immers gewoon een pc van binnen, vaak ook word de processor van de router overgeklokt zodat de performance omhoog gaat. Hierbij is het wel van belang dat de processor voldoende gekoelt word, dit kan doormiddel van het toevoegen van een ventilator, die via de led aansluiting gevoed word. Bestuurbare Robot De meest uitgebreide modificatie van de WRT-54GL die wij hebben kunnen vinden is de op afstand bestuurbare auto, met webcam en toeter.Deze auto maakte via WIFI verbinding met je laptop waarna je de auto kon besturen vanaf de laptop terwijl je via de webcam ook beeld had. Dit was mogelijk tot op circa 500 meter van de laptop vandaan, een leuke toevoeging was een op afstand bestuurbare toeter. Het was ook mogelijk om de auto verbinding te laten maken met een accespoint en zo via een internet verbinding toegang te geven tot de besturing van de auto, dit maakt het dus mogelijk om de auto vanuit de hele wereld te bereiken en te besturen. Dit vergde natuurlijk een hele hoop aanpassingen en uitbreidingen, zoals een PIC controller om de communicatie tussen de router en de hardware van de auto te regelen, gelukkig was de chipset van de auto goed gedocumenteerd en kon er vrij gemakkelijk mee gecommuniceerd worden. De uiteindelijke commando’s werden door een zelfgeschreven VB applicatie verzonden over het WIFI netwerk naar de router.