Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[solved] Intel Bluetooth 8087:0a2b (Intel 8265) disappearing
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
tbart
Tux's lil' helper
Tux's lil' helper


Joined: 31 Oct 2004
Posts: 149

PostPosted: Sat Feb 17, 2018 12:20 am    Post subject: [solved] Intel Bluetooth 8087:0a2b (Intel 8265) disappearing Reply with quote

Hi there!

I have a strange problem:

This is a Thinkpad T470s (though I found at least the T460s to have the same wifi/bluetooth device, probably a lot more notebooks have it, Lenovo Y520, Dell Precision 5520m, etc..).
I am unable to get bluetooth working. The device shortly appears after either unblocking with rfkill or using the keyboard shortcut with the bluetooth sign.

This is kernel 4.15.1-gentoo.

The wifi device (don't know whether this is relevant):
Code:

3a:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)
   Subsystem: Intel Corporation Dual Band Wireless-AC 8265
   Flags: bus master, fast devsel, latency 0, IRQ 130
   Memory at dc100000 (64-bit, non-prefetchable) [size=8K]
   Capabilities: [c8] Power Management version 3
   Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
   Capabilities: [40] Express Endpoint, MSI 00
   Capabilities: [100] Advanced Error Reporting
   Capabilities: [140] Device Serial Number 00-e1-8c-ff-ff-9f-97-82
   Capabilities: [14c] Latency Tolerance Reporting
   Capabilities: [154] L1 PM Substates
   Kernel driver in use: iwlwifi
   Kernel modules: iwlwifi


The USB device that appears shortly:
Code:

Bus 001 Device 031: ID 8087:0a2b Intel Corp.
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          224 Wireless
  bDeviceSubClass         1 Radio Frequency
  bDeviceProtocol         1 Bluetooth
  bMaxPacketSize0        64
  idVendor           0x8087 Intel Corp.
  idProduct          0x0a2b
  bcdDevice            0.10
  iManufacturer           0
  iProduct                0
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          177
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0011  1x 17 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0011  1x 17 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0019  1x 25 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0019  1x 25 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       4
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0021  1x 33 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0021  1x 33 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       5
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0031  1x 49 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0031  1x 49 bytes
        bInterval               1


rfkill before:
Code:
localhost ~ # rfkill list
0: tpacpi_bluetooth_sw: Bluetooth
   Soft blocked: yes
   Hard blocked: no
1: phy0: Wireless LAN
   Soft blocked: no
   Hard blocked: no

rfkill after using unblock all at least twice:
Code:
localhost ~ # rfkill unblock all && sleep 2 && rfkill list
0: tpacpi_bluetooth_sw: Bluetooth
   Soft blocked: no
   Hard blocked: no
1: phy0: Wireless LAN
   Soft blocked: no
   Hard blocked: no
22: hci0: Bluetooth
   Soft blocked: no
   Hard blocked: no

(If just used once, hci0 and tpacpi_bluetooth_sw remain soft blocked)

That just looks about right, but after some time, I'm back at square one (tpacpi_bluetooth_sw softblocked, no hci0)

dmesg shows this:
Code:
[ 5101.168619] usb 1-7: new full-speed USB device number 28 using xhci_hcd
[ 5101.298550] Bluetooth: hci0: Bootloader revision 0.0 build 26 week 38 2015
[ 5101.298736] usb 1-7: USB disconnect, device number 28
[ 5103.311499] Bluetooth: hci0: command 0xfc0d tx timeout
[ 5111.695363] Bluetooth: hci0: Reading Intel boot parameters failed (-110)

sometimes (different command)
Code:

[ 5081.406057] usb 1-7: new full-speed USB device number 25 using xhci_hcd
[ 5081.536519] usb 1-7: USB disconnect, device number 25
[ 5083.536002] Bluetooth: hci0: command 0xfc05 tx timeout
[ 5083.536019] Bluetooth: hci0: Reading Intel version information failed (-110)

and rarely
Code:

[ 4159.923341] usb 1-7: new full-speed USB device number 20 using xhci_hcd
[ 4160.051498] Bluetooth: hci0: Bootloader revision 0.0 build 26 week 38 2015
[ 4160.052496] Bluetooth: hci0: Device revision is 16
[ 4160.052500] Bluetooth: hci0: Secure boot is enabled
[ 4160.052502] Bluetooth: hci0: OTP lock is enabled
[ 4160.052504] Bluetooth: hci0: API lock is enabled
[ 4160.052505] Bluetooth: hci0: Debug lock is disabled
[ 4160.052508] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
[ 4160.056340] usb 1-7: USB disconnect, device number 20
[ 4160.058671] Bluetooth: hci0: Found device firmware: intel/ibt-12-16.sfi
[ 4160.058704] Bluetooth: hci0: sending frame failed (-19)
[ 4162.094297] Bluetooth: hci0: command 0xfc09 tx timeout
[ 4170.157898] Bluetooth: hci0: Failed to send firmware header (-110)


That seems legit, sending firmware to a device that disappears is somewhat.. problematic to say the least!
These errors just seem to be variations of race conditions depending on when the device disappears.

Other people seem to be able to get it working:
https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_T460s (no mention whatsoever, but marked as working)
https://ubuntuforums.org/showthread.php?t=2354736&p=13618690#post13618690 (Missing firmware was the problem, that's not the case here, obviously)

I am pretty clueless. Could this be some power saving issue? Where should I try to change things?
The kernel says USB disconnect, this really looks low-level, so I don't think anything more than kernel or firmware should be relevant..
Which parts of the kernel config could be of interest?
Code:
localhost ~ # grep CONFIG_BT /usr/src/linux/.config
CONFIG_BT=m
CONFIG_BT_BREDR=y
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
# CONFIG_BT_BNEP is not set
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
CONFIG_BT_LE=y
# CONFIG_BT_LEDS is not set
# CONFIG_BT_SELFTEST is not set
CONFIG_BT_DEBUGFS=y
CONFIG_BT_INTEL=m
CONFIG_BT_HCIBTUSB=m
# CONFIG_BT_HCIBTUSB_BCM is not set
# CONFIG_BT_HCIBTUSB_RTL is not set
# CONFIG_BT_HCIBTSDIO is not set
# CONFIG_BT_HCIUART is not set
# CONFIG_BT_HCIBCM203X is not set
# CONFIG_BT_HCIBFUSB is not set
# CONFIG_BT_HCIDTL1 is not set
# CONFIG_BT_HCIBT3C is not set
# CONFIG_BT_HCIBLUECARD is not set
# CONFIG_BT_HCIBTUART is not set
# CONFIG_BT_HCIVHCI is not set
# CONFIG_BT_MRVL is not set
# CONFIG_BT_ATH3K is not set
# CONFIG_BTRFS_FS is not set


lsmod:
Code:
localhost ~ # lsmod | egrep "(bt.*|blue.*|iwl.*|Used)"
Module                  Size  Used by
btusb                  40960  0
btintel                16384  1 btusb
bluetooth             405504  2 btintel,btusb
ecdh_generic           24576  1 bluetooth
iwlmvm                266240  0
mac80211              430080  1 iwlmvm
iwlwifi               176128  1 iwlmvm
cfg80211              319488  3 iwlmvm,iwlwifi,mac80211
rfkill                 24576  5 bluetooth,thinkpad_acpi,cfg80211


I'll see whether it works in the preinstalled spyware with a GUI.


Last edited by tbart on Sun Feb 18, 2018 2:54 pm; edited 1 time in total
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 501

PostPosted: Sun Feb 18, 2018 1:54 pm    Post subject: Reply with quote

try with the kernel bt stack completely builtin instead of modular. I do have a system with this bt+wifi device, and it works quite flawlessly this way. You probably also need to add the 2 firmware files to the in-kernel firmware list as well (intel/ibt-12-16.sfi and intel/ibt-12-16.ddc ).
Back to top
View user's profile Send private message
tbart
Tux's lil' helper
Tux's lil' helper


Joined: 31 Oct 2004
Posts: 149

PostPosted: Sun Feb 18, 2018 2:53 pm    Post subject: Reply with quote

Thanks, but that did not help either.

It works with sysresccd on kernel 4.9.60.
I went through all the hoops to get to the same kernel version (as it is not in portage anymore) and still it wouldn't work.
So I went back to searching in user space.

And guess what, it is no kernel problem. I have an enlightenment desktop with (e)connman which works perfectly (for wired/wifi). However, it also takes control of bluetooth, and it's disabled by default. So whenever connman sees a new bluetooth device it disables it at once. No mention whatsoever in the logs, this is kinda mean.

So, to solve this, either enable bluetooth in econnman (the GUI), do it on the CLI:

Code:
localhost ~ # connmanctl
connmanctl> enable bluetooth
Enabled bluetooth

or disable connman's bluetooth handling altogether:
Code:
localhost ~ # grep OPTS /etc/conf.d/connman
CONNMAN_OPTS="-P bluetooth"

and restart connman
Code:
localhost ~ # /etc/init.d/connman restart


Strangely though, it works with connman in the disabled/default config and the thinkpad_acpi module not loaded (or not loaded before the firmware download has finished! But then only once, till the first disabling event; enabling again does not work anymore). It seems connman somehow needs the ACPI control, though an rfkill interface is available before as well..

Now the hotkey also works as intended.

Thanks everyone for watching/helping!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum