ARM-Prozessorarchitektur, qemu-system-arm, Android SDK
(Link zu dieser Seite als [[QEMU-KVM-Buch/ Gast-Systeme/ ARM-Prozessorarchitektur]])
[bearbeiten] ARM-Prozessorarchitektur
Die Emulation der ARM-Prozessorarchitektur ermöglicht der Befehl qemu-system-arm.
[bearbeiten] Linux-Kernel mit einem kleinen Dateisystem
Download: http://wiki.qemu.org/Download
Empfehlung: ARM-Prozessorarchitektur, 128 MByte RAM.
Auf der Website von QEMU befindet sich im Download-Bereich ein kleines Testsystem für die ARM-Prozessorarchitektur. Es enthält einen Linuxkernel und ein kleines Dateisystem. Man lädt das tar-Archiv herunter und entpackt es. Beispiel unter Linux:
Host ~$ wget http://wiki.qemu.org/download/arm-test-0.2.tar.gz Host ~$ tar xzvf arm-test-0.2.tar.gz Host ~$ cd arm-test
Nach dem Wechsel in das neue Verzeichnis wird QEMU mit dem externen Linuxkernel und der initialen RAM-Disk aufgerufen. Dabei gibt es zwei Varianten. Bei der ersten Variante wird QEMU wie gewohnt in einem Fenster geöffnet.
Host ~$ qemu-system-arm -kernel zImage.integrator \
-initrd arm_root.img
Bei der zweiten Variante erfolgt die Ausgabe in der Konsole des Host-Systems. Mit -append wird dem Kernel eine Bootoption übergeben: console=ttyAMA0 leitet die Ausgabe auf die Konsole um. Die Option -nographic bewirkt, dass kein eigenes QEMU-Fenster geöffnet wird.
Host ~$ qemu-system-arm -nographic \
-kernel zImage.integrator \
-initrd arm_root.img \
-nographic -append "console=ttyAMA0"
[bearbeiten] Android Emulator
Download: http://developer.android.com/sdk/index.html
Das Android SDK ist ein kostenloses Entwicklungswerkzeug für Android-Applikationen. Android ist ein Betriebssystem für mobile Geräte (Smartphones, Mobiltelefone, Netbooks und Tablets). Android ist quelloffen und basiert auf einen Linux-Kernel. Der im Android SDK enthaltene Android Emulator verwendet ein modifiziertes qemu-system-arm, da die ARM-Architektur zum Einsatz kommt. Neben der Emulation der in den mobilen Geräten verwendeten Hardware lassen sich mehrere emulierte Geräte vernetzen, um zum Beispiel Anrufe und SMS auszutauschen (siehe http://developer.android.com/guide/developing/tools/emulator.html). Das Android SDK lässt sich zusätzlich und unabhängig zu einer vorhandenen QEMU-Installation verwenden und läuft unter Microsoft Windows, Mac OS X (Intel) und Linux. Man lädt das entsprechende Archiv herunter, entpackt es und startet den Emulator. In diesem Beispiel wird das Android SDK unter Linux betrieben.
Host ~$ wget http://dl.google.com/android/android-sdk_r12-linux_x86.tgz Host ~$ tar xzvf android-sdk_r12-linux_x86.tgz Host ~$ cd android-sdk-linux_x86 Host ~$ tools/android
Es erscheint das Fenster Android SDK and Android Manager. Aus der linken Seite klickt man auf Available packages und wählt die zu emulierenden Plattformen aus. In diesem Beispiel sollen alle Pakete installiert werden. Anschließen aktiviert man Install Selected. In der linken Liste wählt man Virtual devices aus. Mit einem Klick auf New wird eine neue Instanz angelegt. Der Name soll Test sein. Unter Target ist Android 3.2 - API Level 13 auszuwählen und Create AVD anzuklicken. Durch Auswahl des angelegten Devices in der Liste und durch Anklicken von Start wird die Instanz gestartet. Es lassen sich Befehle mit der Emulator-Konsole an die Instanz schicken. Zum Beispiel kann man eine SMS senden. Zur Emulator-Konsole verbindet man sich mit einem Telnet-Client. Die Port-Nummer wird im der Titel-Zeile der Instanz angezeigt.
Host ~$ telnet 127.0.0.1 5554 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. Android Console: type 'help' for a list of commands OK help Android console command help: help|h|? print a list of commands event simulate hardware events geo Geo-location commands gsm GSM related commands cdma CDMA related commands kill kill the emulator instance network manage network settings power power related commands quit|exit quit control session redir manage port redirections sms SMS related commands avd control virtual device execution window manage emulator window qemu QEMU-specific commands sensor manage emulator sensors try 'help <command>' for command-specific help OK
Der Emulator wird direkt mit dem Befehl ./tools/emulator -avd und Angabe des angelegten Devices gestartet. Mit der Option -qemu werden QEMU-Optionen übergeben.
Host ~$ ./tools/emulator -avd Test -qemu -version QEMU PC emulator version 0.10.50Android, Copyright (c) 2003-2008 Fabrice Bellard
Host ~$ ./tools/emulator-arm -avd Test -qemu -M ? Supported machines are: android_arm ARM Android Emulator (default)
Host ~$ ./tools/emulator-arm -avd Test -qemu -cpu ? Available CPUs: arm926 arm946 arm1026 arm1136 arm1136-r2 arm11mpcore cortex-m3 cortex-a8 cortex-a8-r2 cortex-a9 ti925t pxa250 sa1100 sa1110 pxa255 pxa260 pxa261 pxa262 pxa270 pxa270-a0 pxa270-a1 pxa270-b0 pxa270-b1 pxa270-c0 pxa270-c5 any