Wraz z wydaniem wersji 74 w kvm pojawiła się przydatna funkcjonalność: automatyczne podłączanie i odłączanie urządzeń USB. Zbędne jest wywoływanie usb_add z monitora, zamiast tego można:
qemu [... opcje ...] -usb -usbdevice 'host:0421:*'
co spowoduje, że emulator będzie periodycznie skanował urządzenia USB podłączane do gospodarza w poszukiwaniu urządzeń Nokia (idVendor = 0x0421) i jeśli takie znajdzie, "podłączy" je do gościa. Miłe.
Jeśli uruchamia się kvm/qemu z prawami nie-roota, tylko np. użytkownika będącego w grupie plugdev, to przydaje się taka regułka udev:
SUBSYSTEM=="usb", ACTION=="add", ATTR{dev}=="?*", GROUP="plugdev", \
MODE="0660", PROGRAM="/bin/ln -sf /proc/bus/usb/devices /dev/bus/usb/devices"
I jeszcze mała łatka na kvm-74, która sprawia, że kvm, zamiast z /proc/bus/usb, korzysta z /dev/bus/usb (bo tam udev umie nadawać odpowiednie uprawnienia):
diff -ur a/qemu/usb-linux.c b/qemu/usb-linux.c --- a/qemu/usb-linux.c 2008-08-27 10:53:37.000000000 +0200 +++ b/qemu/usb-linux.c 2008-09-08 12:33:03.000000000 +0200 @@ -65,7 +65,7 @@ #define dprintf(...) #endif -#define USBDEVFS_PATH "/proc/bus/usb" +#define USBDEVFS_PATH "/dev/bus/usb" #define PRODUCT_NAME_SZ 32 #define MAX_ENDPOINTS 16
Voila. Miłego wirtualizowania.