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
Oder mit apturl installieren, Link: apt://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.
Verzeichnis mit allen Raspbian-Images 🇬🇧 - ein externer Link auf raspberrypi.org
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
Links¶
http://www.raspberrypi.org/forum/viewtopic.php?f=29&t=37386&sid=8a16f3c8529ff7f2b7fec36ace293d75 🇬🇧 - Anleitung für Ubuntu 12.10
http://xecdesign.com/qemu-emulating-raspberry-pi-the-easy-way/ 🇬🇧 - Installationsanleitung Betriebssystemübergreifend
http://www.linux-mitterteich.de/fileadmin/datafile/papers/2013/qemu_raspiemu_lug_18_sep_2013.pdf 🇩🇪 - ein externer Link wie man das image noch vergrößert
}}}