Ubuntu 16/18では、ttyACMは接続時に不要なATコマンドを送信します。停止する方法は?

Ubuntu 16/18では、ttyACMは接続時に不要なATコマンドを送信します。停止する方法は?

古い開発ボードをベースにした組み込みLinux(比較的古いカーネルバージョン)を実行する外部ハードウェアがありますDaVinci DA850

ガジェットのシリアル接続を使用して、USBポートを介してホストPCと通信します。外部ハードウェアではこれをttyGS0一般的と呼びます。

PC側では、Windowsガジェットシリアルドライバが正常に動作します。これはUbuntu 14でもテストされ、再び完全に機能しました。 Ubuntu 14もこのポートを認識していることは注目に値しますttyGS0。最近Ubuntu 16とUbuntu 18で再テストしたところ、これはうまくいかないことがわかりました。これで、ポートをttyACM0交換用として認識する新しいUSBシステムがあります。

これがうまくいかない理由を確認すると、外部ハードウェアはメッセージを正しく受信しますが、PC側アプリケーションはから応答を受け取りませんread()。通常どおりread()標準モードを使用してselect()読み取り時間を超えました。おそらく重要なことは、最初の接続でポートが常に「AT」を3回送信することです。

これは、ガジェットシリアルの新しいバージョンがHayesスタイルのハンドシェイクを試みているため、外部ハードウェアが愚かなポートのように動作するとttyACM予想しているため、これ以上進行できないことを示唆しています。RS-232次のヒントに従ってください。@JdeBP、私は走ったsystemctl status ModemManager.service、私は見た

Jun 02 21:10:58 XUbuntu-18 ModemManager[402]: <warn>  Couldn't create modem for device '/sys/devices/pci0000:00/0000:00:0b.0/usb1/1-1': Failed to find primary AT port
Jun 02 21:52:36 XUbuntu-18 ModemManager[402]: <info>  [device /sys/devices/pci0000:00/0000:00:0b.0/usb1/1-1] creating modem with plugin 'Generic' and '1' ports
Jun 02 21:52:36 XUbuntu-18 ModemManager[402]: <warn>  Could not grab port (tty/ttyACM0): 'Cannot add port 'tty/ttyACM0', unhandled serial type'
Jun 02 21:52:36 XUbuntu-18 ModemManager[402]: <warn>  Couldn't create modem for device '/sys/devices/pci0000:00/0000:00:0b.0/usb1/1-1': Failed to find primary AT port
Jun 02 22:36:50 XUbuntu-18 ModemManager[402]: <info>  [device /sys/devices/pci0000:00/0000:00:0b.0/usb1/1-1] creating modem with plugin 'Generic' and '1' ports
Jun 02 22:36:50 XUbuntu-18 ModemManager[402]: <warn>  Could not grab port (tty/ttyACM0): 'Cannot add port 'tty/ttyACM0', unhandled serial type'
Jun 02 22:36:50 XUbuntu-18 ModemManager[402]: <warn>  Couldn't create modem for device '/sys/devices/pci0000:00/0000:00:0b.0/usb1/1-1': Failed to find primary AT port
Jun 02 22:41:38 XUbuntu-18 ModemManager[402]: <info>  [device /sys/devices/pci0000:00/0000:00:0b.0/usb1/1-1] creating modem with plugin 'Generic' and '1' ports
Jun 02 22:41:38 XUbuntu-18 ModemManager[402]: <warn>  Could not grab port (tty/ttyACM0): 'Cannot add port 'tty/ttyACM0', unhandled serial type'
Jun 02 22:41:38 XUbuntu-18 ModemManager[402]: <warn>  Couldn't create modem for device '/sys/devices/pci0000:00/0000:00:0b.0/usb1/1-1': Failed to find primary AT port

これはAT、相手から見た3つのメッセージと一致するようです。

実行mmcli --list-modems中ですNo modems were found

ttyGSガジェットのラインナップから新しいスタイルに移動しながら、以前にこのようなものを見た人はいますかttyACM?私はこれを検索し、ガジェットのシリアル化に関するすべてのドキュメントを読んでACMATシリアル接続コマンドに関するすべてを確認しましたがACM、この質問に答えると思われるものは何も見つかりません。

また、設定を確認してみましたがtermios(元の作業バージョンで変更されたことはありません)、奇妙なことはないようです。

ベストアンサー1

ATModemManagerがsの送信元である可能性があるポートを検索しようとしているようです。これにより、相手のデバイスが混乱する可能性があります。

ModemManager がデバイスに干渉しないように指示するには、udev ルールを設定する必要があります。たとえば、次のように配置できます/etc/udev/rules.d/01-disable-mm-ttyACM.rules

KERNEL=="ttyACM*", ENV{ID_MM_DEVICE_IGNORE}="1"

新しいルールを適用するには、を実行してsudo udevadm control --reload-rulesからデバイスを切断して再接続し、ModemManagerがデバイスを無視していることを確認する必要があります。

おすすめ記事