Dzięki quemu możemy uruchamiać na x86 obrazy systemów które do tej architektury nie należą. Można szybko coś sprawdzić bez konieczności instalacji systemu na docelowym urządzeniu. Minusem qemu jest to, że nie jest zbyt wydajne w swojej natywnej postaci ale do niezbyt “grubych” dystrybucji sprawdza się doskonale.
Instalacja qemu
Tylko z tą wersją gcc udało się uniknąć “białego ekranu” po uruchomieniu qemu:
brew install https://raw.github.com/Homebrew/homebrew-dupes/master/apple-gcc42.rb
Instalacja pakietow potrzebnych do poprawnej pracy qemu:
brew install jpeg gnutls glib
Chwilowa podmiana wersji gcc zainstalowanej przez Xcode 4.4.1 na tą zainstalowaną przez brew:
sudo mv /usr/bin/gcc /usr/bin/gcc_orig
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc
Instalacja qemu:
brew install qemu --use-gcc
Powrót do oryginalnej konfiguracji systemu:
sudo mv /usr/bin/gcc_orig /usr/bin/gcc
Jeśli gcc -v
wyświetla w ostatniej linii taką wersję:
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
Tzn. że gcc instalowany przez Xcode 4.4.1 został przywrócony.
Centos
Zaczynamy od przygotowanie dysku który będzie wykorzystywany przez system:
qemu-img create -f qcow2 centos_hdd.img 10G
Na szczęście nie jest tworzony od razu plik 10GB, miejsce jest sukcesywnie dobierane w miarę potrzeb.
Uruchomienie:
qemu-system-x86_64 -m 1G -localtime centos_hdd.img -cdrom CentOS-6.2-x86_64-LiveDVD.iso
Openwrt
Pobieramy Openwrt:
curl -O http://downloads.openwrt.org/backfire/10.03/x86/openwrt-x86-ext2.image.gz
Otwieramy archiwum:
gunzip openwrt-x86-ext2.image.gz
Uruchomienie:
qemu-system-x86_64 -hda openwrt-x86-ext2.image
Debian Squeeze
Tym razem wersja przeznaczona pod architekture ARM.
Pobieramy pliki:
curl -O http://people.debian.org/~aurel32/qemu/armel/vmlinuz-2.6.32-5-versatile
curl -O http://people.debian.org/~aurel32/qemu/armel/initrd.img-2.6.32-5-versatile
curl -O http://people.debian.org/~aurel32/qemu/armel/debian_squeeze_armel_standard.qcow2
Uruchomienie:
qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.img-2.6.32-5-versatile -hda debian_squeeze_armel_standard.qcow2 -append "root=/dev/sda1"