
私が使用しているデバイスは、usb-comシリアルアダプタを介して私のLinux(Fedora21)PCに接続されています。デバイスが接続され、システムに /dev/ttyACM0 が生成されると、システムは初期化のために一連のモデム AT コマンドを送信します。
私のデバイスはモデムではないので、その動作を無効にしたいと思います。
もしそうなら、問題はこれらの検出を無効にする方法です。
答え1
ポートの調査は、NetworkManagerファミリの一部であるModemManagerである可能性が高いです。
システムにモデム(クラシックまたはwwan)がインストールされていない場合は、最も簡単な方法はシステムからModemManagerをアンインストールすることです。そのようなモデムがある場合は、udevルールを追加してデバイスがモデムではなく、それを調べてはいけないことをModemManagerに通知できます。
ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", ENV{ID_MM_DEVICE_IGNORE}="1"
1234
デバイスのベンダーIDと製品IDはどこにあります(次を使用して5678
見つけることができます)lsusb
答え2
これは--filter-policy=strict
、ModemManager 1.10.0(Ubuntu 18.04)を使用するのに役立つソリューションです。
ModemManager -V
もっと学ぶことができます:一般的なudevタグ
ファイルを作成し、/etc/udev/rules.d/49-stm32.rules
次の内容を追加します。
# 0483:5740 - STM32 in USB Serial Mode (CN5)
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ENV{ID_MM_TTY_BLACKLIST}="1"
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ENV{MTP_NO_PROBE}="1"
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ENV{ID_MM_PORT_IGNORE}="1"
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ENV{ID_MM_TTY_MANUAL_SCAN_ONLY}="1"
ファイルを保存して実行した後:
sudo udevadm control --reload-rules
そして(必要ないかもしれません):
sudo systemctl restart ModemManager.service
USBデバイスを再接続し(物理的にUSBポートを取り外して再接続)、お楽しみください。
PSこれはSTM32 CDC Virtual Comポートのためのソリューションです。必要に応じて、PID / VIDおよびudevタグを変更できます。