• Keine Ergebnisse gefunden

Einrichtung des OpenWrt-Build-Systems

OpenWrt auf dem WLAN-Router WL-500g Premium

3.2 Einrichtung des OpenWrt-Build-Systems

In diesem Abschnitt wird die Einrichtung des OpenWrt BS anhand des ASUS WL-500 vorgestellt. F¨ur die Installation auf anderen Plattformen wie Linksys WRT54G oder Linksys NSLU2 werden bei abweichendem Vorgehen an den entsprechenden Stellen Hinweise gegeben.

Im weiteren Ablauf ist die Versionsverwaltung Subversion (SVN) erforderlich.

Subversion ist ein freies Tool zur Verwaltung und Versionierung von Quelltex-ten. Es kann, falls auf dem Debian-Host-System nicht vorhanden, mit folgen-dem Befehl nachinstalliert werden:

$ s u d o apt - get i n s t a l l s u b v e r s i o n

Liefert ein Aufruf vonsvneine R¨uckmeldung, so ist Subversion bereits instal-liert. Die Quelltexte der aktuellen OpenWrt-Version 7.09 Kamikaze k¨onnen

3.2 Einrichtung des OpenWrt-Build-Systems 59 nun ausgecheckt und in unser Standardverzeichnis <openwrt-dir> herunter-geladen werden:

$ svn co h t t p s :// svn . o p e n w r t . org / o p e n w r t / t a g s / k a m i k a z e _ 7 .09 < openwrt - dir >

F¨ur Anwender, die bisher noch keine Erfahrungen mit Subversion gesammelt haben, findet sich unter [Subversion 08] eine freie Dokumentation. Im Vergleich zur Vorg¨angerversion 7.07 Whiterussian wurde das Build-System komplett

¨uberarbeitet, sodass die Anleitungen in diesem Kapitel daf¨ur nicht mehr 1:1 anwendbar sind. F¨ur zuk¨unftige Versionen kann sich der Pfad ¨andern, dies ist ggf. auf der OpenWrt-Website [OpenWrt 08] nachzulesen. Nach Ausf¨uhrung der oben genannten Befehle ist nun das komplette OpenWrt BS auf den Rech-ner geladen. W¨ahrend des nun folgenden Prozesses wird die Toolchain erstellt, um unter einer x86-Architektur Bin¨ardateien f¨ur Broadcom-Prozessoren der Reihen BCM947xx/953xx erzeugen zu k¨onnen. Neben etlichen weiteren Ar-chitekturen werden auch die Intel-XScale IXP4xx-Bausteine3und die ebenfalls verbreiteten AVR32-Prozessoren von Atmel unterst¨utzt. Mithilfe der erstellten Toolchain wird nun der Linux-Kernel f¨ur das Zielsystem erzeugt, es werden die notwendigen Pakete gebaut und das Firmware-Image wird erstellt. Zun¨achst muss im neu erstellten Verzeichnis<openwrt-dir>folgender Befehl eingegeben werden:

$ m a k e m e n u c o n f i g

Hiermit wird die Zielarchitektur festgelegt und es wird vorgegeben, wel-che Pakete gebaut werden sollen (in den Kernel integriert oder als Mo-dul zum Nachladen). U. U. m¨ussen an dieser Stelle noch die in der Datei

<openwrt-dir>/README gelisteten Pakete nachinstalliert werden. Auf einem neu eingerichteten Ubuntu-System erfolgt dies mit folgendem Befehl:

$ s u d o apt - get i n s t a l l ncurses - dev g a w k b i s o n f l e x a u t o c o n f a u t o m a k e

Im WL-500 befindet sich ein Broadcom-Prozessor vom Typ 4704; weiterhin soll das Zielsystem zudem mit Kernelversion 2.6 arbeiten, wodurch sich insbe-sondere bei der Verwendung von USB-Komponenten und bei der Treiberpro-grammierung Vorteile gegen¨uber Kernelversion 2.4 ergeben. Eine kleine Ein-schr¨ankung hierbei ist, dass f¨ur die Kernelversion 2.6 momentan keine WLAN-Unterst¨utzung f¨ur die eingebaute WLAN-MiniPCI-Karte verf¨ugbar ist (vgl.

Abschnitt 2.3).

Alternativ kann die bereits erw¨ahnte Atheros-MiniPCI-Karte eingesetzt oder alternativ auf Kernel 2.4 ausgewichen werden. Dann ist allerdings die Verwen-dung von Treibern f¨ur den 2.6er Kernel (IO-Warrior, vgl. Abschnitt 3.6) nicht m¨oglich. Eine Auswahl des ZielsystemsBroadcom BCM947xx/953xx [2.6]wird deshalb empfohlen. Nun kann die Auswahl zus¨atzlicher Pakete erfolgen (z. B.

stty f¨ur eine einfache Konfiguration der seriellen Schnittstelle). Diese k¨onnen

3 Bspw. eingesetzt in der Linksys NSLU2.

mit [*] direkt in den Kernel eingebunden oder ¨uber die Option [M] als Modul gebaut werden, m¨ussen dann allerdings vor der Verwendung installiert werden (vgl. Abschnitt 3.5). Um den Kernel m¨oglichst schlank zu halten, sollte im Regelfall die zweite M¨oglichkeit angewandt werden.

Die Gesamtkonfiguration k¨onnte z. B. folgendermaßen aussehen:

• Target System / [X] Broadcom BCM947xx/953xx [2.6]

• Base system / Busybox Configuration / Coreutils / [M] stty

Weiterhin besteht die M¨oglichkeit, Konfigurationsdateien zu speichern bzw. zu laden. Eine passende Konfiguration f¨ur die OpenWrt-Version 7.09 ist in den Quelltext-Dateien untersrc/openwrt/asus-wl-500.config enthalten.

Hinweis:F¨ur den Linksys WRT54G kann die gleiche Datei verwendet werden.

F¨ur eine Linksys NSLU2 mit ARM-Architektur ist abweichend davon die Datei src/openwrt/nslu2.config zu verwenden.

Nach erfolgter Konfiguration kann nun an der Kommandozeile der

¨Ubersetzungsprozess gestartet werden:

$ m a k e

Das OpenWrt-Verzeichnis ben¨otigt nach dem ¨Ubersetzen mindestens 2,5 Gigabyte Speicherplatz. Der Zusatz V=99 liefert detaillierte Angaben w¨ahrend des Durchlaufs, die besonders bei der Erstellung eigener Module hilf-reich sind (siehe Abschnitt 3.5).

Hinweis: F¨ur das Zielsystem ARM ist die lizensierte Intel-Bibliothek IPL ixp400NpeLibrary-2 4 notwendig. Diese ist nicht Open Source und kann entsprechend nur vorcompiliert bezogen werden.4 Nach der Zustim-mung zur Intel Public License und dem Herunterladen und Ablegen in

<openwrt-dir>/dl/ kann fortgefahren werden.

Nach erfolgreich durchlaufenem ¨Ubersetzungsprozess wurden vom Build-System zus¨atzliche Verzeichnisse angelegt. Die wichtigsten lauten wie folgt:

• <openwrt-dir>/bin – Enth¨alt Flash-Images mit Basissystem und fertige Pakete im.ipk-Format.

• <openwrt-dir>/build mipsel – Enth¨alt zus¨atzliche, f¨ur das Zielsystem gebaute Anwendungen.

• <openwrt-dir>/staging dir mipsel/bin – Enth¨alt die fertigen Cross Compiler.

4Diese Bibliothek ist im Download-Bereich der Intel-Website unter http://

downloadcenter.intel.com/bei einer Suche nach

”ixp400“ zu finden.

3.2 Einrichtung des OpenWrt-Build-Systems 61 In dem Verzeichnis <openwrt-dir>/bin sollte ab jetzt eine Datei openwrt-brcm47xx-2.6-squashfs.trxvorhanden sein, welche in den Flash-Speicher des Routers ¨ubertragen werden kann. F¨ur andere Ger¨ate mit gleicher Architektur wie bspw. den Linksys WRT54g ist die Datei openwrt-wrt54g-2.6-squashfs.bin zu verwenden. Die Dateien mit En-dung.bin stellen im Grunde.trx-Dateien mit Zusatzinformationen dar, um mit den Werkzeugen des Herstellers kompatibel zu bleiben. So lassen sich Firmware-Images alternativ auch ¨uber die Website des Routers flashen.

3.2.1 Aufspielen des Flash-Images

Bevor eine Bin¨ardatei in den Flash-Speicher des Routers ¨ubertragen werden kann, muss dieser zun¨achst in den Diagnosemodus versetzt werden.

Hinweis:Dies ist nur f¨ur den WL-500 und die NSLU2 notwendig. Der WRT54 ist direkt nach dem Anlegen einer Spannung f¨ur kurze Zeit zur Aufnahme ei-nes neuen Flash-Images bereit. Sollte dies nicht m¨oglich sein, so hilft hier der Diagnosemodus weiter. Im Falle einer NSLU2 wird das Firmware-Image nicht mittftp, sondern mit dem Programmupslug2aufgespielt. Dieses Programm ist als Debian-Paket verf¨ugbar und erkennt eine an der Netzwerkschnittstelle des Host-Rechners angeschlossene NSLU2 automatisch, eine spezielle Konfigu-ration des PCs ist nicht notwendig.

Die Aktivierung des Diagnosemodus geschieht f¨ur alle Ger¨ate unterschiedlich und ist f¨ur den WL-500, WRT54G und NSLU2 in Anhang A.5 beschrieben.

Wurde dieser Schritt (f¨ur WL-500 oder NSLU2) durchgef¨uhrt, so l¨asst sich das Firmware-Image mittels tftp oder der neueren Version atftp (gegebe-nenfalls ¨uber sudo apt-get install tftp bzw. atftp nachzuinstallieren) in den Flash-Speicher des WL-500 ¨ubertragen. Dazu werden im Verzeichnis

<openwrt-dir>/binfolgende Befehle ausgef¨uhrt:

$ t f t p 1 9 2 . 1 6 8 . 1 . 1

$ tftp > b i n a r y

$ tftp > t r a c e

$ tftp > put openwrt - b r c m 4 7 x x -2.6 - s q u a s h f s . trx

Wichtig: Nachdem der Upload beendet ist, sollte mindestens f¨unf Minuten gewartet werden, da die Firmware zuerst in den Hauptspeicher geladen und von dort geflasht wird. Danach wird der Router automatisch neu booten, was eine Weile dauern kann. Einige Minuten nach dem Neustart sollte ein ping 192.168.1.1m¨oglich sein, dies ist die Standard-IP nach der ¨Ubertragung der OpenWrt-Firmware. In einzelnen F¨allen startet sich der Router nicht automa-tisch selbst von Neuem, es kann dann aber auch nach f¨unf Minuten manuell ein Neustart durchgef¨uhrt werden.

3.2.2 Der erste Einlog-Vorgang

¨Uber den Befehltelnet 192.168.1.1 kann sich der Anwender nun mit dem Router verbinden, und folgendes Cocktail-Rezept sollte auf dem Bildschirm erscheinen:

F¨ur das weitere Vorgehen bietet SSH eine sichere Alternative zu der unver-schl¨usselten Telnet-Verbindung. Zur Aktivierung einer SSH-Verbindung muss zun¨achst durch den folgenden Aufruf ein Passwort gesetzt werden:

$ p a s s w d

Danach sollte sich der Anwender sofort mitexitwieder abmelden. Nun ist das Ger¨at viassh root@192.168.1.1erreichbar; weiterhin ist Telnet von nun an deaktiviert. F¨ur die weitere Installation wird eine Internetverbindung f¨ur den WL-500 ben¨otigt. Dieser muss zun¨achst f¨ur einen Betrieb als Client im lokalen Hausnetz konfiguriert werden. Im Folgenden wird davon ausgegangen, dass ein weiterer Router existiert, welcher eine Internetverbindung besitzt und dessen IP bekannt ist.

Der WL-500 wird im einfachsten Fall mit einer statischen IP versehen. Der Anwender loggt sich hierf¨ur ein und bearbeitet die Netzwerkeinstellungen in /etc/config/network. Bei einem Internet-Router mit IP 192.168.1.1 sollten die Einstellungen folgendermaßen aussehen:

Der einfache Editor viist auf fast jedem Linux-System vorhanden und kann entsprechend auch f¨ur das Editieren solcher Konfigurationsdateien verwendet werden. Hinweise zu der etwas gew¨ohnungsbed¨urftigen Bedienung finden sich in Anhang A.2.2.

3.2 Einrichtung des OpenWrt-Build-Systems 63 Grunds¨atzlich ist die Vergabe einer statischen IP der sicherere Weg, da hiermit der WL-500 im Notfall auch direkt ohne DHCP-Server am Entwicklungs-PC betrieben werden kann. Wahlweise kann aber auch eine dynamische IP ¨uber DHCP bezogen werden. F¨ur den zweiten Fall muss in der DHCP-Tabelle des Haus-Routers der MAC-Adresse des WL-500 eine bestimmte IP zugewiesen werden. Die MAC-Adresse ist auf dem Boden des Ger¨ates abgedruckt, kann aber auch ¨uber folgenden Befehl ermittelt werden:

$ i f c o n f i g

F¨ur eine DHCP-Anbindung m¨ussen die Netzwerkeinstellungen in /etc/config/networkwie folgt konfiguriert werden:

# # # # L A N c o n f i g u r a t i o n c o n f i g i n t e r f a c e lan

o p t i o n t y p e b r i d g e o p t i o n i f n a m e " e t h 0 .0 "

o p t i o n p r o t o d h c p

Auch auf dem WL-500 l¨auft standardm¨aßig ein DHCP-Server. F¨ur den Be-trieb als Client im Hausnetz wird dieser nicht ben¨otigt und kann abgeschaltet werden:

$ / etc / i n i t . d / d n s m a s q d i s a b l e

Die Konfiguration des WL-500 f¨ur den Anschluss am Heimnetz ist nun abge-schlossen, und das Ger¨at sollte unter der eingestellten IP-Adresse zu finden sein. Im n¨achsten Schritt wird der Host-PC auf die urspr¨unglichen Einstel-lungen zur¨uckgesetzt, und es wird per SSH ein erneuter Einlog-Vorgang zum WL-500 gestartet. Nun sollte eine Verbindung zum Internet vorhanden sein – ein Test kann aussehen wie folgt:

$ p i n g g o o g l e . de

In einem weiteren Schritt kann nun die Web-Oberfl¨ache installiert werden, wel-che bei OpenWrt nicht enthalten ist. Sie wurde in das separate Projekt X-Wrt ausgelagert [X-Wrt 08]. Hierzu werden zun¨achst die ipkg-Paketinformationen5 auf den neuesten Stand gebracht. Anschließend wird das Paket f¨ur die Web-Oberfl¨ache installiert:

$ i p k g u p d a t e

$ i p k g i n s t a l l h t t p :// d o w n l o a d s . x - wrt . org / x w r t / k a m i k a z e / 7 . 0 9 / b r c m 4 7 x x - 2 . 6 / w e b i f _ l a t e s t . ipk

Je nach Distribution und Ger¨at ist ein anderer Link zu verwenden; auf der Download-Seite des Projektes [X-Wrt 08] k¨onnen die entsprechenden Pake-te nachgeschaut werden. Die WL-500-WebsiPake-te ist nun unPake-ter voreingesPake-tellPake-ter

5 ipkg steht f¨urItsy Package Management System[ipkg 08], ein ressourcenschonen-des Paketsystem f¨ur Microrechner, Handhelds und Embedded-Systeme. Die Kon-trollprogramme sind auf das Notwendigste beschr¨ankt, und auch die .ipk-Pakete sind feingranular strukturiert und entsprechend schlank gehalten.

IP ¨uber einen Webbrowser zug¨anglich. Benutzername und Passwort sind die gleichen wie f¨ur den SSH-Login. ¨Uber die Web-Oberfl¨ache k¨onnen Statusin-formationen abgefragt, regul¨are Router-Einstellungen vorgenommen und ipkg-Pakete verwaltet werden.