Debian – Fix Bluetooth Issues in Debian 10

bluetoothbluezdebianfirmwareintel

In my laptop I used debian 9 and bluetooth worked well.
I have updated debian to the 10 version, after that bluetooth does't work.
I am not so good in linux. Can you help me?

lspci -nnk | grep -iA3 net; lsusb; dmesg | egrep -i 'blue|firm'


00:19.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection I218-LM [8086:155a] (rev 04)
Subsystem: Lenovo ThinkPad X240 [17aa:2214]
Kernel driver in use: e1000e
Kernel modules: e1000e

03:00.0 Network controller [0280]: Intel Corporation Wireless 7260 [8086:08b2] (rev 83)
Subsystem: Intel Corporation Dual Band Wireless-AC 7260 [8086:c270]
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
Bus 001 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 0480:b200 Toshiba America Inc 
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 005: ID 04f2:b39a Chicony Electronics Co., Ltd 
Bus 002 Device 004: ID 8087:07dc Intel Corp. 
Bus 002 Device 003: ID 138a:0017 Validity Sensors, Inc. VFS 5011 fingerprint sensor
Bus 002 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[    0.143041] [Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x20 (or later)
[    0.679313] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    0.746791] pnp 00:01: [Firmware Bug]: PNP resource [mem 0xfed10000-0xfed13fff] covers only part of 0000:00:00.0 Intel MCH; extending to [mem 0xfed10000-0xfed17fff]
[    4.629289] psmouse serio2: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
[    5.749212] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
[    5.974064] Bluetooth: Core ver 2.22
[    5.974081] Bluetooth: HCI device and connection manager initialized
[    5.974085] Bluetooth: HCI socket layer initialized
[    5.974087] Bluetooth: L2CAP socket layer initialized
[    5.974097] Bluetooth: SCO socket layer initialized
[    6.062386] Bluetooth: hci0: read Intel version: 370710018002030d00
[    6.062552] bluetooth hci0: firmware: failed to load intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq (-2)
[    6.062553] firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware
[    6.062555] bluetooth hci0: Direct firmware load for intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq failed with error -2
[    6.062557] Bluetooth: hci0: failed to open Intel firmware file: intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq (-2)
[    6.062564] bluetooth hci0: firmware: failed to load intel/ibt-hw-37.7.bseq (-2)
[    6.062566] bluetooth hci0: Direct firmware load for intel/ibt-hw-37.7.bseq failed with error -2
[    6.062567] Bluetooth: hci0: failed to open default fw file: intel/ibt-hw-37.7.bseq
[    6.134781] iwlwifi 0000:03:00.0: firmware: direct-loading firmware iwlwifi-7260-17.ucode
[    6.135135] iwlwifi 0000:03:00.0: loaded firmware version 17.459231.0 op_mode iwlmvm
[    6.843623] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    6.843624] Bluetooth: BNEP filters: protocol multicast
[    6.843628] Bluetooth: BNEP socket layer initialized
[   57.223136] Bluetooth: RFCOMM TTY layer initialized
[   57.223142] Bluetooth: RFCOMM socket layer initialized
[   57.223150] Bluetooth: RFCOMM ver 1.11

Best Answer

The log messages indicate the system is looking for Intel BlueTooth (ibt) firmware file, first at /lib/firmware/intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq, then at /lib/firmware/intel/ibt-hw-37.7.bseq, but not finding either version of the firmware file.

Go to the intel sub-directory of linux-firmware git tree, find the correct firmware files in there, and click on "plain" at the end of the line with the filename to download it. Then place the files into your /lib/firmware/intel directory, and reboot (or unload & reload the appropriate kernel module). This method works for all Linux distributions and also for firmwares that have not yet been packaged by the distribution.

Alternatively, make sure you have the non-free part of the Debian package repository enabled (see this question on ServerFault for instructions if necessary), and make sure the package firmware-iwlwifi is installed. According to the package contents list, it also includes the needed firmware files. This method is specific to Debian.

Related Question