Debian: Консоль прямого входа через Bluetooth - PullRequest
6 голосов
/ 01 апреля 2012

Некоторое время назад у меня появился новый одноплатный компьютер с Debian, который в конечном итоге станет «сердцем» проекта в школе.

Сейчас я получаю доступ к бортовому дистрибутивуиспользуя проводную сеть и SSH.Это нормально, пока вещь лежит на моем рабочем столе, но не тогда, когда она встроена в робота в том направлении, на которое она нацелена.Мне удалось установить соединение Bluetooth с помощью дешевого адаптера USB-BT, но теперь я застрял на устройстве rfcomm и не знаю, что делать дальше.

Больше всего мне хотелось бы иметь виртуальныйПоследовательный порт, обеспечиваемый соединением Bluetooth, ведет себя так же, как настоящий последовательный порт.Чтобы я мог войти в систему с помощью minicom (или чего-то подобного) и получить полный доступ ко всему на плате.

При поиске в Интернете все, что я мог найти, - это руководства о том, как настроить коммутируемую сеть смобильные телефоны и подобные темы, но ничего о консоли Bluetooth.Возможно, я только что попробовал неправильные ключевые слова.

Я бы очень признателен за подсказку, как это сделать.

Спасибо, Филипп

Ответы [ 2 ]

9 голосов
/ 05 апреля 2012

Полагаю, я нашел приемлемое решение. Пропущенным ключевым словом было «getty» и некоторая клейкая логика в сценарии оболочки:

#!/bin/sh

# Make sure to have rfcomm loaded
modprobe rfcomm

# Turn on and reset bluetooth dongle
hciconfig hci0 up
hciconfig hci0 reset

# Accept incoming connections (in background)
rfcomm watch 0 1 &

# Loop forever
while true
do
  # Wait for our socket to pop in
  while [ ! -c /dev/rfcomm0 ]
  do
    sleep 5
  done

  # Present a login shell
  getty -n -l /bin/bash 115200 /dev/rfcomm0 vt102
done

Я не очень уверен в этом, так как он кажется не очень стабильным (иногда невозможно подключиться после загрузки ...), но он работает быстро и относительно легко. Так что я доволен:)

С уважением, Philipp

2 голосов
/ 04 сентября 2014

У меня есть последовательная связь Bluetooth между моим компьютером и роботом (черный beaglebone).Я очень счастлив, потому что мне не нужно ничего, кроме дешевого Bluetooth USB-ключа на стороне робота, чтобы получить удаленный терминал.Мой компьютер также имеет свой Bluetooth.

У меня сработали следующие шаги:

Сначала вам нужно подключить устройства.Сопряжение относительно легко.Я позвоню клиенту (который начинает говорить - робот) и серверу (который отвечает)

Вы должны настроить сервер раньше: Сторона сервера (от имени 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 .... будет 'прослушивать' входящие соединения.В случае потери соединения команда перезапустит новое состояние прослушивания.

...