Ubuntu 12.04からArduinoと通信しようとしています。USBケーブルを接続すると、Arduinoのシリアルポートは/dev/ttyUSB0として表示されます。モシリアル、起動時に「デバイス/dev/ttyUSB0を開けませんでした」というエラーが表示されますが、モシリアル使用して須藤通常の非ルートユーザーとしてシリアルデバイスにアクセスできるようにするには、何を設定する必要がありますか?
答え1
いくつかのオプションがあります:
自動 ACL 割り当て
Ubuntu では systemd-logind または ConsoleKit が動作している可能性が高いです。これは、コンソールで現在ログインしているユーザー アカウントに基づいて、デバイス ノードの ACL を自動的に構成できます。これらの ACL は、通常の権限に加えてアクセスを許可し、 を使用して確認できますgetfacl
。
/etc/udev/rules.d/60-extra-acl.rules
これを使用するには、 1に以下を追加します。
KERNEL=="ttyUSB[0-9]*", TAG+="udev-acl", TAG+="uaccess"
( 1はい、ファイルを作成します。デフォルトでは存在しません。ディレクトリ全体が管理者のカスタマイズ用です。)
グループベースのアクセス
ttyデバイスは通常、特定のグループ「dialout」や「uucp」などのグループに自分を追加してアクセスします全てシリアルポート:
# gpasswd -a YourUsername dialout
グループの変更が適用されるように、必ずログアウトして再度ログインしてください。
権限または所有権の変更
上記と同様の udev ルールを使用して、「メイン」所有者とグループ、および権限 (これが最初にデフォルト グループが設定された方法です) を設定することもできます。例:
KERNEL=="ttyUSB[0-9]*", OWNER="YourUsername"
or: KERNEL=="ttyUSB[0-9]*", GROUP="users", MODE="0660"
or: KERNEL=="ttyUSB[0-9]*", MODE="0666"
OWNER、GROUP、MODE パラメータを割り当てることができます。
一時的な手動変更
行うには一度変更する場合は、通常どおりchmod
and/orを使用してください。chown
# chown YourUsername /dev/ttyUSB0
or: # chmod a+rw /dev/ttyUSB0