私はUBUNTu 12.04を使用しています。PC のシリアル ポートを使用するプログラム (正確には Java プログラム) をユーザー モードで実行したいと考えています。シリアルポート /dev/ttyS0 を開くと、常にポートビジー例外がスローされますが、これはあまり正しくありません:
許可のためにポートを使用できないだけです。ポートは root / dialout に属します。ttyS0 のグループをユーザーが属するグループに手動で設定すると、うまく機能します。ただし、次の 2 つの欠点があります。
- 再起動後、設定が失われ、再適用する必要があります
- このプログラムは意図的に Java で作成されており、インストールの手間がなく、使いやすい (そしてクロスプラットフォーム) ことを目的としています。sudo chgrp を使用したり、dialout グループにグループを追加したり、/etc/rc に chgrp コマンドを追加するなどして、将来のユーザーを混乱させたくありません。
質問は次のとおりです。
ユーザー権限を持つプログラムが、ユーザーの要求を (過度に) 要求せずにシリアル ポートにアクセスできるようにするにはどうすればよいですか? Javaプログラムの内外のソリューションは大歓迎です:-)
乾杯、タリク