MikroTik RB4xx: OpenWrt-Installation

Aus FunkFeuer Wiki
Wechseln zu: Navigation, Suche

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 (nicht 802.3af) 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:

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.
  • WICHTIG!! Adresse vor der Vergabe NICHT pingen, sonst wird sie nicht zugeordnet!!!


Tftp32 BasicSettings.jpg

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 keine 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.


DHCP-Server Setup.jpg

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.


Putty-SerialSession.jpg


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.

  • Vorbereitungen im Bootloader
    • Dazu öffnen wir unsere RS232-Terminalprogramm, das wir zuvor eingerichtet haben
    • Nun versorgen wir das Board mit Strom - Wir sollten das Board in Putty booten sehen. (Wenn nicht, COM-Parameter kontrollieren)
    • innerhalb der ersten 2 Sekunden muss nun eine Taste am PC gedrückt werden, um in das Setup-Menü des Boards zu gelangen.
    • Erst mal mit "p" das Boot-Protokoll auf "2" (dhcp Protokoll) festlegen
    • Dann im Menü den Buchstaben "o" wählen, um das Bootdevice festzulegen.
      • Mit "n" versetzen wir das Board in den Zustand, dass es per Default vom Flash-Speicher bootet. Es sei denn das klappt nicht, dann wird versucht, ersatzweise von unserem tftp32 ein lauffähiges Image (initramfs.elf) zu laden.
    • Mit "e" wird abschließend noch der Flash-Speicher formatiert. Dazu die Frage, ob wir das wirklich wollen mit "yes" bestätigen.
    • Abschließend mit "x" die Einstellungen speichern - das Board rebootet, lädt und führt das Filesystem aus.


RB-Setup2.jpg

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)


RB-SetPassword.jpg


Kernel & RootFS löschen

Bevor ihr unsere Firmware auf den Router kopiert ist es ratsam, den aktuellen Inhalt der Speicherbereiche Kernel & RootFS zu löschen. Dazu einfach über die Konsole folgende Befehle absetzen:

mtd erase kernel
mtd erase rootfs

Lasst euch nicht von Meldungen über fehlerhafte Speicherblöcke beirren. Das ist völlig normal und wird vom System selbsständig repariert.


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


WinSCP-Setup.jpg


  • 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. (Bei Board mit kleinem Speicher (z.B. 411er) Kernel und rootfs voneinander getrennt kopieren und installieren.)


WinSCP-CopyRB.jpg

Kernel & RootFS installieren

  • Nun wechseln wir wieder zu unserem RS232-Terminal Programm und führen folgende Befehlskette aus.(Einfach alles mit Rechtsklick kopieren und in Putty einfügen):
mount /dev/mtdblock1 /mnt/
mv /tmp/openwrt-ar71xx-vmlinux.elf /mnt/kernel
umount /mnt/
mount /dev/mtdblock2 /mnt/
cd /mnt
tar -xzvf /tmp/openwrt-ar71xx-rootfs.tar.gz
rm -f /tmp/openwrt-ar71xx-rootfs.tar.gz
cd /
umount /mnt
reboot

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.


Anmerkung: Sollte es nicht funktioniert haben kann es sein, dass eure Kernel-Patitionen nicht "kenel" heißt.

cat /proc/mtd

Dieser Befehl zeigt euch den richtigen Namen. Damit´s funktioniert "kernel" im Script oben entsprechend des Egebnisses aus cat ersetzen

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.