我正在尝试在 Linux AKA 上启用虚拟串行端口/dev/rfcomm0
我正在使用“rfcomm”命令,但它只在激活某些 rfcomm 功能时起作用。我不需要它。
我只需要/dev/rfcomm0
在系统中使用它。
我尝试启用 rfcomm 但失败了。
nov25-1@nov251-desktop:~$ systemctl enable rfcomm
无法启用单元:单元文件 rfcomm.service 不存在。o。
我正在请求一个 Linux 命令来/dev/rfcomm0
在 Linux 上设置“虚拟串行”端口。
请 - 您的贡献将通过回答问题而得到极大的赞赏。以“你为什么要这样做”为风格的回复对解决问题没有帮助。
答案1
这些/dev/rfcomm*
设备的设计尽可能模拟物理串行端口连接,因此每个现有/dev/rfcomm*
设备在存在时仅与一个设备相关联。(这就像一个带有插入设备的电缆的串行端口。)
如果您的目标是接受传入连接,则一个设备仍然会一次只接受一个连接:如果您想要并行服务两个传入的 RFCOMM 连接,则必须设置两个设备。
如果没有rfcomm
命令来描述您想要对特定/dev/rfcomm*
设备执行的操作,则不会创建该设备。
您想接受传入的 RFCOMM 连接,还是建立传出的 RFCOMM 连接?
范围内可能有多个具有 RFCOMM 功能的设备:您是否允许所有设备连接,还是只允许特定的设备连接?
对于传出连接,没有选择:你必须指定您想要连接的设备的蓝牙地址:
rfcomm connect /dev/rfcomm0 11:22:33:44:55:66
这将触发连接尝试,并在必要时进行配对。
或者,如果您只想/dev/rfcomm0
在某些应用程序尝试使用时自动连接到特定的蓝牙 RFCOMM 设备/dev/rfcomm0
,或者将未来来自特定蓝牙设备的传入 RFCOMM 连接路由到/dev/rfcomm0
:
rfcomm bind /dev/rfcomm0 11:22:33:44:55:66
这不会触发连接尝试。
对于传入连接,您可以选择不指定另一端的蓝牙地址:
rfcomm listen /dev/rfcomm0
会接受一RFCOMM 与未指定设备建立连接,一旦连接终止就会退出。
rfcomm watch /dev/rfcomm0
将逐个接受来自未指定设备的多个 RFCOMM 连接,直到命令rfcomm watch
终止。
如果你真的只是需要设备节点存在完全不关心它的功能,那么你可以做一个
mknod /dev/rfcomm0 c 1 3
这将创建设备节点,并指定它将连接到驱动程序/dev/null
;这应该是安全的。