蓝牙无法与 Utopic / 3.16 内核上的 Atheros AR9462 芯片配合使用

蓝牙无法与 Utopic / 3.16 内核上的 Atheros AR9462 芯片配合使用

蓝牙无法与 Utopic / 3.16 内核上的 Atheros AR9462 芯片配合使用

我需要社区的帮助。我似乎偶然发现了这些 Atheros 芯片组对蓝牙的支持存在一个大问题。不幸的是,当我开始使用内核模块时,我对所做的事情只有一点点了解。

我在 12 月购买了一台 Acer V3 Nitro 笔记本电脑 (VN7-791G-77HR),并安装了 Utopic Unicorn 14.10 x86_64。笔记本电脑使用 Atheros AR9462 wifi/bt 组合芯片组。

蓝牙无法正常工作。我无法检测到任何处于配对模式的设备。其他一切都运行正常,包括 wifi。蓝牙在此机器的 Windows 8.1 中运行正常。

Gnome-bluetooth 小程序打开,似乎显示蓝牙已启用。当我添加设备时,它只搜索 30 秒,然后关闭,没有找到任何设备。

这是 hcitool 和 rfkill 的输出。

tkitz@LUAN:~$ hcitool dev
 Devices:
    hci0    38:B1:DB:76:F0:B8
tkitz@LUAN:~$ rfkill list
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: acer-wireless: Wireless LAN
    Soft blocked: no
    Hard blocked: no

2: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
tkitz@LUAN:~$ 

我安装了 dkms 模块并复制了一些 '.dfu' 文件,如本 linux-firmware 中所述错误 # 1394368

以下是 dkms status 的输出,显示已安装 ar9462/1.5.1 模块。

tkitz@LUAN:~$ sudo dkms status
[sudo] password for tkitz: 
ar9462, 1.5.1, 3.16.0-24-generic, x86_64: built
ar9462, 1.5.1, 3.16.0-28-generic, x86_64: installed

我几乎被困在这一点上了。任何帮助都将不胜感激。如果没有其他事情,我相信我会学到更多关于 dkms 和 modprobe 的知识。:-)

以下是输出系统盘。这是一个 PCI 设备,所以我不确定这告诉了我们什么。(试图了解基本原理)

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 004: ID 04f2:b469 Chicony Electronics Co., Ltd 
Bus 003 Device 003: ID 06cb:2970 Synaptics, Inc. 
Bus 003 Device 002: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 003 Device 005: ID 0489:e076 Foxconn / Hon Hai 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

以下是相关输出瘦身

       *-network
            description: Wireless interface
            product: AR9462 Wireless Network Adapter
            vendor: Qualcomm Atheros
            physical id: 0
            bus info: pci@0000:07:00.0
            logical name: wlan0
            version: 01
            serial: 38:b1:db:76:f0:b7
            width: 64 bits
            clock: 33MHz
            capabilities: pm msi pciexpress bus_master cap_list rom ethernet physical wireless
            configuration: broadcast=yes driver=ath9k driverversion=3.16.0-28-generic firmware=N/A latency=0 link=no multicast=yes wireless=IEEE 802.11abgn
            resources: irq:18 memory:d1500000-d157ffff memory:d1580000-d158ffff

以下是输出hciconfig --all

tkitz@LUAN:~$ sudo hciconfig --all
hci0:   Type: BR/EDR  Bus: USB
   BD Address: 38:B1:DB:76:F0:B8  ACL MTU: 1022:8  SCO MTU: 183:5
   UP RUNNING PSCAN 
   RX bytes:26817 acl:0 sco:0 events:4800 errors:0
   TX bytes:32459 acl:0 sco:0 commands:4009 errors:0
   Features: 0xff 0xfe 0x0d 0xfe 0xd8 0x7f 0x7b 0x87
   Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
   Link policy: RSWITCH HOLD SNIFF 
   Link mode: SLAVE ACCEPT 
   Name: 'LUAN'
   Class: 0x7c0100
   Service Classes: Rendering, Capturing, Object Transfer, Audio, Telephony
   Device Class: Computer, Uncategorized
   HCI Version: 4.0 (0x6)  Revision: 0x1102
   LMP Version: 4.0 (0x6)  Subversion: 0x1
   Manufacturer: Atheros Communications, Inc. (69)

答案1

我将卸载该 dkms 模块,因为它没有在 ath3k.c 或 btusb.c 中列出您的设备。您可以尝试我修改过的这个模块,以将您的蓝牙 ID 添加到 https://www.dropbox.com/s/0mxc8g98abuoxcx/ar9462-dkms_2.0_all.deb?dl=0

如果您看到固件加载错误,则dmesg | grep firmware需要采取其他几个步骤来提供帮助echo "blacklist ath3k" | sudo tee /etc/modprobe.d/ath3k.conf,然后sudo gedit /etc/rc.local在上面写着 exit 0 add modprobe ath3ksave exit program 并重新启动。我甚至不得不在 14.10 中执行最后几个步骤才能使蓝牙持续工作

编辑:下载此https://www.dropbox.com/s/ajxndivy4vwgapv/test.zip?dl=0并将其解压到 /home,这样你就会在主目录中有一个名为 test 的文件夹,然后在终端中sudo apt-get install build-essential

cd test
cp /usr/src/linux-headers-$(uname -r)/Module.symvers Module.symvers
make all
sudo dkms remove ar9462/2.0 --all
sudo dkms remove ar9462/1.5 --all
sudo modprobe -r ath3k
sudo modprobe -r btusb
sudo mv /lib/modules/$(uname-r)/kernel/drivers/bluetooth/ath3k.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth/ath3k.ko.bak
sudo mv /lib/modules/$(uname -r0/kernel/drivers/bluetooth/btusb.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth/btusb.ko.bak
sudo cp ath3k.ko  /lib/modules/$(uname -r)/kernel/drivers/bluetooth/
sudo cp btusb.ko  /lib/modules/$(uname -r)/kernel/drivers/bluetooth/

重启

modinfo ath3k | grep -i e076

如果它显示一行带有 e076,它应该可以工作

编辑:我了解到此设备的固件目前仅在 Windows 驱动程序中可用。如果您使用 Windows 进行双启动并安装了 Windows 驱动程序,则可以在 Program Files\Common Files\QCA_bluetooth 中找到固件

答案2

这似乎是一个已知的错误,我也遇到了: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1352821

相关内容