ルート権限なしで仮想シリアルポートを使用するには?

ルート権限なしで仮想シリアルポートを使用するには?

背景:使いたいです。 このWi-Fi-シリアルポートアダプタ 望遠鏡を操縦して Kubuntu 16.04(64ビット)で動作します。

socat次のコマンドラインを使用して仮想COMポートを作成しました。

$ sudo socat pty,link=/dev/virtualcom0,raw tcp:10.0.0.1:4030

ここで新しいデバイスを見ました。

$ ls -l /dev/virtualcom0 
lrwxrwxrwx 1 root root 10 2017-07-03 09:05 virtualcom0 -> /dev/pts/6
$ ls -l /dev/pts/6
crw--w---- 1 root tty 136, 6 2017-07-03 09:05 /dev/pts/6

たとえば、root権限で実行している限り/dev/virtualcom0機能します。ただし、標準ユーザー権限でポートを使用しようとすると、次のエラーが発生します。picocommpicosomm

$ picocom /dev/virtualcom0 --baud 9600 --imap lfcrlf
FATAL: cannot open /dev/virtualcom0: Permission denied

これに特別なudevルールを定義して、標準ユーザー権限で仮想COMポートにアクセスできるようにする方法を知っていますか?

編集#1

Deckertの答えで好むアプローチに応じて、次のようになります。

$ socat pty,link=/tmp/virtualcom0,raw tcp:10.0.0.1:4030

これはmacOSでもうまく機能します(homebrewを介してsocatをインストールした後)。

ベストアンサー1

socatのマニュアルページを見て、答えを見つけました。

コマンドラインでより多くの式を追加して、ptyのプロパティにパターンとグループを追加できます。例に従い、ダイヤルアウトグループが所有する新しいシリアルポートを使用し、グループへの読み取り/書き込みアクセス権を持つには、次の手順を実行します。

$ sudo socat pty,link=/dev/virtualcom0,raw,group-late=dialout,mode=660 tcp:10.0.0.1:4030

おすすめ記事