Вопрос или проблема
Я использую Linux Mint 17.2 64bit на Acer Aspire-VN7-791G. Bluetooth, похоже, работает – по крайней мере, я могу его включить – но при сканировании других устройств ничего не находится.
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
, потому что я обновил ее, чтобы Wi-Fi заработал.
У меня такой же ноутбук (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) скомпилируйте, установите и перезагрузитесь. Если Bluetooth все еще не работает, то, вероятно, не хватает необходимого прошивки, которая должна быть упомянута в каком-то сообщении об ошибке в dmesg. Что-то вроде
dmesg | grep -i bluetooth
должно это показать
ИЗМЕНЕНИЕ: Я только что увидел, что вы обновили ядро. В таком случае, вам не нужны бэкапсы. Просто найдите соответствующий файл в дереве ядра и отредактируйте его там. В моем случае я также предпочел решение с бэкапсами для Wi-Fi 😉
У меня такая же проблема с Asus 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
Я подал отчет об ошибке: Bluetooth 04ca:3011 [Asus Aspire V3-371] не работает | bugs.launchpad.net
ПОШАГОВО, что я сделал (предполагая, что вы не скачали весь исходный код ядра и не собираетесь это делать):
- скачал btusb.c (мое ядро – 4.2, так что я взял его отсюда: Исходный код Linux: drivers/bluetooth/btusb.c (v4.2) | Bootlin), и 3 заголовка include: btbcm.h btintel.h btrtl.h (я убрал номера строк с помощью следующей команды:
sed -e 's/ *[0-9]* //' btusb.txt > btusb.c
– где txt это то, что вы скачали) -
создал Makefile с помощью
nano 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
. - Установил созданный модуль (btusb.ko) с помощью команды
sudo make -C /usr/src/linux-headers-$(uname -r) M=$(pwd) modules_install
- Запустил
sudo depmod -a
- Удалил “старый” btusb
sudo rmmod btusb
- Установил то, что я сделал, как
sudo modprobe btusb
Ответ или решение
Проблема, с которой вы столкнулись, заключается в том, что ваше Bluetooth-устройство не обнаруживает другие устройства. Вы используете Linux Mint 17.2 на аппаратуре Acer Aspire VN7-791G. Давайте попробуем исправить эту ситуацию.
Шаги по устранению проблемы
-
Проверьте наличие драйверов и поддержку устройства:
В вашем случае Bluetooth контроллер представлен устройством Qualcomm Atheros (идентификатор 168c:003e). Драйвер для этого устройства (ath10k_pci) загружается, но наличие проблем с Bluetooth может указывать на то, что этот драйвер не поддерживает ваш контроллер. -
Обновление ядра:
Вы упомянули, что используете ядро версии 4.2.0-18-generic. Возможно, стоит обновить ядро до более новой версии, если это возможно в вашей системе. В более новых версиях ядра может быть добавлена поддержка необходимых драйверов. -
Использование backports:
Если обновление ядра не решение, то вы можете использовать kernel backports, которые содержат обновленные драйверы для старых версий ядра. Сделайте следующее:- Загрузите и распакуйте последние backports (например, здесь).
- Откройте файл
drivers/bluetooth/btusb.c
и добавьте следующую строку:{ USB_DEVICE(0x04ca, 0x3011), .driver_info = BTUSB_QCA_ROME },
- Скомпилируйте и установите изменения. Затем перезагрузите систему.
-
Проверка на наличие прошивки:
Если Bluetooth по-прежнему не работает, возможно, вам не хватает соответствующей прошивки. Выполните команду:dmesg | grep -i bluetooth
Это может дать вам подсказки о том, какая конкретно прошивка отсутствует.
-
Создание и установка модуля:
Если проблема продолжается, выполните следующие шаги для создания и установки модуля:- Скачайте
btusb.c
из исходников (например, здесь). - Подготовьте
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
- Обновите модульную базу:
sudo depmod -a
- Удалите старую версию модуля:
sudo rmmod btusb
- Загрузите модуль, который вы только что установили:
sudo modprobe btusb
- Скачайте
Заключение
Если после выполнения этих шагов проблема все еще остается, возможно, вам стоит рассмотреть возможность обращения к сообществу Linux или поддержки вашего дистрибутива. Также может быть полезно проверить настройки BIOS, чтобы убедиться, что Bluetooth включен на аппаратном уровне.