OpenWrt Kamikaze in VirtualBox auf dem Mac laufen lassen
30. December, 2008
Mit dem nahenden Release von OpenWrt Kamikaze 8.09 möchte man sich natürlich mit den Neuerungen vertraut machen. Bisher habe ich auf Routern noch die WhiteRussian Variante in Benutzung. Da sich sehr viel gegenüber der aktuellen Kamikaze Version verändert hat, möchte man sich natürlich in Ruhe damit beschäftigen ohne evtl. seinen Router außer Gefecht zu setzen. Was liegt da näher als dies in einer virtuellen Maschine à la VirtualBox zu tun? Recht einfach möglich ist das, weil OpenWrt auch die x86 Plattform unterstützt.
Für den Mac gibt es ja eine ganze Reihe von Virtualisierern. Der Vorteil von VirtualBox gegenüber Vmware Fusion und Parallels ist, es ist kosentlos verfügbar. Sicher nicht ganz so performant aber für diesen Zweck vollkommen ausreichend. Qemu ist auf für den Mac verfügbar, was mich aber entscheidend gestört hat, ist die sehr schwierige Netzwerkkonfiguration, die aber für das arbeiten mit OpenWrt sehr wichtig ist. Ansonsten hat Qemu auch einen ganz interessanten Eindruck gemacht, gerade weil es auch MIPS und ARM Prozessoren als Host CPU anbietet.
Wie bekommt man nun OpenWrt in VirtualBox zum laufen? Aus meiner Sicht gibt es zwei Ansätze. Erstens, man lädt sich das offizielle OpenWrt Image für x86 herunter und konvertiert das zu einem Image, was auch VirtualBox als Festplattenimage benutzen kann. Zweitens, lädt sich den Quellcode herunter und kompiliert sich den seine Kamikaze Version einfach selbst.
Ich habe mich für den zweiten Weg entschieden, denn man kann vor dem Kompilieren angeben, dass auch ein Image für VirtualBox erzeugt wird. Damit ist jegliches konvertieren überflüssig und man kann auch gleich die Netzwerkkartentreiber, die VirtualBox benötigt, fest einkompilieren. Ein auf diesem Weg erzeugtes Image kann man sich gern bei mir runterladen – das ist noch einfacher
Bitte unter Downloads nachschauen und openwrt-x86-ext2.vdi herunterladen.
OpenWrt lässt sich sehr einfach unter Linux kompilieren. Deshalb habe ich mir eine akuelle Ubuntu Version heruntergeladen und in VirtualBox als virtuelle Maschine eingerichtet und installiert. Dann benötigt man den Quellcode von OpenWrt Kamikaze, den man unter http://downloads.openwrt.org/kamikaze/8.09_RC1/kamikaze_8.09_rc1.tar.bz2 bekommt.
Schritt 1:
Ubuntu in VirtualBox hochfahren, Kamikaze Quellcode entpacken und make menuconfig aufrufen. (Hinweis: Bei mir ist das beim ersten Aufruf gescheitert weil noch Tools und Bibliotheken unter Ubuntu gefehlt haben, die man bequem über den Paketmanager nachinstallieren kann.) Er scheint der Dialog wie man es vom Kernel kompilieren kennen dürfte wählt man unter “Target System” entsprechend “x86″ aus. Dann unter “Target Images” Erzeugung eines VDI Images aktivieren (siehe Abb.)
Unter “Kernel Modules” -> “Network Devices” habe ich mir die Treiber für e1000 und pcnet32 fest eingetragen, damit diese nicht mehr als Modul geladen werden. Wenn man mit seinen Einstellungen fertigt ist verlässt man “menuconfig” wieder.
Schritt 2:
Jetzt kann man einfach make ausführen und OpenWrt wird gebaut. Dazu wird eine Internetverbindung benötigt weil dabei benötigte Quelltextepakte direkt heruntergeladen werden. Abwarten. Dauert etwas.
Schritt 3:
Das fertige VDI Image für VirtualBox findet man dann im bin/ Ordner. Dieses kopiert man sich aus der virtuellen Maschine auf seinen Mac. (Hinweis: Ich habe mir unter Ubuntu Samba installiert und vom Mac aus via Netzwerk auf die virtuelle Maschine zugegriffen. Dazu muß die Netzwerkkarte von VirtualBox auf “Host” stehen.)
Schritt 4:
Unter VirtualBox eine neue virtuelle Maschine einrichten und als Festplattenimage die VDI Datei benutzen. Hochfahren. Läuft erstmal.
Schritt 5:
Die Standardnetzwerkkonfiguration ist nicht sehr sinnvoll. Um erstmal auf OpenWrt zugreifen zu können, muss man die Datei /etc/config/network anpassen. Beispiel:
config 'interface' 'lan'
option 'ifname' 'eth0'
option 'proto' 'dhcp'
Damit hat bezieht die OpenWrt Instanz im VirtualBox via DHCP eine IP Adresse. Die Netzwerkschnittstelle sollte in VirtualBox dafür auf “Host” eingestellt sein.
Nun ist OpenWrt in der virtuellen Maschine vom Mac aus erreichbar. Ein opkg install luci-admin-full installiert die neue Weboberfläche von OpenWrt. Setzt man mittels passwd ein Passwort, kann man sich auch via SSH einloggen.

















MK am 11. January, 2009 um 12:21
Hi,
ich versuche auch gerade OpenWRT unter VMWare Fusion zu starten und habe mich für den vermeintlich leichteren, ersten Weg entschieden. Leider klappt das so gar nicht, da die Netzwerkkarten nicht gefunden werden. In Fusion kann man leider nicht den Typ der Netzwerkkarte (Intel o.ä.) auswählen – vielleicht liegt darin das Problem?!
Oder gibt es noch einen anderen Trick?
MK
cm am 11. January, 2009 um 14:15
Hi MK,
es kann gut sein, dass VMware Netzwerkkarten nutzt, die per default nicht unterstützt werden. Eigentlich sind sämtliche Treiber als Modul kompiliert, die Du zum Test via “modprobe” bzw. “insmod” nachladen kannst. Sollte das klappt, dann kann man diese entweder in die Modul-Config eintragen, dass diese beim hochfahren automatisch eingebunden werden oder man kompiliert sich doch alles selbst und bindet die Netzwerkkarten-Treiber fest ein.
Ich bin nicht sicher, aber ich glaube VMware nutzt emuliert ein AMD PCNet Netzwerkadapter. Wenn man versucht dafür den Treiber nachzuladen und mal mit “dmesg” nachschaut was passiert könnte man schon weiterkommen. Ansonsten müsste man erstmal recherchieren welches Netzwerkkartenmodell VMware tatsächlich emuliert.
Beste Grüße,
Christian
meeveo.com » OpenWrt Kamikaze in VMWare Fusion laufen lassen am 13. January, 2009 um 12:03
[...] meinem Beitrag über OpenWrt in VirtualBox gab es einige Anfragen zum Thema VMWare und wie man darin OpenWrt [...]