ubuntuusers.de

Baustelle - Raspberry Pi mit QEMU emulieren

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

herrmeier

Anmeldungsdatum:
5. Oktober 2006

Beiträge: 297

Hi ich wollte mal versuchen ein Howto zur Emulation eines Raspberry Pi zu veröffentlichen bzw. zur Abnahme durch das Wiki-Team bereitszustellen... Leider sehe ich keinen Link speichern, oder Diskussion in normalen Artikel anlegen. Am Ende zeigt mir Absenden nur dieses Feld sei zwingend erforderlich...Was mache ich falsch?

[[Vorlage(InArbeit, )]]
## Durch Klick auf "Bearbeiten" kann (a) bearbeitet werden (aha!) und (b) die zugrundeliegende Syntax betrachtet und nachgeahmt werden

## Bitte hier den eigenen Benutzernamen und das geplante Fertigstellungsdatum eintragen. 
[[Vorlage(Baustelle, 13.04.2014, herrmeier)]]
Wenn der Artikel fertig ist, auf ''"Diskussion"'' klicken und dort mitteilen, dass der Artikel zu einem Korrekturlesen bereit ist. Das Wikiteam wird nach Diskussion den Artikel dann ins Wiki verschieben und die "InArbeit"-Zeile herauslöschen.
## Bitte hier die Versionen kommagetrennt eintragen, mit denen getestet wurde.
[[Vorlage(Getestet, saucy)]]


## Bitte hier alle wesentlichen Wikiartikel auflisten, deren Kenntnis vorausgesetzt wird.
{{{#!vorlage Wissen
[:Pakete installieren: Installation von Programmen]
[:Programme_starten: Starten von Programmen]
[:Terminal: Ein Terminal öffnen]
[:Editor: Einen Editor öffnen]
[:sudo: Root-Rechte]
[:QEMU: QEMU installieren und konfigurieren]

Installation

QEMU kann direkt aus den Quellen installiert werden [1]

  • qemu

  • qemu-user

  • qemu-utils

  • kvm-ipxe

  • unzip

Befehl zum Installieren der Pakete:

sudo apt-get install qemu qemu-user qemu-utils kvm-ipxe unzip 

Nachdem nun Qemu installiert ist, müssen wir noch einige weitere Vorbereitungen treffen [2].

Teste ob richtig installiert

qemu-system-arm -cpu ? |grep arm1176 

Die Ausgabe sollte so aussehen:

arm1176

weitere Vorbereitungen

Prüfe ob ein aktuelleres Image vorliegt und passe, Dein Vorgehen an.

All in one-Befehl

mkdir ~/qemu_vms/ && cd ~/qemu_vms && wget http://xecdesign.com/downloads/linux-qemu/kernel-qemu ~/qemu_vms/ && wget http://downloads.raspberrypi.org/raspbian/images/raspbian-2014-01-09/2014-01-07-wheezy-raspbian.zip ~/qemu_vms/ && unzip ~/qemu_vms/raspbian-2014-01-09/2014-01-07-wheezy-raspbian.zip && rm ~/qemu_vms/raspbian-2014-01-09/2014-01-07-wheezy-raspbian.zip 

alternativ zu All-in-one-Befehl nun Schritt für Schritt

Es sollten mindestens 5 GB Platz auf Home-Partition frei sein.

df -h  

Erstelle ein Verzeichnis qemu_vms und wechsele hinein.

mkdir ~/qemu_vms/ && cd ~/qemu_vms  

Lade den qemu-kernel herunter

wget http://xecdesign.com/downloads/linux-qemu/kernel-qemu ~/qemu_vms/ 

Lade das gezippte, aktuelle raspbian-Image herunter. In meinem Fall, war dies:

wget http://downloads.raspberrypi.org/raspbian/images/raspbian-2014-01-09/2014-01-07-wheezy-raspbian.zip ~/qemu_vms/ 

entpacke die Zip-Datei und lösche sie anschließend

unzip ~/qemu_vms/raspbian-2014-01-09/2014-01-07-wheezy-raspbian.zip && rm ~/qemu_vms/raspbian-2014-01-09/2014-01-07-wheezy-raspbian.zip 

einige Änderungen am Image

Finde den startsektor der 2. Partition und multipliziere diesen mit 512 und benutze das Produkt als offset-Wert im folgenden mount-Befehl.

file ~/qemu_vms/2014-01-07-wheezy-raspbian.img 

Die Ausgabe sollte in etwa so aussehen. Ergo muss in diesem Fall 122880*512=62914560 gerechnet werden.

user@hostname:~$ file ~/qemu_vms/2014-01-07-wheezy-raspbian.img
/home/jp/qemu_vms/qemu_vms/2014-01-07-wheezy-raspbian.img: x86 boot sector; partition 1: ID=0xc, starthead 130, startsector 8192, 114688 sectors; partition 2: ID=0x83, starthead 165, startsector 122880, 5662720 sectors, code offset 0xb8

Mounte Dein Image in das Verzeichnis /mnt

$ sudo mount ~/qemu_vms/2014-01-07-wheezy-raspbian.img -o offset=62914560 /mnt 

Prüfe ob dies erfolgt ist:

$ sudo mount 

Füge ein # vor die erste Zeile, so dass es in etwa so aussieht:

    #/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so
$ sudo nano /mnt/etc/ld.so.preload 

Drücke die Taste Strg und X zusammen, dann drücke Y und anschließend um zu speichern und zu schließen.

(Optional) Erstelle eine Datei /etc/udev/rules.d/90-qemu.rules mit folgendem Inhalt:

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

Der kernel erkennt das Image als /dev/sda, während der echte pi sie als /dev/mmcblk0 erkennt. Auf diese Weise legst Du symlinks an um mehr Datenkonsistenz mit dem echten pi herzustellen.

nun "ent-mounte" das Image

sudo umount ~/qemu_vms/2014-01-07-wheezy-raspbian.img /mnt 

wechsele wieder in qemu_vms

$ cd ~/qemu_vms/ 
$ qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1" -hda ~/qemu_vms/2014-01-07-wheezy-raspbian.img -redir tcp:5022::22 

Qemu zeigt nun eine durch # gekennzeichnete Root-shell an:

$ fsck /dev/sda2 
$ shutdown -r now 
Login als pi
Passwort raspberry
$ qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1" -hda ~/qemu_vms/2014-01-07-wheezy-raspbian.img -redir tcp:5022::22 

}}}

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

auf der Seite Wikiartikel anlegen ist das erklärt und am Ende sind auch zwei Links, um Artikel anzulegen.

Aber bevor zu los legst:

  • How-Tos haben wir hier im Wiki nicht...

  • Das Thema hat IMHO so rein gar nichts Ubuntu-spezifisches. Das funktioniert doch genau so oder sehr ähnlich auf jedem anderen Linux-System... Von daher ist das hier leider nichts für's Wiki.

Was du alternativ machen kannst ist, den Artikel auf deine Benutzerseite zu legen ☺

Gruß, noisefloor

Antworten |