Bug 204589

Summary: Bluetooth touchpad (Apple Magic Trackpad) disconnects every few minutes
Product: Drivers Reporter: MP (marcpalaus)
Component: BluetoothAssignee: linux-bluetooth (linux-bluetooth)
Status: NEW ---    
Severity: normal CC: andrenbrandao, andri, areluno, attila, heavy, jeremy, LeeFlemingster, marcpalaus, oftrupert1928, pavlakis.stratos, queeup, scherbakov.al
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 5.2.0-050200rc7-generic #201906300430 (and older) Subsystem:
Regression: No Bisected commit-id:
Attachments: my systems dmesg.log
journalctl -fu bluetooth > journalctl-bluetooth.log
btmon -p 7 -i hci0 -w hcidump

Description MP 2019-08-15 10:19:11 UTC
Hello.

I initially reported this bug to Ubuntu's bugtracking system, and from there I was redirected here.

This is the initial bug report: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1834085

Basically the bug is described in the bug report above, together with several log files. I have an Apple Magic Trackpad 2 connected via bluetooth which constantly disconnects and reconnects after a few secons, and I don't think it has to do with the bluetooth module in my computer, as other bluetooth devices work just fine.

I have experienced this issue in kernels v4.15.0-58-generic, v5.1.14 and v5.2-rc6.

Tell me if you need more information I should provide.

Thanks in advance.
Comment 1 oftrupert 2020-03-20 15:28:58 UTC
Just to note that I have exactly the same issue, Apple Magic Trackpad 1 on Ubuntu 18.04 LTS, kernel 5.3.0-42-generic.

Happy to provide more info as needed.
Comment 2 MP 2020-04-25 16:51:12 UTC
The problem persists on a clean install of Ubuntu 20.04, kernel 5.4.0-26-generic #30-Ubuntu SMP Mon Apr 20 16:58:30 UTC 2020 x86_64.
Comment 3 MP 2020-04-25 16:54:10 UTC
I would like to make a correction to the original post. The device that has this problem is an Apple Magic Trackpad 1, not 2. It's the one that is roughly square in shape and uses AA batteries instead of a rechargeable one.
Comment 4 areluno 2021-01-23 13:39:40 UTC
Just to confirm... The problem unfortunately still persists on a clean install of Ubuntu 20.10, kernel 5.8.0-36-generic #40-Ubuntu SMP Tue Jan 5 21:54:35 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Comment 5 André 2021-02-07 21:09:36 UTC
I am having the same problem with an Apple Magic Trackpad 2, Ubuntu 20.04 and kernel 5.8.0-41-generic #46~20.04.1-Ubuntu SMP.
Comment 6 heavy 2022-01-11 17:20:11 UTC
I had been experiencing this same issue with a Magic Trackpad 2 on the past several releases of Fedora. My workaround was simply to plug in my trackpad with a USB cable. After upgrading to Fedora 35, I tried using bluetooth again and it seemed to be working fine for a week or so, but it is back to disconnecting regularly, so I've switched back to a wired approach.
Comment 7 Andri Möll 2022-06-15 22:19:45 UTC
I know this bug is about the Magic Trackpad, but just in case they're related, I'm experiencing the same drops with multiple ca 2010–2012 Apple Magic Mouse products.

This with two different computers, kernel versions and BT chipsets:
- Arch Linux LTS v5.15.38-1-lts and Intel Corp. Wireless-AC 3168 Bluetooth
- Fedora v5.17.13-300.fc36.x86_64 and Intel Corp. AX201 Bluetooth (linux-firmware @ 20220610)

There's definitely something reproducible. The common suggestion to disable eSCO does not help.

I also noticed another possibly related issue: https://bugzilla.kernel.org/show_bug.cgi?id=103631
Comment 8 heavy 2022-06-16 13:04:33 UTC
And it is still happening for me on Fedora 36. Same experience as before, where it seemed to be working better initially after upgrading, but after some time/updates it is back to being very spotty. I'm not sure if this is my imagination or not, but I always get my hopes up that it is fixed, only to have them dashed.
Comment 9 queeup 2023-01-11 21:15:50 UTC
Created attachment 303579 [details]
my systems dmesg.log

This is fedora silverblue 36 dmesg. Last lines have some disconnect info
Comment 10 queeup 2023-01-11 21:19:40 UTC
Created attachment 303580 [details]
journalctl -fu bluetooth > journalctl-bluetooth.log

print out of fedora silverblue 36 bluetooth service debug

journalctl -fu bluetooth > journalctl-bluetooth.log
Comment 11 queeup 2023-01-11 21:23:02 UTC
Created attachment 303581 [details]
btmon -p 7 -i hci0 -w hcidump

This is BTSnoop file. Collected disconnection errors.

file hcidump 
hcidump: BTSnoop version 1
Comment 12 queeup 2023-01-11 22:06:42 UTC
```
$ lspci -nnk | grep 0280 -A3
03:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX200 [8086:2723] (rev 1a)
	Subsystem: Intel Corporation Wi-Fi 6 AX200NGW [8086:0084]
	Kernel driver in use: iwlwifi
	Kernel modules: iwlwifi


$ lsusb -d 8087:
Bus 001 Device 004: ID 8087:0029 Intel Corp. AX200 Bluetooth


$ bluetoothctl info
Device 84:FC:FE:E0:A5:F0 (public)
	Alias: Apple Magic Trackpad
	Class: 0x00002594
	Icon: input-tablet
	Paired: yes
	Bonded: yes
	Trusted: yes
	Blocked: no
	Connected: yes
	WakeAllowed: yes
	LegacyPairing: yes
	UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb)
	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
	Modalias: usb:v05ACp030Ed0160


$ uname -a
Linux fedora 5.19.6-200.fc36.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Aug 31 17:58:15 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux


$ cat /etc/os-release 
NAME="Fedora Linux"
VERSION="36.20220902.0 (Silverblue)"
ID=fedora
VERSION_ID=36
VERSION_CODENAME=""
PLATFORM_ID="platform:f36"
PRETTY_NAME="Fedora Linux 36.20220902.0 (Silverblue)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:36"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora-silverblue/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=36
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=36
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
VARIANT="Silverblue"
VARIANT_ID=silverblue
OSTREE_VERSION='36.20220902.0'


$ rpm -qa linux-firmware iwlax2xx-firmware bluez
bluez-5.65-1.fc36.x86_64
iwlax2xx-firmware-20220815-138.fc36.noarch
linux-firmware-20220815-138.fc36.noarch


$ dmesg | grep firmware
[    3.059539] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
[    7.048785] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
[    7.101611] Bluetooth: hci0: Found device firmware: intel/ibt-20-1-3.sfi
[    7.181529] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-cc-a0-72.ucode failed with error -2
[    7.242302] iwlwifi 0000:03:00.0: loaded firmware version 71.058653f6.0 cc-a0-71.ucode op_mode iwlmvm
[    8.865213] Bluetooth: hci0: Waiting for firmware download to complete


$ dmesg | grep Bluetooth
[    6.876698] Bluetooth: Core ver 2.22
[    6.876723] Bluetooth: HCI device and connection manager initialized
[    6.876727] Bluetooth: HCI socket layer initialized
[    6.876728] Bluetooth: L2CAP socket layer initialized
[    6.876734] Bluetooth: SCO socket layer initialized
[    7.047790] Bluetooth: hci0: Bootloader revision 0.3 build 0 week 24 2017
[    7.048779] Bluetooth: hci0: Device revision is 1
[    7.048781] Bluetooth: hci0: Secure boot is enabled
[    7.048782] Bluetooth: hci0: OTP lock is enabled
[    7.048783] Bluetooth: hci0: API lock is enabled
[    7.048784] Bluetooth: hci0: Debug lock is disabled
[    7.048785] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
[    7.101611] Bluetooth: hci0: Found device firmware: intel/ibt-20-1-3.sfi
[    7.101745] Bluetooth: hci0: Boot Address: 0x24800
[    7.101747] Bluetooth: hci0: Firmware Version: 20-28.22
[    8.865213] Bluetooth: hci0: Waiting for firmware download to complete
[    8.865758] Bluetooth: hci0: Firmware loaded in 1722796 usecs
[    8.865806] Bluetooth: hci0: Waiting for device to boot
[    8.880761] Bluetooth: hci0: Device booted in 14623 usecs
[    8.880768] Bluetooth: hci0: Malformed MSFT vendor event: 0x02
[    8.883561] Bluetooth: hci0: Found Intel DDC parameters: intel/ibt-20-1-3.ddc
[    8.885766] Bluetooth: hci0: Applying Intel DDC parameters completed
[    8.886770] Bluetooth: hci0: Firmware revision 0.3 build 20 week 28 2022
[    8.948322] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    8.948325] Bluetooth: BNEP filters: protocol multicast
[    8.948330] Bluetooth: BNEP socket layer initialized
[   10.495877] Bluetooth: RFCOMM TTY layer initialized
[   10.495885] Bluetooth: RFCOMM socket layer initialized
[   10.495932] Bluetooth: RFCOMM ver 1.11


$ dmesg | grep iwlwifi
[    7.081904] iwlwifi 0000:03:00.0: enabling device (0000 -> 0002)
[    7.181529] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-cc-a0-72.ucode failed with error -2
[    7.242004] iwlwifi 0000:03:00.0: api flags index 2 larger than supported by driver
[    7.242021] iwlwifi 0000:03:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 89.3.35.37
[    7.242302] iwlwifi 0000:03:00.0: loaded firmware version 71.058653f6.0 cc-a0-71.ucode op_mode iwlmvm
[    7.535978] iwlwifi 0000:03:00.0: Detected Intel(R) Wi-Fi 6 AX200 160MHz, REV=0x340
[    7.692651] iwlwifi 0000:03:00.0: Detected RF HR B3, rfid=0x10a100
[    7.765022] iwlwifi 0000:03:00.0: base HW address: 8c:c6:81:9d:1c:5a
[    7.784984] iwlwifi 0000:03:00.0 wlp3s0: renamed from wlan0


$ dmesg | grep Bluetooth
[    6.876698] Bluetooth: Core ver 2.22
[    6.876723] Bluetooth: HCI device and connection manager initialized
[    6.876727] Bluetooth: HCI socket layer initialized
[    6.876728] Bluetooth: L2CAP socket layer initialized
[    6.876734] Bluetooth: SCO socket layer initialized
[    7.047790] Bluetooth: hci0: Bootloader revision 0.3 build 0 week 24 2017
[    7.048779] Bluetooth: hci0: Device revision is 1
[    7.048781] Bluetooth: hci0: Secure boot is enabled
[    7.048782] Bluetooth: hci0: OTP lock is enabled
[    7.048783] Bluetooth: hci0: API lock is enabled
[    7.048784] Bluetooth: hci0: Debug lock is disabled
[    7.048785] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
[    7.101611] Bluetooth: hci0: Found device firmware: intel/ibt-20-1-3.sfi
[    7.101745] Bluetooth: hci0: Boot Address: 0x24800
[    7.101747] Bluetooth: hci0: Firmware Version: 20-28.22
[    8.865213] Bluetooth: hci0: Waiting for firmware download to complete
[    8.865758] Bluetooth: hci0: Firmware loaded in 1722796 usecs
[    8.865806] Bluetooth: hci0: Waiting for device to boot
[    8.880761] Bluetooth: hci0: Device booted in 14623 usecs
[    8.880768] Bluetooth: hci0: Malformed MSFT vendor event: 0x02
[    8.883561] Bluetooth: hci0: Found Intel DDC parameters: intel/ibt-20-1-3.ddc
[    8.885766] Bluetooth: hci0: Applying Intel DDC parameters completed
[    8.886770] Bluetooth: hci0: Firmware revision 0.3 build 20 week 28 2022
[    8.948322] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    8.948325] Bluetooth: BNEP filters: protocol multicast
[    8.948330] Bluetooth: BNEP socket layer initialized
[   10.495877] Bluetooth: RFCOMM TTY layer initialized
[   10.495885] Bluetooth: RFCOMM socket layer initialized
[   10.495932] Bluetooth: RFCOMM ver 1.11
```
Comment 13 scherbakov_al 2023-05-22 11:54:16 UTC
I have the same problem on ubuntu 23.04.
My report: https://pastebin.com/3A9EXusp
Comment 14 scherbakov_al 2023-06-02 16:37:39 UTC
New error messages when communication is lost with Magic Trackpad:
I booted Ubuntu 23.04(kernel 6.2.0) from a flash drive - the same error:
https://pastebin.com/5KtUjCHQ
I booted from Fedor's(kernel 6.2.9) flash drive - error:
https://pastebin.com/4LJC7NJQ
When using Fedora, communication breaks also occur.
Comment 15 scherbakov_al 2023-06-23 14:23:52 UTC
I found this answer from Vudentz on github :

Looks like it is a link layer issue as the connection just times out when we attempt to exit sniff mode:

HCI Event: Disconnect Complete (0x05) plen 4 #18605 [hci0] 358.578948
Status: Success (0x00)
Handle: 256
Reason: Connection Timeout (0x08)

Perhaps the device doesn't like that we are exitting sniff mode on our own or something like that.
Comment 16 attila lendvai 2023-11-02 08:17:36 UTC
i'm also affected by this for years, and it makes the touchpad rather annoying to use.

it's been happening on different laptops, but my current setup is:

Thinkpad Carbon X1 gen6
Linux 6.4.16
x86_64
running Guix

$ lspci -nnk | grep 0280 -A3
02:00.0 Network controller [0280]: Intel Corporation Wireless 8265 / 8275 [8086:24fd] (rev 78)
	Subsystem: Intel Corporation Dual Band Wireless-AC 8265 [8086:0010]
	Kernel driver in use: iwlwifi
	Kernel modules: iwlwifi

$ lsusb -d 8087:
Bus 001 Device 015: ID 8087:0a2b Intel Corp. Bluetooth wireless interface

$ bluetoothctl info
Device 28:37:37:2D:43:AD (public)
	Alias: 28-37-37-2D-43-AD
	Class: 0x00002594
	Icon: input-tablet
	Paired: yes
	Bonded: yes
	Trusted: yes
	Blocked: no
	Connected: yes
	WakeAllowed: yes
	LegacyPairing: no
	UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb)
	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
	Modalias: usb:v05ACp030Ed0160

dmesg at every dis-/reconnect:

[364555.042486] input: Apple Wireless Trackpad as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:512/0005:05AC:030E.009C/input/input166
[364555.042732] magicmouse 0005:05AC:030E.009C: input,hidraw5: BLUETOOTH HID v1.60 Mouse [Apple Wireless Trackpad] on 84:fd:d1:8d:7a:e7
[366309.985739] magicmouse 0005:05AC:030E.009D: unknown main item tag 0x0
[366309.985887] input: Apple Wireless Trackpad as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:256/0005:05AC:030E.009D/input/input167
[366309.986256] magicmouse 0005:05AC:030E.009D: input,hidraw5: BLUETOOTH HID v1.60 Mouse [Apple Wireless Trackpad] on 84:fd:d1:8d:7a:e7
[366513.879351] magicmouse 0005:05AC:030E.009E: unknown main item tag 0x0
[366513.879540] input: Apple Wireless Trackpad as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:256/0005:05AC:030E.009E/input/input168
Comment 17 queeup 2023-12-14 20:54:19 UTC
Happy to report, my problem solved with Gnome 45.1 & Fedora 39. No disconnect or freeze with apple trackpad.



Fedora 39 Silverblue
Intel AX200 bluetooth
Apple Magic Trackpad V1 (05AC:030E)

```
$ uname -r
6.6.3-200.fc39.x86_64

$ rpm -qa iwlwifi*
iwlwifi-dvm-firmware-20231111-1.fc39.noarch
iwlwifi-mvm-firmware-20231111-1.fc39.noarch

```
Comment 18 scherbakov_al 2023-12-16 23:20:44 UTC
I tested it. The trackpad worked for more than an hour without the same disconnections every 10 minutes that we had before. But an hour later it disconnected and could not restore the connection. Only restarting bluetooth helped. This happened several times. The problem has not yet been resolved. Fedora 39.
Comment 19 heavy 2023-12-17 00:31:00 UTC
Unfortunately, I think the issue is still not resolved. The touchpad still disconnects for me on a fully updated Fedora 39 with Gnome 45.2.
Comment 20 Lee Fleming 2024-01-24 16:49:15 UTC
I have been able to reproduce this problem.

OpenSuse Tumbleweed.
Framework AMD 13-inch laptop.

I've only seen the magic trackpad 2 disconnect under a specific condition.

I have an LG Xboom bluetooth speaker. When the speaker is on, connected to
bluetooth and connected to USB to charge, then when I stop moving the mouse
pointer for 5 seconds the trackpad disconnects.

This only happens when the speaker is connected to the USB A port (front left).
If connected to the USB C port (or physically disconnected entirely) then the
problem goes away.

I have not tried swaping the USB modules on this laptop. Not all the ports are
made equal. The speaker was connected to port 2 in this diagram. https://knowledgebase.frame.work/en_us/expansion-card-functionality-on-framework-laptop-13-amd-ryzen-7040-series-SkrVx7gAh
Comment 21 Lee Fleming 2024-01-24 19:41:09 UTC
I did some more testing. It doesn't matter if the speaker is attached to USB A
or USB C. The problem is seen when the speaker is attached to USB 3.2 and not
seen when attached to USB 4 (see diagram in last post).

I did the following testing.
Speaker connected to port 2 USB A. Trackpad disconnects.
Speaker connected to port 2 USB C. Trackpad disconnects.
Speaker connected to port 1 USB C. No disconnect.
Speaker connected to port 3 USB C. No disconnect.
Speaker connected to port 4 USB C. Trackpad disconnects.