qemu, kvm, xen & libvirtHauptseite | Über | Hilfe | FAQ | Spezialseiten | Anmelden

Druckversion | Impressum | Datenschutz

QEMU KQEMU Support Download QEMU 0.11.1, invalid option-kernel-kqemu

(Link zu dieser Seite als [[QEMU-KVM-Buch/ QEMU+KQEMU unter Linux]])

<<<|###| >>> | English


Inhaltsverzeichnis

[bearbeiten] QEMU und KQEMU unter Linux

Der Support für den Beschleuniger KQEMU endet mit QEMU 0.11. Unter Ubuntu 9.10 (Karmic Koala) bietet das Paket qemu-kvm mit QEMU 0.11.0 bereits keinen KQEMU-Support. Ab QEMU 0.12.0 wird nur noch die Kernel-based Virtual Machine (KVM) unterstützt. Auf Computern ohne Hardware-Virtualisierungstechniken ist KVM aber nicht einsetzbar. Wer keine neue Hardware kaufen möchte und trotzdem QEMU beschleunigen will, muss QEMU 0.11.* oder älter installieren. Parallel dazu kann man auch eine neuere QEMU-Version ohne KQEMU-Support nutzen. Zum Beispiel installiert das Ubuntu-Paket die QEMU-Binaries im Pfad /usr/bin/. Die kompilierte Version liegt unter /usr/local/bin/. Unter Angabe des vollständigen Pfades kann jeweils die gewünschte Version aufgerufen werden.

[bearbeiten] Software-Pakete

Bei aktuellen Linux-Distributionen ist kein Software-Paket mit KQEMU verfügbar. Selbst bei älteren Distributionen kann der KQEMU-Support nicht sichergestellt werden. Selbst wenn das Paket noch KQEMU-Support bietet, kann dies nach einem Update anders sein. Zu empfehlen ist daher das Kompilieren von QEMU und KQEMU. Für Red Hat und Fedora lädt man die RPM-Pakete von der URL http://atrpms.net/name/kqemu/ herunter.

[bearbeiten] Quellen kompilieren

[bearbeiten] Ubuntu 9.10 und 10.04

[bearbeiten] KQEMU 1.4.0 pre1

Die Quellen von KQEMU sind wie üblich zu kompilieren. Vorher sind die Pakete gcc, make und wget zu installieren. Unter Debian/Ubuntu werden die Tools zum Kompilieren im Paket build-essential zusammengefasst.

Host ~$ sudo apt-get install build-essential make gcc wget 

Zu empfehlen ist weiterhin das Paket checkinstall.

Host ~$ sudo apt-get install checkinstall

Die Quellen werden heruntergeladen, entpackt und kompiliert.

Host ~$ mkdir -p ~/source
Host ~$ cd ~/source
Host ~$ wget http://qemu-buch.de/download/kqemu-1.4.0pre1.tar.gz
Host ~$ tar xzvf kqemu-1.4.0pre1.tar.gz
Host ~$ cd kqemu-1.4.0pre1
Host ~$ ./configure
Host ~$ make

Zu empfehlen ist das Generieren eines Softwarepaketes mit checkinstall. Es wird statt make install aufgerufen. Eine Hilfestellung erhält man mit checkinstall --help. Das Programm checkinstall stellt einige Fragen, die meist mit den Default-Vorgaben beantwortet werden können. Eindeutig ist aber der Paket-Name vorzugeben, zum Beispiel kqemu-self-compiled. Im aktuellen Verzeichnis wird das Paket angelegt und installiert. Unter Debian/Ubuntu listet es der Befehl dpkg -l auf und mit dpkg -r deinstalliert man es bei Bedarf.

Host ~$ sudo checkinstall --fstrans=no --pkgname=kqemu-self-compiled

Man kann alternativ auch auf herkömmliche Weise die Software installieren.

Host ~$ sudo make install

Das kompilierte Kernel-Modul wird mit dem Befehl modprobe geladen.

Host ~$ sudo modprobe kqemu

Dabei wird das Device /dev/kqemu angelegt.

Host ~$ ls -l /dev/kqemu
crw-rw-rw- 1 root root 250, 0 2009-03-17 14:24 /dev/kqemu

Über diese Gerätedatei kommunizieren die virtuellen Maschinen mit dem Kernel-Modul kqemu. Zum Test wird QEMU mit der Option -kernel-kqemu und -monitor stdio aufgerufen. Es darf die Fehlermeldung qemu: invalid option nicht erscheinen. Mit dem QEMU-Monitor-Befehl info kqemu überprüft man den Support von KQEMU.

Host ~$ qemu -kernel-kqemu -monitor stdio
(qemu) info kqemu
kqemu support: enabled for user and kernel code

Mitunter wird beim Start von QEMU diese Fehlermeldung ausgegeben:

Could not open '/dev/kqemu' - QEMU acceleration layer not activated

Dann sind die folgenden Befehle auszuführen:

Host ~$ sudo mknod /dev/kqemu c 250 0 
Host ~$ sudo chmod 666 /dev/kqemu

Damit das Modul beim Systemstart des Hosts automatisch geladen wird, ist bei Debian-Derivaten eine Zeile mit kqemu in der Datei /etc/modules einzutragen. Damit die Zugriffsrechte von /dev/kqemu auch nach dem Neustart richtig gesetzt werden, ist der Befehl chmod 666 /dev/kqemu in die Datei /etc/rc.local einzutragen. Steht /dev/kqemu auch nach dem Neustart zur Verfügung, war die Installation erfolgreich.

Neuere Linux-Distributionen mit Kernel 2.6 benutzen anstelle des betagten devfs das neue udev zur Verwaltung der Kernel-Gerätedateien. Damit ist es möglich Hotplug-Geräte zur Laufzeit automatisch einzubinden. Die Konfiguration von udev erfolgt über Konfigurationsdateien in /etc/udev. Wenn die Linux-Distribution udev unterstützt, wird das Device /dev/kqemu nicht automatisch beim Booten angelegt. Dazu sind in ein Boot-Skript, zum Beispiel /etc/rc.local, folgende Zeilen einzutragen.

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

[bearbeiten] QEMU 0.11.1

Zum Kompilieren von QEMU 0.11.1 sind diese Pakete notwendig:

Host ~$ sudo apt-get install make gcc wget
Host ~$ sudo apt-get install zlib1g-dev libsdl-gfx1.2-dev

Zu empfehlen ist das Paket checkinstall.

Host ~$ sudo apt-get install checkinstall

Die folgenden Pakete sind zwar nicht unbedingt nötig, erweitern aber die Funktionalität von QEMU. Für die Absicherung von VNC-Sessions sind die Pakete cyrus-sasl-devel und gnutsl-devel zu installieren. Mit der VDE-Library ist das Anlegen von virtuellen VDE-Switches möglich.

Host ~$ sudo apt-get install libsasl2-dev libgnutls-dev
Host ~$ sudo apt-get install libvdeplug2-dev

Die Bibliothek curl-devel unterstützt das Booten über Web-Protokolle.

Host ~$ sudo apt-get install libcurl4-gnutls-dev

Für Bluetooth-Unterstützung werden die Pakete libbluetooth-dev und bluez benötigt.

Host ~$ sudo apt-get install libbluetooth-dev bluez

Für den XEN-Support erwartet der Compiler die Bibliothek libxen3-dev.

Host ~$ sudo apt-get install libxen3-dev

Zur Generierung der Dokumentation qemu-doc.html dient das Paket texi2html.

Host ~$ sudo apt-get install texi2html

Wird der Sparse-Checker (cgcc) benötigt, ist das Paket sparse zu installieren.

Host ~$ sudo apt-get install sparse

Die Bibliothek libbrlapi-dev wird für die Braille-Ausgabe verwendet.

Host ~$ sudo apt-get install libbrlapi-dev

Zunächst werden die Quellpakete für QEMU heruntergeladen und entpackt. Kompiliert wird mit normalen Benutzerrechten mit ./configure && make. Erst die Installation erfordert root-Rechte. Mit checkinstall oder make install werden die angelegten Dateien in die Verzeichnisse /usr/local/bin/ und /usr/local/share/qemu kopiert.

Host ~$ mkdir -p ~/source
Host ~$ cd ~/source
Host ~$ wget http://qemu-buch.de/download/qemu-0.11.1.tar.gz
Host ~$ tar xzvf qemu-0.11.1.tar.gz
Host ~$ cd qemu-0.11.1
Host ~$ ./configure
...
kqemu support     yes
...
Host ~$ make

Zu empfehlen ist das Generieren eines Softwarepaketes mit checkinstall. Eindeutig ist der Paket-Name vorzugeben, zum Beispiel qemu-with-kqemu-support-self-compiled.

Host ~$ sudo checkinstall --fstrans=no --pkgname=qemu-self-compiled

Man kann alternativ auch auf herkömmliche Weise die Software installieren.

Host ~$ sudo make install

Ein Blick in die Datei qemu-doc.html ist zu empfehlen. Wurde unter Ubuntu vorher QEMU als Paket installiert, liegt dieses im Pfad /usr/bin/. Die kompilierte Version liegt unter /usr/local/bin/. Unter Angabe des vollständigen Pfades wird jeweils die gewünschte Version aufgerufen.

Host ~$ /usr/local/bin/qemu -version
QEMU PC emulator version 0.11.1, Copyright (c) 2003-2009 Fabrice Bellard

[bearbeiten] Fedora 14

Zum Kompilieren sind diese Pakete zu installieren:

Host ~$ su -
Host ~# yum install wget gcc texi2html zziplib-devel
Host ~# yum install kernel-headers kernel-devel
Host ~$ exit

Die Quellen von KQEMU werden heruntergeladen, entpackt und kompiliert.

Host ~$ mkdir -p ~/source
Host ~$ cd ~/source
Host ~$ wget http://qemu-buch.de/download/kqemu-1.4.0pre1.tar.gz
Host ~$ tar xzvf kqemu-1.4.0pre1.tar.gz
Host ~$ cd kqemu-1.4.0pre1
Host ~$ ./configure && make

Die Installation erfolgt unter dem Benutzer root. Danach wird das kompilierte Kernel-Modul mit dem Befehl modprobe geladen.

Host ~# make install
Host ~# modprobe kqemu

In der Datei /etc/rc.local sind folgende Zeilen einzutragen:

modprobe kqemu
chmod 666 /dev/kqemu

Die Quellen von QEMU 0.11.1 werden heruntergeladen, entpackt und kompiliert.

Host ~$ cd ~/source
Host ~$ wget http://qemu-buch.de/download/qemu-0.11.1.tar.gz
Host ~$ tar xzvf qemu-0.11.1.tar.gz
Host ~$ cd qemu-0.11.1
Host ~$ ./configure && make

Die Installation erfolgt unter dem Benutzer root.

Host ~# make install

[bearbeiten] Spezielle Optionen und Befehle für KQEMU

Wenn Host- und Gast-System in x86-Prozessorarchitektur vorliegen, kann QEMU mit dem optionalen Beschleuniger KQEMU auch die Native Virtualization anwenden. Dabei reicht KQEMU die meisten Befehle direkt an die reelle CPU weiter. Nur die CPU-Befehle, die direkt die Hardware ansprechen, werden abgefangen und durch angepasste Routinen ersetzt. Bei Linux-Gast-Systemen wird die beste Beschleunigung mit dem 2.4er Kernel erreicht. Die 2.6er Versionen funktionieren, sind aber langsamer. Zur Aktivierung der vollen KQEMU-Virtualisierung ist die Option -kernel-kqemu anzuwenden. Im QEMU-Monitor zeigt der Befehl info kqemu die Verwendung von KQEMU an.

Host ~$ qemu -monitor stdio -kernel-kqemu
(qemu) info kqemu
kqemu support: enabled for user and kernel code

Eine weitere Option ist -enable-kqemu. Dabei wird nur KQEMU im User-Code aktiviert.

Host ~$ qemu -monitor stdio -enable-kqemu 
(qemu) info kqemu
kqemu support: enabled for user code

Damit man nicht immer den Befehl qemu -kernel-kqemu eingeben muss, legt man einen Alias in der Datei ~/.bash_aliases (Ubuntu) beziehungsweise ~/.bashrc (Fedora) an. Man braucht dann nur noch kqemu eingeben.

alias kqemu="qemu -kernel-kqemu"

Wenn die Verwendung von KQEMU unterbunden werden soll, ist bei älteren QEMU-Versionen die Option -no-kqemu anzugeben. Bei der Installation von einigen Gast-Betriebssystemen, wie zum Beispiel Microsoft Windows, ist KQEMU nicht anzuwenden. Das heißt, wenn die Deaktivierung der KVM Hardware-Virtualisierung mit -no-kvm empfohlen wird, ist hier KQEMU zu deaktivieren. Nach der Installation kann KQEMU bei allen Windows-Versionen aktiviert sein.

Host ~$ qemu -monitor stdio -no-kqemu
(qemu) info kqemu
kqemu support: disabled

In diesem Fall wurde KQEMU deaktiviert. Im nachfolgenden Beispiel wurde QEMU ohne KQEMU-Support kompiliert. Die Optionen -kernel-kqemu und -no-kqemu stehen nicht zur Verfügung.

(qemu) info kqemu
kqemu support: not compiled

[bearbeiten] Quickstart

Eine Anleitung für die ersten Schritte mit QEMU findet man unter der URL http://qemu-buch.de/d/Quickstart.

<<<|###| >>> http://www.qemu-buch.de

Von „http://qemu-buch.de/de/index.php?title=QEMU-KVM-Buch/_QEMU%2BKQEMU_unter_Linux

Diese Seite wurde bisher 43.830 mal abgerufen. Diese Seite wurde zuletzt am 2. Februar 2013 um 12:27 Uhr geändert. Inhalt ist verfügbar unter der GNU Free Documentation License 1.2.


Finden

Blättern

News

Deutsch
Weitersagen
Tipps für Autoren
Autoren
Impressum


English
Recommendation
The Authors
Contact



Letzte Änderungen


Ändern
Seite bearbeiten
Bearbeitungshilfe
Seitenoptionen
Diskussion
Kommentar hinzufügen
Druckversion
Seitendaten
Versionen
Links auf diese Seite
Änderungen an verlinkten Seiten
Meine Seiten
Anmelden
Spezialseiten
Neue Seiten
Dateiliste
Statistik
Kontakt
Mehr …