web-dev-qa-db-ja.com

シリアルポート端末> / dev / ttyS0を開けません:許可が拒否されました

このボックスにWindows XPがあり、失敗しました。 OSが破損していると思い、再インストールを試みましたが失敗しました。しかし、その後、Ubuntuをインストールしようとしましたが、USBまたはHDから実行できませんでした。

mem testを実行し、512MBスティックの1つ(2があった)が失敗したことを発見しました。悪いものを削除し、Ubuntuをインストールできましたが、動作が遅くなりました。

ハリケーンサンディのパケットラジオをすばやくセットアップしようとしていました。シリアルポートターミナルをダウンロードし、使用できるようになりましたが、システムはロックし続けました。そのため、Xubuntuをその隣にインストールし、翌日のうちにRAMを入手して箱に入れることを計画しています。 Xubuntuをオンにすると、シリアルポートターミナルで次のエラーが表示されます。

Cannot open /dev/ttyS0: Permission denied

シリアルポートターミナルまたは同等のXubuntuを使用して、kpc3パケットターミナルを使用して、コンピューターの背面にあるcomポートに接続できるようにしたいと思います。

何か案は?

15
Joe Reynolds

Ttyデバイスは「dialout」グループに属します。あなたはこのグループのメンバーではないため、/ dev/ttyS0へのアクセスが拒否されていると思われるため、そのグループに自分を追加する必要があります。

あなたがそのグループのメンバーであるかどうかを最初に確認してください:

groups ${USER}

..これは、所属するすべてのグループをリストします。ダイアルアウトグループに所属していない場合は、次のように自分を追加します。

Sudo gpasswd --add ${USER} dialout

次に、ログアウトしてから再度ログインして、有効にする必要があります。次に、問題が解決するかどうかを確認します。

36
Colin Ian King

私のために働く唯一の解決策は次のとおりです:(マシンを起動するたびに)

Sudo chmod 666 /dev/ttys0

本当にインストール時に修正する必要があります。私は15.10で、16.04 LTSを試しましたが、まだ同じです。このような単純な修正のようです。

古いバージョン10.04LTSにはこの問題はありませんでした。

9
DRJ101

さまざまなフォーラムを調べてみたところ、権限に関連するバグのようです。問題を回避する方法は次のとおりです(長いバージョン)。 cusetserialの両方のパッケージをインストールする必要があります。

3つの端末タブで、# tail -f /var/log/messagesからの出力を監視しているのは、/dev/ttyUSB0があるかどうかを知る方法です。

2番目のタブで、このデバイスをls -lにループして、アクセス許可とグループIDが「ダイヤルアウト」であることを確認します。これが重要なビットです。何らかの理由で、ユーザーはこのGIDを使用してcuを実行する必要があるため、...

3番目のタブで、ルートとして# newgrp dialoutを実行しました(ダイヤルアウトのGIDに対応するため)。 # touch /tmp/anythingでテスト...このファイルでls -lを実行すると、ダイヤルアウトグループを使用してrootによって作成されたことが示されるため、準備が整いました... # cu -l /dev/ttyUSB0速度を指定する必要がある場合があります。

3
linuxhelpie

次のコマンドを使用できます。

Sudo adduser $USER dialout

これにより、現在のユーザーがダイヤルアウトグループに追加されます。ログインしてから有効にします。

3
Bonnom

Ubuntu 18.04では、次のコマンドを使用してこの問題を修正しました。

Sudo usermod -a -G tty $USER
Sudo usermod -a -G dialout $USER

そして、この後、再起動します。

それでも問題が解決しない場合は、次を使用してデバッグしてください。

strace -ff <COMMAND> > strace.txt 2>&1

そして、トレースで「拒否」を探します。

2
Tseho

私の場合、次を使用してユーザーをグループに追加しても、問題は依然として存在します。

だから私が使用するとき:

Sudo gpasswd --add ${USER} dialout

と入力すると:groupsこの結果が得られました:

ilyahoo adm cdrom Sudo dip plugdev lpadmin sambashare

しかし、id -Gn ilyahooと入力すると、putputは次のようになります。

ilyahoo adm tty dialout cdrom Sudo dip plugdev lpadmin sambashare 

私はそれが正直に何であるかわからないという問題があることを知っています。

入力したソリューションを取得するには

newgrp ilyahoo

そして問題は修正されました。

0
ilyahoo

解決策は次のとおりです。

オペレーティングシステムをUbuntu 18に更新しました。通常、ArduinoのWebサイトからarduino IDEをインストールします。Ubuntuソフトウェアポータルで提供されるものは常に古いバージョンであり、最新の機能とボードが必要でした。サポート。しかし、最新のオペレーティングシステムをインストールしたばかりなので、ubuntuの公式ソフトウェアセンターにはIDEの最新バージョンがリストされているはずだと考えました。

ジューシーな部分に!ラップトップとデスクトップの両方で、シリアルポートへのアクセスで同じ問題が発生しました。私はユーザーをダイヤルアップグループの一部にし、シリアルポートのアクセス許可を設定しましたが、常にログアウトしてから再度ログインする必要がありました。楽しくない!。

今回はうまくいきませんでした。ソフトウェアセンターでも、ソフトウェアのアクセス許可オプションにシリアルポートが「切断」されていることが示されています。 Sudoを使用してターミナルウィンドウからすべてのアクセス許可を手動で許可した後でも、ポートへのアクセス許可を許可するオプションはありません。

Arduino IDEをソフトウェアセンターからアンインストールし、Webサイトからインストールすることにしました。今回は、インストールファイルを読んで、シリアルポートのアクセス許可が記載されているかどうかを確認するために、もちろん*****しました。 ******すべてのポートには、フルアクセス許可、ユーザーアクセスが全面的に設定されています。これが答えだったことがわかります。 arduinoが提供するarduino-linux-setup.shファイルを実行すると、シリアルポートの問題はすべて解決されました。以下は、arduino-linux-setup.shファイルからの抜粋です。

echo ""
echo "******* Add User to dialout,tty, uucp, plugdev groups *******"
echo ""

Sudo usermod -a -G tty $1
Sudo usermod -a -G dialout $1
Sudo usermod -a -G uucp $1
Sudo groupadd plugdev
Sudo usermod -a -G plugdev $1


acmrules () {

    echo ""
    echo "# Setting serial port rules"
    echo ""

    cat <<EOF
    "KERNEL="ttyUSB[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="$1"
   "KERNEL="ttyACM[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="$1"
   EOF

}

kERNELが影響を受けていることがわかります。私のおすすめ:

arduino ide Webサイトからインストールします。現時点では、修復されるまでソフトウェアセンターを無視します。はい、ソフトウェアセンターは、インストール中、および永久にシリアルポートへのアクセスを許可していません。

問題が解決しました!

0
Joseph Wimsatt