Ryoko Posted November 6, 2017 Share Posted November 6, 2017 Using a Logitech G9 Laser mouse from forever ago. When the Win10 VM starts the mouse isn't working, if I add the mouse via the Libvirt Hotplug USB plugin, it works completely fine. I have added the mouse via the unRAID gui and have not had any issues using any different mice, just this one. The system in question is the office server in my sig. I will post the xml snippets below. It seems to not be passing through the mouse based off the vendor/product IDs? Might anyone have any suggestions to force this mouse to pass through properly to the VM on bootup? I regularly shutdown this VM, and its frustrating to not have a mouse at boot. Thanks in advance! Pre-boot xml <domain type='kvm'> <name>YES-MEDIAPC</name> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>6291456</memory> <currentMemory unit='KiB'>6291456</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>10</vcpu> <cputune> <vcpupin vcpu='0' cpuset='3'/> <vcpupin vcpu='1' cpuset='4'/> <vcpupin vcpu='2' cpuset='5'/> <vcpupin vcpu='3' cpuset='6'/> <vcpupin vcpu='4' cpuset='7'/> <vcpupin vcpu='5' cpuset='11'/> <vcpupin vcpu='6' cpuset='12'/> <vcpupin vcpu='7' cpuset='13'/> <vcpupin vcpu='8' cpuset='14'/> <vcpupin vcpu='9' cpuset='15'/> <emulatorpin cpuset='0,8'/> </cputune> <os> <type arch='x86_64' machine='pc-i440fx-2.7'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/a5b29b54-1788-1efa-b192-33c0a178cb60_VARS-pure-efi.fd</nvram> </os> <features> <acpi/> <apic/> <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='none'/> </hyperv> </features> <cpu mode='host-passthrough'> <topology sockets='1' cores='5' threads='2'/> </cpu> <clock offset='localtime'> <timer name='hypervclock' present='yes'/> <timer name='hpet' present='no'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/local/sbin/qemu</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='directsync' io='native'/> <source file='/mnt/user/vDisks/YES-MEDIAPC/vdisk1.img'/> <target dev='hdc' bus='virtio'/> <boot order='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/ISOs/virtio-win-0.1.140.iso'/> <target dev='hdb' bus='sata'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='usb' index='0' model='nec-xhci'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </controller> <controller type='pci' index='0' model='pci-root'/> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </controller> <interface type='bridge'> <mac address='52:54:00:0e:f8:05'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </source> <rom bar='on' file='/boot/vbios.rom'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x046d'/> <product id='0xc048'/> </source> <address type='usb' bus='0' port='1'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x1c4f'/> <product id='0x0002'/> </source> <address type='usb' bus='0' port='2'/> </hostdev> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </memballoon> </devices> </domain> Post mouse addition with the Libvirt Hotplug USB plugin <domain type='kvm' id='3'> <name>YES-MEDIAPC</name> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>6291456</memory> <currentMemory unit='KiB'>6291456</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>10</vcpu> <cputune> <vcpupin vcpu='0' cpuset='3'/> <vcpupin vcpu='1' cpuset='4'/> <vcpupin vcpu='2' cpuset='5'/> <vcpupin vcpu='3' cpuset='6'/> <vcpupin vcpu='4' cpuset='7'/> <vcpupin vcpu='5' cpuset='11'/> <vcpupin vcpu='6' cpuset='12'/> <vcpupin vcpu='7' cpuset='13'/> <vcpupin vcpu='8' cpuset='14'/> <vcpupin vcpu='9' cpuset='15'/> <emulatorpin cpuset='0,8'/> </cputune> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-i440fx-2.7'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/a5b29b54-1788-1efa-b192-33c0a178cb60_VARS-pure-efi.fd</nvram> </os> <features> <acpi/> <apic/> <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='none'/> </hyperv> </features> <cpu mode='host-passthrough'> <topology sockets='1' cores='5' threads='2'/> </cpu> <clock offset='localtime'> <timer name='hypervclock' present='yes'/> <timer name='hpet' present='no'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/local/sbin/qemu</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='directsync' io='native'/> <source file='/mnt/user/vDisks/YES-MEDIAPC/vdisk1.img'/> <backingStore/> <target dev='hdc' bus='virtio'/> <boot order='1'/> <alias name='virtio-disk2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/ISOs/virtio-win-0.1.140.iso'/> <backingStore/> <target dev='hdb' bus='sata'/> <readonly/> <alias name='sata0-0-1'/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='usb' index='0' model='nec-xhci'> <alias name='usb'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </controller> <controller type='pci' index='0' model='pci-root'> <alias name='pci.0'/> </controller> <controller type='sata' index='0'> <alias name='sata0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </controller> <controller type='virtio-serial' index='0'> <alias name='virtio-serial0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </controller> <interface type='bridge'> <mac address='52:54:00:0e:f8:05'/> <source bridge='br0'/> <target dev='vnet0'/> <model type='virtio'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/0'/> <target port='0'/> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/0'> <source path='/dev/pts/0'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-3-YES-MEDIAPC/org.qemu.guest_agent.0'/> <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/> <alias name='channel0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='mouse' bus='ps2'> <alias name='input0'/> </input> <input type='keyboard' bus='ps2'> <alias name='input1'/> </input> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </source> <alias name='hostdev0'/> <rom bar='on' file='/boot/vbios.rom'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/> </source> <alias name='hostdev1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x046d'/> <product id='0xc048'/> <address bus='3' device='7'/> </source> <alias name='hostdev2'/> <address type='usb' bus='0' port='1'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x1c4f'/> <product id='0x0002'/> <address bus='3' device='3'/> </source> <alias name='hostdev3'/> <address type='usb' bus='0' port='2'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x046d'/> <product id='0xc048'/> <address bus='3' device='8'/> </source> <alias name='hostdev4'/> <address type='usb' bus='0' port='3'/> </hostdev> <memballoon model='virtio'> <alias name='balloon0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </memballoon> </devices> <seclabel type='none' model='none'/> <seclabel type='dynamic' model='dac' relabel='yes'> <label>+0:+100</label> <imagelabel>+0:+100</imagelabel> </seclabel> </domain> yes-mediaserver-diagnostics-20171106-1622.zip Link to comment
Ryoko Posted November 6, 2017 Author Share Posted November 6, 2017 Additional information - After reading through some of the libvirt docs over here related to the HostDevSubsys, it would seem for USB devices that only the vendor id/product id OR the address can be called. Unfortunately, as JonP noted in this post, using the address isn't bulletproof as it can change with system reboots. I may have to use that as a work around though for now as the server itself isn't rebooted very often, but the VM is daily. When I ran udevadm info --name=/dev/bus/usb/003/008 --query=property for the mouse when it was connected, the results are below. I just wish I could call it with something like... <source> <serial_short id='F91C93FC280029'/> I'm open to any suggestions, thanks! BUSNUM=003 DEVNAME=/dev/bus/usb/003/008 DEVNUM=008 DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-12 DEVTYPE=usb_device DRIVER=usb ID_BUS=usb ID_MODEL=G9_Laser_Mouse ID_MODEL_ENC=G9\x20Laser\x20Mouse ID_MODEL_FROM_DATABASE=G9 Laser Mouse ID_MODEL_ID=c048 ID_REVISION=5000 ID_SERIAL=Logitech_G9_Laser_Mouse_F91C93FC280029 ID_SERIAL_SHORT=F91C93FC280029 ID_USB_INTERFACES=:030102:030000: ID_VENDOR=Logitech ID_VENDOR_ENC=Logitech ID_VENDOR_FROM_DATABASE=Logitech, Inc. ID_VENDOR_ID=046d MAJOR=189 MINOR=263 PRODUCT=46d/c048/5000 SUBSYSTEM=usb TYPE=0/0/0 USEC_INITIALIZED=1535780383 Link to comment
Ryoko Posted November 8, 2017 Author Share Posted November 8, 2017 Update - started the VM this morning and the mouse worked without my manually attaching it via the Libvirt Hotplug USB plugin. So now its not an issue of not working, but working intermittently. Will update this post if it works again on tomorrow's bootup. Update2 - Works intermitently. Sometimes it attaches at boot, sometimes it doesn't. Not sure where to go from here, diags and xmls posted above. Any help would be appreciated. Link to comment
ehcorn Posted November 20, 2017 Share Posted November 20, 2017 I'm having a similar issue but with a different mouse but found that connecting a HPTC keyboard with a integrated touchpad ended up giving me a mouse for a few minutes but when I go idle the mouse won't respond again. I'm unfamiliar with the plugin you mentioned though, and the github looks a little advanced for me since I picked up unraid yesterday and don't know how to run scripts within the system. Link to comment
ffhelllskjdje Posted November 21, 2017 Share Posted November 21, 2017 similar issue with a MS sculpt mouse. it will work for a couple minutes then just stop. Link to comment
Ryoko Posted December 18, 2017 Author Share Posted December 18, 2017 You can find the plugin I reference in Community Apps - Apps tab, search for usb. It will be the only thing that shows up. Its full name is "Libvirt Hotplug USB". Ya, mine still is pretty much off and on. Sometimes it works on its own. Sometimes I can get it to connect the first try with the above plugin. Sometimes I have to attach and detach (via VM panel) like 5 times to get it to work. Its super hit and miss. Link to comment
DZMM Posted December 18, 2017 Share Posted December 18, 2017 you could try and use a user script to solve your problem - it worked perfectly for me to solve a similar problem I'm having with my webcam Link to comment
baus Posted February 5, 2019 Share Posted February 5, 2019 I have the same G9 laser mouse, and nothing was working. I was finally able to successfully pass the mouse through by changing my motherboard settings below. USB settings > EHCI Hand-off (disabled) Hope this helps other users out there! Link to comment
Warrentheo Posted February 6, 2019 Share Posted February 6, 2019 The easiest way to guarantee solve this, passthrough a full USB controller card... Solve all kinds of weird devices not being fully passed through... Some motherboard USB cards can be passed, but none of the 3 on my Asus board could be, so your mileage may vary... Link to comment
Ryoko Posted July 23, 2019 Author Share Posted July 23, 2019 ^ that is basically what I ended up doing. Luckily I can pass through the USB controllers on my MB. Never any issues anymore. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.