Javaプログラムをテストするにはシリアルポートを無効にしてから有効にする必要があります。
man
ページに次のように書かれているからですsetserial
。UART タイプ none を使用すると、ポートは無効になります。"、ポートを無効にしましたsudo setserial /dev/ttyS4 uart none
。これはシリアルポートを正常に無効にしました。シリアルポートを再度有効にするために使用し、ポートが期待どおりに起動しsudo setserial /dev/ttyS4 -a autoconfig
ました。
ポートを無効にした後、次のコマンドを使用してポートを開こうとしました。Java gnu.io.CommPortIdentifier機能。関数の実行後にポートを有効にしようとすると、gnu.io.CommPortIdentifier
次の出力が表示されます。
$ sudo setserial /dev/ttyS4 -a autoconfig
Cannot autoconfigure port: Device or resource busy
この問題をどのように解決できますか?シリアルポートを有効/無効にするより良い方法はありますか?または、ポートのリクエストリストを消去できますか?
明らかに私のテストは実行中なので、プロセスを直接終了することはできません。
答え1
シリアルポートを無効にした後に/ dev / ttySxを削除すると、Javaでgnu.io.CommPortIdentifierに大きな問題が発生すると思います。
再度有効にする必要がある場合は、まずMAKEDEVスクリプトまたはmknodコマンドを使用してノードを作成する必要があります。ここシリアルデバイスの作成に関する情報です。
答え2
/var/lock/LCK..ttyS4
を使って削除してみることができますrm
。私が知っている限り、この方法でデバイスのロックを解除する必要があります。