英特尔 AC 7260 蓝牙在 Ubuntu 13.10 中立即断开连接

英特尔 AC 7260 蓝牙在 Ubuntu 13.10 中立即断开连接

我已经为我的 Intel AC 7260 Dual Band 苦苦挣扎了将近五个月,有时真的放弃了。它的无线部分通常工作正常,但蓝牙适配器几乎让我崩溃。我终于通过降级到该3.1.1307.0366卡的蓝牙驱动程序版本(幸运的是,我的电脑供应商有它),让蓝牙驱动程序在 Windows 7 中工作。我尝试过的任何其他驱动程序都失败了。现在,在 Ubuntu 中,我对这张卡也有很长的了解。长话短说,这是我在 Ubuntu 13.10 中这张卡的当前状态:

编辑 Windows 7 中蓝牙驱动程序的降级实际上只在重新启动之前有效,因此并不能解决问题。 /编辑

Wifi 通常工作正常,但会时不时地断开连接,有时每小时一次。主要是令人讨厌,没有什么大不了的。然而,蓝牙则是另一回事。大多数情况下,蓝牙图标会加载到任务栏中,有时则不会(例如现在,在挂起后)。重新启动时它通常会恢复。当图标出现时,我可以添加设备并连接到它们,但它们会立即断开连接。对于Bluetooth Manager我安装的实用程序也是如此。在这里我还可以设置设备为受信任。这似乎工作正常,但我仍然无法在不断开连接的情况下连接。

请注意,我已经测试了蓝牙键盘与手机的连接,以及手机与蓝牙音频输出的连接。所有连接均正常。

各种系统命令的输出:

$ dmesg | grep Blue
[    3.279513] Bluetooth: Core ver 2.16
[    3.279526] Bluetooth: HCI device and connection manager initialized
[    3.279533] Bluetooth: HCI socket layer initialized
[    3.279535] Bluetooth: L2CAP socket layer initialized
[    3.279539] Bluetooth: SCO socket layer initialized
[    3.295312] Bluetooth: hci0: read Intel version: 370710018002030d2c
[    3.295314] Bluetooth: hci0: Intel device is already patched. patch num: 2c
[    6.535819] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    6.535822] Bluetooth: BNEP filters: protocol multicast
[    6.535828] Bluetooth: BNEP socket layer initialized
[    6.539007] Bluetooth: RFCOMM TTY layer initialized
[    6.539016] Bluetooth: RFCOMM socket layer initialized
[    6.539017] Bluetooth: RFCOMM ver 1.11
[  456.343021] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[  456.343030] Bluetooth: HIDP socket layer initialized
[ 2632.649682] Bluetooth: hci0: read Intel version: 370710018002030d00
[ 2632.649994] Bluetooth: hci0: Intel Bluetooth firmware file: intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq
[ 2632.765840] Bluetooth: hci0: Intel Bluetooth firmware patch completed and activated

不确定2632那里发生了什么,但它似乎已经开始使用位于的固件

$ sudo find / -name ibt-hw-37.7.10-fw-1.80.2.3.d.bseq
/lib/firmware/intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq

内核版本:

$ uname -r
3.11.0-19-generic

我的 Wifi/蓝牙卡:

$ lspci | grep 7260
06:00.0 Network controller: Intel Corporation Wireless 7260 (rev 63)

已安装的bluez内容:

$ bluez <tab tab>
bluez-simple-agent    bluez-test-device     bluez-test-network
bluez-simple-service  bluez-test-discovery  bluez-test-serial
bluez-test-adapter    bluez-test-input      bluez-test-service
bluez-test-audio      bluez-test-manager    bluez-test-telephony

内容/etc/bluetooth/main.conf

$ cat /etc/bluetooth/main.conf
[General]

# List of plugins that should not be loaded on bluetoothd startup
#DisablePlugins = network,input

# Default adaper name
# %h - substituted for hostname
# %d - substituted for adapter id
Name = %h-%d

# Default device class. Only the major and minor device class bits are
# considered.
Class = 0x000100

# How long to stay in discoverable mode before going back to non-discoverable
# The value is in seconds. Default is 180, i.e. 3 minutes.
# 0 = disable timer, i.e. stay discoverable forever
DiscoverableTimeout = 180

# How long to stay in pairable mode before going back to non-discoverable
# The value is in seconds. Default is 0.
# 0 = disable timer, i.e. stay pairable forever
PairableTimeout = 0

# Use some other page timeout than the controller default one
# which is 16384 (10 seconds).
PageTimeout = 8192

# Automatic connection for bonded devices driven by platform/user events.
# If a platform plugin uses this mechanism, automatic connections will be
# enabled during the interval defined below. Initially, this feature
# intends to be used to establish connections to ATT channels.
AutoConnectTimeout = 60

# What value should be assumed for the adapter Powered property when
# SetProperty(Powered, ...) hasn't been called yet. Defaults to true
InitiallyPowered = true

# Remember the previously stored Powered state when initializing adapters
RememberPowered = true

# Use vendor id source (assigner), vendor, product and version information for
# DID profile support. The values are separated by ":" and assigner, VID, PID
# and version.
# Possible vendor id source values: bluetooth, usb (defaults to usb)
#DeviceID = bluetooth:1234:5678:abcd

# Do reverse service discovery for previously unknown devices that connect to
# us. This option is really only needed for qualification since the BITE tester
# doesn't like us doing reverse SDP for some test cases (though there could in
# theory be other useful purposes for this too). Defaults to true.
ReverseServiceDiscovery = true

# Enable name resolving after inquiry. Set it to 'false' if you don't need
# remote devices name and want shorter discovery cycle. Defaults to 'true'.
NameResolving = true

# Enable runtime persistency of debug link keys. Default is false which
# makes debug link keys valid only for the duration of the connection
# that they were created for.
DebugKeys = false

# Enable the GATT functionality. Default is false
EnableGatt = false

lsusb节目

$ lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 046d:c531 Logitech, Inc. 
Bus 003 Device 004: ID 8087:07dc Intel Corp. 
Bus 003 Device 003: ID 147e:1002 Upek Biometric Touchchip/Touchstrip Fingerprint Sensor
Bus 003 Device 002: ID 046d:c06b Logitech, Inc. G700 Wireless Gaming Mouse
Bus 003 Device 006: ID 5986:0512 Acer, Inc 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

我开始为此感到害怕。我可以去Ubuntu 14.04看看会发生什么,但我想先尝试其他东西。也许重新安装一些东西,也许删除一些固件?也许文件中有一些变化main.conf?任何评论都非常感谢!

答案1

我在运行 Ubuntu 14.04 / Linux Mint 17.1(内核 3.19 和最新固件 blob)的 Dell E7440 上遇到了同样的问题。配对蓝牙设备后,wifi 变得无法使用。但是当另一个被禁用时,蓝牙和 wifi 都可以正常工作。

https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi建议禁用蓝牙共存。为此,请使用 加载iwlwifi模块bt_coex_active=0

要使此设置在启动时永久生效,请在终端中输入以下内容:

sudo nano /etc/modprobe.d/wifi.conf

该文件应该是空的。然后添加以下行:

options iwlwifi bt_coex_active=0

保存更改并重新启动。

编辑:

不幸的是,这不起作用:-(

我不知道我测试了什么,但是设置bx_coex_active=0完全禁用了蓝牙。

我还使用 502.11g 连接(而不是更快的 502.11n 连接)进行了测试。禁用 502.11n 的模块选项是 11n_disable=1。听起来好一点,但在我的测试用例中(通过 Jambox 收听互联网广播),我无法准确判断 wifi 或 BT 连接是否不好。

编辑2:

iwlwifi与 Jambox 配对后重新加载内核模块也有助于获得更好的 Wifi 连接。在控制台中,输入

sudo modprobe -r iwlwifi
sudo modprobe iwlwifi

我最初尝试这个是因为即使禁用蓝牙也无法连接 Wifi。此外,无论选择 还是 ,蓝牙驱动程序仍保持加载状态bx_coex_active=0

最后,将 Wifi 路由器从频道 6 更改为频道 13 似乎也有一点帮助,但是 YMMV。

答案2

我使用 ac7260,但 Ubuntu 仅原生支持它,因为内核 v4.1+ 你最好升级到 ubuntu 20+。即使这样,蓝牙有时也会在多次修改后工作。最简单的重置可以解决它:

hciconfig hci0 down
rmmod btusb
modprobe btusb
hciconfig hci0 up

https://unix.stackexchange.com/questions/602730/bluetooth-intermittently-disconnects/602739#602739

相关内容