Командная строка Linux: как принимать пар для устройства Bluetooth без вывода
Есть ли способ соединить устройство в Linux, не требуя булавки (для целей тестирования, поэтому мне нужно, чтобы это было сделано без взаимодействия с пользователем, если у вас есть root-доступ)?
bluez-simple-agent, по-видимому, требует наличия штыря, за исключением некоторых простых устройств, таких как мыши.
Ответы
Ответ 1
Попробуйте установить безопасность на none в файле /etc/bluetooth/hcid.conf
http://linux.die.net/man/5/hcid.conf
Это, вероятно, будет работать только для устройств HCI (мышь, клавиатура, пробел и т.д.). Если у вас есть другой тип устройства, возможно, существует другая, но аналогичная настройка для изменения.
Ответ 2
Ввод PIN-кода на самом деле является устаревшим методом сопряжения, который теперь называется Legacy Pairing. Безопасный простой режим сопряжения доступен в версии Bluetooth v2.1 и более поздних версиях, которая содержит большинство современных устройств Bluetooth. Аутентификация SSPMode обрабатывается стек протоколов Bluetooth и, таким образом, работает без взаимодействия с пользователем.
Вот как можно подключиться к устройству:
# hciconfig hci0 sspmode 1
# hciconfig hci0 sspmode
hci0: Type: BR/EDR Bus: USB
BD Address: AA:BB:CC:DD:EE:FF ACL MTU: 1021:8 SCO MTU: 64:1
Simple Pairing mode: Enabled
# hciconfig hci0 piscan
# sdptool add SP
# hcitool scan
00:11:22:33:44:55 My_Device
# rfcomm connect /dev/rfcomm0 00:11:22:33:44:55 1 &
Connected /dev/rfcomm0 to 00:11:22:33:44:55 on channel 1
Press CTRL-C for hangup
Это установит последовательное соединение с устройством.
Ответ 3
Это работало как прелесть для меня, конечно, для этого нужны привилегии суперпользователя:-)
# hcitool cc <target-bdaddr>; hcitool auth <target-bdaddr>
Чтобы получить <target-bdaddr>
, вы можете выполнить команду ниже:
$ hcitool scan
Примечание. Исключайте #
и $
, поскольку они являются запросами командной строки.
Предоставлено
Ответ 4
Для Ubuntu 14.04 и Android попробуйте:
hcitool scan #get hardware address
sudo bluetooth-agent PIN HARDWARE-ADDRESS
На Android-устройстве появится диалоговое окно PIN-кода. Введите тот же PIN-код.
Примечание: может потребоваться sudo apt-get install bluez-utils
.
Примечание2: Если PIN-код не отображается, сначала попробуйте выполнить сопряжение с Android (не удастся из-за неправильного PIN-кода). Затем повторите попытку, как описано выше.
Ответ 5
выполните шаги (CentOs):
- bluetoothctl
- устройства
- просмотр
- пара 34: 88: 5D: 51: 5A: 95 (34: 88: 5D: 51: 5A: 95 - это код моего устройства, замените его на свой).
- доверие 34: 88: 5D: 51: 5A: 95
- connect 34: 88: 5D: 51: 5A: 95
Если вы хотите получить более подробную информацию
https://www.youtube.com/watch?v=CB1E4Ir3AV4
Ответ 6
~ $ hciconfig noauth
Это должно сделать трюк (я использую bluez 5.23, и там нет более простых и насыщенных оттенков). Тем не менее, я пытаюсь найти способ внесения изменений в постоянный hciconfig, поскольку после выключения питания и последующего включения снова требуется аутентификация. Пока что изменения в hciconfig все равно остаются неизменными при перезагрузке. он возвращается обратно только при отключении питания. Если кто-то нашел способ сделать hciconfig постоянным, дайте мне знать!