Bug 201363 - RTL8822BE Bluetooth not detected on Lenovo A485
Summary: RTL8822BE Bluetooth not detected on Lenovo A485
Status: RESOLVED OBSOLETE
Alias: None
Product: Drivers
Classification: Unclassified
Component: Bluetooth (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: linux-bluetooth@vger.kernel.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-10-09 21:26 UTC by Samantha McVey
Modified: 2018-11-24 22:09 UTC (History)
0 users

See Also:
Kernel Version: 4.18.12
Subsystem:
Regression: No
Bisected commit-id:


Attachments
dmesg with bluetooth (87.41 KB, text/plain)
2018-10-12 17:55 UTC, Samantha McVey
Details

Description Samantha McVey 2018-10-09 21:26:39 UTC
02:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8822BE 802.11a/b/g/n/ac WiFi adapter [10ec:b822]

It doesn't seem to show up in lsusb:
Bus 005 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 007: ID 04f2:b604 Chicony Electronics Co., Ltd 
Bus 004 Device 006: ID 04f3:2398 Elan Microelectronics Corp. 
Bus 004 Device 003: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 004 Device 004: ID 06cb:009a Synaptics, Inc. 
Bus 004 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

dmesg output (gotten by doing journalctl -k | grep -Ei 'rtlwifi|blue|8822')

Oct 09 01:40:13 kernel: usb 4-2.2: Product: Bluetooth Radio 
Oct 09 01:40:13 kernel: r8822be: module is from the staging directory, the quality is unknown, you have been warned.
Oct 09 01:40:13 kernel: Bluetooth: Core ver 2.22
Oct 09 01:40:13 kernel: Bluetooth: Starting self testing
Oct 09 01:40:13 kernel: Bluetooth: Finished self testing
Oct 09 01:40:13 kernel: Bluetooth: HCI device and connection manager initialized
Oct 09 01:40:13 kernel: Bluetooth: HCI socket layer initialized
Oct 09 01:40:13 kernel: Bluetooth: L2CAP socket layer initialized
Oct 09 01:40:13 kernel: Bluetooth: SCO socket layer initialized
Oct 09 01:40:13 kernel: r8822be 0000:02:00.0: enabling device (0000 -> 0003)
Oct 09 01:40:13 kernel: r8822be: Using firmware rtlwifi/rtl8822befw.bin
Oct 09 01:40:13 kernel: r8822be: rtlwifi: wireless switch is on
Oct 09 01:40:13 kernel: r8822be 0000:02:00.0 wlp2s0: renamed from wlan0
Oct 09 01:40:14 kernel: Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Oct 09 01:40:14 kernel: Bluetooth: BNEP filters: protocol multicast
Oct 09 01:40:14 kernel: Bluetooth: BNEP socket layer initialized
Oct 09 01:40:15 kernel: Bluetooth: hci0: command 0x1001 tx timeout
Oct 09 01:40:24 kernel: Bluetooth: hci0: HCI_OP_READ_LOCAL_VERSION failed (-110)

Bluetooth works fine in Windows. The first dmesg line seems interesting: usb 4-2.2: Product: Bluetooth Radio  but somehow there's no bluetooth showing up in lsusb

Others have this issue as well: https://forums.lenovo.com/t5/Linux-Discussion/Thinkpad-A485-Bluetooth-not-turning-on-Linux/td-p/4219759
Comment 1 Samantha McVey 2018-10-12 17:55:10 UTC
Created attachment 279011 [details]
dmesg with bluetooth

Update: I have extracted Lenovo's RTL8822BE wifi and bluetooth firmware from their Windows driver packages and gotten the bluetooth partially working. It works if the system is up to sleep and then woken up again, though it doesn't work when the system is booted up for the first time.

lsusb info:
Bus 004 Device 008: ID 0bda:b023 Realtek Semiconductor Corp.

I am hosting the firmware here https://github.com/samcv/A485-RTL8822BE-firmware which has detail about how I extracted the firmware so I will only repost relevant info here.

So there is still an issue loading firmware at boot, which hopefully  makes this issue easier to solve.

Here is new dmesg | grep -Ei 'blue|8822|rtlwifi' output (full log is attached)

[    6.101343] usb 4-2.2: Product: Bluetooth Radio 
[   17.740697] r8822be: module is from the staging directory, the quality is unknown, you have been warned.
[   17.745603] Bluetooth: Core ver 2.22
[   17.745605] Bluetooth: Starting self testing
[   17.745607] Bluetooth: Finished self testing
[   17.746180] Bluetooth: HCI device and connection manager initialized
[   17.746185] Bluetooth: HCI socket layer initialized
[   17.746188] Bluetooth: L2CAP socket layer initialized
[   17.746202] Bluetooth: SCO socket layer initialized
[   17.749597] r8822be 0000:02:00.0: enabling device (0000 -> 0003)
[   17.765897] r8822be: Using firmware rtlwifi/rtl8822befw.bin
[   17.771715] r8822be: rtlwifi: wireless switch is on
[   17.937819] r8822be 0000:02:00.0 wlp2s0: renamed from wlan0
[   18.838828] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   18.838831] Bluetooth: BNEP filters: protocol multicast
[   18.838837] Bluetooth: BNEP socket layer initialized
[   19.761568] Bluetooth: hci0: command 0x1001 tx timeout
[   27.761615] Bluetooth: hci0: RTL: HCI_OP_READ_LOCAL_VERSION failed (-110)
** Laptop goes to sleep here **
[  110.129904] r8822be: rtlwifi: wireless switch is on
[  111.619279] usb 4-2.2: Product: Bluetooth Radio 
[  111.973924] Bluetooth: hci0: RTL: rtl: examining hci_ver=07 hci_rev=000b lmp_ver=07 lmp_subver=8822
[  111.975921] Bluetooth: hci0: RTL: rom_version status=0 version=2
[  111.975923] Bluetooth: hci0: RTL: rtl: loading rtl_bt/rtl8822b_fw.bin
[  111.977304] Bluetooth: hci0: RTL: rtl: loading rtl_bt/rtl8822b_config.bin
[  111.977829] Bluetooth: hci0: RTL: cfg_sz 14, total sz 24066
Comment 2 Samantha McVey 2018-11-24 22:09:47 UTC
Closing this. It has been fixed as of BIOS version 1.06 from Lenovo.

Note You need to log in before you can comment on or make changes to this bug.