Как подключить bluetooth-клавиатуру [РЕШЕНО]?
Купил bluetooth-клавиатуру для планшета (gentoo для него в процессе сборки).
Пытаюсь для начала подключить к десктопу.
Wiki говорит, что нужно подключать через гравические утилиты. Другие инструкции относятся к 2007-2009 годам и совершенно устарели (т.к bt ломали каждый год).
Графические утилиты оказались ни на что не способны кроме передачи файлов (валятся разнообразные ошибки с dbus)
Например:
KUrl("bluetooth://") KUrl("bluetooth://") KUrl("bluetooth://") KUrl("bluetooth://") dolphin(6138)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig: Error response: "Cannot allocate memory" Error response: "Cannot allocate memory" ^C
тестовые проги bluez тоже:
dbus.exceptions.DBusException: org.bluez.Error.DoesNotExist: Does Not Exist
Подскажите, как его настроить?
Будет достаточно просто коды клавиш получать, остальное сделать не проблема.
Может, где-то можно достать hidd?
P.S
В ebuild оно обозначено в закоменченном missing flags. Это баг?
Собрал вручную с поддержкой hidd (в хомяке, без install для проверки), набрал ./compat/hidd --connect
Как его звпустить автоматически при загрузке?
Обновление:
Вышеописанный метод работал только если клавиатура в режиме сопряжения, хотя в андройде подключение происходит всегда. ЧЯДНТ?
Обнаружил следующее: после сопряжения клавиатура пытается подключиться к хосту при нажатии любой кнопки. В андройде это работает, а в gentoo - не совсем. После пересборки bluez и blueman на десктопе клавиатура подключилась через blueman. А на плашнете этот blueman только значёк показывает (Логи позже залью) и запрос сопряжения. При выборе вариантов сопряжения ничего не происходило. Через gnome-bluetooth удалось установить сопряжение "с устройством (null)", как было написано, после чего bt работать перестал. После перезагрузки удалось подключить клавиатуру 1 раз даже (подключение со стороны клавиатуры), но после отключения и повторной попытки работать снова перестало. Как выяснилось, при подключении выдаёт следующее;
bluetoothd[2223]: input/server.c:connect_event_cb() Incoming connection from 0C:FC:83:81:49:2A on PSM 17 bluetoothd[2223]: input/server.c:connect_event_cb() Incoming connection from 0C:FC:83:81:49:2A on PSM 19 *** glibc detected *** bluetoothd: free(): invalid next size (fast): 0x41dd0b98 *** *** glibc detected *** bluetoothd: malloc(): memory corruption: 0x41dd0bb8 ***
Руки бы им пообомать!
Гугл выдал похожее на Nexus 7, но там bcm4330 и он вообще не работал, а здесь сбой только при входящем подключении. Случаи скорее всего не связанные.
gdb ошибку не ловит, пишет Corrupted stack?
Решение: выпилить шифрование для hid из bluez вручную и важные пароли вводить с экрана.
Закоменчиваем всё тело if (req->subclass & 0x40) в input/device.c в исходниках bluez-4.101.
- Для комментирования войдите или зарегистрируйтесь
Поднимаю тему
Клавиатура подключается через hidd, собранный через bluez, только если она в режиме сопряжения. Использовал в таком неудобном режиме целый месяц, и думал, что такое поведение - норма для моей клавиатуры и адаптера. Однако, только что я подключил клавиатуру к китайскому планшету через этот же адаптер (родной bt на нём сломан при падении) и обнаружил, что она подключается и без режима сопряжения и таким образом работает сразу при загрузке. Как мне сделать такое в GNU/Linux?
Локальный оверлей растёт
может тут?
может тут?
Честно говоря, у меня вообще
Честно говоря, у меня вообще нет acpi на планшете.
Локальный оверлей растёт
bluetoothd
bluetoothd log:
Локальный оверлей растёт