qemu-kvm & libvirtHauptseite | Über | Hilfe | FAQ | Spezialseiten | Anmelden

Druckversion | Impressum | Datenschutz

Hardware RAM ACPI BIOS Clock localtime utc Graphic Keyb USB Sound System-Uhr USB lsusb PCI lspci

(Link zu dieser Seite als [[QEMU-KVM-Buch/ Virtuelle Hardware/ Bus RAM ACPI Clock Graphic Keyb USB Sound]])

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


Die Option -rtc base=2006-01-01 stellt die Systemzeit auf den 1. Januar 2006.
Die Option -rtc base=2006-01-01 stellt die Systemzeit auf den 1. Januar 2006.

Inhaltsverzeichnis

[bearbeiten] Hardware-Komponenten

In Abhängigkeit von der verwendeten Prozessor-Architektur werden unterschiedliche Hardware-Komponenten emuliert. Per Default werden meist Standard-Komponenten eingestellt. Sollen keine Default-Devices generiert werden, so ist die Option -nodefaults anzuwenden. Im QEMU-Monitor zeigt zum Beispiel dann der Befehl info network keine Netzwerk-Devices an.

Host ~$ qemu Platte.img -nodefaults

Im QEMU-Monitor zeigt der Befehl info qtree den Device-Tree an.

(qemu) info qtree 
bus: main-system-bus
 type System
 dev: i440FX-pcihost, id ""
   bus: pci.0
     type PCI
     dev: piix3-ide, id ""
       bus-prop: addr = 01.1
       class IDE controller, addr 00:01.1, pci id 8086:7010 (sub 1af4:1100)
       bar 4: i/o at 0xc000 [0xc00f]
       bus: ide.1
         type IDE
       bus: ide.0
         type IDE
         dev: ide-drive, id ""
           dev-prop: unit = 0
           dev-prop: drive = ide0-hd0
     dev: PIIX3, id ""
       bus-prop: addr = 01.0
       class ISA bridge, addr 00:01.0, pci id 8086:7000 (sub 1af4:1100)
       bus: isa.0
         type ISA
         dev: isa-fdc, id ""
           dev-prop: driveA = <null>
           dev-prop: driveB = <null>
           isa irq 6
         dev: i8042, id ""
           isa irqs 1,12
         dev: mc146818rtc, id ""
           dev-prop: base_year = 2000
           isa irq 8
     dev: i440FX, id ""
       bus-prop: addr = 00.0
       class Host bridge, addr 00:00.0, pci id 8086:1237 (sub 1af4:1100)

[bearbeiten] RAM

Die Größe des Arbeitsspeichers (Random Access Memory) definiert die Option -m gefolgt von einer Zahl. Dabei gibt die Zahl die Größe des Arbeitsspeichers in MByte an. Der Defaultwert ist 128. Optional kann mit M oder G die Größe in MByte bzw. GByte angegeben werden. QEMU und KVM unterstützen bis 2047 MByte. Bei älteren Betriebssystemen ist dieser Wert zu reduzieren. Neuere Systeme verlangen meist mehr Arbeitsspeicher. Hier ein Beispiel für ein älteres Betriebssystem, das mit 16 MByte RAM auskommt:

Host ~$ qemu Platte.img -m 16

Im folgenden Beispiel wird dem Gast-System ein GByte RAM zur Verfügung gestellt.

Host ~$ qemu Platte.img -m 1G

Wird unter Linux als Host-System dem Gast-System ein großer Arbeitsspeicher zugeteilt, kann es Probleme bei zu geringem Shared Memory geben. QEMU oder KVM beschweren sich dann über unzureichenden Platz in /dev/shm. Besser ist es dieses Dateisystem zu erweitern. Für eine dauerhafte Konfiguration ist die Datei /etc/default/tmpfs (Ubuntu) anzupassen.

Host ~# umount /dev/shm
Host ~# mount -t tmpfs -o remount,size=144m none /dev/shm

Das Anpassen des Arbeitsspeichers zur Laufzeit ist für Linux als Gast-System mit dem Memory Ballooning möglich (siehe Abschnitt Paravirtualisierte Gerätetreiber).

Informationen über die Speicherverwaltung erhält man im QEMU-Monitor. Der Befehl info mem zeigt das aktive, virtuelle Speicher-Mapping an. Der Befehl info tlb listet das Mapping von virtuellen zu physischen Speicher auf.

[bearbeiten] ACPI

Das Advanced Configuration and Power Interface (ACPI) ist ein offener Industriestandard für die Energieverwaltung in Computern. Die Kontrolle über das Energiemanagement liegt dabei komplett beim Betriebssystem. ACPI ist in QEMU und KVM voreingestellt. Sollte es Probleme mit dem Gast-Betriebssystem geben, deaktiviert man ACPI mit der Option -no-acpi. Alle Windows-Versionen ab 2000 installieren unterschiedliche Kernelversionen in Abhängigkeit davon, ob ACPI verfügbar ist. Deshalb darf ACPI nicht nachträglich deaktiviert werden, wenn es bei der Installation aktiviert war.

Host ~$ qemu Platte.img -no-acpi

Eine spezielle ACPI-Konfiguration ermöglicht die Option -acpitable. Die ACPI-Tabelle wird dabei mit den vorgegebenen Header-Feldern und Inhalten aus den Dateien aufgefüllt.

-acpitable [sig=str][,rev=n][,oem_id=str]              \
[,oem_table_id=str][,oem_rev=n] [,asl_compiler_id=str] \
[,asl_compiler_rev=n][,data=file1[:file2]...]

[bearbeiten] System-Uhr

Die System-Uhr (Real Time Clock) wird mit der Option -rtc definiert. Hier die Syntax.

-rtc [base=utc|localtime|date][,clock=host|vm][,driftfix=none|slew]

Für die Konfiguration der System-Uhr gilt per Default die Koordinierte Weltzeit (UTC). Einige Betriebssysteme, wie DOS- und Microsoft Windows-Versionen, setzen aber die lokale Zeit als Einstellung für die Systemzeit voraus. In Mitteleuropa würde dies eine Abweichung von einer Stunde im Winter (UTC+1 entspricht der MEZ) und zwei Stunden im Sommer (UTC+2 entspricht der MESZ) ergeben. Die Einstellung der lokalen Zeit ermöglicht die Option -rtc base=localtime. In älteren QEMU-Versionen wurde die lokale Zeit mit der Option -localtime vorgegeben.

Host ~$ qemu Platte.img -rtc base=localtime

Die Option -rtc base=date stellt die System-Uhr beim Start der virtuellen Maschine. In älteren QEMU-Versionen wurde die Startzeit mit der Option -startdate vorgegeben. Mögliche Werte sind 2008-04-17T16:01:21 oder 2008-04-17. Nachfolgend wird die Uhr auf den 31.12.1999 gesetzt.

Host ~$ qemu Platte.img -rtc base=1999-12-31

Per Default wird die Systemuhr der Instanz nach der Systemuhr des Host-Systems gestellt. Mit der Option clock=vm läuft die Systemuhr der Instanz isoliert vom Host.

Host ~$ qemu Platte.img -rtc base=utc,clock=vm

Bei Problemen mit der Zeit-Drift bei Microsoft Windows mit ACPI HAL ist die Option driftfix=slew anzuwenden (nur bei x86-Architekturen). Dabei wird ermittelt wie viele Timer-Interrupt nicht vom Windows-Gast-System verarbeitet werden und es wird versucht diese nochmals anzuwenden. In älteren QEMU-Versionen wurde dafür die Option -rtc-td-hack angewendet.

Host ~$ qemu Platte.img -rtc base=localtime,driftfix=slew

Im BIOS bei Mainboards, die für Mehrkern-Prozessoren geeignet sind, wird oft der High Precision Event Timer (HPET) implementiert. Dieser sehr präzise Zeitgeber löst Interrupts mit einer sehr hohen zeitlichen Auflösung (Quantelung) aus. Vor allem Multimedia-Programme profitieren von HPET. Neue Betriebssysteme unterstützen den High Precision Event Timer. Im QEMU-Monitor zeigt der Befehl info hpet die Verwendung von HPET an.

(qemu) info hpet
HPET is enabled by QEMU

Mit der Option -no-hpet wird die Unterstützung für HPET deaktiviert.

Host ~$ qemu Platte.img -no-hpet
(qemu) info hpet
HPET is disabled by QEMU

[bearbeiten] USB

Der Universal Serial Bus (USB) ist ein Bussystem zur Verbindung eines Computers mit Zusatzgeräten. Mit USB ausgestattete Geräte können im laufenden Betrieb miteinander verbunden werden (Hot-Plugging). Die angeschlossenen Geräte und deren Eigenschaften werden automatisch erkannt. Aktiviert wird die USB-Emulation mit der Option -usb. Emuliert wird ein PCI UHCI USB-Controller. USB-Devices werden mit der Option -usbdevice device konfiguriert. Verfügt das Gast-System über USB-Unterstützung, kann auf das USB-Device zugegriffen werden. Mit dem USB-Device tablet kann der Maus-Zeiger sowohl im Gast- als auch im Host-System genutzt werden. Verlässt der Maus-Zeiger das Fenster der Instanz, wird automatisch auf den Zeiger des Host-Systems umgeschaltet. Man kann damit dieses Fenster verlassen, ohne die Tastenkombination [Strg]+[Alt] eingeben zu müssen. Diese Option überschreibt die PS/2-Maus-Emulation.

Host ~$ qemu Platte.img -usb -usbdevice tablet

Im QEMU-Monitor zeigt der Befehl info usb dieses USB-Device an.

(qemu) info usb
  Device 0.2, Speed 12 Mb/s, Product USB Tablet

Bei älteren Betriebssystemen, zum Beispiel Microsoft Windows 98, wird zwar ein neuer Treiber für das USB-Device Tablet von der Installations-CD installiert, aber die rechte Maus-Taste funktioniert nicht. Es ist das virtuelle USB-Device Mouse hinzuzufügen.

(qemu) usb_add mouse

Zusätzlich zu den Möglichkeiten der Option -usbdevice tablet wird der Druck auf das Zeigegerät ausgewertet, wenn stattdessen die Option -usbdevice wacom-tablet verwendet wird. Dabei wird ein virtuelles Wacom-PenPartner-Tablett emuliert. Voraussetzung dafür ist die TSLIB-Bibliothek.

Host ~$ qemu Platte.img -usbdevice wacom-tablet

Einen virtuellen USB-Memory-Stick bindet man mit der Option -usbdevice disk:file ein. file ist ein Image einer formatierten virtuellen Festplatte. Hier ein Beispiel mit einem Image (usb-stick.img) als virtuellen USB-Memory-Stick.

Host ~$ qemu Platte.img -usbdevice disk:usb-stick.img

Im QEMU-Monitor kontrolliert man mit dem Befehl info usb, ob das Device hinzugefügt wurde.

(qemu) info usb
  Device 0.2, Speed 12 Mb/s, Product USB MSD (usb-stick.img)

Entfernt wird dieses USB-Device mit dem Befehl usb_del device, wobei in diesem Beispiel für device die Zahlenkombination 0.2 steht. Zuvor sollte das USB-Device im Gast-System abgemeldet worden sein.

(qemu) usb_del 0.2

Mit folgender Option wird ein USB-Seriell-Konverter emuliert.

-usbdevice serial:[vendorid=vendor_id][,product_id=product_id]:dev 

Die Default-Werte für die Vendor- und Produkt-ID sind 0403 und 6001. Es wird ein FTDI-FT232BM-Chip emuliert und mit dem Host-Device dev verbunden. Die verfügbaren Character-Devices entsprechen denen der Option -serial. Im folgenden Beispiel wird die Ausgabe in die Datei /tmp/my.log umgeleitet.

Host ~$ qemu Platte-01.img -usbdevice serial::file:/tmp/my.log

Im QEMU-Manager gibt der Befehl info usb folgende Informationen aus.

(qemu) info usb
Device 0.2, Speed 12 Mb/s, Product QEMU USB Serial(file:/tmp/my.log)

Mit der Option -usbdevice bt[:hci-type] wird ein Bluetooth-Dongle emuliert. Die möglichen Werte für hci-type werden im Abschnitt Bluetooth beschrieben.

Host ~$ qemu Platte.img -usbdevice bt

Im QEMU-Manager gibt der Befehl info usb folgende Informationen aus.

(qemu) info usb
  Device 0.2, Speed 480 Mb/s, Product QEMU BT Dongle

Mit der Option -usbdevice net:options lässt sich ein USB-Netzwerk-Adapter emulieren, der die CDC- und RNDIS-Protokolle unterstützt. Für options lassen sich die Parameter der Option -net nic anwenden. Zur Zeit kann diese Option nicht zusammen mit PCI-Netzwerk-Karten verwendet werden. Zum Beispiel wird der User-Mode Network Stack mit folgenden Optionen definiert.

Host ~$ qemu Platte.img -net user,vlan=0 -usbdevice net:vlan=0

Im QEMU-Manager gibt der Befehl info usb folgende Informationen aus.

(qemu) info usb
  Device 0.2, Speed 12 Mb/s, Product QEMU USB Network Interface

Der direkte Zugriff auf ein USB-Device des Host-Systems befindet sich noch im experimentellen Stadium und bremst QEMU und KVM aus. Unter Linux als Host-System listet der Befehl lsusb die verfügbaren USB-Devices auf.

Host ~$ lsusb

Im QEMU-Monitor ist mit dem Befehl info usbhost die Verfügbarkeit des entsprechenden Host-Device zu überprüfen.

(qemu) info usbhost
Device 0.1, speed 480 Mb/s
Class 00: USB device 090c:1000, USB DISK

In diesem Beispiel soll auf das Host-Device mit der Vender-ID 090c und der Produkt-ID 1000 zugegriffen werden. Dies ermöglicht im QEMU-Monitor der Befehl usb_add.

(qemu) usb_add host:090c:1000   

Falls die Zugriffsrechte im Host-System einen Zugriff verbieten, erscheint eine Fehlermeldung.

Warning: could not add USB device host:090c:1000
/dev/bus/usb/000/001: Permission denied

Die Zugriffsrechte können unter Linux wie folgt angepasst werden.

Host ~$ sudo chmod -R 777 /dev/bus/usb
Host ~$ sudo chmod -R 777 /proc/bus/usb

Jetzt kann im QEMU-Monitor der Befehl usb_add erfolgreich angewendet werden. Den Zugriff auf das USB-Device des Host-Systems kann auch die Option -usbdevice ermöglichen.

Host ~$ qemu Platte.img -usbdevice host:090c:1000

Zum Entfernen des USB-Device dient im QEMU-Monitor der Befehl usb_del. Zuvor sollte das USB-Device im Gast-System abgemeldet worden sein.

(qemu) usb_del host:090c:1000

[bearbeiten] PCI

PCI (Peripheral Component Interconnect) ist ein Bus-Standard zur Verbindung von Peripheriegeräten mit den Prozessoren. Im Unterschied zu dem ISA-Bus unterstützt PCI die dynamische Konfiguration eines Gerätes ohne Eingriff des Benutzers. Fast alle ab 1994 gebauten IBM-kompatiblen PCs verfügen über zwei bis sieben Steckplätzen für PCI-Karten. Auch neuere Computer von Apple und Workstations von Sun besitzen einen PCI-Bus. In die PCI-Steckplätze können Karten diverser Hersteller eingesetzt werden, zum Beispiel Netzwerkkarten, Modems, Soundkarten und (ältere oder Zweit-) Grafikkarten. Im QEMU-Monitor zeigt der Befehl info pci die angeschlossenen virtuellen PCI-Devices an.

(qemu) info pci

Im QEMU-Monitor fügt der Befehl pci_add Hotplug-Geräte dem gestarteten Gast-System (Linux) hinzu. Dazu müssen im Gast-System die Kernel-Module acpiphp und pci_hotplug geladen sein. In diesem Beispiel wird eine virtuelle PCI-Netzwerkkarte (nic) vom Typ e1000 am Slot 0 angeschlossen.

(qemu) pci_add auto nic model=e1000,id=nic1
OK domain 0, bus 0, slot 4, function 0

Der folgende Befehl fügt die Datei daten.img als eine virtuelle SCSI-Festplatte hinzu.

(qemu) pci_add auto storage file=daten.img,if=scsi
OK domain 0, bus 0, slot 5, function 0

Die Syntax des Befehls pci_add ist:

(qemu) pci_add auto|[[<domain>:]<bus>:]<slot> nic|storage \
[[vlan=n][,macaddr=addr][,model=type]]  \
[file=file][,if=type][,bus=nr] 

Angeschlossene virtuelle PCI-Geräte werden mit dem Befehl pci_del entfernt. Es ist dazu zumindest die Slot-Nummer anzugeben. Mit diesem Befehl wird das PCI-Device im Slot 4 entfernt.

(qemu) pci_del 4

Die Syntax des Befehls pci_del ist:

(qemu) pci_del [[<domain>:]<bus>:]<slot>

Noch in der Entwicklung ist der Zugriff auf PCI-Devices des Host-Systems. Es gibt noch zahlreiche Einschränkungen.

Die Option -pcidevice host=busaddresse bindet ein PCI-Device des Host-Systems ein. Die möglichen PCI-Busadressen listet der Befehl lspci auf.

Host ~$ lspci
06:00.0 ...

Folgender Befehl stellt das Gerät mit der PCI-Busadresse 06:00.0 dem Gast zur Verfügung.

Host ~$ qemu Platte.img -pcidevice host=06:00.0

Die Syntax der Option -pcidevice ist:

-pcidevice host=bus:dev.func[,dma=none][,name=string]

Wird dma=none vorgegeben, erfolgt keine DMA-Translation. Ansonsten wird der Default-Wert IOMMU angewendet. Der Parameter string wird für die Log-Ausgabe verwendet.

[bearbeiten] Grafikausgabe, Tastatur und Maus

Der Typ der Grafikkarte wird ab QEMU 0.10.1 mit der Option -vga type definiert. Es stehen folgende Typen zur Auswahl:

     std
Simuliert eine Standard-VGA-Karte mit VESA-Bochs-Extensions. Unterstützt das Gast-System die VESA 2.0 VBE-Extensions, kann diese Option für höhere Auflösungen (>= 1280x1024x16) gewählt werden.
     cirrus
Es wird eine CL-GD5446-PCI-VGA-Karte emuliert. Diese Option ist als Default voreingestellt. Alle Versionen ab Microsoft Windows 95 erkennen diese Grafik-Karte. Für optimale Performance ist im Host- und Gast-System jeweils eine Farbtiefe von 16 Bit einzustellen.
     vmware
Simuliert einen VMware SVGA-II kompatiblen Adapter. Diese Option kann für Gast-Systeme mit installierten Grafik-Treibern der VMware-Tools verwendet werden.
     xenfb
Simuliert einen Xen-Frame-Buffer. Bei einem Linux-Gast-System wird das entsprechende Modul mit dem Befehl modprobe xenfb geladen.
     none
Deaktiviert die VGA-Karte.

Das folgende Beispiel aktiviert die Standard-VGA-Karte mit VESA 2.0 BIOS Extensions.

Host ~$ qemu Platte.img -vga std

Erfolgt die Bildschirmausgabe des Gast-System im Textmodus, kann die Option -curses angewendet werden. Statt der VGA-Ausgabe mit dem DirectMedia Layer (SDL) erfolgt die VGA-Ausgabe über das Curses/Ncurses-Interface. Im grafischen Modus erfolgt bei dieser Option keine Ausgabe.

Host ~$ qemu Platte.img -curses

Die Option -sdl aktiviert den Simple DirectMedia Layer (SDL) für die Grafik-Ausgabe.

Host ~$ qemu Platte.img -vnc :1 -sdl

Eine Instanz im Vollbild-Modus startet die Option -full-screen. Zur Umschaltung zwischen Vollbild- und Fenster-Modus dient die Tastenkombination [Strg]+[Alt]+[F].

Host ~$ qemu Platte.img -full-screen

Die Option -nographic deaktiviert die grafische Ausgabe und QEMU oder KVM werden Kommandozeilentools. Der emulierte serielle Port wird dabei zur Konsole umgeleitet. Die Steuerung kann über spezielle Tastaturkürzel erfolgen. Eine Übersicht über die Tastaturkürzel zeigt die Tastenkombination [Strg]+[A] und [H] an. Die Instanz wird zum Beispiel mit [Strg]+[A] und [X] beendet. Was für einen Arbeitsplatzcomputer wenig sinnvoll erscheint, kann bei Server-Anwendungen und für Kernel-Entwickler interessant sein. Die fehlende Interaktion der grafischen Ausgabe kann durch eine andere Kommunikation ersetzt werden. Bei ersten Tests ist die Option -snapshot empfehlenswert. Ist keine Kommunikation mit dem Gast-System möglich, kann die Instanz mit [Strg]+[A] und [X] beendet werden, ohne das Gast-System zu schädigen.

Host ~$ qemu Platte.img -snapshot -nographic

Die Option -no-frame deaktiviert den Fenster-Rahmen der Instanz. Mit -no-quit deaktiviert man den Fenster-Button zum Schließen (rechts oben). Ein Beenden der Instanz ist mit dem Befehl quit im QEMU-Monitor weiterhin möglich. Mit der Option -alt-grab wird die Tastenkombination [Strg]+[Alt]+[Shift] statt [Strg]+[Alt] zur Freigabe der Maus verwendet. Mit der Option -ctrl-grab wird die rechte [Strg]-Taste statt [Strg]+[Alt] zur Freigabe der Maus verwendet.

Normalerweise muss das Tastaturlayout nicht vorgegeben werden. Die Option -k wird nur benötigt, wenn es Probleme bei der Erkennung des PC-Tastaturlayouts gibt. Die verfügbaren Layouts sind ar, de-ch, es, fo. fr-ca, hu, ja, mk, no, pt-br, sv, da, en-gb, et, fr, fr-ch, is, lt, nl, pl, ru, th, de, en-us, fi, fr-be, hr, it, lv, nl-be, pt, sl, tr. Default ist en-us.

Host ~$ qemu Platte.img -vnc 1 -k de

Per Default wird für die x86-Architektur eine PS/2-Tastatur emuliert. Mit der Option -usbdevice keyboard wird eine USB-Tastatur emuliert.

Host ~$ qemu Platte.img -usb -usbdevice keyboard

Per Default wird für die x86-Architektur eine PS/2-Maus emuliert. Im QEMU-Monitor informiert der Befehl info mice über die Mäuse.

(qemu) info mice
 * Mouse #0: QEMU PS/2 Mouse

Soll eine USB-Maus emuliert werden, ist die Optione -usbdevice mouse anzuwenden.

Host ~$ qemu Platte.img -usb -usbdevice keyboard -usbdevice mouse

Im QEMU-Monitor listet der Befehl info usb die USB-Devices auf.

(qemu) info usb
  Device 0.1, Speed 12 Mb/s, Product QEMU USB Keyboard
  Device 0.0, Speed 12 Mb/s, Product QEMU USB Hub
  Device 0.0, Speed 12 Mb/s, Product QEMU USB Mouse

Mit der Option -chardev msmouse,id=id werden für das Gast-System die Events einer Microsoft-Maus emuliert.

Host ~$ qemu Platte.img -chardev msmouse,id=Speedy-Gonzalez

Im QEMU-Monitor informiert der Befehl info mice über die Mäuse.

(qemu) info mice
  Mouse #0: QEMU Microsoft Mouse
* Mouse #1: QEMU PS/2 Mouse

[bearbeiten] Sound

Zur Aktivierung der Emulation von einer oder mehreren Soundkarten beziehungsweise dem PC-Lautsprecher dient die Option -soundhw. Die Emulationen der Soundkarten Adlib, Gus und cs4231a stehen nur zur Verfügung, wenn beim Kompilieren die Option –audio-card-list mit den gewünschten Soundkarten angegeben wurde. Folgender Befehl listet die verfügbare Sound-Hardware auf:

Host ~$ qemu -soundhw ?
pcspk       PC speaker
sb16        Creative Sound Blaster 16
ac97        Intel 82801AA AC97 Audio
es1370      ENSONIQ AudioPCI ES1370

Es können mehrere Soundkarten getrennt durch Kommas angegeben werden.

Host ~$ qemu Platte.img -soundhw pcspk,sb16

Bei der Emulation der Soundkarte Intel 82801AA AC97 Audio unter Linux als Gast-System erfordert das Linux-Kernel-Modul i810_audio die folgende Option: modprobe i810_audio clocking=48000. Der Parameter all aktiviert alle unterstützten Soundkarten.

Host ~$ qemu Platte.img -soundhw all

Informationen zum Audio-Subsystem zeigt die Option -audio-help.

Host ~$ qemu -audio-help

Mit Befehlen des QEMU-Monitors lassen sich die Sound-Ausgaben des Gast-Systems mitschneiden. Der folgende Befehl startet die Aufnahme und schreibt sie in die angegebene Datei:

(qemu) wavcapture mitschnitt01.wav

Weitere Parameter steuern die Samplerate, Samplebits und die Anzahl der Kanäle. Informationen zu aktiven Mitschnitten zeigt der Befehl info capture.

(qemu) info capture

Die erste Spalte zeigt die Indexnummer. Der erste aktive Mitschnitt erhält die Nummer 0. Um die Aufnahme zu beenden, wird der Befehl stopcapture gefolgt von der Indexnummer eingegeben.

(qemu) stopcapture 0

[bearbeiten] Netzwerkkarten

Zu emulierende Netzwerkkarten (Network Interface Card - NIC) werden mit der Option -net nic konfiguriert. Die genaue Beschreibung erfolgt im Abschnitt Netzwerkoptionen.

[bearbeiten] Die Option -device

Eine flexiblere Konfiguration von Hardware-Komponenten ermöglicht die Option -device. Die Syntax ist:

-device driver[,options]

Eine Liste der möglichen Devices wird durch -device ? ausgegeben. Dieser Befehl listet die Devices für die x86-Architektur (32-Bit) auf.

Host ~$ qemu -device ?
name "pci-bridge", bus PCI
name "virtio-balloon-pci", bus PCI
name "virtio-console-pci", bus PCI
name "virtio-net-pci", bus PCI
name "virtio-blk-pci", bus PCI
name "i82562", bus PCI
name "i82559er", bus PCI
name "i82559c", bus PCI
name "i82559b", bus PCI
name "i82559a", bus PCI
name "i82558b", bus PCI
name "i82558a", bus PCI
name "i82557c", bus PCI
name "i82557b", bus PCI
name "i82557a", bus PCI
name "i82551", bus PCI
name "i82550", bus PCI
name "pcnet", bus PCI
name "rtl8139", bus PCI
name "e1000", bus PCI, desc "Intel Gigabit Ethernet"
name "ide-drive", bus IDE
name "isa-ide", bus ISA
name "piix4-ide", bus PCI, no-user
name "piix3-ide", bus PCI, no-user
name "i8042", bus ISA, no-user
name "sb16", bus ISA, desc "Creative Sound Blaster 16"
name "ES1370", bus PCI, desc "ENSONIQ AudioPCI ES1370"
name "AC97", bus PCI, desc "Intel 82801AA AC97 Audio"
name "VGA", bus PCI
name "SUNW,fdtwo", bus System
name "sysbus-fdc", bus System
name "isa-fdc", bus ISA, no-user
name "mc146818rtc", bus ISA, no-user
name "isa-serial", bus ISA
name "cirrus-vga", bus PCI, desc "Cirrus CLGD 54xx VGA"
name "isa-parallel", bus ISA
name "PIIX3", bus PCI, desc "ISA bridge", no-user
name "i440FX", bus PCI, desc "Host bridge", no-user
name "i440FX-pcihost", bus System, no-user
name "piix4-usb-uhci", bus PCI
name "piix3-usb-uhci", bus PCI
name "vmware-svga", bus PCI
name "ib700", bus ISA
name "ne2k_isa", bus ISA
name "max7310", bus I2C
name "wm8750", bus I2C
name "twl92230", bus I2C
name "lm8323", bus I2C
name "tmp105", bus I2C
name "ads7846", bus SSI
name "max1111", bus SSI
name "max1110", bus SSI
name "ds1338", bus I2C
name "sb16", bus ISA, desc "Creative Sound Blaster 16"
name "ES1370", bus PCI, desc "ENSONIQ AudioPCI ES1370"
name "AC97", bus PCI, desc "Intel 82801AA AC97 Audio"
name "VGA", bus PCI
name "SUNW,fdtwo", bus System
name "sysbus-fdc", bus System
name "isa-fdc", bus ISA, no-user
name "mc146818rtc", bus ISA, no-user
name "isa-serial", bus ISA
name "cirrus-vga", bus PCI, desc "Cirrus CLGD 54xx VGA"
name "isa-parallel", bus ISA
name "PIIX3", bus PCI, desc "ISA bridge", no-user
name "i440FX", bus PCI, desc "Host bridge", no-user
name "i440FX-pcihost", bus System, no-user
name "piix4-usb-uhci", bus PCI
name "piix3-usb-uhci", bus PCI
name "vmware-svga", bus PCI
name "ib700", bus ISA
name "ne2k_isa", bus ISA
name "max7310", bus I2C
name "wm8750", bus I2C
name "twl92230", bus I2C
name "lm8323", bus I2C
name "tmp105", bus I2C
name "ads7846", bus SSI
name "max1111", bus SSI
name "max1110", bus SSI
name "ds1338", bus I2C
name "smbus-eeprom", bus I2C
name "scsi-disk", bus SCSI, desc "virtual scsi disk or cdrom"
name "scsi-generic", bus SCSI, desc "pass through generic scsi device (/dev/sg*)"
name "usb-hub", bus USB
name "usb-host", bus USB
name "usb-kbd", bus USB
name "usb-mouse", bus USB
name "usb-tablet", bus USB
name "usb-storage", bus USB
name "usb-wacom-tablet", bus USB, desc "QEMU PenPartner Tablet"
name "usb-braille", bus USB
name "usb-serial", bus USB
name "usb-net", bus USB
name "ssi-sd", bus SSI
name "usb-bt-dongle", bus USB
name "m48t59_isa", bus ISA, no-user
name "m48t59", bus System
name "escc", bus System
name "i6300esb", bus PCI
name "ne2k_pci", bus PCI
name "smc91c111", bus System
name "lan9118", bus System
name "lsi53c895a", bus PCI, alias "lsi"
name "esp", bus System
name "isabus-bridge", bus System, no-user

Eine Standard-VGA-Karte wird zum Beispiel mit -device VGA emuliert. Dies entspricht der Option -vga std.

Host ~$ qemu Platte.img -device VGA

Im QEMU-Monitor fügt der Befehl device_add ein Device zur Laufzeit der virtuellen Maschine hinzu. Die Optionen entsprechen denen von -device. Es sollten nur Hot-Plug-Geräte im laufenden Betrieb hinzufügt werden, sonst droht ein Absturz des Gast-Systems. Im folgenden Beispiel wird das Image daten.img als USB-Storage hinzugefügt. Dazu ist USB zu aktivieren.

Host ~$ qemu Platte.img -usb

Im QEMU-Monitor werden folgende Befehle aufgerufen:

(qemu) drive_add 0 id=mein_usb_drive,if=none,file=daten.img
(qemu) device_add usb-storage,id=mein_usb_storage,drive=mein_usb_drive

Der Befehl info usb zeigt dieses USB-Device an.

(qemu) info usb
  Device 0.2, Speed 12 Mb/s, Product QEMU USB MSD

Entfernt wird dieses USB-Device mit dem Befehl device_del.

(qemu) device_del mein_usb_storage

[bearbeiten] Character Devices

Character-Device (zeichenorientierte Geräte) übertragen nur ein Zeichen beziehungsweise ein Byte zur selben Zeit (serielle Datenübertragung). Die Daten werden meist ungepuffert, also sofort übertragen. Dies unterscheidet sie von den blockorientierten Geräten. Diese übertragen die Daten in Datenblöcken. Mit der Option -chardev werden Character-Devices definiert. Je nach Art des Devices (backend) sind bestimmte Optionen anzuwenden. Jedem Device muss mit id eine Zeichenkette zugeordnet werden. Diese dient zur eindeutigen Identifizierung. Die allgemeine Syntax ist:

-chardev backend,id=id [,options]

Mit dem Device null wird ein leeres Device angelegt. Es sendet keine Daten und verwirft empfangene Daten.

Host ~$ qemu Platte.img -chardev null,id=nichts

Im QEMU-Monitor listet der Befehl info chardev die Character Devices auf.

(qemu) info chardev
nichts: filename=null
monitor: filename=vc
serial0: filename=vc
parallel0: filename=vc

Das Device stdio stellt eine Verbindung zum Standard-Input und -Output der QEMU-Instanz her. Nach dem Start der Instanz wechselt man mit der Tastenkombination [Strg]+[Alt]+[3] zum Standard-Input und -Output. Diese Option steht nicht unter Host-Systemen mit Microsoft Windows zur Verfügung.

Host ~$ qemu Platte.img -chardev stdio,id=hans

Das Device vc stellt eine Verbindung zur Text-Konsole von QEMU her. Zu dieser Textkonsole wird mit der Tastenkombination [Strg]+[Alt]+[2] umgeschaltet.

Host ~$ qemu Platte.img -snapshot -chardev vc,id=knut

Weitere Möglichkeiten der Option -chardev werden im Anhang aufgelistet.

[bearbeiten] Links


<<<|###| >>>

Von „http://qemu-buch.de/de/index.php/QEMU-KVM-Buch/_Virtuelle_Hardware/_Bus_RAM_ACPI_Clock_Graphic_Keyb_USB_Sound

Diese Seite wurde bisher 8.539 mal abgerufen. Diese Seite wurde zuletzt am 7. März 2010 um 18:05 Uhr geändert. Inhalt ist verfügbar unter der GNU Free Documentation License 1.2.


Finden

Blättern

News

Deutsch
Weitersagen
Bestellen
Tipps für Autoren
Autoren
Impressum


English
Order
Recommendation
The Authors
Contact



Letzte Änderungen
Twitter


Ä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 …