Linux(Fedora)で自動シリアルポート検出を無効にする

Linux(Fedora)で自動シリアルポート検出を無効にする

私が使用しているデバイスは、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タグを変更できます。

関連情報