Проблема с настройкой адаптера Bluetooth (ID 0a12:0001)
Bluetake «
из коробки» работает в Ubuntu v10.04 ~ 11.04, но перестал работать надежно в 11.10, частые паники ядра и другие общие нехорошие вещи, [Bug: 901770]$ lsusb
Bus 007 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)$ hciconfig -a hci0
Manufacturer: Cambridge Silicon Radio (10)Может потребоваться то же исправление, что и у Belkin: добавить blacklist hci_usb к /etc/modprobe.d/blacklist.conf , и добавить hci_usb reset=1 к /etc/modules
- для установки ядра 5.5.2. Но ему не удалось войти в систему, поэтому я очистил его и вернулся на свой 5.3.0-29-generic ядро.
- сделать следующее, но не удалось:
$ make -C /lib/modules/$(uname -r)/build M=$PWD modules make: Entering directory '/usr/src/linux-headers-5.3.0-29-generic' CC [M] /home/spacer/kernel/bluetooth/hci_vhci.o /home/spacer/kernel/bluetooth/hci_vhci.c: In function ‘vhci_create_device’: /home/spacer/kernel/bluetooth/hci_vhci.c:134:2: warning: dereferencing ‘void *’ pointer 134 | *skb_put(skb, 1) = 0xff; | ^~~~~~~~~~~~~~~~ /home/spacer/kernel/bluetooth/hci_vhci.c:134:19: error: invalid use of void expression 134 | *skb_put(skb, 1) = 0xff; | ^ /home/spacer/kernel/bluetooth/hci_vhci.c:135:2: warning: dereferencing ‘void *’ pointer 135 | *skb_put(skb, 1) = dev_type; | ^~~~~~~~~~~~~~~~ /home/spacer/kernel/bluetooth/hci_vhci.c:135:19: error: invalid use of void expression 135 | *skb_put(skb, 1) = dev_type; | ^ /home/spacer/kernel/bluetooth/hci_vhci.c: In function ‘vhci_get_user’: /home/spacer/kernel/bluetooth/hci_vhci.c:203:19: error: ‘HCI_BREDR’ undeclared (first use in this function) 203 | if (dev_type != HCI_BREDR && dev_type != HCI_AMP) | ^~~~~~~~~ /home/spacer/kernel/bluetooth/hci_vhci.c:203:19: note: each undeclared identifier is reported only once for each function it appears in /home/spacer/kernel/bluetooth/hci_vhci.c: In function ‘vhci_open_timeout’: /home/spacer/kernel/bluetooth/hci_vhci.c:307:43: error: ‘HCI_BREDR’ undeclared (first use in this function) 307 | vhci_create_device(data, amp ? HCI_AMP : HCI_BREDR); | ^~~~~~~~~ /home/spacer/kernel/bluetooth/hci_vhci.c: At top level: /home/spacer/kernel/bluetooth/hci_vhci.c:352:3: error: ‘const struct file_operations’ has no member named ‘aio_write’ 352 | .aio_write = vhci_write, | ^~~~~~~~~ /home/spacer/kernel/bluetooth/hci_vhci.c:352:15: error: positional initialization of field in ‘struct’ declared with ‘designated_init’ attribute [-Werror=designated-init] 352 | .aio_write = vhci_write, | ^~~~~~~~~~ /home/spacer/kernel/bluetooth/hci_vhci.c:352:15: note: (near initialization for ‘vhci_fops’) /home/spacer/kernel/bluetooth/hci_vhci.c:352:15: error: initialization of ‘ssize_t (*)(struct file *, const char *, size_t, loff_t *)’ from incompatible pointer type ‘ssize_t (*)(struct kiocb *, const struct iovec *, long unsigned int, loff_t)’ [-Werror=incompatible-pointer-types] /home/spacer/kernel/bluetooth/hci_vhci.c:352:15: note: (near initialization for ‘vhci_fops.write’) cc1: some warnings being treated as errors make[1]: *** [scripts/Makefile.build:290: /home/spacer/kernel/bluetooth/hci_vhci.o] Error 1 make: *** [Makefile:1655: _module_/home/spacer/kernel/bluetooth] Error 2 make: Leaving directory '/usr/src/linux-headers-5.3.0-29-generic'
6 ответов
Существует несколько версий этого устройства с одним и тем же идентификатором USB. По некоторым данным, это подделка, но подозреваю, что это только более новые модели чипа.
Есть несколько причуд, необходимых для того, чтобы чип заработал, и нужно исправить код ядра, отвечающий за включение этих причуд для тестирования этих новых моделей:
--- drivers/bluetooth/btusb.c.old 2020-03-31 19:14:11.765239911 +0100 +++ drivers/bluetooth/btusb.c 2020-03-31 19:22:17.035003199 +0100 @@ -1643,4 +1643,6 @@ /* Detect controllers which aren't real CSR ones. */ if (le16_to_cpu(rp->manufacturer) != 10 || + le16_to_cpu(rp->lmp_subver) == 0x0811 || + le16_to_cpu(rp->lmp_subver) == 0x0812 || le16_to_cpu(rp->lmp_subver) == 0x0c5c) < /* Clear the reset quirk since this is not an actual @@ -3873,5 +3875,5 @@ /* Fake CSR devices with broken commands */ - if (bcdDevice setup = btusb_setup_csr;
Я не даю гарантии, что это решит проблему для всех новых моделей, и могут потребоваться дополнительные тесты для включения большего количества подверсий LMP и номеров bcdDevice. Однако вышеперечисленное работает для некоторых пользователей, которые использовали более новые модели Bluetooth 4.0, и для меня, использующих модель Bluetooth 5.0.
Он вызывает устройство, как показано здесь:
# hciconfig hci0: Type: Primary Bus: USB BD Address: 00:1A:7D:DA:71:11 ACL MTU: 679:9 SCO MTU: 48:16 UP RUNNING RX bytes:56724 acl:29 sco:0 events:7890 errors:0 TX bytes:4782028 acl:7788 sco:0 commands:84 errors:0
Это было протестировано с ядром 5.5.13 и дешевым ключом Bluetooth 5.0 от AliExpress, и теперь оно позволяет мне подключаться к гарнитуре Bluetooth 5.0.
Кстати, ключ отлично работает под Windows 10.
Дополнение: отключение автоматической приостановки USB
Автоматическая приостановка USB-портов может мешать работе USB-ключей Bluetooth. Хотя автоматическая приостановка помогает экономить электроэнергию, и устройства должны быстро выходить из спящего режима сами по себе, это может привести к сбою и ухудшению связи Bluetooth. По умолчанию ядро приостанавливает порты USB через 2 секунды. Это можно отключить либо для всех портов USB, либо только для отдельных, а драйвер Bluetooth USB имеет параметр, который специально управляет этим для подключенных к USB адаптеров Bluetooth. Например, чтобы увидеть текущий статус:
# lsusb Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 005 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 003: ID 062a:3633 MosArt Semiconductor Corp. Full-Speed Mouse Bus 004 Device 002: ID 1b1c:1b39 Corsair Corsair Gaming K65 RGB RAPIDFIRE Keyboard Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub # grep . /sys/bus/usb/devices/7*/power/control /sys/bus/usb/devices/4-1/power/control:on /sys/bus/usb/devices/4-2/power/control:on /sys/bus/usb/devices/5-5/power/control:auto
Здесь мышь и клавиатура всегда включены, но USB-ключ CSR Bluetooth настроен на автоматическую приостановку. Если автоматическая приостановка включена и вызывает проблемы, ее можно протестировать, временно отключив:
# echo on > /sys/bus/usb/devices/5-5/power/control # cat /sys/bus/usb/devices/5-5/power/control on
Когда это помогает, следует отключить его навсегда, и есть несколько способов сделать это:
- Когда вы уже перекомпилируете ядро, лучше всего отключить его с помощью модуля ядра Bluetooth USB, установив для параметра конфигурации CONFIG_BT_HCIBTUSB_AUTOSUSPEND значение N или закомментировав его в файле конфигурации ядра. Это приведет к тому, что драйвер Bluetooth USB отключит автоматическую приостановку по умолчанию для каждого порта, на котором он находит подходящее устройство, и оставит все другие устройства USB без изменений.
- Без перекомпиляции ядра и в том случае, если модуль Bluetooth USB компилирован в ядро, нужно ли это делать с помощью параметра загрузки. Для GRUB отредактируйте /etc/default/grub и добавьте командную строку ядра с помощью btusb.enable_autosuspend = n. Затем обновите конфигурацию grub, запустив update-grub и перезагрузившись.
. GRUB_CMDLINE_LINUX_DEFAULT=". btusb.enable_autosuspend=n" .
- Без перекомпиляции ядра и загрузки модуля Bluetooth USB следует создать файл в /etc/modprobe.d/ для передачи параметра. Затем либо перезагрузите компьютер, либо отключите ключ и удалите модуль ядра с помощью rmmod btusb и перезапустите службу модуля с помощью service systemd-modules-load restart перед повторным подключением ключа.
options btusb enable_autosuspend=n
Дополнение: Включение настройки быстрого подключения
Другой способ улучшения связи Bluetooth является включение Fast Connectable установку bluetoothd демона. Эту настройку можно найти в /etc/bluetooth/main.conf.
. # Permanently enables the Fast Connectable setting for adapters that # support it. When enabled other devices can connect faster to us, # however the tradeoff is increased power consumptions. This feature # will fully work only on kernel version 4.1 and newer. Defaults to # 'false'. FastConnectable = true .
bluetooth модуль определяется как гарнитура
Подключил я значит bluetooth модуль и всё работало нормально.
Но покупался он для подключения к ПК wii-remote и он у меня ни в какую не хотел определятся.
Погуглив немного нашёл способ возможного подключения контроллера.
Для этого надо было с помощью программы zadig установить особые драйвера. Это не помогло.
Но после удаления этих драйверов радиомодуль начал определятся как гарнитура.
В свойствах написано:
Изготовитель: KOGA
модель: dongle
Номер модели: 0001
категория: гарнитура bluetooth
После подключил этот модуль к другому Пк с десяткой, работал нормально
Модуль: DEXP at-bt401
Должен определялся как: радиомодуль csr8510 a 10
Как это можно исправить?
Спасибо
Bluetooth-гарнитура. Цифровой шум при воспроизведении через bluetooth
купил bluetooth-наушники phillips. наушники хорошие, звук отличный. но есть проблема - звук.
Bluetooth гарнитура
Добрый день! Прошу помощи. Есть блютуз гарнитура, индикатора батареи на ней к сожалению нету. .
Bluetooth гарнитура.
Попалась в руки гавнитурка - texet tg-680 к телефону подрубил, побегал, потестил, наигрался -.
Bluetooth гарнитура, шумы
Добрый день! Проблема вот в чем: есть Bluetooth гарнитура Defender HN-B601. Так как у нее были.
Bluetooth кнопка для селфи -> Bluetooth модуль ?
Кто нюхал ? там же обычный блютуз пмодуль на чипе BK2331q и ещё какой-то вариант есть.
Модуль RAM 2Gb определяется как 1Gb
У меня в пк два слота для оперативной памяти, в обоих стоит по 2 гб, но пк показывает только 2 гб.
Bluetooth модуль HC-06
Доброго времени суток, всем. Хотелось бы узнать возможно ли перепрошивать Arduino Nano, через.
Как создать bluetooth соединение, распознанное как bluetooth клавиатура и/или мышь
Хочу написать приложение, которое работает как устройство ввода(клавиатура/мышь), но не требующей.
Как сбросить драйвера Bluetooth адаптера?
Пытался подключить геймпад от PS3 к Пк, и там надо было установить драйвера на блютуз адаптер. С тех пор блютуз адаптер стал называться dongle производитель koga, категория блютуз гарнитура. Пробовал через диспетчер задач удалять устройство, а с ним и драйвера, но ничего не получается. Пытаюсь вернуть драйвера которые виндовс установила при первом подключении адаптера (блютуз можно было включать прямо из настроек).
Пытался ставить драйвера производителя, но они работают некорректно (из настроек блютуз работает через раз, пишет что на пк нет блютуза, но все таки появился значок драйверов производителя в трее с помощью которого можно подключать устройства, однако в устройствах и принтерах он так и числится как dongle блютуз гарнитура, а в диспетчере устройств он находится в категории блютуз, и называется Generic Bluetooth Radio.
Возможно ли вернуть изначальное состояние, как из магазина?
В общем, переустановил винду и донгл обратно стал модулем, как в начале. А работать стало нормально, после того как по ИД адаптера нашел драйвера от Mediatek(Как предлагал Рикардо Санчес).
диспетчер устройств - выбрать устройство ВТ - свойства - драйвер - удалить устройство
ребут
потом винда поставит сама стандартный
Спасибо за ответ, я так уже пробывал. Почему то ничего не меняется. Даже в центре обновления, виндовс для него драйверов не находит.