<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">linux-vfio</a> kernel (4.4.0-4) and I am using these boot parameters:</p><div class="" 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 class="" 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 class="" style="border:0px;margin-top:0px;margin-bottom:0px;padding:0px;font-size:1em;overflow:auto;width:1490px;direction:ltr;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">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 class="" 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">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">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">https://bbs.archlinux.org/viewtopic.php?id=208629</a></p></div>