Hlavní navigace

Instalace QEMU a kqemu

Michal Nosek

Pokud používáte vynikající emulátor QEMU, možná jste zaznamenali jeho poměrně nízký výkon. Může za něj chybějící akcelerátor kqemu, bez nějž je emulace velmi pomalá. V dnešním článku si řekneme, jak jednoduše nainstalovat QEMU a kqemu ze zdrojových kódů.

QEMU je program, který emuluje virtuální počítač. V takto vytvořeném virtuálním počítači, jehož architektura je v rámci možností volitelná, můžeme provést instalaci patřičného operačního systému a dalších aplikací. Tudíž je tu možnost spustit pod Linuxem OS MS Windows a nebo naopak. Tato vlastnost je výhodná např. pro vývojáře programů, nebo webových stránek, kteří si mohou snadno vyzkoušet funkčnost svých výtvorů. Také jej lze použít na vyzkoušení nové Live CD distribuce. Další možností by mohla být virtualizace serverů, ale tomu brání výrazné omezení výkonu hostovaného systému.

Součástí mé oblíbené distribuce SuSE je sice vcelku aktuální verze QEMU, ale bez akcelerace v jádře systému, bez níž se jedná spíše o možnost vyzkoušení než o skutečný provoz emulace. Tuto akceleraci představuje modul jádra s názvem kqemu, který je sice k dispozici zdarma včetně zdrojových kódů, ale ne pod licencí GPL a tudíž nemůže být oficiální součástí jádra Linuxu a ani nebývá začleněn do distribuce. Musí být znovu zkompilován i s emulátorem QEMU ze zdrojových kódů.

Zcela určitě se neobejdete bez zdrojových kódů jádra systému, osobně dávám přednost jádru od distributora před svými výtvory, a proto mi stačilo v YaST vybrat balíček kernel-source a provést on-line update. Poté zkopírovat soubor /boot/config-vvv do .config v /usr/src/linux  a tam také zadat příkazy pro kompilaci jádra systému:

make menuconfig
make dep bzImage

Tím dojde ke slinkování a kompilaci jádra systému s aktuální konfigurací modulů. Jádro můžete i nainstalovat a použít, ale bude stejné jako to, co již používáte.

Jelikož svět není dokonalý a o náhody zde není nouze, je celé SuSE kompilováno překladačem GCC verze 4, ale QEMU a kqemu musí být kompilováno verzí 3.3.

Nejprve je tedy nutno z některé adresy uvedené na gcc.gnu.org/mi­rrors.html stáhnout starší verzi GCC (já používám 3.3.6) tu následně nakonfigurovat, zkompilovat a nainstalovat do adresáře /opt/gcc33. Následující posloupnost příkazů to zařídí.

cd /usr/src/packages/SOURCES
wget ftp://ftp.gwdg.de/pub/misc/gcc/releases/gcc-3.3.6/gcc-core-3.3.6.tar.gz
tar -xzf gcc-core-3.3.6.tar.gz
cd gcc-3.3.6
./configure --prefix=/opt/gcc33 --program-suffix=-3.3
make bootstrap
make install

Pokud vše dopadlo dobře, můžeme přistoupit ke stažení a samotné kompilaci QEMU s kqemu.

cd /usr/src/packages/SOURCES
wget http://fabrice.bellard.free.fr/qemu/qemu-0.8.0.tar.gz
http://fabrice.bellard.free.fr/kqemu/kqemu-0.7.2.tar.gz
tar -xzvf qemu-0.8.0.tar.gz
cd qemu-0.8.0
tar -xzvf ../kqemu-0.7.2.tar.gz
./configure --prefix=/usr/local --cc=/opt/gcc33/bin/gcc-3.3 --enable-adlib --target-list="i386-user arm-user armeb-user sparc-user ppc-user i386-softmmu ppc-softmmu x86_64-softmmu mips-softmmu"
make
make install

Jak prosté, že? Pokud se po spuštění qemu objeví hláška o nedostupnosti /dev/kqemu, je nutné vytvořit příslušné zařízení:

mknod /dev/kqemu c 250 0
chmod 666 /dev/kqemu

Nyní máme naistalován emulátor QEMU a můžete zkusit v některém terminálu zadat příkaz qemu. Dojde k vypsání spousty spouštěcích voleb. Proto před vytvořením virtuálního stroje doporučuji přečíst článek QEMU – Qemulátor, kde je podrobný popis spouštění emulovaného PC.

Takže již jen po spuštění QEMU zkontrolujte funkčnost akcelerace a to v konzole (CTRL-ALT-2), do které napíšete info kqemu a pokud vše proběhlo bez problémů, měli byste dostat odpověď „kqemu is enabled”.

Ještě jednu radu na závěr: Pokud budete do QEMU instalovat nějaký systém, který je na více médiích, budete potřebovat média vyměňovat. Provedete to právě ve výše zmiňované konzole QEMU. Nejjednoduší je využít fyzického rozhraní CD mechaniky, kdy při spuštění qemu použijete parametr --cdrom /dev/cdrom a --boot d. Pokud budete chtít takovéto CD na žádost instalačního programu vyměnit, musíte se přepnout do konzole (CTRL-ALT-2) a zadat eject cdrom, vyměnit CDROM a na konzole zadat change cdrom /dev/hdc a po přepnutí zpátky (CTRL-ALT-1) je již médium vyměněno. Pokud místo fyzického rozhraní CD používáte ISO image, je to naprosto shodné, jen místo /dev/cdrom použijete název souboru.

Našli jste v článku chybu?