Armadilloフォーラム

gpioXX/direction, value に一般ユーザーのアクセス兼を与える。

shinano

2015年9月3日 11時36分

お疲れ様です。

gpio のアクセス件についてです。
Armadillo-810 で、gpio に一般ユーザー(root)からアクセスさせたいのですが、やり方がわかなくて困っています。

他のドライバについては、「udev.rules」 に各方法でできることを確認しているのですが、gpio については、
行きませんでした。

最初から

/sys/class/gpio/gpioXX

までは、全ユーザーフルアクセスになっています。
しかし、その下の、direction や、value 等は、一般ユーザーは、読み込みのみになっています。
そこでこれを変更したいのですが、「udev.rules」に

KERNEL=="gpio11/direction"     MODE="0666"

の用に書いて見ましたが特に変化はありませんでした。

もちろん、起動してからパーミッションを書き換えればアクセス可能になるのですが、リセットするともとに戻ってしまいます。
起動時に最初から、設定する方法をご存知の方がいましたら、アドバイスをお願いします。

コメント

すいません。
質問に間違いがあったので、訂正しておきます。

>gpio のアクセス件についてです。
>Armadillo-810 で、gpio に一般ユーザー(root)からアクセスさせたいのですが、やり方がわかなくて困っています。
gpio のアクセス権についてです。
Armadillo-810 で、gpio に一般ユーザー(root以外)からアクセスさせたいのですが、やり方がわかなくて困っています。

です。

中村です。

sysfsのgpioのアクセス権を変更したことはないのですが、
ソースを見ると、ここではないかと思います。

linux-3.4-atXX/drivers/gpio/gpiolib.c
265行目
static /* const */ DEVICE_ATTR(direction, 0644,
gpio_direction_show, gpio_direction_store);
322行目
static const DEVICE_ATTR(value, 0644,
gpio_value_show, gpio_value_store);

--
なかむら

中村様

情報ありがとうございます。
次にkernel を更新する時に試してみます。

自分の方でも、ちょっと良くないやり方かもと思ったのですが。
/etc/config/rc.local

chmod 666 /sys/class/gpio/gpio11/direction
と書くことで、変えることが出来たので、とりあえず、これでしのごうと思ってます。
(最近、アプリケーションばかりやっていたので、kernel のビルド&インストール手順を忘れてしまっている...)

普通は、どこでやるのか良いものなのでしょうかね...

中村です。

返事がおそくなって、すみません。

> 普通は、どこでやるのか良いものなのでしょうかね...

起動後のchmodで解決できるなら、
それで終わりにしてしまってもいいと思います。

--
なかむら