我在 Acer Aspire-VN7-791G 上运行 Linux Mint 17.2 64 位。蓝牙似乎可以工作 - 至少我可以打开它 - 但在扫描其他设备时什么也找不到。
lspci 返回以下内容
user@user-Aspire-VN7-791G ~ $ lspci -nnk | grep -iA2 net
07:00.0 Network controller [0280]: Qualcomm Atheros Device [168c:003e] (rev 20)
Subsystem: Lite-On Communications Inc Device [11ad:0804]
Kernel driver in use: ath10k_pci
08:00.0 Ethernet controller [0200]: Broadcom Corporation NetLink BCM57780 Gigabit Ethernet PCIe [14e4:1692] (rev 01)
Subsystem: Acer Incorporated [ALI] Device [1025:091d]
Kernel driver in use: tg3
lsusb输出
user@user-Aspire-VN7-791G ~ $ lsusb
Bus 004 Device 002: ID 8087:8000 Intel Corp.
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 8087:8008 Intel Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 04f2:b469 Chicony Electronics Co., Ltd
Bus 001 Device 004: ID 06cb:2970 Synaptics, Inc.
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 006: ID 04ca:3011 Lite-On Technology Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
另外我的内核版本是4.2.0-18-generic
因为我升级了它以使 WiFi 工作。
答案1
我有同样的笔记本电脑 (VN7-591G-77FS),而且我也运行 mint 17.2。您需要执行以下操作:
1) 下载最新的内核向后移植
https://www.kernel.org/pub/linux/kernel/projects/backports/2015/11/20/
2)解压存档,然后在文件 drivers/bluetooth/btusb.c 中找到以下几行
/* QCA ROME chipset */
{ USB_DEVICE(0x0cf3, 0xe007), .driver_info = BTUSB_QCA_ROME },
{ USB_DEVICE(0x0cf3, 0xe300), .driver_info = BTUSB_QCA_ROME },
{ USB_DEVICE(0x0cf3, 0xe360), .driver_info = BTUSB_QCA_ROME },
并在它们下面添加以下内容
{ USB_DEVICE(0x04ca, 0x3011), .driver_info = BTUSB_QCA_ROME },
3) 编译、安装并重新启动,如果蓝牙无法工作,那么您可能缺少所需的固件,这些固件应该在 dmesg 中的一些错误消息中提及。就像是
dmesg | grep -i 蓝牙
应该提出来
编辑:我刚刚看到您已经升级了内核。在这种情况下,您不需要向后移植。只需在内核树中找到相关文件并在那里进行编辑即可。就我而言,我也更喜欢 wifi 的反向移植解决方案;)
答案2
我的华硕 Aspire V 13 也有同样的问题
BT 设备是 Atheros.. 但适用于 ROME 设置,因此我将以下行添加到 btusb.c:(然后编译为模块,安装为模块并加载)
{ USB_DEVICE(0x04ca, 0x3011), .driver_info = BTUSB_QCA_ROME },
我的lsusb是:
lsusb
Bus 003 Device 007: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 003 Device 005: ID 04f2:b469 Chicony Electronics Co., Ltd
Bus 003 Device 004: ID 04ca:3011 Lite-On Technology Corp.
Bus 003 Device 009: ID 0461:0010 Primax Electronics, Ltd HP PR1101U / Primax PMX-KPR1101U Keyboard
Bus 003 Device 008: ID 03f0:094a Hewlett-Packard Optical Mouse [672662-001]
Bus 003 Device 024: ID 0b95:772b ASIX Electronics Corp. AX88772B
Bus 003 Device 003: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 003 Device 002: ID 8087:8001 Intel Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
我提交了一份错误报告:蓝牙 04ca:3011 [华硕 Aspire V3-371] 不起作用 | bugs.launchpad.net
一步一步我所做的(假设您没有下载整个内核源代码并且不打算下载):
- 下载了btusb.c(我的内核是4.2,所以我从Linux 源代码:drivers/bluetooth/btusb.c (v4.2) |布特林),其中 3 个包含标头: btbcm.h btintel.h btrtl.h (我使用以下命令对行编号进行条带化:
sed -e 's/ *[0-9]* //' btusb.txt > btusb.c
- 其中 txt 是您下载的内容) nano Makefile
使用以下内容 创建了一个 Makefile :obj-m := btusb.o KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
编辑下载的btusb.c(实际上添加了上面提到的行)
- 用命令编译
make
。 sudo make -C /usr/src/linux-headers-$(uname -r) M=$(pwd) modules_install
使用命令安装创建的模块(btusb.ko)- 然
sudo depmod -a
- 删除了“旧”btusb
sudo rmmod btusb
- 安装了我做的
sudo modprobe btusb