告诉NetworkManager忽略或不探测rfcomm0

我试图通过蓝牙远程连接到系统,但遇到问题。 这是我正在做的事情…

在远程设备上,我想要运行以下命令: rfcomm -r watch 0 3 getty -L {} 9600

具体做法是:在蓝牙设备“0”上观察通道3上的rfcomm连接。发生问题时,运行getty -L {} 9600并用创build的设备replace“{}”。 (在这种情况下通常是/dev/rfcomm0

然后,我应该能够连接到我的笔记本电脑上运行远程设备: rfcomm connect 0 11:22:33:44:55:66 3 (告诉它使用设备“0”连接到蓝牙地址“11: 22:33:44:55:66“)然后通过inputscreen /dev/rfcomm0来获得远程设备上的串口控制台。

问题…

除了我的笔记本电脑上的NetworkManager以某种方式“看到”连接并试图探测它,就好像它是一个调制解调器,一切都应该正常工作。 它发送AT+GCAPstring和~x ~但远程~x ~在运行getty并期待login凭据。

我可以通过首先创buildrfcomm0连接来实现它:

 remote$ rfcomm -r watch 0 3 laptop$ rfcomm connect 0 11:22:33:44:55:66 3 

NetworkManger等待大约60秒以停止探测/dev/rfcomm0

 remote$ getty -L rfcomm0 9600 laptop$ screen /dev/rfcomm0 9600 

但是,为了做到这一点,我已经需要控制台访问远程设备以运行getty comamnd

那么,有没有办法告诉NetworkManager忽略/dev/rfcomm或告诉它不要探测设备?

这是一个非常古老的问题,但如果有人通过Google来到这里,那么一个简单的解决scheme就是创build一个文件/etc/udev/rules.d/99-rfcomm.rules ,内容如下:

 # ignore rfcomm0 device for now KERNEL=="rfcomm0", ENV{ID_MM_DEVICE_IGNORE}="1" 

ModemManager将来会忽略这个设备。 注意:这是一个全面的规则,可以匹配任何rfcomm设备,所以如果你真的想在将来使用它作为调制解调器,你将不得不再次禁用规则。