Я наконец-то получил помощь на другом форуме. Похоже, что проблема связана с реализацией шины USB в чипсете I440FX, который по умолчанию эмулируется qemu (подробности здесь). Обходным решением является эмуляция чипсета ICH9. Это делается путем добавления параметра -M q35
. Я также изменил способ указания USB-устройств, и окончательная командная строка выглядит так:
qemu-system-x86_64 \
-enable-kvm \
-M q35 \
-m 2G \
-usb -usbdevice host:16b2:1001 \
-usb -usbdevice host:0529:0001 \
-usbdevice tablet \
-net nic \
-net bridge,br=br0 \
-vga qxl \
-spice port=5930,disable-ticketing \
-device virtio-serial-pci \
-device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \
-chardev spicevmc,id=spicechannel0,name=vdagent \
-drive file=/mnt/data/win-patch.img,if=virtio
Теперь все работает отлично.
Обновление на 2019 год: параметр usb-device
был устаревшим; вы можете добиться того же, заменив его на -usb -device
и указав идентификатор продукта и производителя в шестнадцатеричных числах, аналогично:
qemu-system-x86_64 \
-enable-kvm \
-M q35 \
-m 2G \
-usb -device usb-host:productid=0x16b2,vendorid=0x1001 \
-usb -device usb-host:productid=0x0529,vendorid=0x0001 \
-usbdevice tablet \
-net nic \
-net bridge,br=br0 \
-vga qxl \
-spice port=5930,disable-ticketing \
-device virtio-serial-pci \
-device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \
-chardev spicevmc,id=spicechannel0,name=vdagent \
-drive file=/mnt/data/win-patch.img,if=virtio
ссылка: https://git.qemu.org/?p=qemu.git;a=blob_plain;f=docs/usb2.txt;hb=HEAD
Измените конфигурацию nixos с помощью:
networking.extraHosts =
''
127.0.0.2 other-localhost
10.0.0.1 server
'';