MikroTik RB4xx: OpenWrt-Installation
Inhaltsverzeichnis
Allgemeines
MikroTik Routerbourds der Serie 4xx unterscheiden sich von anderer, bei 0xFF-Funkfeuer im Einsatz befindlicher Hardware dadurch, dass das sich das Device über einen Network-Bootvorgang ein Installationsimage von einem angeschlossenen Host (via TFTP) holt, über das das weitere Setup vorgenommen werden kann.
Grundvoraussetzungen
Windows-Host
- TELNET/SSH/RS232 Client
Das Programm Putty eignet sich hervorragend, um mit dem Board im Zuge der Installation kommunizieren zu können. Es besitzt neben der TELNET/SSH-Funktionalität auch die Möglichkeit, mit dem Board über das serielle Interface kommunizieren zu können. (Wichtig um das Board in den gewünschten Betriebszustand zu versetzen, um flashen zu können.
- TFTP-Server
Das Programm tftp32 ist ein kombinierter TFTP/DHCP/Syslog-Server, der benötigt wird, damit das Board den Netzwerkboot-Vorgang durchführen kann. Zusätzlich ist tftp32 auch ein TFTP-Client, mit dessen Hilfe andere Devices wie Bullets, Nanostation und Co. aus Windows heraus geflashed werden können.
- WinSCP
Das Programm WinSCP ist ein sehr komfortables Kopierprogramm im Norton Commander Style, über das ein Fileaustausch zwischen lokalen und entfernten Verzeichnissen über die Protokolle FTP, SFTP und SCP möglich ist.
Linux-Host
Infos werden später aktualisisert
Basic-Setup
Hardware-Setup
Um das Board über Eternet booten zu können, muss es via RS232- UND LAN-Kabel mit dem PC verbunden sein. Erwartungsgemäß haben Notebooks leider keine seriellen Schnittstellen - es gibt jedoch RS232-USB Adapter, die ebenfalls gute Dienste leisten. Als Stromversorgung kann ein handelsübler passive-PoE Adapter oder das mitgelieferte Netzteil verwendet werden.
Installations-Images
Für die Istallation sind drei Files aus dem 0xFF-Backfire Vienna contrib-Repository erforderlich, die jeweils den aktuellen Stand der Entwicklung repräsentieren.
Diese sind:
- Das Init-Filesystem (vmlinux-InitramFS.elf), über das der Netzwerkboot erfolgt,
- der OpenWrt-Linux Kernel (vmlinux.elf) und
- das 0xFF-Backfire Vienna Root-Filesystem (rootfs.tar.gz) mit allen erforderlichen Programmen und Settings für den Betrieb in unserer Community.
Kopier dir bitte diese drei Files in ein Verzeichnis auf deinem lokalen PC.
Vorbereitung des TFTP-/DHCP-Servers (tftp32)
Basic-Settings
- Im "Base Directory" wird jenes Verzeichnis eingetragen, in das du die drei Installationsfiles kopiert hast.
- Wichtig ist, dass in den "Global Settings" TFTP- und DHCP-Server angehakt sind.
DHCP Server-Einstellungen
- Da OpenWrt nach dem Bootvorgang mit der IP 192.168.1.1 startet, ist es ratsam, den IP-Pool ebenfalls in diesen Bereich zu legen.
- Sehr wichtig ist es, den DHCP-Pool nicht zu klein zu zu dimensionieren, da der Server bei Überschreiten keinne Adressen mehr vergibt und daher der Upload nicht mehr funktioniert.
- Das Bootfile ist die Datei openwrt-ar71xx-vmlinux-initramfs.elf, die du bereits auf deinen PC kopiert hast.
Vorbereitung des RS232-Terminal Programms (Putty)
- Dazu musst du vorerst identifizieren, welchen COM-Port deine Schnittstelle zum Routerboard benutzt. Diese Info findest du je nach Windows-Version unter "Systemsteuerung/...Gerätemanager"
- Jetzt den Button "Serial" anwählen und deinen COM-Port und die Übertragungsgeschwindigkeit 115200 (Bd) eintragen.
- Es ist ratsam, die Einstellungen (wie dargestellt) mit einem frei vergebbaren Namen zu speichern.
Installation von 0xFF-Backfire Vienna am Routerboard
Init-Filesystem laden
Wie bereits erwähnt, versucht der Bootloader im Routerboard via DHCP-Request eine IP-Adresse aus dem festgelegten Pool (192.168.1.150ff) zu erhalten und fordert danach ein Bootfile an. In unserem Fall den Linux-Kernel, dem wir im DHCP Server-Setup festgelegt haben.
- Dazu öffnen wir unsere RS232-Terminalprogramm, das wir zuvor eingerichtet haben
- Nun versorgen wir das Board mit Strom und sollten es booten sehen
- innerhalb der ersten 2 Sekunden muss nun eine Taste am PC gedrückt werden, um in das Setup-Menü des Boards zu gelangen.
- Ert mal mit "p" das Boot-Protokoll auf "2" dhcp protokoll festlegen
- Dann im Menü den Buchstaben "o" wählen, um das Bootdevice festzulegen.
- Mit "1" versetzen wir das Board in den Zustand, dass es einen ersten Bootvorgang über das LAN-Interface, den zweiten jedoch bereits vom Flash-Speicher (NAND) macht.
- Mit "e" werden die Einstellungen gespeichert und das Board rebootet, lädt und führt das Filesystem aus.
Permanente Kernel- & RootFS-Installation im RB-Flash Speicher
Sollte alles geklappt haben, habt ihr jetzt ein voll funktionsfähiges Routerboard, das erst mal über die serielle Konsole (Putty) und über euren Browser (Adresse http://192.168.1.1 ) erreichbar ist. Wie bei OpenWrt üblich, ist das Gerät jedoch derzeit noch nicht über SCP oder SSH erreichbar. Dazu muss erst ein Passwort gesetzt werden.
Passwort festlegen um SCP und SSH zu aktivieren
Dies kann über "LuCI-Administration/System/Passwort ändern" oder über unsere serielle Konsole erfolgen:
- dazu das Kommando "passwd" eingeben
- das Passwort festlegen und erneut bestätigen
- Ungeeignete/Unzureichende Passwörter werden identifiziert - eine Warnung ausgegeben (kann ignoriert werden)
Kernel & RootFS mit WinSCP kopieren
Als nächsten Schritt kopieren wir nun Dateien openwrt-ar71xx-vmlinux.elf und openwrt-ar71xx-rootfs.tar.gz in das /tmp-Verzeichnis unseres Routers um es im nächsten Schritt in den Festspeicher (NAND) verschieben zu können. Dazu kann das oben beschriebene Programm WinSCP verwendet werden.
- Mit "New" legen wir eine neue Session für unsere IP 192.168.1.1 an
- Legen UserName (root) und unser kürzlich gewähltes Passwort fest
- Als Protokoll verwenden wir Secure Copy (SCP)
- Wenn gewünscht können wir die Session für spätere Versuche speichern
- Nun starten wir die Session und bestätigen die Fehlermeldung, dass SCP keine Group gefunden hat. (Wird bei OpenWrt micht konfiguriert)
- Damith sind wir bereits mit unserem Router verbunden und können die beiden oben genannten Dateien in das /tmp-Verzeichnis kopieren.
Kernel & RootFS installieren
- Nun wechseln wir wieder zu unserem RS232-Terminal Programm und führen folgende Befehlskette aus.(Einfach kopieren und mit Rechtsklick im Putty einfügen):
mount /dev/mtdblock1 /mnt/ mv /tmp/openwrt-ar71xx-vmlinux.elf /mnt/kernel umount /mnt/ mount /dev/mtdblock2 /mnt/ mv /tmp/openwrt-ar71xx-rootfs.tar.gz /mnt/ cd /mnt gzip -d openwrt-ar71xx-rootfs.tar.gz tar xvf openwrt-ar71xx-rootfs.tar rm -f openwrt-ar71xx-rootfs.tar cd / umount /mnt
Duch diesen Vorgang wurden der Kernel und das Root-Filesystem in den Flash-Speicher geschrieben, und nach dem ersten Reboot der 0xFF-Wizard ausgeführt. Damit wurden alle relevanten Grundeinstellungen für den Betrieb des Routerboards in der Wiener Funkfeuer-Community vorgenommen.
Konfiguration 0xFF-Backfire Vienna
Nun ist das Device über die Adresse http://192.168.1.1 erreichbar und kann entsprechend deinen Anforderungen konfiguriert werden. Hintergrundinfos und das Setup der Firmware, findest du unter Konfiguration 0xFF-Backfire Vienna.