October 9, 20223 yr Hello! As the title of the post states, I'm having issues with USB passthrough with the Asus BT-500 into my VM. UnRaid detects the bluetooth module and it shows up in my VM template, but when I boot up my VM it does not appear to be detected in the VM. I don't notice any errors either. The VM boots up fine, and the bluetooth module has "select" and "optional" checked off, but it doesn't get passed through. Any help would be appreciated. Posted below is my VM template. <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm'> <name>Windows 10</name> <uuid>8a37fa28-acb4-612b-f280-8319e027935b</uuid> <description>Windows 10</description> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>8388608</memory> <currentMemory unit='KiB'>8388608</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>16</vcpu> <cputune> <vcpupin vcpu='0' cpuset='8'/> <vcpupin vcpu='1' cpuset='32'/> <vcpupin vcpu='2' cpuset='10'/> <vcpupin vcpu='3' cpuset='34'/> <vcpupin vcpu='4' cpuset='12'/> <vcpupin vcpu='5' cpuset='36'/> <vcpupin vcpu='6' cpuset='14'/> <vcpupin vcpu='7' cpuset='38'/> <vcpupin vcpu='8' cpuset='16'/> <vcpupin vcpu='9' cpuset='40'/> <vcpupin vcpu='10' cpuset='18'/> <vcpupin vcpu='11' cpuset='42'/> <vcpupin vcpu='12' cpuset='20'/> <vcpupin vcpu='13' cpuset='44'/> <vcpupin vcpu='14' cpuset='22'/> <vcpupin vcpu='15' cpuset='46'/> </cputune> <os> <type arch='x86_64' machine='pc-i440fx-6.2'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/8a37fa28-acb4-612b-f280-8319e027935b_VARS-pure-efi.fd</nvram> </os> <features> <acpi/> <apic/> <hyperv mode='custom'> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='none'/> </hyperv> </features> <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' cores='8' threads='2'/> <cache mode='passthrough'/> </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='writeback'/> <source file='/mnt/disks/vm/Windows 10/vdisk1.img'/> <target dev='hdc' bus='virtio'/> <boot order='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/virtio/virtio-win-0.1.221-1.iso'/> <target dev='hdb' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='pci' index='0' model='pci-root'/> <controller type='ide' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </controller> <controller type='usb' index='0' model='ich9-ehci1'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/> </controller> <interface type='bridge'> <mac address='52:54:00:74:ff:47'/> <source bridge='br0'/> <model type='virtio-net'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </interface> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </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='tablet' bus='usb'> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <sound model='ich9'> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </sound> <audio id='1' type='none'/> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x04' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='no'> <source startupPolicy='optional'> <vendor id='0x0b05'/> <product id='0x190e'/> </source> <address type='usb' bus='0' port='2'/> </hostdev> <memballoon model='none'/> </devices> </domain> Edited October 9, 20223 yr by N¿¿B Clarity
October 11, 20223 yr Author Solution On 8/22/2021 at 10:35 AM, Keksgesicht said: The solution is a lot simpler. Linux (unRaid) is somehow blocking the device on the host. I found out that you can unload the bluetooth drivers and it works now inside the VM. modprobe -r btusb modprobe -r bluetooth If you want that it persistent between reboot, you have to blacklist these drivers. Normally it is /etc/modprobe.d/ but unRaid does not replace the initial root filesystem (initrd / rootfs) with a block device so changes where are not persistent. In some other forum thread a found something like this for unRaid. (not tested because my system is still running) mkdir /boot/config/modprobe.d/ echo -e 'blacklist btusb\nblacklist bluetooth' > /boot/config/modprobe.d/bluetooth.conf If you still need bluetooth on the host for some docker container. It is probably needed to load the drivers again when the VM isn't running. modprobe btusb modprobe bluetooth Here is the solution for those of you who don't want to read through the thread.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.