双启动到 Windows 后,蓝牙在 Ubuntu 上任意停止工作

Arj*_*non 8 sound wireless bluetooth intel-wireless drivers

TL;DR:蓝牙在 Kubuntu 上工作得非常好,直到我启动到 Windows。现在,蓝牙只适用于 Windows,Kubuntu 的蓝牙图标显示“未找到适配器”


我的机器

我有一个带有 Kubuntu 14.04.5(带有 HWE,内核 4.4.0)和 Windows 10的桌面。它们都是 UEFI 安装,我使用 GRUB 进行双引导。我有一个 X99 主板,最近我带来了Gigabyte的 Wifi + 蓝牙 PCI Express,它由英特尔 8260芯片提供支持——该芯片具有出色的 Linux 支持。(Intel 8260 的 Wi-Fi 通过 PCI Express x1 插槽连接,而蓝牙通过主板内部的 USB 2.0 插槽连接。)

好的

英特尔 8260 开箱即用。Kubuntu 立即拿起了它,我能够将我的蓝牙扬声器设置为音频接收器并轻松播放音频。

坏的

我很少使用 Windows,但我昨天启动了它。我从 Windows 很好地连接到我的蓝牙扬声器。之后我重新启动到 Kubuntu,我的蓝牙适配器消失了。


细节

我知道我的 Intel 8260 芯片很好,这不是硬件问题,因为蓝牙在 Windows 上继续正常工作。它只是不再适用于 Linux。英特尔8260的Wi-Fi也将继续对没有问题的工作两个Kubuntu的和Windows。

另外,lspci还列出了Wi-Fi设备:

08:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)
Run Code Online (Sandbox Code Playgroud)

但请记住,蓝牙芯片不是通过 PCIE 连接,而是通过主板上的内部 USB 2.0 接头连接。

我也跑了lsusb,刚才说有3个设备Intel Corp。我不知道如何识别其中是否有英特尔 8260 蓝牙。这是完整的输出lsusb

Bus 002 Device 002: ID 8087:8002 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:800a Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 045b:0210 Hitachi, Ltd 
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 045b:0209 Hitachi, Ltd 
Bus 003 Device 004: ID 04f2:0833 Chicony Electronics Co., Ltd 
Bus 003 Device 003: ID 046d:c24d Logitech, Inc. G710 Gaming Keyboard
Bus 003 Device 002: ID 8087:0a2b Intel Corp. 
Bus 003 Device 006: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Run Code Online (Sandbox Code Playgroud)

也许Windows弄乱了芯片,并重新配置了它或其他什么?或者可能有什么影响了 USB 设备的 UEFI XHCI/EHCI 切换?我真的不知道。

这是输出dmesg | grep -i blue

[   11.371872] Bluetooth: Core ver 2.21
[   11.371884] Bluetooth: HCI device and connection manager initialized
[   11.371887] Bluetooth: HCI socket layer initialized
[   11.371889] Bluetooth: L2CAP socket layer initialized
[   11.371897] Bluetooth: SCO socket layer initialized
[   12.795087] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   12.795089] Bluetooth: BNEP filters: protocol multicast
[   12.795093] Bluetooth: BNEP socket layer initialized
[   12.797933] Bluetooth: RFCOMM TTY layer initialized
[   12.797939] Bluetooth: RFCOMM socket layer initialized
[   12.797943] Bluetooth: RFCOMM ver 1.11
[   13.380033] Bluetooth: hci0 command 0xfc05 tx timeout
[   21.376079] Bluetooth: hci0: Reading Intel version information failed (-110)
Run Code Online (Sandbox Code Playgroud)

而且,这是输出rfkill list all

0: hci0: Bluetooth
        Soft blocked: no
        Hard blocked: no
1: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no
Run Code Online (Sandbox Code Playgroud)

最近的发展

当我写这个问题时,如果我启动到 Windows,我可以毫无问题地使用 Intel 8260 的蓝牙。

但今天,蓝牙也停止在 Windows 上工作。Windows 设备管理器指示设备出现电源故障。

我确实让我的桌面连续两天开机,运行 Ubuntu。也许这可能已经损坏了这个设备——长时间未被检测到,并且没有被内核/操作系统正确管理?

Intel 8260 电源故障


任何帮助将不胜感激!

Jul*_*lph 4

最近英特尔已经解决了这个问题!
\nWindows 驱动程序会以某种方式干扰设备固件。
\n只需按照 Windows 中的说明进行操作即可:

\n\n
    \n
  1. 下载适用于 Windows 的英特尔最新驱动程序
  2. \n
  3. 断开计算机与 Internet 的连接,以防止通过 Windows 更新安装驱动程序
  4. \n
  5. 通过设备管理器卸载 Windows 上当前的驱动程序并选中“删除本地驱动程序”
  6. \n
  7. 关闭窗口
  8. \n
  9. 启动 Windows(不要忘记,必须无法访问互联网)
  10. \n
  11. 重新启动时,您应该在设备管理器中看到 \xe2\x80\x9cUnknown device\xe2\x80\x9d
  12. \n
  13. 安装之前下载的最新驱动程序
  14. \n
  15. 启动至 Linux
  16. \n
  17. 启动至 Windows
  18. \n
  19. [可选,如果发生任何错误]HKLM\\System\\Software\\Intel\\Bluetooth发生任何问题后立即将关键内容转储到文本文件
  20. \n
\n


Arj*_*non 2

重置 BIOS CMOS 似乎是目前解决此问题的唯一方法。这个解决方案在Chili555向我指出的Arch Linux 线程中进行了描述。

在我重置主板的 CMOS(取出电池几分钟)后,Linux 再次恢复了该设备。之后我就没有重新启动到 Windows。

PS 上面的电源故障屏幕截图与此无关,是由于 Wifi+蓝牙 PCI-E 芯片内部 USB 连接丢失造成的。