Kernel

幾秒鐘後藍牙滑鼠停止工作(NetworkManager 問題)

  • January 18, 2017

我的 Microsoft Designer 藍牙滑鼠將在短時間內停止工作。

更新:這是一個一般的藍牙問題。我嘗試將文件從手機發送到筆記型電腦,但只收到 1 個文件。之後藍牙連接停止。

我在聯想 T460s 上執行最新的 openSUSE Tumbleweed。首先,我使用核心 4.0.36 執行 openSUSE Leap 42.2,藍牙滑鼠執行完美,但在較舊的核心上,Skylake 處理器存在問題,因此我的系統會凍結 - https://forums.opensuse.org/showthread.php /521718-頻繁鎖定凍結

我能夠將問題歸結為以下幾點:

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

我還嘗試了使用 vendor 和 productid 為我的滑鼠和藍牙集線器利用 NM_UNMANAGED ( ) 的udevman 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 後連接滑鼠時,連接將不再停止,並且斷開/重新連接(關閉滑鼠)的處理沒有錯誤。

由於我停用了 bt_coex,因此問題已為我解決。如果從掛起喚醒後我沒有太快連接滑鼠(即:等待 WiFi 建立),一切正常。

引用自:https://unix.stackexchange.com/questions/335329