web-dev-qa-db-ja.com

ttyUSB0シリアルポートがクラッシュしてロックし、コンピュータをリセットする必要があります

私はすでにこの質問をスタックオーバーフローに投稿しましたが、同様の質問を調べた後、これがはるかに良い場所であることに気付きました(そして日曜日の10時間後には8ビューしか得られませんでした)。必要に応じて、これを削除します。


私は奇妙な問題を抱えており、同様の問題を抱えている人を他に見つけることができないようです。画面(Sudo screen/dev/ttyUSB0 115200)を使用して、USB経由でZedboardまたはRaspberryPiに類似したデバイスに接続しています。

接続後のランダムな時点で、画面が応答しなくなります。通常、デバイスの電源をオフにすると画面セッションも終了しますが、画面が応答しなくなった場合、デバイスの電源をオフにしても何も起こりません。フリーズした画面を取り除く唯一の方法は、ターミナルを強制的に閉じることです。

新しい端末でデバイスに再接続しようとすると、画面がフリーズしたままになり、強制的に閉じる必要があります。これらの画面はscreen--listでは表示されませんが、画面プロセス(ps ax | grep ttyUSB0)を検索すると、画面を見つけることができ、再接続を試みた場合は複数が見つかります。複数ある場合は、他のプロセスを簡単に強制終了できます(Sudo kill 1234)が、最初の画面プロセスを強制終了すると、プロセスのタイプがSsからDsになります。これは、強制終了が機能しないことを意味し、ユーザーは待つ。残念ながら、それは決して閉じません。

この時点で、同じコマンドを使用してデバイスに再接続しようとすると、次のエラーが画面の上部にすばやく連続して出力されます。「R/Wの行 '/ dev/ttyUSB0'を開けません:open()がブロックされました、中止しました。」 (約0.5秒間)続いて「申し訳ありませんが、PTYが見つかりませんでした。」その後、画面が自動的に閉じます。この時点で、/ dev内のttyUSB0エントリを手動で削除し、mknodを使用して再作成しようとしましたが、役に立ちません。この時点でできることは、コンピューターをハードリセットすることだけです。

Minicomを使用してみましたが、それでも問題は発生します(ある程度使用するとフリーズします)。フリーズすると、コンピュータをリセットせずに再接続する方法はありません。コンピューターのさまざまなUSBポートも試しました。

現在CentOS6.5を使用していますが、現在OSを切り替えることができないので、問題がないことを願っています。仮想マシン(VirtualBox Ubuntu14.04.2)を介してデバイスに接続しようとしましたが、実際にはかなりの量の使用でクラッシュは発生しませんでしたが、それは違いがないはずなので、おそらく偶然によるものだと思います。

理想的には、問題を修正する方法を理解したいのですが、コンピューターの電源をオフにしたりオンにしたりせずに、問題を修正する方法を理解するだけでも大丈夫です。

1
Quark

私は唯一の可能な解決策かもしれない一時的な解決策を見つけました。それは実際の原因を明らかにするかもしれないので、私は数日間私自身の答えを受け入れませんが、それ以降は受け入れます。

仮想マシンを介してデバイスに接続することにより、クラッシュは同じくらい頻繁に発生しますが、メインOSと仮想マシン間のリンクを無効にしてから再度有効にすることで(この場合はUSB接続をクリックして)接続を強制的に閉じることができます。ボタンとUARTデバイス)の無効化/再有効化。このソリューションの意味は、クラッシュが発生するたびに、コンソールで単純な切断、再接続、および「上矢印、入力」を行うだけで修正されることです。問題が発生し、数秒しかかかりません。これは間違いなくバンドエイドソリューションですが、このセットアップに適したソリューションが存在するかどうかはわかりません。

0
Quark