
У меня есть USB-адаптер Bluetooth на системе Linux 3.12.5 ARM. Я пытаюсь создать последовательное соединение Bluetooth с моего телефона Android на USB-адаптере на Linux. Я ссылалсяэтот вопроссреди других источников в моих попытках. Любые предложения были бы замечательными.
Мне удалось сделать его совместимым с помощью:
bluetooth-agent 0000 &
И затем сопряжение через с моего телефона. Затем я создаю последовательный порт на устройстве через:
sudo mknod -m 666 /dev/rfcomm0 c 216 0
sudo sdptool add --channel=22 SP
sudo rfcomm listen /dev/rfcomm 22
Затем с телефона я пытаюсь подключиться к последовательному порту с помощью BlueTerm. Однако соединение сразу же теряется. На стороне Linux в терминале появляется следующее:
Waiting for connection on channel 22
Authorizing request for /org/bluez/317/hci0/dev_xx_xx_xx_xx_00_46
Похоже, что телефон не отключается от соединения. Что же происходит?
решение1
Мне помогли следующие шаги:
Сначала вам нужно спарить устройства. Спаривание относительно простое. Я позвоню клиенту (который начинает говорить) и серверу (который отвечает)
Перед этим вам необходимо настроить сервер: Сторона сервера (как root):
sdptool add --channel=3 SP
mknod -m 666 /dev/rfcomm0 c 216 0
rfcomm watch /dev/rfcomm0 3 /sbin/agetty rfcomm0 115200 linux
Клиентская сторона (как root):
sdptool add --channel=3 SP
rfcomm connect /dev/rfcomm0 [SERVER_ADDR] 3
Теперь, чтобы открыть последовательный терминал на клиенте:
screen /dev/rfcomm0 115200
Комментарии:
При вызове последней команды rfcomm connect
... в клиенте /dev/rfcomm0
будет создано устройство, связанное с сервером /dev/recomm0
. Это представляет собой последовательную связь между обоими
Последняя команда сервера: rfcomm watch
.... будет «слушать» входящие соединения. При потере соединения команда перезапустит новое состояние «слушать».