私はカスタムLinuxカーネルでArch Linuxを実行するcubieboard2を持っています。 ArduinoなどのUSBシリアルデバイスを接続したcubieboard2では、デバイスはCDC ACMとして認識されました。私のLinuxカーネルでは、ここに示すように、設定でCDCオプションが有効になっています。ページところで、/dev/ttyACM0
アプリケーションが利用できないか、minicom
シリアルポートは利用できませんpyserial
。
Minicomは直ちにシリアルポートを開くことができないと述べた。 Pyserialはポートを開くことができますが、読み取ろうとすると結果は次のようになります。
SerialException: デバイスから読み取る準備ができていることを報告しましたが、データが返されませんでした(デバイスの接続が切断されたか、ポートに何度もアクセスしましたか?)
ただし、pyserial
バイトを書き込もうとすると、結果は次のようになります。
SerialException:書き込みに失敗しました:[Errno 5]入力/出力エラー。
シリアルポートを閉じると、名前が変わる奇妙なことが起こります/dev/ttyACM0
。/dev/ttyACM1
つまり、閉じると名前が。
私のラップトップで私のデバイスを試してみましたが、pyserial
どちらもうまくいきますminicom
。
キュービボード2情報:
$ uname -a
Linux alarm 3.4.61-rt77-ARCH+ #10 SMP PREEMPT RT Thu Apr 17 13:58:20 BRT 2014 armv7l GNU/Linux
私のカーネル設定ファイル:http://pastebin.com/raw.php?i=6LfsRyek
私の考えでは、有効になっているカーネルオプションのいくつかが欠けているようですが、どのオプションなのかわかりません。
どんなアイデアがありますか?
答え1
私が見ると、あなたのデバイスに問題があるようです。 OKを列挙できますが、追加の通信を実行すると予期しない動作が発生する可能性があります。 usbmonでWiresharkを試してみてください(またはXセッションがなければ、最終的にtsharkを使用します)。 ttyACM1 名は通常、通信エラーの後に再列挙されて発生します。