• [6.10.0-RC1] Onboard Bluetooth no longer able to passthrough to VM


    cobhc
    • Minor

    Hi,

     

    On 6.9.2 I was passing through my onboard Bluetooth Controller on my Asus B550 Strix-E which was working fine, however since updating to 6.10.0-RC1 I am no longer able to do. It works fine in BM on Windows 10 but throws up a Code 10 in a Windows 10 VM and doesn't let me enable Bluetooth in a PopOS VM.

     

    It's picked up as "Intel Corp. (8087:0029)" when trying to passthrough and is twinned with the onboard WiFi 6 (which I have disabled as I don't use it).

     

    All other settings are the same as they were before updating. Diagnostics attached.

    darthunraider-diagnostics-20210811-1629.zip




    User Feedback

    Recommended Comments

    Thinking that the BT is bound to the host now and needs to be disabled in the host.

     

    Not loaded 6.10rc1 yet but does hciconfig exists? and what output do you get if you run it.

    Link to comment
    1 hour ago, SimonF said:

    Thinking that the BT is bound to the host now and needs to be disabled in the host.

     

    Not loaded 6.10rc1 yet but does hciconfig exists? and what output do you get if you run it.

    No, hciconfig doesn't seem to be included. That sounds like a logical explanation though,

    Link to comment
    10 minutes ago, cobhc said:

    No, hciconfig doesn't seem to be included. That sounds like a logical explanation though,

    Might be command is now bluetoothctl

    Link to comment
    10 hours ago, SimonF said:

    Might be command is now bluetoothctl

    That's not included either, thanks for the suggestion by the way!

    Link to comment

    I have upgraded one of my Dev systems.  I have a usb doggle and not an integrated BT,

     

    I get similar Bluetooth logs but was able to map to my Ubuntu VM as a USB map, I can see it in lsub on the VM but not able to deteck controller will try Windows.

     

    How are you mapping? Also was reading some post where wifi needs to be enabled to enable BT, but I am guessing this was working with Wifi disabled before.

     

    Aug 13 15:42:51 computenode kernel: usb 1-7: new full-speed USB device number 8 using xhci_hcd
    Aug 13 15:42:51 computenode usb_manager: Info: rc.usb_manager usb_add 0a12_BT_DONGLE10 /dev/bus/usb/001/008 001 008
    Aug 13 15:42:51 computenode usb_manager: Info: rc.usb_manager Autoconnect ignored VM not running state:shutoff 0a12_BT_DONGLE10 /dev/bus/usb/001/008 001 008 port 1-7
    Aug 13 15:42:51 computenode usb_manager: Info: rc.usb_manager Autoconnect No Mapping found 0a12_BT_DONGLE10 /dev/bus/usb/001/008 001 008 port 1-7
    Aug 13 15:42:51 computenode kernel: Bluetooth: Core ver 2.22
    Aug 13 15:42:51 computenode kernel: NET: Registered protocol family 31
    Aug 13 15:42:51 computenode kernel: Bluetooth: HCI device and connection manager initialized
    Aug 13 15:42:51 computenode kernel: Bluetooth: HCI socket layer initialized
    Aug 13 15:42:51 computenode kernel: Bluetooth: L2CAP socket layer initialized
    Aug 13 15:42:51 computenode kernel: Bluetooth: SCO socket layer initialized
    Aug 13 15:42:51 computenode kernel: usbcore: registered new interface driver btusb
    Aug 13 15:42:51 computenode kernel: Bluetooth: hci0: CSR: Unbranded CSR clone detected; adding workarounds...
    
    Aug 13 15:53:02 computenode usb_manager: Info: rc.usb_manager vm_action Ubuntu prepare begin -
    Aug 13 15:53:02 computenode usb_manager: Info: rc.usb_manager Autoconnect Port Map Port:1-7 0a12_BT_DONGLE10 vm: Ubuntu
    
    Aug 13 15:53:36 computenode usb_manager: usb_manager virsh called Ubuntu 1 8 Device attached successfully
    Aug 13 15:54:14 computenode kernel: usb 1-7: reset full-speed USB device number 8 using xhci_hcd
    Aug 13 15:54:14 computenode kernel: Bluetooth: hci0: CSR: Unbranded CSR clone detected; adding workarounds...
    Aug 13 15:54:14 computenode usb_manager: usb_manager virsh called Ubuntu 1 8 Device detached successfully

     

    Edited by SimonF
    Link to comment
    14 hours ago, SimonF said:

    I have upgraded one of my Dev systems.  I have a usb doggle and not an integrated BT,

     

    I get similar Bluetooth logs but was able to map to my Ubuntu VM as a USB map, I can see it in lsub on the VM but not able to deteck controller will try Windows.

     

    How are you mapping? Also was reading some post where wifi needs to be enabled to enable BT, but I am guessing this was working with Wifi disabled before.

     

    Aug 13 15:42:51 computenode kernel: usb 1-7: new full-speed USB device number 8 using xhci_hcd
    Aug 13 15:42:51 computenode usb_manager: Info: rc.usb_manager usb_add 0a12_BT_DONGLE10 /dev/bus/usb/001/008 001 008
    Aug 13 15:42:51 computenode usb_manager: Info: rc.usb_manager Autoconnect ignored VM not running state:shutoff 0a12_BT_DONGLE10 /dev/bus/usb/001/008 001 008 port 1-7
    Aug 13 15:42:51 computenode usb_manager: Info: rc.usb_manager Autoconnect No Mapping found 0a12_BT_DONGLE10 /dev/bus/usb/001/008 001 008 port 1-7
    Aug 13 15:42:51 computenode kernel: Bluetooth: Core ver 2.22
    Aug 13 15:42:51 computenode kernel: NET: Registered protocol family 31
    Aug 13 15:42:51 computenode kernel: Bluetooth: HCI device and connection manager initialized
    Aug 13 15:42:51 computenode kernel: Bluetooth: HCI socket layer initialized
    Aug 13 15:42:51 computenode kernel: Bluetooth: L2CAP socket layer initialized
    Aug 13 15:42:51 computenode kernel: Bluetooth: SCO socket layer initialized
    Aug 13 15:42:51 computenode kernel: usbcore: registered new interface driver btusb
    Aug 13 15:42:51 computenode kernel: Bluetooth: hci0: CSR: Unbranded CSR clone detected; adding workarounds...
    
    Aug 13 15:53:02 computenode usb_manager: Info: rc.usb_manager vm_action Ubuntu prepare begin -
    Aug 13 15:53:02 computenode usb_manager: Info: rc.usb_manager Autoconnect Port Map Port:1-7 0a12_BT_DONGLE10 vm: Ubuntu
    
    Aug 13 15:53:36 computenode usb_manager: usb_manager virsh called Ubuntu 1 8 Device attached successfully
    Aug 13 15:54:14 computenode kernel: usb 1-7: reset full-speed USB device number 8 using xhci_hcd
    Aug 13 15:54:14 computenode kernel: Bluetooth: hci0: CSR: Unbranded CSR clone detected; adding workarounds...
    Aug 13 15:54:14 computenode usb_manager: usb_manager virsh called Ubuntu 1 8 Device detached successfully

     

    I'm just passing it through within the VM Manager for each VM, it's not bound to VFIO or anything and yeah it worked fine previously with the Wifi 6 part disabled.

    Edited by cobhc
    Link to comment

    I'm in the same situation. Onboard USB Bluetooth Controller (with Wifi). Passing through only the USB device was enough to get it working. (8087:0aa7 Intel Corp. Wireless-AC 3168 Bluetooth)

     

    cookietower is the unRaid host and cookierunner is my Manjaro VM.
    I just searched for a date before the upgrade. The other logs are the same except for the date.
    04 Aug is before the update (6.9.2) und today (22 Aug) is after the update (6.10.0-rc1).

    Aug  4 10:52:39 cookietower kernel: Bluetooth: Core ver 2.22
    Aug  4 10:52:39 cookietower kernel: Bluetooth: HCI device and connection manager initialized
    Aug  4 10:52:39 cookietower kernel: Bluetooth: HCI socket layer initialized
    Aug  4 10:52:39 cookietower kernel: Bluetooth: L2CAP socket layer initialized
    Aug  4 10:52:39 cookietower kernel: Bluetooth: SCO socket layer initialized
    Aug  4 10:52:39 cookietower kernel: Bluetooth: hci0: read Intel version: 370810225019140f38
    Aug  4 10:52:39 cookietower kernel: Bluetooth: hci0: Intel device is already patched. patch num: 38
    
    Aug 04 10:55:02 cookierunner NetworkManager[548]: <info>  [1628067302.5320] Loaded device plugin: NMBluezManager (/usr/lib/NetworkManager/1.32.4-1/libnm-device-plugin-bluetooth.so)
    Aug 04 10:55:03 cookierunner kernel: Bluetooth: Core ver 2.22
    Aug 04 10:55:03 cookierunner kernel: Bluetooth: HCI device and connection manager initialized
    Aug 04 10:55:03 cookierunner kernel: Bluetooth: HCI socket layer initialized
    Aug 04 10:55:03 cookierunner kernel: Bluetooth: L2CAP socket layer initialized
    Aug 04 10:55:03 cookierunner kernel: Bluetooth: SCO socket layer initialized
    Aug 04 10:55:03 cookierunner kernel: Bluetooth: hci0: read Intel version: 370810225019140f38
    Aug 04 10:55:03 cookierunner kernel: Bluetooth: hci0: Intel device is already patched. patch num: 38
    Aug 04 10:55:03 cookierunner systemd[1]: Starting Bluetooth service...
    Aug 04 10:55:03 cookierunner bluetoothd[875]: Bluetooth daemon 5.60
    
    Aug 22 10:01:53 cookietower kernel: Bluetooth: Core ver 2.22
    Aug 22 10:01:53 cookietower kernel: Bluetooth: HCI device and connection manager initialized
    Aug 22 10:01:53 cookietower kernel: Bluetooth: HCI socket layer initialized
    Aug 22 10:01:53 cookietower kernel: Bluetooth: L2CAP socket layer initialized
    Aug 22 10:01:53 cookietower kernel: Bluetooth: SCO socket layer initialized
    Aug 22 10:01:53 cookietower kernel: Bluetooth: hci0: read Intel version: 370810225019140f00
    Aug 22 10:01:53 cookietower kernel: Bluetooth: hci0: Intel Bluetooth firmware file: intel/ibt-hw-37.8.10-fw-22.50.19.14.f.bseq
    Aug 22 10:01:53 cookietower kernel: Bluetooth: hci0: Intel BT fw patch 0x42 completed & activated
    Aug 22 10:03:31 cookietower kernel: Bluetooth: hci0: read Intel version: 370810225019140f00
    Aug 22 10:03:31 cookietower kernel: Bluetooth: hci0: Intel Bluetooth firmware file: intel/ibt-hw-37.8.10-fw-22.50.19.14.f.bseq
    Aug 22 10:03:32 cookietower kernel: Bluetooth: hci0: Intel BT fw patch 0x42 completed & activated
    
    Aug 22 10:03:46 cookierunner NetworkManager[564]: <info>  [1629619426.8626] Loaded device plugin: NMBluezManager (/usr/lib/NetworkManager/1.32.8-1/libnm-device-plugin-bluetooth.so)
    Aug 22 10:03:47 cookierunner kernel: Bluetooth: Core ver 2.22
    Aug 22 10:03:47 cookierunner kernel: Bluetooth: HCI device and connection manager initialized
    Aug 22 10:03:47 cookierunner kernel: Bluetooth: HCI socket layer initialized
    Aug 22 10:03:47 cookierunner kernel: Bluetooth: L2CAP socket layer initialized
    Aug 22 10:03:47 cookierunner kernel: Bluetooth: SCO socket layer initialized
    Aug 22 10:03:47 cookierunner systemd[1]: Starting Bluetooth service...
    Aug 22 10:03:49 cookierunner kernel: Bluetooth: hci0: command 0x0c03 tx timeout
    Aug 22 10:03:57 cookierunner kernel: Bluetooth: hci0: sending initial HCI reset command failed (-110)
    Aug 22 10:03:57 cookierunner bluetoothd[869]: Bluetooth daemon 5.60
    Aug 22 10:03:57 cookierunner systemd[1]: Started Bluetooth service.
    Aug 22 10:03:57 cookierunner systemd[1]: Reached target Bluetooth Support.

    This "sending initial HCI reset command failed (-110)" is driving me crazy.

     

    Host:

    It shows up in lsusb on host and vm.
    VM:

    It is listed by rfkill and blocking and unblocking seems to work.
    bluetoothctl tells me "No default controller available".

    Edited by Keksgesicht
    Link to comment
    6 hours ago, Keksgesicht said:

    I'm in the same situation. Onboard USB Bluetooth Controller (with Wifi). Passing through only the USB device was enough to get it working. (8087:0aa7 Intel Corp. Wireless-AC 3168 Bluetooth)

     

    cookietower is the unRaid host and cookierunner is my Manjaro VM.
    I just searched for a date before the upgrade. The other logs are the same except for the date.
    04 Aug is before the update (6.9.2) und today (22 Aug) is after the update (6.10.0-rc1).

    Aug  4 10:52:39 cookietower kernel: Bluetooth: Core ver 2.22
    Aug  4 10:52:39 cookietower kernel: Bluetooth: HCI device and connection manager initialized
    Aug  4 10:52:39 cookietower kernel: Bluetooth: HCI socket layer initialized
    Aug  4 10:52:39 cookietower kernel: Bluetooth: L2CAP socket layer initialized
    Aug  4 10:52:39 cookietower kernel: Bluetooth: SCO socket layer initialized
    Aug  4 10:52:39 cookietower kernel: Bluetooth: hci0: read Intel version: 370810225019140f38
    Aug  4 10:52:39 cookietower kernel: Bluetooth: hci0: Intel device is already patched. patch num: 38
    
    Aug 04 10:55:02 cookierunner NetworkManager[548]: <info>  [1628067302.5320] Loaded device plugin: NMBluezManager (/usr/lib/NetworkManager/1.32.4-1/libnm-device-plugin-bluetooth.so)
    Aug 04 10:55:03 cookierunner kernel: Bluetooth: Core ver 2.22
    Aug 04 10:55:03 cookierunner kernel: Bluetooth: HCI device and connection manager initialized
    Aug 04 10:55:03 cookierunner kernel: Bluetooth: HCI socket layer initialized
    Aug 04 10:55:03 cookierunner kernel: Bluetooth: L2CAP socket layer initialized
    Aug 04 10:55:03 cookierunner kernel: Bluetooth: SCO socket layer initialized
    Aug 04 10:55:03 cookierunner kernel: Bluetooth: hci0: read Intel version: 370810225019140f38
    Aug 04 10:55:03 cookierunner kernel: Bluetooth: hci0: Intel device is already patched. patch num: 38
    Aug 04 10:55:03 cookierunner systemd[1]: Starting Bluetooth service...
    Aug 04 10:55:03 cookierunner bluetoothd[875]: Bluetooth daemon 5.60
    
    Aug 22 10:01:53 cookietower kernel: Bluetooth: Core ver 2.22
    Aug 22 10:01:53 cookietower kernel: Bluetooth: HCI device and connection manager initialized
    Aug 22 10:01:53 cookietower kernel: Bluetooth: HCI socket layer initialized
    Aug 22 10:01:53 cookietower kernel: Bluetooth: L2CAP socket layer initialized
    Aug 22 10:01:53 cookietower kernel: Bluetooth: SCO socket layer initialized
    Aug 22 10:01:53 cookietower kernel: Bluetooth: hci0: read Intel version: 370810225019140f00
    Aug 22 10:01:53 cookietower kernel: Bluetooth: hci0: Intel Bluetooth firmware file: intel/ibt-hw-37.8.10-fw-22.50.19.14.f.bseq
    Aug 22 10:01:53 cookietower kernel: Bluetooth: hci0: Intel BT fw patch 0x42 completed & activated
    Aug 22 10:03:31 cookietower kernel: Bluetooth: hci0: read Intel version: 370810225019140f00
    Aug 22 10:03:31 cookietower kernel: Bluetooth: hci0: Intel Bluetooth firmware file: intel/ibt-hw-37.8.10-fw-22.50.19.14.f.bseq
    Aug 22 10:03:32 cookietower kernel: Bluetooth: hci0: Intel BT fw patch 0x42 completed & activated
    
    Aug 22 10:03:46 cookierunner NetworkManager[564]: <info>  [1629619426.8626] Loaded device plugin: NMBluezManager (/usr/lib/NetworkManager/1.32.8-1/libnm-device-plugin-bluetooth.so)
    Aug 22 10:03:47 cookierunner kernel: Bluetooth: Core ver 2.22
    Aug 22 10:03:47 cookierunner kernel: Bluetooth: HCI device and connection manager initialized
    Aug 22 10:03:47 cookierunner kernel: Bluetooth: HCI socket layer initialized
    Aug 22 10:03:47 cookierunner kernel: Bluetooth: L2CAP socket layer initialized
    Aug 22 10:03:47 cookierunner kernel: Bluetooth: SCO socket layer initialized
    Aug 22 10:03:47 cookierunner systemd[1]: Starting Bluetooth service...
    Aug 22 10:03:49 cookierunner kernel: Bluetooth: hci0: command 0x0c03 tx timeout
    Aug 22 10:03:57 cookierunner kernel: Bluetooth: hci0: sending initial HCI reset command failed (-110)
    Aug 22 10:03:57 cookierunner bluetoothd[869]: Bluetooth daemon 5.60
    Aug 22 10:03:57 cookierunner systemd[1]: Started Bluetooth service.
    Aug 22 10:03:57 cookierunner systemd[1]: Reached target Bluetooth Support.

    This "sending initial HCI reset command failed (-110)" is driving me crazy.

     

    Host:

    It shows up in lsusb on host and vm.
    VM:

    It is listed by rfkill and blocking and unblocking seems to work.
    bluetoothctl tells me "No default controller available".

    I wonder if it's as simple as the "bluez-firmware: version 1.2" upgrade in 6.10.0-rc1 causing the issue as the NMBluezManager is a different version on the two logs you've attached?

    • Like 3
    • Thanks 4
    Link to comment

    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

     

    Edited by Keksgesicht
    • Like 3
    Link to comment
    On 8/22/2021 at 7:35 PM, 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

     

    This One Is really working for me Thank you for your Guide :)

    Link to comment

    Thanks for reporting this - and for the workaround.  Wish I had seen this before I started messing with vfio and messed up my server - triggering a reload and me screwing up lots of other stuff, LOL.  In any case, this is still an issue on 6.10rc2.

    Edited by BurntOC
    Link to comment
    7 hours ago, BurntOC said:

    Anyone know if 6.10-rc3 fixed this issue?

    yes. it should be. 

     

    there is now a /etc/modprobe.d/bluetooth.conf with the same content as I descriped in my workaround.

    Link to comment

    installed 6.10 RC5 now modprobe -r btusb and modprobe -r bluetooth do not work.

    Anyone else care to try?

    Link to comment
    20 hours ago, mikeyosm said:

    installed 6.10 RC5 now modprobe -r btusb and modprobe -r bluetooth do not work.

    Anyone else care to try?

    blacklisting the bluetooth device still works however. Odd that using modprobe doesn't.

    Link to comment
    On 8/22/2021 at 11:35 PM, 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

     

     

    I am using Intel AX211NGW M2 card, ran into some issue. VMs can not detect the bluetooth driver properly even with the latest driver.

    After following those steps, reboot unraid server, it works perfectly fine.

     

     

    Link to comment


    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.

    Guest
    Add a comment...

    ×   Pasted as rich text.   Restore formatting

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.


  • Status Definitions

     

    Open = Under consideration.

     

    Solved = The issue has been resolved.

     

    Solved version = The issue has been resolved in the indicated release version.

     

    Closed = Feedback or opinion better posted on our forum for discussion. Also for reports we cannot reproduce or need more information. In this case just add a comment and we will review it again.

     

    Retest = Please retest in latest release.


    Priority Definitions

     

    Minor = Something not working correctly.

     

    Urgent = Server crash, data loss, or other showstopper.

     

    Annoyance = Doesn't affect functionality but should be fixed.

     

    Other = Announcement or other non-issue.