Hi,
I’ve been trying to troubleshoot why I can no longer turn on Bluetooth in my EndeavourOS Gnome 40.4 (Thinkpad T470s) setup where I have been testing with the two below kernels as part of the troubleshooting:
inxi -b
- Host: sol Kernel: 5.10.63-1-lts x86_64 bits: 64 Desktop: GNOME 40.4
Distro: EndeavourOS - Host: sol Kernel: 5.14.2-zen1-2-zen x86_64 bits: 64 Desktop: GNOME 40.4
It was working in August when I had enabled APTx sound in Pulseaudio (yay -S pulseaudio-modules-bt ofono) with my Bluetooth headphones. I have confirmed that Windows 10 Bluetooth is still working on the same machine.
What I am not sure about (as I have been progressively re-installing all my tools on this laptop as I moved from Manjaro) is whether the Kernel or configuration is broken? I want to make sure I have my bases covered so I can file a bug if necessary.
My Troubleshooting notes:
(1) Verify Hardware Configuration of the Wifi\Bluetooth card:
(a) Get a list of all devices which are loaded from the Kernel Modules (lspci -k)
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 02)
Subsystem: Lenovo Device 224b
Kernel driver in use: skl_uncore
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 620 (rev 02)
Subsystem: Lenovo Device 224b
Kernel driver in use: i915
Kernel modules: i915
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
Subsystem: Lenovo Device 224b
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
Subsystem: Lenovo Device 224b
Kernel driver in use: intel_pch_thermal
Kernel modules: intel_pch_thermal
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
Subsystem: Lenovo Device 224b
Kernel driver in use: mei_me
Kernel modules: mei_me
00:16.3 Serial controller: Intel Corporation Sunrise Point-LP Active Management Technology - SOL (rev 21)
Subsystem: Lenovo Device 224b
Kernel driver in use: serial
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 (rev f1)
Kernel driver in use: pcieport
00:1c.2 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #3 (rev f1)
Kernel driver in use: pcieport
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)
Kernel driver in use: pcieport
00:1f.0 ISA bridge: Intel Corporation Sunrise Point LPC Controller/eSPI Controller (rev 21)
Subsystem: Lenovo Device 224b
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
Subsystem: Lenovo Device 224b
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
Subsystem: Lenovo Device 224b
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel, snd_soc_skl
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
Subsystem: Lenovo Device 224b
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801
3a:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)
Subsystem: Intel Corporation Dual Band Wireless-AC 8265
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
3c:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961/SM963
Subsystem: Samsung Electronics Co Ltd SM963 2.5" NVMe PCIe SSD
Kernel driver in use: nvme
(b) Get a list of all USB Devices:
lsusb
Bus 002 Device 002: ID 0bda:0316 Realtek Semiconductor Corp. Card Reader
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 5986:111c Acer, Inc Integrated Camera
Bus 001 Device 003: ID 8087:0a2b Intel Corp. Bluetooth wireless interface
Bus 001 Device 002: ID 046d:c505 Logitech, Inc. Cordless Mouse+Keyboard Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
(2) Makes sure the following packages are installed:
(a) Install the necessary packages from terminal.
sudo pacman -S bluez bluez-utils
(3) Make sure the Bluetooth driver (btusb) is loaded by the kernel.
(a) Use lsmod command from terminal to check which kernel modules loaded.
lsmod | grep btusb
btusb 65536 0
btrtl 24576 1 btusb
btbcm 16384 1 btusb
btintel 32768 1 btusb
bluetooth 704512 11 btrtl,btintel,btbcm,bnep,btusb
(b) Use Modeinfo to get more information about the btusb module:
modinfo btusb
filename: /lib/modules/5.10.63-1-lts/kernel/drivers/bluetooth/btusb.ko.xz
license: GPL
version: 0.8
description: Generic Bluetooth USB driver ver 0.8
author: Marcel Holtmann <marcel@holtmann.org>
(4) Check rfkill to see if anything is blocking the bluetooth from being turned on.
-Note: That a Soft Block can be Bluetooth shut off in Gnome Settings.
(a) From Terminal, verify there are not Hard or Soft blocks
rfkill list all
0: tpacpi_bluetooth_sw: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
(5) Verify the bluetooth.service is started:
(a) From Terminal, use the systemctl command to verify the “bluetooth.service” is started.
systemctl status bluetooth.service
● bluetooth.service - Bluetooth service
Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset:>
Active: active (running) since Fri 2021-09-10 18:49:54 EDT; 57min ago
Docs: man:bluetoothd(8)
Main PID: 1746 (bluetoothd)
Status: "Running"
Tasks: 1 (limit: 19035)
Memory: 1.9M
CPU: 13ms
CGroup: /system.slice/bluetooth.service
└─1746 /usr/lib/bluetooth/bluetoothd
Sep 10 18:49:54 sol systemd[1]: Starting Bluetooth service...
Sep 10 18:49:54 sol bluetoothd[1746]: Bluetooth daemon 5.61
Sep 10 18:49:54 sol systemd[1]: Started Bluetooth service.
Sep 10 18:49:54 sol bluetoothd[1746]: Starting SDP server
Sep 10 18:49:54 sol bluetoothd[1746]: Bluetooth management interface 1.18 initialized
(6) Check for error messages:
(a) Check demesg
sudo dmesg | grep -i bluetooth
[ 2.611351] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
[ 7.888706] Bluetooth: Core ver 2.22
[ 7.888759] Bluetooth: HCI device and connection manager initialized
[ 7.888765] Bluetooth: HCI socket layer initialized
[ 7.888768] Bluetooth: L2CAP socket layer initialized
[ 7.888775] Bluetooth: SCO socket layer initialized
[ 53.287241] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 53.287243] Bluetooth: BNEP filters: protocol multicast
[ 53.287247] Bluetooth: BNEP socket layer initialized
(b) Check the journalctl for boot messages related to bluetooth.
journalctl -b | grep blue
Sep 10 21:11:00 sol kernel: thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
Sep 10 21:11:02 sol NetworkManager[583]: <info> [1631322662.7675] Loaded device plugin: NMBluezManager (/usr/lib/NetworkManager/1.32.10-1/libnm-device-plugin-bluetooth.so)
Sep 10 21:11:17 sol dbus-daemon[580]: [system] Activating via systemd: service name='org.bluez' unit='dbus-org.bluez.service' requested by ':1.52' (uid=1000 pid=1379 comm="/usr/bin/pulseaudio --daemonize=no --log-target=jo")
Sep 10 21:11:17 sol bluetoothd[1551]: Bluetooth daemon 5.61
Sep 10 21:11:17 sol dbus-daemon[580]: [system] Successfully activated service 'org.bluez'
Sep 10 21:11:17 sol audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj==unconfined msg='unit=bluetooth comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Sep 10 21:11:17 sol bluetoothd[1551]: Starting SDP server
Sep 10 21:11:17 sol bluetoothd[1551]: Bluetooth management interface 1.18 initialized
Sep 10 21:11:23 sol dbus-daemon[1275]: [session uid=1000 pid=1275] Activating via systemd: service name='org.bluez.obex' unit='dbus-org.bluez.obex.service' requested by ':1.75' (uid=1000 pid=1912 comm="/usr/lib/gnome-contacts-search-provider ")
Sep 10 21:11:23 sol dbus-daemon[1275]: [session uid=1000 pid=1275] Successfully activated service 'org.bluez.obex
(b) Check the journalctl for boot messages related to wifi (iwlwifi).
journalctl -b | grep iwlwifi
Sep 10 21:11:01 sol kernel: iwlwifi 0000:3a:00.0: loaded firmware version 36.ca7b901d.0 8265-36.ucode op_mode iwlmvm
Sep 10 21:11:01 sol kernel: iwlwifi 0000:3a:00.0: Detected Intel(R) Dual Band Wireless AC 8265, REV=0x230
Sep 10 21:11:01 sol kernel: iwlwifi 0000:3a:00.0: base HW address: 44:03:2c:99:85:81
Sep 10 21:11:02 sol NetworkManager[583]: <info> [1631322662.7573] rfkill1: found Wi-Fi radio killswitch (at /sys/devices/pci0000:00/0000:00:1c.2/0000:3a:00.0/ieee80211/phy0/rfkill1) (driver iwlwifi)
(7) Create custom settings for the Intel Dual Band Wireless-AC 8265
(a) Create a custom comfiguration /etc/modprobe.d/iwlwifi.conf
sudo nano /etc/modprobe.d/iwlwifi.conf
(b) Include the following lines:
options iwlwifi bt_coex_active=0 11n_disable=8
(8) Verify the Bluetooth Controller can be found and controlled via ‘bluetoothctl’:
(a) From Terminal, start the ‘bluetoothctl’.
bluetoothctl
(b) Use the 'show’command to verify the bluetooth controller is functional.
[
bluetooth]# show
No default controller available
Source:
https://wiki.archlinux.org/title/Bluetooth
https://wiki.archlinux.org/title/Network_configuration/Wireless#iwlwifi
https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#wi-fibluetooth_coexistence