CDC-ACM ドライバがガベージデータを返します。

CDC-ACM ドライバがガベージデータを返します。

u-Blox USB GPSデバイスをBusyBoxベースの組み込み(armel)Linux 2.6.32システムに接続しようとしています。デバイスにはデフォルトのCDC ACM USBインターフェイスがあります。システムにはcdc_acmが含まれていないため、これをクロスコンパイルして転送してインストールしましたが、正常にロードされました(で確認dmesg)。

デバイスを接続すると、USBドライバはデバイスのアドレスを正しく列挙し、ファイルを作成したドライバ001:003に割り当てました。ただし、シリアル端末を使用するかコマンドでデバイスを開くと、ASCII NMEAコマンドを印刷するのではなく、ゴミが印刷されます(これは他の2つのシステムで動作することが確認されています)。cdc_acm/dev/ttyACM0cat

sttyファイルを実行してもエラーはありません(ただし、デバイスがシリアルデバイスではなくUSBデバイスであるため、報告されたデータは明らかに無効またはランダムです)。lsusb -v -s 1:3また、デバイスに関する正しい情報を報告します。

この問題をもうデバッグする方法がわかりません。問題を特定して解決するにはどのような措置を講じる必要がありますか?

ベストアンサー1

端末の設定に問題があるようです。

正しい転送速度と生モードを手動で設定することで、デバイスから意味のあるデータを取得し始めました。

stty -F /dev/ttyACM0 57600
stty -F /dev/ttyACM0 raw

おすすめ記事