<div dir="ltr">If you have more than one USB Host Controller, you might want to try passing one through and plugging all the Guest's USB items into those ports. This way Windows will handle all the quirks of the controller, which the drivers are designed to handle.<div><br></div><div>Jon</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 9 February 2016 at 12:46, Tomáš M. <span dir="ltr"><<a href="mailto:pulec.mcm@gmail.com" target="_blank">pulec.mcm@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><p style="font-family:sans-serif;border:0px;margin:0px;padding:7px 0px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)">So I managed to get Windows 7 running with VGA-Passthrough without any big issues, except I can't get pass Logitech Driving Force Pro to Windows.<br>My specs are:</p><ul style="font-family:sans-serif;border:0px;margin:0px;padding:4px 13px 4px 30px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)"><li style="font-family:Verdana,Arial,Helvetica,sans-serif;border:0px;margin:0px;padding:0px 3px"><p style="border:0px;margin:0px;padding:0px">CPU: i7-3770</p></li><li style="font-family:Verdana,Arial,Helvetica,sans-serif;border:0px;margin:0px;padding:0px 3px"><p style="border:0px;margin:0px;padding:0px">MB: Asus P8Z77-V Pro</p></li><li style="font-family:Verdana,Arial,Helvetica,sans-serif;border:0px;margin:0px;padding:0px 3px"><p style="border:0px;margin:0px;padding:0px">GPU: Sapphire HD 7950 Vapor-X OC (Boost)</p></li><li style="font-family:Verdana,Arial,Helvetica,sans-serif;border:0px;margin:0px;padding:0px 3px"><p style="border:0px;margin:0px;padding:0px">Distro: Arch Linux with linux-vfio kernel from aur</p></li></ul><p style="font-family:sans-serif;border:0px;margin:0px;padding:7px 0px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)">Since HD 7950's BIOS does not support UEFI it runs with SeaBIOS, but I doubt its important.</p><p style="font-family:sans-serif;border:0px;margin:0px;padding:7px 0px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)">I am using <a href="https://aur.archlinux.org/packages/linux-vfio/" rel="nofollow" style="text-decoration:none;color:rgb(102,102,102);outline:none;font-weight:bold" target="_blank">linux-vfio</a> kernel (4.4.0-4) and I am using these boot parameters:</p><div style="font-family:sans-serif;border:1px solid rgb(187,204,221);margin:0.75em 1em;padding:0px;font-size:13px;line-height:19.006px;background:rgb(235,241,245)"><pre style="border:0px;margin-top:0px;margin-bottom:0px;padding:0px;font-size:1em;overflow:auto;width:1490px;direction:ltr"><code style="font-size:1em;padding:0.5em;display:inline-block">rw i915.enable_hd_vgaarb=1 intel_iommu=on intel_iommu=igfx_off</code></pre></div><p style="font-family:sans-serif;border:0px;margin:0px;padding:7px 0px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)">The script I am running the VM with:</p><div style="font-family:sans-serif;border:1px solid rgb(187,204,221);margin:0.75em 1em;padding:0px;font-size:13px;line-height:19.006px;background:rgb(235,241,245)"><pre style="border:0px;margin-top:0px;margin-bottom:0px;padding:0px;font-size:1em;overflow:auto;width:1490px;direction:ltr;min-height:32em"><code style="font-size:1em;padding:0.5em;display:inline-block">#04f2:0116 chicony white keyboard
#1131:1001 bluetooth dongle
#054c:0268 ps3

echo "turning off main monitor so it can switch to displayport"
QEMU_AUDIO_DRV=pa
QEMU_PA_SERVER=localhost
PULSE_SERVER=localhost
QEMU_PA_SAMPLES=16
sudo xrandr --output HDMI3 --off --output HDMI1 --auto
sudo qemu-system-x86_64 \
  -enable-kvm \
  -m 10240 \
  -cpu host,kvm=off \
  -smp 4,sockets=1,cores=4,threads=1 \
  -vga none \
  -rtc base=localtime \
  -device ich9-usb-uhci3,id=uhci \
  -device usb-ehci,id=ehci \
  -device nec-usb-xhci,id=xhci \
  -soundhw hda \
  -device vfio-pci,host=01:00.0,x-vga=on,multifunction=on \
  -device vfio-pci,host=01:00.1 \
  -drive file=/motherstorage/KVM/windows7.img,format=raw,if=none,id=drive-ide0-1-0 \
  -device ide-hd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \
  -drive file=/motherstorage/KVM/data_games.img,format=raw,if=none,id=drive-ide0-1-1 \
  -device ide-hd,bus=ide.1,unit=1,drive=drive-ide0-1-1,id=ide0-1-1 \
  -usbdevice host:04f2:0116 \
  -usbdevice host:1131:1001 \
  -usbdevice host:054c:0268 \
  -netdev user,id=vmnic -device virtio-net,netdev=vmnic

#on igpu main monitor
xrandr --output HDMI3 --auto --right-of HDMI1
echo "turning main monitor back on"
xrandr --output HDMI3 --auto</code></pre></div><p style="font-family:sans-serif;border:0px;margin:0px;padding:7px 0px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)">I use some old Bluetooth Dongle(host:1131:1001) and DualShock 3 (host:054c:0268) with <a href="http://forums.pcsx2.net/Thread-XInput-Wrapper-for-DS3-and-Play-com-USB-Dual-DS2-Controller?pid=186161#pid186161" rel="nofollow" style="text-decoration:none;color:rgb(102,102,102);outline:none;font-weight:bold" target="_blank">XInput Wrapper for DS3</a> and it works perfectly. Although I have to sometimes reconnect Bluetooth Dongle so it loads properly, but I have to do the same thing on native Windows, so that is expected.<br>I also tried Thrustmaster T1600M, no issues.</p><p style="font-family:sans-serif;border:0px;margin:0px;padding:7px 0px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)">But Windows just can't get detect the Logitech Driving Force(046d:c294) which is probably the wheel locked in 270 degrees mode and Logitech Driving Force Pro(046d:c298) which is 900 degrees mode.<br>I probably got my wheel somehow stuck in 900 degrees mode, although I can lock to 270 degree with pushing Select R3+R1, after reconnecting (which also means using usb_add command in QEMU monitor when VM is running) it always switches back to 900 degrees mode.</p><p style="font-family:sans-serif;border:0px;margin:0px;padding:7px 0px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)"><strong>Here is what I tried:</strong></p><ul style="font-family:sans-serif;border:0px;margin:0px;padding:4px 13px 4px 30px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)"><li style="font-family:Verdana,Arial,Helvetica,sans-serif;border:0px;margin:0px;padding:0px 3px"><p style="border:0px;margin:0px;padding:0px">1. Different USB ports, always using -usbdevice host:046d:c298 parameter</p></li><li style="font-family:Verdana,Arial,Helvetica,sans-serif;border:0px;margin:0px;padding:0px 3px"><p style="border:0px;margin:0px;padding:0px">2. Same USB ports, with number of hostadrdesses, with using number of hostaddresses so:<br style="font-family:sans-serif!important">-usb -device usb-host,hostbus=2,hostaddr=6<br style="font-family:sans-serif!important">-usb -device usb-host,hostbus=2,hostaddr=7<br style="font-family:sans-serif!important">-usb -device usb-host,hostbus=2,hostaddr=8<br style="font-family:sans-serif!important">-usb -device usb-host,hostbus=2,hostaddr=9<br style="font-family:sans-serif!important">-usb -device usb-host,hostbus=2,hostaddr=10</p></li><li style="font-family:Verdana,Arial,Helvetica,sans-serif;border:0px;margin:0px;padding:0px 3px"><p style="border:0px;margin:0px;padding:0px">3. Trying point 1 and 2 things with -M q35 (default is i440fx) and on Windows 10<br style="font-family:sans-serif!important">I could not use these parameters with q35 chipset:<br style="font-family:sans-serif!important">  -device ich9-usb-uhci3,id=uhci \<br style="font-family:sans-serif!important">  -device usb-ehci,id=ehci \<br style="font-family:sans-serif!important">  -device nec-usb-xhci,id=xhci \<br style="font-family:sans-serif!important">Windows failed to boot with them<br style="font-family:sans-serif!important">and:<br style="font-family:sans-serif!important">  -drive file=/motherstorage/KVM/data_games.img,format=raw,if=none,id=drive-ide0-1-1 \<br style="font-family:sans-serif!important">  -device ide-hd,bus=ide.1,unit=1,drive=drive-ide0-1-1,id=ide0-1-1 \<br style="font-family:sans-serif!important">error with IDE, since I already used it for my system</p></li></ul><p style="font-family:sans-serif;border:0px;margin:0px;padding:7px 0px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)"><strong>I always got the same result.</strong><br>1. Connect the wheel to the host<br>    1.1 when I tried using Same USB port with number of hostaddresses the wheel gets detected on Bus 002 with specific Device Number(hostaddr), I pass this to the VM script<br>2. Launch the VM, when using number hostaddresses I had the parameter directly in the script, but when using -usbdevice host:$vendor:$product I didn't notice any difference when the parameter is in the script or I use usb_add host:$vendor:$product when Windows boots<br>3. When the qemu tries to "catch the wheel" its gets reconnected and tries to calibrate itself as it always does and when that happens script window which I launched qemu with reports something like this:</p><div style="font-family:sans-serif;border:1px solid rgb(187,204,221);margin:0.75em 1em;padding:0px;font-size:13px;line-height:19.006px;background:rgb(235,241,245)"><pre style="border:0px;margin-top:0px;margin-bottom:0px;padding:0px;font-size:1em;overflow:auto;width:1490px;direction:ltr"><code style="font-size:1em;padding:0.5em;display:inline-block">libusb: error [_get_usbfs_fd] File doesn't exist, wait 10 ms and try again
libusb: error [_get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/002/009: No such file or directory
libusb: error [_open_sysfs_attr] open /sys/bus/usb/devices/2-1.8/bConfigurationValue failed ret=-1 errno=2
libusb: error [_get_usbfs_fd] File doesn't exist, wait 10 ms and try again
libusb: error [_get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/002/011: No such file or directory
libusb: error [_get_usbfs_fd] File doesn't exist, wait 10 ms and try again
libusb: error [_get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/002/013: No such file or directory
libusb: error [_open_sysfs_attr] open /sys/bus/usb/devices/2-1.5/bConfigurationValue failed ret=-1 errno=2
libusb: error [_get_usbfs_fd] File doesn't exist, wait 10 ms and try again
libusb: error [_get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/002/017: No such file or directory
libusb: error [_get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/002/019: No such device
libusb: error [_get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/002/021: No such device
libusb: error [_get_usbfs_fd] File doesn't exist, wait 10 ms and try again
libusb: error [_get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/002/023: No such file or directory
libusb: error [_get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/002/025: No such device
libusb: error [_get_usbfs_fd] File doesn't exist, wait 10 ms and try again
libusb: error [_get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/002/027: No such file or directory</code></pre></div><p style="font-family:sans-serif;border:0px;margin:0px;padding:7px 0px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)">During the calibration process (which takes about 10s) its seems that it gets disconnected and reconnected number of times and when that happens, its device number changes.</p><p style="font-family:sans-serif;border:0px;margin:0px;padding:7px 0px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)">Seeing it first time I tried to use number of hostaddresses either with addresses like 08,10,12,14 or directly [08-14] and even when the script window didn't showed that the the device does not exist, it still didn't change.<br>In native Windows its either the 046d:c294 or 046d:c298 (after comparing two outputs from <a href="http://www.nirsoft.net/utils/usb_devices_view.html" rel="nofollow" style="text-decoration:none;color:rgb(102,102,102);outline:none;font-weight:bold" target="_blank">Nirsoft's USB Devices View</a> in connected and disconnect states) the Windows in VM does not detect anything at all.</p><p style="font-family:sans-serif;border:0px;margin:0px;padding:7px 0px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)">I can use my wheel without issues on the Linux host in games like Euro Truck Simulator 2 and set up the wheel with ltwheelconf so I might probably use Steam Home Streaming for the racing games (I didn't manage to setup the network bridge correctly, yet) but I am thinking of getting Logitech G27 (<a href="http://ubuntuforums.org/showthread.php?t=2266916" rel="nofollow" style="text-decoration:none;color:rgb(102,102,102);outline:none;font-weight:bold" target="_blank">mention</a> that it might work) or some similar alternative. Good wheels with 3 pedals and H-shifter are not cheap so I would like to know that they will work... I don't want to boot to Windows just because of the wheel.</p><p style="font-family:sans-serif;border:0px;margin:0px;padding:7px 0px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)">Any ideas what I might try ("somehow forcing" the wheel to specific hostaddress for example?) or what kind of qemu setting might help?</p><p style="font-family:sans-serif;border:0px;margin:0px;padding:7px 0px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)">------</p><p style="font-family:sans-serif;border:0px;margin:0px;padding:7px 0px;color:rgb(51,51,51);font-size:13px;line-height:19.006px;background-color:rgb(252,253,254)">also posted in: <a href="https://bbs.archlinux.org/viewtopic.php?id=208629" target="_blank">https://bbs.archlinux.org/viewtopic.php?id=208629</a></p></div>
<br>_______________________________________________<br>
vfio-users mailing list<br>
<a href="mailto:vfio-users@redhat.com">vfio-users@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/vfio-users" rel="noreferrer" target="_blank">https://www.redhat.com/mailman/listinfo/vfio-users</a><br>
<br></blockquote></div><br></div>