告訴 NetworkManager 忽略或不探測 rfcomm0
我正在嘗試通過藍牙遠端連接到系統,但遇到了問題。這就是我想要做的……
在遠端設備上,我希望執行以下內容:
rfcomm -r watch 0 3 getty -L {} 9600
它的作用是:在藍牙設備“0”上觀察通道 3 上的 rfcomm 連接。當出現連接時,執行
getty -L {} 9600
並用創建的設備替換“{}”。(通常/dev/rfcomm0
在這種情況下)然後我應該能夠通過在我的筆記型電腦上執行來連接到遠端設備:(
rfcomm connect 0 11:22:33:44:55:66 3
告訴它使用設備“0”連接到通道 3 上的藍牙地址“11:22:33:44:55:66”)我然後應該通過鍵入來獲得遠端設備上的串列控制台screen /dev/rfcomm0
。問題…
除了我筆記型電腦上的 NetworkManager 以某種方式“看到”連接並嘗試探測它,就好像它是調製解調器一樣,一切都應該工作正常。它發送
AT+GCAP
字元串,~x�~
但遠端端正在執行 getty 並期待登錄憑據。我可以通過首先建立 rfcomm0 連接來使其工作:
remote$ rfcomm -r watch 0 3 laptop$ rfcomm connect 0 11:22:33:44:55:66 3
等待大約 60 秒,讓 NetworkManger 停止探測
/dev/rfcomm0
remote$ getty -L rfcomm0 9600 laptop$ screen /dev/rfcomm0 9600
但是,為了做到這一點,我已經需要對遠端設備進行控制台訪問才能執行 getty comamnd
問題
那麼,有沒有辦法告訴 NetworkManager 忽略
/dev/rfcomm
或告訴它不要探測設備?
這是一個非常古老的問題,但如果有人最終通過Google來到這裡,一個對我有用的簡單解決方案是創建一個
/etc/udev/rules.d/99-rfcomm.rules
包含以下內容的文件:# ignore rfcomm0 device for now KERNEL=="rfcomm0", ENV{ID_MM_DEVICE_IGNORE}="1"
ModemManager 將來會忽略該設備。注意:這是一條可以匹配任何 rfcomm 設備的包羅萬象的規則,因此如果您將來真的想將其用作調製解調器,則必須再次禁用該規則。