我已经为我的 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