[Bluez 5.44] Удалены rfcomm, hcitool, hciconfig и др.!

В версии 5.44 пакета bluez-utils по-умолчанию отсутствуют очень полезные инструменты: hciconfig, hcitool, rfcomm.
http://git.kernel.org/cgit/bluetooth/bluez.git/commit/?id=b1eb2c4cd057624312e0412f6c4be000f7fc3617
Раньше, для подключения к устройсту по интерфейсу UART через bluetooth достаточно было включить, собственно, сам bluetooth и выполнить:
# rfcomm bind /dev/rfcomm0 xx:xx:xx:xx:xx:xx
и можно спокойно подключаться с помощью терминальной программы (например, picocom).
Сейчас это не доступно рядовому пользователю. Во всех найденных мной примерах используется именно rfcomm.
Может есть другие способы создать устройство для общения (то самое /dev/rfcomm0)?
Как дальше жить?
А с этой информацией пробовал знакомиться?
Конечно, это было моей отправной точкой. Там, между прочим, используются программы hcitool и hciconfig, которых уже нет :(
baranovskiykonstantin
Конечно, это было моей отправной точкой. Там, между прочим, используются программы hcitool и hciconfig, которых уже нет :(
Там же явно написано deprecated , но если ты без них не можешь, там дана ссылка на AUR - bluez-utils-compat ...
Some tools such as hcitool and hciconfig have been deprecated upstream, and are no longer included in bluez-utils. Since these tools will no longer updated, it is recommended that scripts be updated to avoid using them. If you still desire to use them, install bluez-utils-compat AUR. See FS#53110 and the Bluez mailing list for more information.
Ошибки не исчезают с опытом - они просто умнеют
vasek
Там же явно написано deprecated , но если ты без них не можешь, там дана ссылка на AUR - bluez-utils-compat ...
Когда я читал статью этого ещё не было:
https://wiki.archlinux.org/index.php?title=Bluetooth&diff=prev&oldid=469587
Спасибо за помощь! Вопрос можно считать закрытым.
baranovskiykonstantin, а не лучше освоить bluetoothctl .....
Ошибки не исчезают с опытом - они просто умнеют
vasek, может и лучше, но я не могу добиться того же результата с помощью только лишь bluetoothctl.
Имеется некоторое устройство, которое конфигурируется через UART. Чтобы избавиться от проводного соединения использую bluetooth модуль HC-05 и с помощью встроенного в ноутбук bluetooth контроллера подключаюсь, запускаю picocom, отправляю команды и получаю ответы.
Собственно весь процесс выглядит приблизительно так:

$ bluetoothctl
[bluetooth]# power on
[bluetooth]# agent on
[bluetooth]# scan on
[NEW] Device xx:xx:xx:xx:xx:xx
[bluetooth]# pair xx:xx:xx:xx:xx:xx
[agent] Enter PIN code: 1234
[bluetooth]# quit
$ sudo rfcomm bind /dev/rfcomm0 xx:xx:xx:xx:xx:xx
$ sudo picocom --omap crcrlf /dev/rfcomm0
...
дальше запускается терминал и я спокойно общаюсь с устройством.
Разумеется, спаривать устройства нужно только один раз.
Что нужно выполнить в bluetoothctl, чтобы получить /dev/rfcomm0, я не знаю.
Более того, если попытаться подключиться к устройству через bluetoothctl, вываливается ошибка:
[bluetooth]# connect 98:D3:32:30:43:6B
Attempting to connect to 98:D3:32:30:43:6B
[CHG] Device 98:D3:32:30:43:6B Connected: yes
[CHG] Device 98:D3:32:30:43:6B ServicesResolved: yes
Failed to connect: org.bluez.Error.NotAvailable
[CHG] Device 98:D3:32:30:43:6B ServicesResolved: no
[CHG] Device 98:D3:32:30:43:6B Connected: no
[bluetooth]#
Пытался найти решение этой проблемы, но так ничего и не вышло.
Может кто подскажет другой способ?
baranovskiykonstantin
Пытался найти решение этой проблемы, но так ничего и не вышло.
Может кто подскажет другой способ?
Думаю просто так, без всякой альтернативы, это выкинуть не могли …...
Этим не пользуюсь, устройств для проверки под рукой нет и покапаться в этом поэтому не могу
Но на BBS есть аналогичный топик — решения там пока нет, но заходи периодически, может там кто то и ответит.
Есть также описание BlueZ-5.43 (где уже этих утилит то же не было), где предлагается дополнительно содать конфиги /etc/bluetooth/rfcomm.conf и /etc/bluetooth/uart.conf ….... но так и не понял — а получится ли …???
Ошибки не исчезают с опытом - они просто умнеют
1. Спаривание устройств прошло успешно? Если да, а "connect" не срабатывает, убедитесь, что это устройство уже не подключено к какому-то другому, с которым оно прежде работало. Например, мой смартфон каким-то образом всегда получает преимущество перед компьютером при подключении гарнитуры, и его приходится отключать вручную. Можно еще попробовать сделать его доверенным (команда trust <dev>). Ну и "включить-выключить" никто еще не отменял.
2. Не факт, что при подключении асинхронный порт будет называться /dev/rfcomm0. Лучше уточнить это посмотрев на вывод dmesg.
vasek
Но на BBS есть аналогичный топик — решения там пока нет, но заходи периодически, может там кто то и ответит.
Спасибо за наводку, буду следить.

kurych
1. Спаривание устройств прошло успешно? Если да, а "connect" не срабатывает, убедитесь, что это устройство уже не подключено к какому-то другому, с которым оно прежде работало. Например, мой смартфон каким-то образом всегда получает преимущество перед компьютером при подключении гарнитуры, и его приходится отключать вручную. Можно еще попробовать сделать его доверенным (команда trust <dev>). Ну и "включить-выключить" никто еще не отменял.
Спаривание проходит без проблем, в радиусе действия bluetooth есть только моё устройство и ноут. Пробовал установить флаг доверия, но это ничего не изменило, к сожалению.
kurych
2. Не факт, что при подключении асинхронный порт будет называться /dev/rfcomm0. Лучше уточнить это посмотрев на вывод dmesg.
Да, я это понимаю.

Перебрал все доступные инструменты из пакета bluez-utils с параметром --help, чтобы выяснить их назначение. Наиболее интересным показался btattach:
btattach - Bluetooth serial utility
Usage:
	btattach [options]
options:
	-B, --bredr <device>   Attach Primary controller
	-A, --amp <device>     Attach AMP controller
	-P, --protocol <proto> Specify protocol type
	-S, --speed <baudrate> Specify which baudrate to use
	-N, --noflowctl        Disable flow control
	-h, --help             Show help options
Но никакого толку получить не удалось.
 
Зарегистрироваться или войдите чтобы оставить сообщение.