不久前,我有一台运行Debian的新单板计算机,它最终将成为学校项目的"核心"。
现在,我正在使用有线网络和ssh访问板载发行版。只要这个东西放在我的桌面上,这就可以了,但当它被内置到机器人的目标位置时就不行了。我设法用一个便宜的USB-BT适配器建立了蓝牙连接,但现在我被一个rfcomm设备卡住了,不知道如何继续。
我最希望的是蓝牙连接提供的虚拟串行端口的行为与真正的串行端口一样。这样我就可以使用minicom(或类似的东西)登录,并完全访问板上的所有内容。
在网上搜索时,我能找到的只有关于如何使用手机设置拨号网络的指南和类似主题,但没有关于蓝牙控制台的指南。也许我只是试错了关键词。
我真的非常感谢任何关于如何做到这一点的提示。
谢谢,Philipp
我想我已经找到了一个可行的解决方案。缺少的关键字是"getty"和shell脚本中的一些粘合逻辑:
#!/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
我的电脑和机器人之间有一个蓝牙串行链接(beaglebone black)。我很高兴,因为我只需要在机器人端安装一个便宜的蓝牙USB加密狗就可以获得远程终端。我的电脑也有蓝牙。
下面的步骤对我有效:
首先你必须配对设备。配对相对容易。我会打电话给客户(谁开始说话-机器人)和服务器(谁回复)
您必须先设置服务器,然后:服务器端(作为根):
sdptool add --channel=3 SP
mknod -m 666 /dev/rfcomm0 c 216 0
rfcomm watch /dev/rfcomm0 3 /sbin/agetty rfcomm0 115200 linux
客户端(作为根):
sdptool add --channel=3 SP
rfcomm connect /dev/rfcomm0 [SERVER_ADDR] 3
现在打开客户端上的串行终端:
screen /dev/rfcomm0 115200
评论:
当您调用最后一个命令rfcomm-connect。。。在客户端中,将创建一个设备/dev/rfcomm0,并将其关联到服务器/dev/recomm0。这表示两个之间的串行链路
最后一个服务器命令:rfcomm watch。。。。将"侦听"传入连接。如果连接丢失,该命令将重新启动一个新的"侦听"状态。