我在我的 MSI GS70 2QD 笔记本电脑上运行 Ubuntu 16.04 LTS,内核是 4.13.0-32-generic。
我遇到的问题是我的计算机具有蓝牙功能,但内核无法找到蓝牙驱动程序。
当我运行时rfkill list
,输出是:
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
当我运行时lsusb
,输出是:
Bus 002 Device 003: ID 1770:ff00
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 004: ID 5986:055c Acer, Inc
Bus 001 Device 003: ID 0cf3:3004 Atheros Communications, Inc. AR3012 Bluetooth 4.0
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 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
输出lspci
:
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (rev 06)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d5)
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d5)
00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d5)
00:1c.4 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 (rev d5)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation HM87 Express LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 05)
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05)
01:00.0 3D controller: NVIDIA Corporation GM204M [GeForce GTX 965M] (rev a1)
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5249 PCI Express Card Reader (rev 01)
04:00.0 Ethernet controller: Qualcomm Atheros Killer E220x Gigabit Ethernet Controller (rev 13)
05:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 20)
我已阅读了许多有关 AR3012 驱动程序这一确切问题的不同文章,但似乎无法找到任何可行的方法,所以要么是我做错了什么,要么是我没有完全理解我应该做什么。
如果您需要我提供更多信息来帮助我,请告诉我。
编辑:
结果dkms status
是:
bbswitch, 0.8, 4.13.0-31-generic, x86_64: installed
bbswitch, 0.8, 4.13.0-32-generic, x86_64: installed
bbswitch, 0.8, 4.4.0-112-generic, x86_64: installed
bluetooth-3004, 0.1, 4.13.0-32-generic, x86_64: installed
nvidia-384, 384.111, 4.13.0-31-generic, x86_64: installed
nvidia-384, 384.111, 4.13.0-32-generic, x86_64: installed
nvidia-384, 384.111, 4.4.0-112-generic, x86_64: installed
结果dmesg | egrep -i 'blue|firm'
是:
[ 0.073749] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[ 1.023535] [Firmware Bug]: ACPI(PEGP) defines _DOD but not _DOS
[ 1.578877] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x361f03)
[ 7.833099] Bluetooth: Core ver 2.22
[ 7.833110] Bluetooth: HCI device and connection manager initialized
[ 7.833112] Bluetooth: HCI socket layer initialized
[ 7.833114] Bluetooth: L2CAP socket layer initialized
[ 7.833120] Bluetooth: SCO socket layer initialized
[ 8.123289] ath10k_pci 0000:05:00.0: firmware ver SW_RM.1.1.1-00157-QCARMSWPZ-1 api 5 features ignore-otp,no-4addr-pad crc32 10bf8e08
[ 10.038096] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 10.038097] Bluetooth: BNEP filters: protocol multicast
[ 10.038100] Bluetooth: BNEP socket layer initialized
编辑2:
的输出echo -e "power on\n scan on\n quit" |bluetoothctl
如下:
[bluetooth]# power on
No default controller available
[bluetooth]# scan on
No default controller available
[bluetooth]# quit
编辑3:
的输出modinfo btusb | grep file
如下:
filename: /lib/modules/4.13.0-32-generic/updates/dkms/btusb.ko
编辑4:
的输出lsmod | grep blue
如下:
bluetooth 544768 31 btrtl,btintel,bnep,btbcm,rfcomm,btusb
ecdh_generic 24576 1 bluetooth
答案1
此问题是由 Atheros 对两个不同的蓝牙设备使用相同的 ID 引起的,类似于https://askubuntu.com/a/791590/300665 我在终端中为你的蓝牙设备修补了 4.13 源代码
sudo apt-get install git dkms build-essential
git clone https://github.com/jeremyb31/bluetooth-4.13-ath3004-rome.git
sudo dkms add ./bluetooth-4.13-ath3004-rome
sudo dkms install bluetooth-3004/0.1
编辑也echo "blacklist ath3k" | sudo tee -a /etc/modprobe.d/blacklist.conf
重新启动