蓝牙鼠标在几秒钟后停止工作(NetworkManager 问题)

蓝牙鼠标在几秒钟后停止工作(NetworkManager 问题)

我的 Microsoft Designer 蓝牙鼠标将在短时间内停止工作。

更新: 这是一个普遍的蓝牙问题。我尝试将文件从手机发送到笔记本电脑,但只收到 1 个文件。之后蓝牙连接就停止了。

我在 Lenovo T460s 上运行最新的 openSUSE Tumbleweed。首先,我运行带有内核 4.0.36 的 openSUSE Leap 42.2,蓝牙鼠标工作完美,但在较旧的内核上,Skylake 处理器存在问题,因此我的系统会冻结 -https://forums.opensuse.org/showthread.php/521718-Frequent-lockups-freezes

我能够将问题归结为以下几点:

sudo systemctl stop NetworkManager

鼠标将完美工作。一旦我start使用 NetworkManager,鼠标就会停止工作,并且 Gnome Shell 中的蓝牙图标将永远指示蓝牙连接。然后我可以运行:

sudo systemctl restart bluetooth

这将使鼠标仅工作几秒钟。更奇怪的部分来了。如果我排除该wlan0接口/etc/NetworkManager/NetworkManager.conf

[keyfile]
unmanaged-devices=interface-name:wlan0

鼠标将再次完美地工作但当然我没有由 NetworkManager 管理的 WiFi,这是不可取的。

因此,只要wlan0设备受到管理,来自 NetworkManager 的某些东西就会干扰蓝牙。


眼镜:

mike@think:~> cat /etc/issue
Welcome to openSUSE Tumbleweed 20161226 - Kernel \r (\l).
mike@think:~> uname -a
Linux think.suse 4.9.0-2-default #1 SMP PREEMPT Fri Dec 16 19:51:27 UTC 2016 (6fbc0c0) x86_64 x86_64 x86_64 GNU/Linux
mike@think:~> sudo dmidecode -t bios
# dmidecode 3.0
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.

Handle 0x000C, DMI type 0, 24 bytes
BIOS Information
    Vendor: LENOVO
    Version: N1CET52W (1.20 ) <-- latest
...
mike@think:~> sudo systemctl status bluetooth
● bluetooth.service - Bluetooth service
   Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2017-01-06 11:27:31 CET; 17min ago
     Docs: man:bluetoothd(8)
 Main PID: 1191 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 512)
   CGroup: /system.slice/bluetooth.service
           └─1191 /usr/lib/bluetooth/bluetoothd

Jan 06 11:27:31 think systemd[1]: Starting Bluetooth service...
Jan 06 11:27:31 think bluetoothd[1191]: Bluetooth daemon 5.43
Jan 06 11:27:31 think bluetoothd[1191]: Starting SDP server
Jan 06 11:27:31 think systemd[1]: Started Bluetooth service.
Jan 06 11:27:31 think bluetoothd[1191]: Bluetooth management interface 1.14 initialized
Jan 06 11:27:32 think.suse bluetoothd[1191]: Failed to obtain handles for "Service Changed" characteristic
Jan 06 11:27:32 think.suse bluetoothd[1191]: Sap driver initialization failed.
Jan 06 11:27:32 think.suse bluetoothd[1191]: sap-server: Operation not permitted (1)
Jan 06 11:27:34 think.suse bluetoothd[1191]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSource
Jan 06 11:27:34 think.suse bluetoothd[1191]: Endpoint registered: sender=:1.26 path=/MediaEndpoint/A2DPSink
mike@think:~> nmcli -v
nmcli tool, version 1.4.4

我也尝试过乌德夫使用供应商和产品ID为我的鼠标和蓝牙集线器利用NM_UNMANAGED(man NetworkManager)的规则,但没有成功。我尝试在 NetworkManager.conf ( ) 中打开 DEBUG 日志记录,man NetworkManager.conf但当发生鼠标故障时看不到任何有趣的内容。如果我开始usr/lib/bluetooth/bluetoothd -n --debug 2>&1调试,这同样适用。没什么可看的。

我别无选择。感谢任何帮助,因为我想同时拥有鼠标和互联网访问:)

更新lspci

mike@think:~> sudo lspci -nnk | grep -iA2 net
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection I219-LM [8086:156f] (rev 21)
    Subsystem: Lenovo Device [17aa:2233]
    Kernel driver in use: e1000e
--
04:00.0 Network controller [0280]: Intel Corporation Wireless 8260 [8086:24f3] (rev 3a)
    Subsystem: Intel Corporation Device [8086:0130]
    Kernel driver in use: iwlwifi

我以前可以改善情况通过在 iwlwifi 模块中禁用 bt_coex:

cat /etc/modprobe.d/50-iwlwifi.conf
options iwlwifi bt_coex_active=0 

现在剩下的唯一问题是,从挂起唤醒后,我必须重新启动蓝牙服务才能使其再次工作。重新启动 NetworkManager 仍然会杀死蓝牙,当我在建立 WiFi 后连接鼠标时,连接将不再停止,并且断开/重新连接(关闭鼠标)的处理不会出现错误。

答案1

由于我停用了 bt_coex,问题就解决了。如果我从挂起状态唤醒后连接鼠标的速度不是太快(即:等待 WiFi 建立),则一切正常。

相关内容