蓝牙扫描未找到任何蓝牙设备

蓝牙扫描未找到任何蓝牙设备

我在 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

一步一步我所做的(假设您没有下载整个内核源代码并且不打算下载):

  1. 下载了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 是您下载的内容)
  2. nano Makefile使用以下内容 创建了一个 Makefile :

    obj-m := btusb.o
    KDIR := /lib/modules/$(shell uname -r)/build
    PWD := $(shell pwd)
    default:
    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
    
  3. 编辑下载的btusb.c(实际上添加了上面提到的行)

  4. 用命令编译make
  5. sudo make -C /usr/src/linux-headers-$(uname -r) M=$(pwd) modules_install 使用命令安装创建的模块(btusb.ko)
  6. sudo depmod -a
  7. 删除了“旧”btusbsudo rmmod btusb
  8. 安装了我做的sudo modprobe btusb

相关内容