GPIO権限をきれいに設定

GPIO権限をきれいに設定

たとえば、udevを設定して/sys/class/gpio/ファイルのデフォルト権限と所有権を設定できますか?要点は、ボードのGPIOピンにアクセスするプロセスに実際のGIDを提供することです。

ほとんどの「ソリューション」にはsuidラッパーが含まれます。chownを使ったスクリプト信頼できる仲介者バイナリ。 Web検索が表示されますudevルールを作成しようとして失敗しました。

(関連:第1四半期)

(資源:モンスターオペレーティングシステムウデブ)

答え1

すべての権限を正確かつきれいに設定するために、/etc/udev/rules.d/99-gpio.rulesを追加しました。

SUBSYSTEM=="bcm2835-gpiomem", KERNEL=="gpiomem", GROUP="gpio", MODE="0660"
SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", RUN+="/bin/sh -c 'chown root:gpio /sys/class/gpio/export /sys/class/gpio/unexport ; chmod 220 /sys/class/gpio/export /sys/class/gpio/unexport'"
SUBSYSTEM=="gpio", KERNEL=="gpio*", ACTION=="add", RUN+="/bin/chown root:gpio /sys%p/active_low /sys%p/edge /sys%p/direction /sys%p/value", RUN+="/bin/chmod 660 /sys%p/active_low /sys%p/edge /sys%p/direction /sys%p/value"

答え2

Ubuntu実行用。

sudo apt install rpi.gpio-common

答え3

私はこれを使用します(gpioグループがすでに作成されていると仮定):

/etc/udev/rules.d/99-gpio.rules

サブシステム=="gpio", カーネル=="gpiochip*", グループ:="gpio", モード:="0660"

答え4

GPIOインターフェイスはシステム(uidルート)を使用するように構築されているように見え、ユーザープロセスの/ devインターフェイス機能はありません。これには作成権限が含まれます。

デーモンや他のシステムサービスを含むユーザープロセスへのアクセスを許可するには、特定の時点でルートプロセスで権限を付与する必要があります。これは初期化スクリプト、仲介者、または手動(sudo)コマンドです。

関連情報