Xen-3.3.0 & HVM-USB-Support
Oder: mit Apples X11.app
geht nichts, also machen wir’s auf der dom0
Während ich mich weiter mit dem Problem befasste fiel mir auf, dass in der Xen-Gemeinde offenbar doch sehr hohe Verwirrung herrscht; deshalb fasse ich mal kurz zusammen, wie man die Sache angehen kann: ich habe auf der dom0
einen grundlegenden X-Server installiert (apt-get install xserver-xorg xfonts-base xterm fvwm
), Maus sowie Tastatur angeschlossen und den Server mal gestartet – das funktionierte.
Hinweis: Sollte es nicht funktionieren mit einer Fehlermeldung wie der nachfolgenden, ist das Paket xfonts-base
nicht ordnungsgemäß installiert!
Could not init font path element /usr/share/fonts/X11/misc:unscaled, removing from list!
Could not init font path element /usr/share/fonts/X11/misc, removing from list!
Could not init font path element /usr/share/fonts/X11/Speedo, removing from list!
Could not init font path element /usr/share/fonts/X11/PEX, removing from list!
Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!
Could not init font path element /usr/share/fonts/truetype, removing from list!
Could not init font path element /usr/share/fonts/latex-ttf-fonts, removing from list!
Fatal server error:
could not open default font 'fixed'
Dann per lsusb schauen: welche Geräte sind gerade da? In meinem Fall sieht das dann etwa so aus:
Bus 003 Device 011: ID 045e:0025 Microsoft Corp. IntelliEye Mouse
Bus 003 Device 004: ID 04b4:6560 Cypress Semiconductor Corp. CY7C65640 USB-2.0 "TetraHub"
Bus 003 Device 003: ID 04b4:6560 Cypress Semiconductor Corp. CY7C65640 USB-2.0 "TetraHub"
Bus 003 Device 001: ID 0000:0000
Bus 001 Device 003: ID 04d9:1603 Holtek Semiconductor, Inc.
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Dann stöpfle ich mein USB-Device an und rufe erneut lsusb
auf und sehe: es ergab sich eine Änderung, eine Zeile kam dazu:
Bus 003 Device 013: ID 13fe:3123
Hat zwar keinen Namen, aber das ist mein Device – hach, schön. Im fvwm
starte ich nun ein xterm
, und aus diesem xterm
heraus starte ich die `domUv, die in ihrem SDL-Fenster hochkommt:
$ xm create galaxy
Innerhalb des SDL-Fensters kann ich nun (erfolgreich) die Tastenkombination Ctrl+Alt+2
ausführen und gelange tatsächlich in den Monitor des Qemu – hurra! Nun muss ich an dieser Stelle mein USB-Device (bei mir ist das ein 4GB-Stick) bekanntmachen:
$ usb_add host:13fe:3123
Hinweis: Erscheint als Reaktion auf diese Eingabe ein lapidares „Could not add host:13fe:3123“
, so wurde in der Konfiguration der domU
die Option usb=1
vergessen!
Den Monitor kann ich mittels Ctrl+Alt+1
wieder verlassen. Ich logge mich nun in die domU
ein, rufe ein dmesg
auf und sehe folgendes:
usb 1-2: new full speed USB device using uhci_hcd and address 2
usb 1-2: configuration #1 chosen from 1 choice
SCSI subsystem initialized
Initializing USB Mass Storage driver...
scsi0 : SCSI emulation for USB Mass Storage devices
usbcore: registered new driver usb-storage
usb-storage: device found at 2
usb-storage: waiting for device to settle before scanning
USB Mass Storage support registered.
Vendor: Verbatim Model: STORE N GO Rev: 5.00
Type: Direct-Access ANSI SCSI revision: 00
usb-storage: device scan complete
SCSI device sda: 7935104 512-byte hdwr sectors (4063 MB)
sda: Write Protect is off
sda: Mode Sense: 23 00 00 00
sda: assuming drive cache: write through
SCSI device sda: 7935104 512-byte hdwr sectors (4063 MB)
sda: Write Protect is off
sda: Mode Sense: 23 00 00 00
sda: assuming drive cache: write through
sda: sda1
sd 0:0:0:0: Attached scsi removable disk sda
Außerdem mache ich mal ein lsusb
und erhalte als Output dies hier:
galaxy:~$ lsusb
Bus 001 Device 002: ID 13fe:3123
That’s it! Von meiner Apple-Workstation aus funktioniert es halt nicht – schätzungsweise müsste man da mal einen Bugreport an Apple schicken, damit diese elende Tastenkombination auch unter X11.app
benutzbar wird. Davon abgesehen funktioniert diese Sache so ziemlich großartig.
Hinweis: Um das Device wieder zu entfernen arbeitet man nicht mehr mit dem host:vendor_id:product_id
-Key, sondern mit der Bus-Adresse. Da die Ausgabe bei mir Bus 001 Device 002: ID 13fe:3123
lautete, ist die Adresse zum Entfernen des Geräts die 0.2
– im Qemu-Monitor also usb_del 0.2
eingeben und anschließend im dmesg
staunen, dass das Gerät tatsächlich entfernt wurde ;) Doch Vorsicht: allzu willenloses Spielen mit den Parametern kann dazu führen, das du aus Versehen deine USB-Maus (die wohl per default immer auf 0.1 sitzt) deaktivierst.
Damit das funktioniert, musste ich in der Konfiguration der domU
einige Anpassungen vornehmen. Nachfolgend die Konfiguration.
## kernel and memory
kernel = '/usr/lib/xen/boot/hvmloader'
builder = 'hvm'
device_model = '/usr/lib/xen/bin/qemu-dm'
memory = '2048'
## display options
vnc=0
sdl=1
monitor=1
usb=1
keymap='en-us'
## disk devices
disk = [ 'file:/vm/galaxy/main.img,hda,w', 'file:/vm/galaxy/data.img,hdb,w' ]
boot = 'c'
## power
vcpus = '2'
## networking and hostname
vif = [ 'mac=00:02:02:c0:ff:ee' ]
dhcp = 'dhcp'
name = 'galaxy'
## behaviour
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
Hintergrundbild: 2560x 1920px, Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten