Raspberry Pi – Raspbian auf Windows Emulieren – QEMU

Erstellt am 19. April 2015 von At2oo1

Zu meinem Unglück ist nach einem Sturz meines Raspberry Pi 2 vom Schreibtisch die Micro SD-Karte defekt, ich habe mir beim Anstecken des MicroUSB Kabels an der SD-Karte die Finger verbrannt da diese einen Kurzschluss erzeugt. Der Pi hat *hoffentlich* keinen weiteren Schaden genommen, alles Weitere wird sich zeigen wenn die neue SD-Karte geliefert wird. Da ich mit der Leistung und dem Preis der Micro SD Karten von Transcend bisher zufrieden war habe ich wieder eine Class 10 16GB Micro SD-Karte für ~8€ bestellt.

Da ich entgegen meiner Planung daher heute keinen Artikel zum Thema “UMTS USB-Stick am Raspberry Pi” schreiben kann und mein Pi ohne SD-Karte nicht funktioniert, habe ich mich kurzer Hand dazu entschieden, die Möglichkeit einen Raspberry Pi mit Raspbian auf meinem Windows System mit QEMU zu emulieren vorzustellen.

Was ist QEMU?

Der “Qick EMUlator” ist eine Open Source Software die es uns ermöglicht einen Raspberry Pi, der ja auf einem Broadcom BCM283x Chipsatz mit ARM CPU basiert, zu Emulieren. Das ganze passiert anhand einer “Virtuellen Maschine” die uns Quasi auf unserem Rechner ein System mit ARM CPU Befehlssatz emuliert. Innerhalb dieser Virtuellen Maschine kann dann das Raspbian Betriebssystem unter folgenden Einschränkungen betrieben werden:

  • Maximal 256MB Arbeitsspeicher möglich
  • Es wird eine ARM1176 CPU emuliert da der RasPi 2 eine neuere Cortex A7 verwendet beschränkt sich die Emulation also auf die älteren Modelle
  • Die Bildschirmauflösung ist auf 800×600 mit 16Bit beschränkt
  • Keine Audio Ausgabe möglich
  • Die Emulation der Hardwareschnittstellen ist nicht möglich
  • Es wird ein angepasster Kernel benötigt um Raspbian mit der emulierten Hardware lauffähig zu bekommen!

Um genau zu sein, es wird mit QEMU ein “Versatilepb Entwicklerboard” emuliert das der Hardware des Raspberry Pi am nächsten kommt, einen “echten” all-umfänglichen Raspberry Pi Emulator gibt es bislang nicht, daher muss man sich mit den oben genannten Einschränkungen mit QEMU behelfen. Leider gibt es die QEMU Software nicht als Windows Version, wir verwenden daher die von Stefan Weil zur Verfügung gestellte QEMU Windows Version.

QEMU auf Windows Installieren und Einrichten

Um via QEMU einen Raspberry Pi auf unserem Windows System emulieren zu können benötigen wir als erstes folgende Software:

  • QEMU für Windows in der Version 1.6 von Eric Lassauge
  • Ein aktuelles Raspbian Image
    • Download des aktuellsten Raspbian Image
  • Einen für QEMU kompilierten Kernel
    • Einen fertigen Kernel gibt es hier zu Download, wer möchte kann sich den Kernel in einer aktuellen Version auch selber kompilieren

QEMU verwende ich in der 32Bit Version – qemu-w32-setup-20150413.exe, das Raspbian Image natürlich auch in der momentan aktuellsten Version 2015-02-16-raspbian-wheezy.img von raspberrypi.org.

QEMU Installieren

Die drei Dateien Speichere ich in einem Arbeitsverzeichnis, bei mir ist das “D:\QEMU\“.

Dann entpacke ich die Zip-Datei “Qemu-1.6.0-windows.zip”, die Entpackten Dateien landen bei mir unter “D:\QEMU\Qemu-windows-1.6.0“, dorthin verschiebe ich auch die Dateien “2015-02-16-raspbian-wheezy.img” und “kernel-qemu“.

QEMU das erste mal starten

Wichtig! Falls ihr nicht das Raspbian Image vom 16.02.2015 verwendet müsst den Dateinamen des Image in den Batchdateien bzw. in den Befehlen entsprechend anpassen.

Wir haben nun alle notwendige Software und können loslegen und QEMU einrichten, um QEMU nicht jedes mal via komplizierter Kommandozeile starten habe ich euch die Befehle in Batch Dateien zusammengestellt.

  • Download der Datei first-start, entpackt diese in euer Arbeitsverzeichnis (bei mir D:\QEMU\Qemu-windows-1.6.0) und führt diese durch einen Doppelklick aus

Alternativ könnt ihr den Befehl via Kommandozeile (“Windows Taste + R” und dann “cmd” eingeben) auch selbst aus dem Arbeitsverzeichnis ausführen.

qemu-system-arm.exe -M versatilepb -cpu arm1176 -hda 2015-02-16-raspbian-wheezy.img -kernel kernel-qemu -m 256 -append "root=/dev/sda2"

Qemu startet nun in einem eigenen Fenster, allerdings mit englischer Tastatur, wer damit nicht zurecht kommt findet hier die Tastaturbelegung

Wir müssen noch einige Konfigurationen vornehmen und öffnen als erstes die Datei /etc/ld.so.preload mit dem Editor nano.

nano /etc/ld.so.preload

Wir kommentieren durch voranstellen einer Raute (# = SHIFT + 3) folgende Zeile aus

#/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so

Wir speichern und beenden Nano mit STRG+X, Y und Enter (Y = Z auf eurer Tastatur).

Es werden noch zwei Symlinks benötigt sodass später wie gewohnt auf die SD-Karte zugegriffen werden kann. Hierzu editieren wir wieder eine Konfiguration mit nano

nano /etc/udev/rules.d/90-qemu.rules

Die Datei erhält folgenden Inhalt.

KERNEL=="sda", SYMLINK+="mmcblk0"
KERNEL=="sda?", SYMLINK+="mmcblk0p%n",

Speichert wieder mit STRG+X,Y und Enter, Beendet dann die QEMU Sitzung durch die Eingabe von exit.

QEMU mit Raspbian verwenden

Als nächstes können wir den Pi regulär booten, auch hierfür habe ich euch eine Batchdatei vorbereitet

  • Download der Datei start-qemu, entpackt diese in euer Arbeitsverzeichnis (bei mir D:\QEMU\Qemu-windows-1.6.0) und führt diese durch einen Doppelklick aus

Alternativ könnt ihr auch selbst folgendes Kommando ausführen

start qemu-system-armw -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda 2015-02-16-raspbian-wheezy.img

Das Starten von Raspbian dauert etwas länger als gewohnt, wir landen dann direkt im “raspi-config” und können wie gewohnt arbeiten.

Ich habe erst mal das KeyBoard Layout bzw. die Lokation und die Zeitzone auf deutsch umgestellt.

 Wichtig! Da wir innerhalb der Datei “2015-02-16-raspbian-wheezy.img” arbeiten stehen uns nur ~360MB an weiterem Speicherplatz zur Verfügung, das reicht für viele Tests aus. Wie ihr das Image dennoch erweitern könnt erkläre ich das nächste mal. Ebenso kann aus dem Raspbian zwar ohne weiteres aufs Netzwetrk zugegriffen werden, allerdings wird es, wenn man von “außen” zugreifen möchte kniffelig, auch das erkläre ich im nächsten Tutorial.

Nun könnt ihr wie gewohnt mit raspbian arbeiten, das Login ist wie gewohnt “pi” mit dem Passwort “raspberry“.

Auch auf dem Desktop kann mit 800×600 gearbeitet werden, um die Maus aus dem “QEMU Fenster” zu lösen verwendet die Tastenkombination STRG+ALT.

Viel Spaß!

Weitere Raspberry Pi Projekte

  • Raspberry Pi Kernel kompilieren (Cross-Compiler)
  • Tor Gateway – Raspberry Pi zum anonymen surfen verwenden – AnoPi
  • Ambi-TV – Ambilight mit dem Raspberry Pi nachrüsten
  • Raspberry Pi Performance Tuning und Tweaks