Unable to attach Intel bluetooth adapter to a different OS
Qubes OS release
Qubes OS 4.2.2 (R4.2)
Brief summary
Bluetooth adapter fails to attach without throwing an error notification when target system is not the same as sys-usb. In GUI it is shown as attached. Upon trying to detach from GUI, I get error "device 4-10 of class usb not attached". One time it also thrown Qubes OS I/O error. One time my sys-usb shut down upon trying to attach the device.
I ran tests with templates I have:
| sys-usb | --> | target system | result |
|---|---|---|---|
| fedora 38 | --> | fedora 38 | :heavy_check_mark: |
| fedora 38 | --> | fedora 39 | :x: |
| fedora 38 | --> | debian 12 | :x: |
| fedora 39 | --> | fedora 38 | :x: |
| fedora 39 | --> | fedora 39 | :heavy_check_mark: |
| fedora 39 | --> | debian 12 | :x: |
| debian 12 | --> | fedora 38 | :x: |
| debian 12 | --> | fedora 39 | :x: |
| debian 12 | --> | debian 12 | :heavy_check_mark: |
As you can see, it only attaches to the same operating systems.
Here is dmesg from the perspective of a target system:
[ 2057.053926] vhci_hcd vhci_hcd.0: pdev(0) rhport(1) sockfd(0)
[ 2057.053944] vhci_hcd vhci_hcd.0: devid(262156) speed(2) speed_str(full-speed)
[ 2057.054033] vhci_hcd vhci_hcd.0: Device attached
[ 2057.224024] vhci_hcd: vhci_device speed not set
[ 2057.276057] usb 2-2: new full-speed USB device number 9 using vhci_hcd
[ 2057.338081] vhci_hcd: vhci_device speed not set
[ 2057.390261] usb 2-2: SetAddress Request (9) to port 1
[ 2057.416459] usb 2-2: New USB device found, idVendor=8087, idProduct=0026, bcdDevice= 0.02
[ 2057.416529] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 2057.435539] Bluetooth: hci0: Firmware timestamp 2024.8 buildtype 1 build 79483
[ 2057.487555] Bluetooth: hci0: Found device firmware: intel/ibt-0040-4150.sfi
[ 2057.487584] Bluetooth: hci0: Boot Address: 0x100800
[ 2057.487594] Bluetooth: hci0: Firmware Version: 46-14.24
[ 2057.493734] vhci_hcd: connection closed
[ 2057.493795] vhci_hcd: stop threads
[ 2057.493815] vhci_hcd: release socket
[ 2057.493845] vhci_hcd: disconnect device
[ 2057.494049] usb 2-2: USB disconnect, device number 9
[ 2057.494122] Bluetooth: hci0: FW download error recovery failed (-19)
[ 2057.494209] Bluetooth: hci0: sending frame failed (-19)
[ 2057.494222] Bluetooth: hci0: Reading supported features failed (-19)
[ 2057.494235] Bluetooth: hci0: Error reading debug features
[ 2057.494252] Bluetooth: hci0: sending frame failed (-19)
[ 2057.494264] Bluetooth: hci0: Failed to read MSFT supported features (-19)
Here is journalctl from the perspective of sys-usb, right after systemd Stopped target bluetooth.target - Bluetooth
May 29 12:42:30 sys-usb kernel: usbip-host 4-10: endpoint 0 is stalled
May 29 12:42:30 sys-usb kernel: usbip-host 4-10: endpoint 0 is stalled
May 29 12:42:30 sys-usb kernel: usbip-host 4-10: endpoint 0 is stalled
May 29 12:42:30 sys-usb kernel: usbip-host 4-10: USB disconnect, device number 6
May 29 12:42:30 sys-usb kernel: usbip-host 4-10: device removed?
May 29 12:42:30 sys-usb kernel: usbip-host 4-10: device removed?
May 29 12:42:30 sys-usb kernel: usbip-host 4-10: submit_urb error, -19
May 29 12:42:30 sys-usb kernel: usbip-host 4-10: device removed?
May 29 12:42:30 sys-usb kernel: usbip-host 4-10: lock for reset
May 29 12:42:31 sys-usb kernel: usb 4-10: new full-speed USB device number 7 using xhci_hcd
May 29 12:42:31 sys-usb kernel: usb 4-10: New USB device found, idVendor=8087, idProduct=0026, bcdDevice= 0.02
May 29 12:42:31 sys-usb kernel: usb 4-10: New USB device strings: Mfr=0, Product=0, SerialNumber=0
May 29 12:42:31 sys-usb kernel: Bluetooth: hci0: Device revision is 2
May 29 12:42:31 sys-usb kernel: Bluetooth: hci0: Secure boot is enabled
May 29 12:42:31 sys-usb kernel: Bluetooth: hci0: OTP lock is enabled
May 29 12:42:31 sys-usb kernel: Bluetooth: hci0: API lock is enabled
May 29 12:42:31 sys-usb kernel: Bluetooth: hci0: Debug lock is disabled
May 29 12:42:31 sys-usb kernel: Bluetooth: hci0: Minimum firmware build 1 week 10 2014
May 29 12:42:31 sys-usb kernel: Bluetooth: hci0: Bootloader timestamp 2019.40 buildtype 1 build 38
May 29 12:42:31 sys-usb kernel: Bluetooth: hci0: Found device firmware: intel/ibt-0040-4150.sfi
May 29 12:42:31 sys-usb kernel: Bluetooth: hci0: Boot Address: 0x100800
May 29 12:42:31 sys-usb kernel: Bluetooth: hci0: Firmware Version: 123-8.24
May 29 12:42:31 sys-usb systemd[1154]: Reached target bluetooth.target - Bluetooth.
May 29 12:42:31 sys-usb systemd[1]: Reached target bluetooth.target - Bluetooth Support.
May 29 12:42:31 sys-usb systemd[819]: Reached target bluetooth.target - Bluetooth.
May 29 12:42:31 sys-usb qubes.USB+4-10-disp4236[1619]: /usr/lib/qubes/usb-export: line 148: /sys/bus/usb/devices/4-10/usbip_status: No such file or directory
May 29 12:42:31 sys-usb qubes.USB+4-10-disp4236[1619]: Failed to remove qubesdb-write
May 29 12:42:31 sys-usb qubes.USB+4-10-disp4236[1619]: Failed to remove
Adapter - ID 8087:0026 Intel Corp. AX201 Bluetooth
# lsusb --verbose -d 8087:0026.txt
Hardware platform - ASUS TUF Dash F15 FX517ZC
HCL
Steps to reproduce
- Acquire ASUS TUF Dash F15 FX517ZC
- Install qubes
- Pass the bluetooth adapter from sys-usb to any domain with a different OS
Expected behavior
Bluetooth adapter is attached successfully and works in the target domain.
Actual behavior
Bluetooth adapter is not attached, although it is shown as such in GUI (only in GUI). It is connected to sys-usb and works there, even after trying (and failing) to pass it.