ルートなしのシリアルポートの読み取り/書き込み?

ルートなしのシリアルポートの読み取り/書き込み?

Fedora14のシリアルポートで読み取り/書き込み用のアプリケーションを作成していますが、rootとして実行すると正常に動作します。ただし、通常のユーザーとして実行すると、デバイス(/dev/ttySx)にアクセスするために必要な権限を取得できません。本当に迷惑なことですね。これは、Eclipseを使用して実際にデバッグできないためです。

sudoを使用してEclipseを実行しようとしましたが、ワークスペースが破損してプロジェクトを開くことができませんでした。それで、一般ユーザーがアクセスできるように/ dev / ttySxに書き込むためのアクセス要件を下げることができるかどうか疑問に思います。可能ですか?

答え1

シリアルポートへのアクセスは、デバイスファイル(たとえば/dev/ttyS0)の権限によって決まります。したがって、あなたがしなければならないことは、デバイスを所有するように準備するか(より良い方法で)デバイスを所有しているグループに属するか(Fedoraがサポートしている場合はそう思います)、デバイスを準備することです。ログインに属します。コンソールユーザーです。

たとえば、私のシステム(Fedoraではない)では、/dev/ttyS0ユーザーとグループが所有しているため、シリアルデバイスにアクセスできるように自分自身をグループに追加します。rootdialoutdialout

usermod -a -G dialout $USER

答え2

また、問題を解決するには追加の措置を講じる必要があります。接続しようとしたときにこの問題が発生しました。マイクロ:ビット ポートで/dev/ttyACM0Debian 10を使用してください。

ls -ld /dev/ttyACM0

示す:

crw-rw-rw- 1 root dialout 166, 0 Jan  5 16:13 /dev/ttyACM0

これは、私たちがアクセスにこのポートを使用できる理由を説明しますsudo。このポートはルートが所有しています。また、root以外のユーザーをダイヤルアウトグループに追加すると、root以外のユーザーへのアクセスが許可される理由も説明されています。次のコマンドを使用して、ダイヤルアウトグループに自分のユーザーアカウントを追加しました/etc/group

sudo usermod -a -G ダイヤル<ユーザー>

まだroot権限がないと、シリアルポートモニタを使用してmicro:bitに接続できません。

micro:bitがインストールされている場所/media

ls -ld /メディア/<ユーザー>
drwxr-x---+ 2root4096 1月5日 12:44<ユーザー>

これは、micro:bitによってマウントされたディレクトリがルートの所有であることを示します。このディレクトリの所有者とグループを次に変更する必要があります。 <user>:

ジョナ首都<ユーザー>/メディア/<ユーザー>
sudo chgrp   <ユーザー>/メディア/<ユーザー>

これで、sudoを使用せずにシリアルポートモニタを使用してmicro:bitに接続できます。

答え3

多くのディストリビューションでは、グループメンバーシップを使用してシリアルポートへのアクセスを有効にします。しかし、まだFedoraについての詳細はわかりません。

答え4

VSCode PlatformIOを使用してESP32に接続しようとしたときにも同じ問題が発生しました。使用

sudo chmod -R 777 /dev -R

この問題を解決しました。

関連情報