无法创建 RFCOMM TTY:地址已被使用

无法创建 RFCOMM TTY:地址已被使用

当我发出以下错误时发生sudo rfcomm listen rfcomm0

无法创建 RFCOMM TTY:地址已被使用

我事先在 Python 程序中收到了一些串行蓝牙数据。因此,似乎有些东西卡住了。

然后我输入sudo rfcomm release rfcomm0以下内容:

无法释放设备:操作已在进行中

我该如何进行硬发布?目前让它重新运行的唯一方法是重新启动。

答案1

好的,因为重新启动很烦人,我尝试了两种方法。

  • 创建另一个设备并将蓝牙绑定到它。然后在程序中使用新的设备。

打开 /etc/bluetooth/rfcomm.conf 并添加另一个设备。

rfcomm0 { # 启动时自动绑定设备 bind no; # 设备的蓝牙地址 device 00:06:66:68:20:61; # 连接的 RFCOMM 通道 channel 1; # 连接的描述 comment “这是设备 1 的串口。”; }

rfcomm2 { # 启动时自动绑定设备 bind no; # 设备的蓝牙地址 device 20:15:12:08:62:95; # 连接的 RFCOMM 通道 channel 1; # 连接的描述 comment “这是设备 1 的串口。”; }

rfcomm3 { # 启动时自动绑定设备 bind no; # 设备的蓝牙地址 device 20:15:12:08:62:95; # 连接的 RFCOMM 通道 channel 1; # 连接的描述 comment “这是设备 1 的串口。”; }

然后重新启动蓝牙服务:

userk@dopamine:~$ sudo rfcomm bind 2 DEV_ADDR CHANNEL
  • 答案

由于 Ubuntu 中的其他进程,Rfcomm 无法释放设备。检查哪一个

userk@dopamine:~$ sudo lsof | grep /dev/rfcomm2

MATLAB    5554 6868            userk  514u      CHR              216,2       0t0        603 /dev/rfcomm2

杀了它!!

userk@dopamine:~$ ps -ax | grep MATLAB
 7684 pts/5    Sl     0:39 /usr/local/MATLAB/R2015b/bin/glnxa64/MATLAB
 7873 pts/5    S+     0:00 grep --color=auto MATLAB

userk@dopamine:~$ kill -9 7684

无需强制重启!希望对您有帮助

答案2

这里已经很晚了,但我在 Ubuntu 16.04 上遇到了同样的问题。

我做了以下事情:

sudo service bluetooth restart

这给了我错误:

Warning: bluetooth.service changed on disk. Run 'systemctl daemon-reload' to reload units.

运行警告中建议的命令后,我能够成功重新启动蓝牙服务并开始监听端口。

我怀疑在我的情况下我改变了配置(bluetoothd使用--compat 参数运行)因此 init 系统必须重新加载。

相关内容