no bluetooth after tumbleweed update (not the same as mac)

Hi, I am running tumbleweed in an Asus ZenBook Flip S UX371EA. I just ran the tumbleweed update, and on reboot, no bluetooth. I tried to follow the thread from someone who had a problem on their iMac last February but cannot seem to make that solution work, as my configuration is quite different.

When I boot with the old kernel, I can make bluetooth work. Here is what shows up:

> sudo rfkill
[sudo] password for root:
ID TYPE      DEVICE              SOFT      HARD
 0 wlan      asus-wlan      unblocked unblocked
 1 bluetooth asus-bluetooth unblocked unblocked
 2 wlan      phy0           unblocked unblocked
 3 bluetooth hci0           unblocked unblocked


> journalctl -b | egrep -i 'bluetooth'
Nov 26 06:39:07 asustribetrek kded5[1779]: bluedevil: Bluetooth operational changed true
Nov 26 06:39:33 asustribetrek systemd[1586]: Reached target Bluetooth.


> sudo hwinfo --bluetooth
02: USB 00.0: 11500 Bluetooth Device
  [Created at usb.122]
  Unique ID: t1E6.HXwYSyIoMXE
  Parent ID: uIhY.2DFUsyrieMD
  SysFS ID: /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0
  SysFS BusID: 3-10:1.0
  Hardware Class: bluetooth
  Model: "Intel Bluetooth Device"
  Hotplug: USB
  Vendor: usb 0x8087 "Intel Corp."
  Device: usb 0x0026
  Revision: "0.02"
  Driver: "btusb"
  Driver Modules: "btusb"
  Speed: 12 Mbps
  Module Alias: "usb:v8087p0026d0002dcE0dsc01dp01icE0isc01ip01in00"
  Driver Info #0:
    Driver Status: btusb is active
    Driver Activation Cmd: "modprobe btusb"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #1 (Hub)

But when I boot with the new kernel, this is what I get for those same commands:

> sudo rfkill
ID TYPE      DEVICE              SOFT      HARD
 0 wlan      asus-wlan      unblocked unblocked
 1 bluetooth asus-bluetooth unblocked unblocked
 2 wlan      phy0           unblocked unblocked

for journalctl, there was nothing. So then I saw that btusb was not installed on the kernel. I ran

> modprobe btusb
> lsmod | grep bt
btusb                  65536  0
btrtl                  28672  1 btusb
btbcm                  20480  1 btusb
btintel                45056  1 btusb
bluetooth             729088  4 btrtl,btintel,btbcm,btusb
usbcore               372736  6 xhci_hcd,usbhid,typec,uvcvideo,btusb,xhci_pci

Then I had to use systemctl to start the bluetooth service.
Then I got this:

> journalctl -b | egrep -i 'bluetooth'
Hint: You are currently not seeing messages from other users and the system.
     Users in the 'systemd-journal' group can see all messages. Pass -q to
     turn off this notice.
Nov 26 06:52:56 asustribetrek kded5[1747]: bluedevil: Bluetooth operational changed false
Nov 26 06:54:05 asustribetrek sudo[3008]:   george : TTY=pts/1 ; PWD=/home/george ; USER=root ; COMMAND=/usr/sbin/hwinfo --bluetooth
Nov 26 06:59:00 asustribetrek sudo[3852]:   george : TTY=pts/1 ; PWD=/home/george ; USER=root ; COMMAND=/usr/sbin/hwinfo --bluetooth
Nov 26 07:00:25 asustribetrek sudo[4014]:   george : TTY=pts/1 ; PWD=/home/george ; USER=root ; COMMAND=/usr/bin/systemctl status bluetooth
Nov 26 07:00:32 asustribetrek sudo[4057]:   george : TTY=pts/1 ; PWD=/home/george ; USER=root ; COMMAND=/usr/bin/systemctl status Bluetooth
Nov 26 07:01:26 asustribetrek sudo[6499]:   george : TTY=pts/1 ; PWD=/home/george ; USER=root ; COMMAND=/usr/bin/systemctl status Bluetooth
Nov 26 07:01:38 asustribetrek polkit-kde-authentication-agent-1[1804]: Message of action:  "Authentication is required to start 'bluetooth.service'."
Nov 26 07:01:42 asustribetrek kded5[1747]: bluedevil: Bluetooth operational changed true
Nov 26 07:01:49 asustribetrek sudo[6601]:   george : TTY=pts/1 ; PWD=/home/george ; USER=root ; COMMAND=/usr/bin/systemctl status Bluetooth
Nov 26 07:01:54 asustribetrek sudo[6642]:   george : TTY=pts/1 ; PWD=/home/george ; USER=root ; COMMAND=/usr/bin/systemctl status bluetooth

But I don’t know what else to do.
Here are 2 configuration files:

> cat /etc/modprobe.d/50-bluetooth.conf
# use "reset=1" as default, since it should be safe for recent devices and
# solves all kind of problems.
options btusb reset=1

> cat /etc/modprobe.d/50-iwl3945.conf          
options iwl3945 disable_hw_scan=1


On that last line, I changed disable_hw_scan to 0 and rebooted, but there is no difference. Still no bluetooth connection, and the service doesn’t start because btusb doesn’t automatically load.

When I modprobe btusb, then I can start the bluetooth service using systemctl, but I still get no bluetooth. The icon shows up and it looks like its scanning, but nothing connects. On the old kernel, it will scan and pick up any bluetooth devices, but on the new after starting the service, it won’t pick up anything.

Maybe someone can explain something to me?

Here is what I understand. There is the kernel. Then there is a kernel module, in this case that is the btusb module.

There is the bluetooth device, or in my case, there happen to be 2 bluetooth devices:

> sudo rfkill[sudo] password for root:
ID TYPE      DEVICE              SOFT      HARD
 0 wlan      asus-wlan      unblocked unblocked
 1 bluetooth asus-bluetooth unblocked unblocked
 2 wlan      phy0           unblocked unblocked
 3 bluetooth hci0           unblocked unblocked

Note that when I am using the newest kernel, such that bluetooth fails to operate, device ID 3, hci0, doesn’t show up with rfkill. It only shows up on the previous kernel, where bluetooth runs just fine.

Then there is the bluetooth hardware, and there is the bluetooth firmware.

On my pc, the bluetooth hardware is listed as “Intel Bluetooth Device” according to hwinfo (see my 1st post).

But the firmware - what/where is it, and how do I identify it? It seems like if I could identify the proper firmware and then install it, then when I run modprobe btusb, my bluetooth would start working again. But how do I figure out what is the proper firmware?

By booting into the old kernel, 5.14, where the bluetooth works, I found out this from lsusb:

> lsusb | grep -i bluetooth
Bus 003 Device 004: ID 8087:0026 Intel Corp. AX201 **Bluetooth**

So in googling that hardware, I found this bug report:
https://bugzilla.kernel.org/show_bug.cgi?id=214273

But the thing is, that bug report says that the AX201 doesn’t work with kernel 5.14, yet on my system it does work with 5.14. On my system it stopped working with kernel 5.15.

I still don’t understand something, so if anyone has knowledge of this, please help. Is the technical information on the device above for AX201 Bluetooth - is that the technical information for the HARDWARE, or for the FIRMWARE? I know that firmware is the software that is installed in the hardware. The man page for lsusb says that it displays a vendor ID and a product ID. If I am not mistaken, then the designation of “ID 8087:0026 Intel Corp. AX201 Bluetooth” is the technical information for the HARDWARE.

So again, if that is the case, what is the firmware, and how do I install it? Is the firmware what we are calling the kernel module, btusb? or is it something else?

Usually, the firmware is in a different package. However, if an older kernel works, it cannot be the firmware package alone causing the problem.

I suggest you file a bug report on this.

Ok, thanks. Here is the bug report:
https://bugzilla.opensuse.org/show_bug.cgi?id=1193124

Thanks. That looks like a good bug report (lots of information). In my experience, the kernel team is pretty good in handling these.