Проблема с ключом Bluetooth

Как Проблема с ключом 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 ( al ): 0x1113

LMP Subversion ( BXL - продукт 3 на изображении ниже): 0x1712

Подрывные версии LMP в настоящее время неизвестны для продуктов 1 и 2 ниже.

Щелкните, чтобы увеличить изображение : Other BQB75270 dongles

1
задан 27 January 2020 в 01:02

1 ответ

Можно было сделать патч, который заставит ключ работать в 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

Как определить, что у вас такой же ключ

  1. Вставьте USB-ключ Bluetooth в USB-порт вашего компьютера.

  2. Откройте два окна терминала.

  3. В первом окне запустите:

     hcidump
    

Ubuntu: Вы можете установить программу через пакет bluez-hcidump.

  1. Во втором окне запустите:

     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.

  1. Теперь найдите в первом терминале строки:

     \> HCI Event: Command Complete (0x0e) plen 12
    Чтение информации о локальной версии (0x04|0x0001) ncmd 1
    

Убедитесь, что выходные данные hciconfig совпадают с указанными в начале вопроса для этого события/команды.

Например. нужно знать Subversion и производителя LMP, чтобы быть уверенным что это то же самое, что и ключ, о котором я говорю.

  1. Убедитесь, что выходные данные hciconfig совпадают с указанными в начале вопроса для этого события/команды:

     \> Событие HCI: Command Complete (0x0e) plen 6
    Удалить сохраненный ключ ссылки (0x03|0x0012) ncmd 1
    

, обр. статус и возвращает ли он «Ошибка: неподдерживаемая функция или значение параметра». Как упоминалось выше, вы увидите это сообщение только до тех пор, пока вы не применили патч.

  1. Убедитесь, что у вас одинаковый вывод usb-устройств. ваш usb-ключ bluetooth, указанный в начале вопроса для этой команды:

      usb-devices | awk '/0a12/' РС=
    

Ubuntu: Вам необходимо установить пакет usbutils, чтобы получить программу usb-устройства.

6
ответ дан 8 February 2020 в 11:50

Другие вопросы по тегам:

Похожие вопросы: