私はRaspbian(DebianベースのRaspberry Pi用のディストリビューション)を使用しています。
i2cを使用するスクリプトがあります。
通常、ルートだけがi2cに対する読み取りおよび書き込み権限を持ちます。
このコマンドを使用して、一般ユーザーに i2c r/w 権限を追加します。
# chmod a+rw /dev/i2c-*
ただし、再起動すると、これらのデバイスにデフォルトの権限が付与されます。
何ですか最良の方法私のi2cを一般ユーザーが永久に読み書きできるようにしますか?
Raspberry Piが起動した後、上記のコマンドを実行するためにinit.dにスクリプトを追加するよりも「エレガントな」方法はありますか?
答え1
以下を使用してこれを実行できます。ウデブ。たとえば、/etc/udev/rules.d
というサフィックスを含むファイルを作成し、次の行を追加します。.rules
local.rules
ACTION=="add", KERNEL=="i2c-[0-1]*", MODE="0666"
MODE=0666
rw は所有者、グループ、世界を表します。代わりに、または同時に実行できることは、ノードのGIDを指定することです。たとえば、次のようになります。
GROUP="pi"
その設定の代わりにこの値を使用すると、デフォルトのMODE
0660(所有者とグループの場合はrw)が適用されますが、グループは有効になり、pi
ユーザーはpi
rw権限を持ちます。OWNER
同じ方法で指定することもできます。
==
上記との違いに注意してください=
。前者は何かが正しいことをテストすることであり、後者はそれを設定することです。=
それらを混ぜることを忘れないでください==
。
この内容を適用するには再起動する必要があります。
答え2
一部のデバイスグループには、ルートではなくグループ所有者がいます。これには、ディスク、入力、サウンド、tty、およびシリアルデバイスが含まれます。これを行うには、ユーザーをグループに追加して、デバイスグループ全体へのアクセスを提供できます。
/dev/ttyUSB0
たとえば、ユーザーにアクセス権を提供しますpi
。お使いのls -l
デバイスを購入し、
crw-rw---- 1 root dialout 4, 64 Jan 19 01:36 /dev/ttyUSB0
グループなので、グループにdialout
追加するとpi
dialout
/etc/group
dialout:x:20:pi
その後、ユーザーはpi
ログアウトして再度ログインして新しいグループメンバーシップを有効にできます。