首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RFCOMM设备似乎丢失了(dev/RFCOMM 0)

RFCOMM设备似乎丢失了(dev/RFCOMM 0)
EN

Unix & Linux用户
提问于 2014-05-08 19:12:16
回答 2查看 13.8K关注 0票数 5

我试图通过蓝牙发送和接收串行命令。我安装了pyBluez库。问题是,虽然存在rfcomm.conf,但/dev/目录中没有rfcomm0。我重新启动但没有改变。

如果运行以下操作,将获得拒绝权限错误。

代码语言:javascript
复制
sudo echo "This is a test" > /dev/rfcomm0

为什么在连接usb蓝牙模块之后,rfcomm不自动添加到/dev?蓝牙模块是兼容的,我可以通过命令行扫描和查找设备。布卢兹和布卢兹已经安装好了。

EN

回答 2

Unix & Linux用户

发布于 2017-12-10 23:05:48

即使蓝牙服务已经启动,/dev/rfcomm0设备也不会自动出现。

至少,蓝牙子系统需要知道蓝牙设备的地址及其上的信道,以便特定的/dev/rfcomm*设备名称可以绑定到特定的蓝牙device+channel组合。

您可以使用rfcomm bind 0 <bdaddr> [channel]/dev/rfcomm0进行绑定。如果不指定频道号,默认情况下将使用通道1。如果您的rfcomm版本仍然支持/etc/bluetooth/rfcomm.conf文件,并且您有写入它的/dev/rfcomm0的地址和通道信息,那么您可以从命令中省略地址和通道信息--但是仍然需要使用该命令来进行绑定。

较新版本的BlueZ工具似乎不再记录/etc/bluetooth/rfcomm.conf文件。可能您必须始终使用rfcomm bind命令的完整形式来设置绑定。您可能需要将这些命令添加到/etc/rc.local或某些自定义启动脚本中,以使它们在启动时自动执行,因为关联不会在重新启动过程中持续存在。

BlueZ内部的最后一次重大重建似乎使我们失去了一些与RFCOMM相关的特性,比如/etc/bluetooth/rfcomm.conf文件。但是至少rfcomm命令仍然可用,并且可以完成这项工作。

票数 3
EN

Unix & Linux用户

发布于 2015-07-18 16:16:04

为什么这不是自动完成的?首先,蓝牙服务需要启动一个守护进程,如果它不在init列表中,则必须进入终端并手动启动它,直到重新配置init列表才能包含它。

这样做的原因是,在您承诺在计算机上将其全部自动化之前,可以测试您的配置。这背后的理由是基于Unix关于操作系统应该如何工作、用户和组如何分配通信权等概念。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/128531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档