初めてのセットアップ-usb port- ubuntu 14.04に対する許可が拒否されました


18

私はちょうどarduinoを接続し、ライトが点灯しましたが、点滅テストはアップロードに失敗しました。ここに私のエラーがあります:

Arduino:1.6.7(Linux)、ボード: "Arduino / Genuino Uno"

Sketchは1,030バイト(3%)のプログラムストレージスペースを使用します。最大は32,256バイトです。グローバル変数は9バイト(0%)の動的メモリを使用し、ローカル変数用に2,039バイトを残します。最大は2,048バイトです。avrdude:ser_open():デバイス "/ dev / ttyUSB0"を開けません:許可が拒否されましたioctl( "TIOCMGET"):デバイスへの不適切なioctlボードへのアップロードの問題。提案については、http://www.arduino.cc/en/Guide/Troubleshooting#uploadを参照してください

このレポートには、[ファイル]> [設定]で[コンパイル中に詳細な出力を表示]を有効にした場合の詳細情報が含まれます。

usb  ubuntu 


2
@ IgnacioVazquez-Abrams-それを答えに変えることができますか?割合の回答を得ようとしています。:)コピーと貼り付けが少しあるので、リンクのみではありません。
ニックギャモン

私はすべてのステップを実行しましたが、最初はうまくいきました。2番目のプログラムをアップロードしようとすると、「avrdude:ser_open():デバイスを開くことができません "/ dev / ttyUSB0":許可が拒否されました」 -Convertible:〜$ sudo adduser roquet dialoutユーザーroquet' is already a member of ダイヤルアウト」。roquet @ roquet-HP-ENVY-x360-m6-Convertible:〜$ sudo chmod a + rw / dev / ttyUSB0 roquet @ roquet-HP-ENVY-x360-m6-Convertible:〜$ ls -l / dev / ttyUSB * crw -rw-rw- 1ルートダイアルアウト188、1月20日0 13:12 / dev / ttyUSB0 roquet @ roquet-HP-ENVY-x360-m6-Convertible:〜$でも「許可拒否」を取得
Roque Zabalet

回答:


25

ドキュメントから:

ターミナルを開き、次を入力します。

ls -l /dev/ttyACM*

次のようなものが得られます:

crw-rw---- 1 root dialout 188, 0 5 apr 23.01 ttyACM0

ACMの末尾の「0」は異なる番号であるか、複数のエントリが返される場合があります。必要なデータは「ダイヤルアウト」です(ファイルのグループ所有者です)。

次に、ユーザーをグループに追加するだけです。

sudo usermod -a -G dialout $USER

その後:

sudo chmod a+rw /dev/ttyACM0

この変更を有効にするには、ログアウトして再度ログインする必要があります。

上記は古いUbuntuの指示であることに注意してください。ConsoleKitを使用する最新のディストリビューションでは/etc/udev/rules.d/01-ttyusb.rules、以下を含むファイルを作成してから、udevルールをリロードし、Arduinoデバイスを再接続します。

SUBSYSTEMS=="usb-serial", TAG+="uaccess"

素晴らしい答え。新しいインストールでは、udevルールをリロードする必要はありません。Udevは/etc/udev/rules.dの変更を監視します。arduinoを再接続する必要があります。
ppareit

@ppareitは「新しいインストール」と見なされますか?これは、Ubuntu 16.04では、ルールをリロードする場合としない場合(を介してsudo udevadm control --reload)動作しません。
Desty

1
ボードは「usb-serial」サブシステムではなく「tty」に属すると識別されているため、機能しなかったと思います。とにかく、次のudevルールの作成が代わりに機能しました:(SUBSYSTEM=="tty", ATTRS{idVendor}=="(vendor)", ATTRS{idProduct}=="(product)", ATTRS{serial}=="(serial)", SYMLINK+="ttyUSB.arduino", GROUP="adm"ベンダー)と(製品)はから取得されlsusb、(シリアル)はの出力から取得されますudevadm info -a -n /dev/ttyACM0|grep '{serial}'|head -n1
Desty 16

少なくともUbuntu 16.04では、Mint 18.1でこの問題は見られません。あなたが解決策を見つけたことを聞いてうれしいです!
1

ばっちり成功!!!!昇格しました。17.04ディストリビューションがあり、最初の解決策は永続的ではありませんでした!
トニーギル

3

あなたがする必要があるのは、Ignacio Vazquez-Abramsの回答で説明されているように、ダイヤルアウトグループに自分を追加することだけです。これは、ターミナルで次のように入力することにより行われます。

sudo usermod -a -G dialout $USER

を使用する必要はありませんchmod。これにより、グループのメンバーだけでなく、すべてのユーザーに読み取り/書き込みアクセスが許可されます。ただし、接続を試みる前に、ログアウトして再度ログインする必要があります。再度ログインすると、ダイヤルアウトグループのメンバーとして認識され、デバイスを開くことができます。


1

Ubuntu 18.04では、Arduino IDEのインストールがすぐに動作することがわかった唯一の方法は、ここで説明するドキュメントの手順を使用することでした。

https://www.arduino.cc/en/Guide/Linux/

変更グループや権限は必要ありません。


0

上記のことは私を助けてくれませんでした。公式サイトからファイルからインストールすると、起動しません。その後、「Linux App Store」からArduino IDEをインストールしましたが、動作していましたが、トップからの友人のような問題があります。だから私はそれをアンインストールし、ターミナル経由でインストールし sudo apt install arduino、今では動作しています 乾杯。


-1

または、chownコマンドを使用します。

sudo chown <username> /dev/ttyACM*

これは私のために働いた


1
この質問はこのサイトで何度も尋ねられており、同じ答えが別のユーザーから出されています。このサブジェクトでChris Strattonを引用します:これは悪いアイデアです。特に、udevまたは同様の管理/ devノードを備えた典型的な動的に構成されたLinuxでは、デバイスを接続するたびに行う必要があります。代わりに適切なグループにユーザーを追加してください。これは永続的な修正です。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.