Как Проблема с ключом Bluetooth. (Вероятно, в отношении драйвера) У меня такая же проблема, что устройство Bluetooth не инициализируется должным образом:
$ lsusb | grep Bluetooth
Bus 001 Device 006: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
$ usb-devices | awk '/0a12/' RS=
T: Bus=01 Lev=02 Prnt=02 Port=02 Cnt=01 Dev#= 6 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0a12 ProdID=0001 Rev=88.91
S: Product=USB1.1-A
C: #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
$ hciconfig -a hci0
hci0: Type: Primary Bus: USB
BD Address: 00:1A:7D:DA:71:11 ACL MTU: 679:9 SCO MTU: 48:16
DOWN
RX bytes:574 acl:0 sco:0 events:30 errors:0
TX bytes:368 acl:0 sco:0 commands:30 errors:0
Features: 0xff 0xff 0xc5 0xfa 0xdb 0xbf 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
$ hcidump
...
> HCI Event: Command Complete (0x0e) plen 12
Read Local Version Information (0x04|0x0001) ncmd 1
status 0x00
HCI Version: 4.0 (0x6) HCI Revision: 0x810
LMP Version: 4.0 (0x6) LMP Subversion: 0x1113
Manufacturer: Cambridge Silicon Radio (10)
...
> HCI Event: Command Complete (0x0e) plen 6
Delete Stored Link Key (0x03|0x0012) ncmd 1
status 0x11 deleted 0
Error: Unsupported Feature or Parameter Value
Вы будет отображаться только последнее событие HCI для ошибки : неподдерживаемая функция или значение параметра
, пока вы не применили исправление. После установки патча вы не увидите событие / команду в выводе hcidump
.
Он отлично работает в Windows 10, но не в Ubuntu 18.04 (также не с ядром 5.3). Blueman не распознает устройства Bluetooth.
Я получаю следующее, когда вставляю USB-ключ Bluetooth:
jan 26 21:10:38 some-computer kernel: usb 1-1.3: new full-speed USB device number 6 using ehci-pci
jan 26 21:10:38 some-computer kernel: usb 1-1.3: config 1 interface 1 altsetting 0 endpoint 0x3 has wMaxPacketSize 0, skipping
jan 26 21:10:38 some-computer kernel: usb 1-1.3: config 1 interface 1 altsetting 0 endpoint 0x83 has wMaxPacketSize 0, skipping
jan 26 21:10:38 some-computer kernel: usb 1-1.3: New USB device found, idVendor=0a12, idProduct=0001, bcdDevice=88.91
jan 26 21:10:38 some-computer kernel: usb 1-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
jan 26 21:10:38 some-computer kernel: usb 1-1.3: Product: USB1.1-A
jan 26 21:10:38 some-computer systemd[1]: Starting Load/Save RF Kill Switch Status...
jan 26 21:10:38 some-computer systemd[1]: Started Load/Save RF Kill Switch Status.
jan 26 21:10:38 some-computer systemd[1]: Reached target Bluetooth.
jan 26 21:10:38 some-computer upowerd[9037]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3:1.1
jan 26 21:10:38 some-computer upowerd[9037]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3:1.0
jan 26 21:10:38 some-computer upowerd[9037]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3
jan 26 21:10:38 some-computer kernel: [UFW BLOCK] IN=eno1 OUT= MAC= SRC=<REMOVED from output by me!> DST=ff02:0000:0000:0000:0000:0000:0000:0001 LEN=64 TC=0 HOPLIMIT=1 FLOWLBL=939113 PROTO=UDP SPT=8612 DPT=8612 LEN=24
Надеюсь, у кого-то есть подсказка, что делать.
У меня есть дополнительная информация.
Речь идет об этом: https://launchstudio.bluetooth.com/listingdetails/75270 И наиболее подходящие микросхемы: http://en.barrot.com.cn/a/BR80XX-series/48.html и http://en.barrot.com.cn/a/BR200Xxilie/12.html
Примечание: @ Pilot6 попросил меня создать этот отдельный вопрос, чтобы избежать этого в моих предыдущих комментариях (добавленных как ответ на вопрос, упомянутый в начале) будет удален.
Образы, найденные в Интернете, которые соответствуют определенным «BQB 75270» LMP Subversion ( идентифицировано пользователем ):
LMP Subversion ( BXL - продукт 3 на изображении ниже): 0x1712
Подрывные версии LMP в настоящее время неизвестны для продуктов 1 и 2 ниже.
Можно было сделать патч, который заставит ключ работать в Linux, но нам нужно проделать кое-какую работу, прежде чем мы добавим его в ядро. Таким образом, ключ использует поддельный чип CSR, сделанный Barrot, как упоминалось ранее. Нам нужно связаться с сопровождающими ядра Linux для поддержки Bluetooth, но прежде чем мы это сделаем, нам нужно больше людей, чем я, чтобы подтвердить, что это работает. Затем я опубликую наши выводы здесь: https://bugzilla.kernel.org/show_bug.cgi?id=60824#c48, а затем, наконец, свяжусь с сопровождающими ядра (и постараюсь соблюдать «Советы для отправителей исправлений 'https://www.kernel.org/doc/linux/MAINTAINERS )
ОБНОВЛЕНИЕ 28 декабря 2020 г .: поскольку у меня не было времени в течение нескольких месяцев работать над патчем для ядра linux, пожалуйста, не стесняйтесь публиковать свои выводы на странице ошибок, упомянутой выше, и после этого свяжитесь с сопровождающими ядра, если все пойдет хорошо.
Пожалуйста, протестируйте
Все, кому нужна поддержка ядра, пожалуйста, протестируйте этот патч и напишите о своих результатах в комментариях.Я использовал ядро 5.3. Ваше ядро может отличаться номерами строк и т.д. Возможно, вы захотите проверить эти re. как проверить ядра Ubuntu - если вы используйте ядра из https://www.kernel.org/:
https://wiki.ubuntu.com/KernelTeam/GitKernelBuild и Как/куда клонировать текущую версию 18.04 ядро (5.0.0-37-универсальный), в частности, с использованием Git и https://unix.stackexchange.com/questions/46077/where-to-download-linux-kernel-source-code-of -a-specific-version/46088#46088 и https://stackoverflow.com/questions/8519880/git-checkout-exclude-tags-remotes-from-possibilities-list и https://stackoverflow.com/questions/3404936/show-what-git-tag-you-are-on/3405221#3405221 (я использовал: git checkout Ubuntu-hwe-5.3.0-28.30_18. 04.1) :
diff -Nuar btusb.c_OLD btusb.c
--- btusb.c_OLD 2020-01-29 12:32:30.383536820 +0100
+++ btusb.c 2020-01-29 12:33:49.579840488 +0100
@@ -1599,7 +1599,8 @@
/* Detect controllers which aren't real CSR ones. */
if (le16_to_cpu(rp->manufacturer) != 10 ||
- le16_to_cpu(rp->lmp_subver) == 0x0c5c) {
+ le16_to_cpu(rp->lmp_subver) == 0x0c5c ||
+ le16_to_cpu(rp->lmp_subver) == 0x1113) {
/* Clear the reset quirk since this is not an actual
* early Bluetooth 1.1 device from CSR.
*/
@@ -3851,7 +3852,7 @@
set_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks);
/* Fake CSR devices with broken commands */
- if (bcdDevice <= 0x100 || bcdDevice == 0x134)
+ if (bcdDevice <= 0x100 || bcdDevice == 0x134 || bcdDevice == 0x8891)
hdev->setup = btusb_setup_csr;
set_bit(HCI_QUIRK_SIMULTANEOUS_DISCOVERY, &hdev->quirks);
, файл находится в исходниках ядра: drivers/bluetooth
Как определить, что у вас такой же ключ
Вставьте USB-ключ Bluetooth в USB-порт вашего компьютера.
Откройте два окна терминала.
В первом окне запустите:
hcidump
Ubuntu: Вы можете установить программу через пакет bluez-hcidump.
Во втором окне запустите:
sudo hciconfig hci0 down
sudo hciconfig hci0 вверх
Убедитесь, что вы включили bluetooth-ключ в вашем bluetooth-менеджере, иначе вы получите сообщение об ошибке, например.:
Can't init device hci0: Operation not supported (95)
(для тех, кто не работает с патчем (или неверным/неподдерживаемым ключом))
Can't init device hci0: Operation not possible due to RF-kill (132)
(скорее всего будет показано, если ваш ключ поддерживается/патч был применен)
Вы можете установить программу hciconfig и, очевидно, нужно для поддержки блютуза Ubuntu: пакет bluez.
Теперь найдите в первом терминале строки:
\> HCI Event: Command Complete (0x0e) plen 12
Чтение информации о локальной версии (0x04|0x0001) ncmd 1
Убедитесь, что выходные данные hciconfig совпадают с указанными в начале вопроса для этого события/команды.
Например. нужно знать Subversion и производителя LMP, чтобы быть уверенным что это то же самое, что и ключ, о котором я говорю.
Убедитесь, что выходные данные hciconfig совпадают с указанными в начале вопроса для этого события/команды:
\> Событие HCI: Command Complete (0x0e) plen 6
Удалить сохраненный ключ ссылки (0x03|0x0012) ncmd 1
, обр. статус и возвращает ли он «Ошибка: неподдерживаемая функция или значение параметра». Как упоминалось выше, вы увидите это сообщение только до тех пор, пока вы не применили патч.
Убедитесь, что у вас одинаковый вывод usb-устройств. ваш usb-ключ bluetooth, указанный в начале вопроса для этой команды:
usb-devices | awk '/0a12/' РС=
Ubuntu: Вам необходимо установить пакет usbutils, чтобы получить программу usb-устройства.