2019/05/03

仮想GPIOを/sys/class以下に作ってみたものの

仮想GPIOドライバをとりあえず作ってみました。
設定値をメモリ上にとって、gpiochipへの読み書きを
メモリの値に置き換えるだけなので、とりあえず動くものは
すぐにできました。

gpiolib-sysfs.cを参考にして、/sys/class以下に
vgpioという名前のディレクトリを作って、
その配下にexport等を作るようにしました。
しかし、同時に/sys/devices/virtual/vgpioもできてしまう。

また、動作させてexportへ任意の番号を書き込むとgpioNができるが、
このエイリアスが/sys/devices/virtual/vgpio/gpioNになり、
direction、value、edge、active_low以外にpower、uevent等
よくわからないものがたくさんできていました。

ただ direction/value/edge/active_low だけ読み書きできれば
良いのですが・・他のはsysfsのclassAPIが作ってるものなので、
なにか意図しないことが起きるかもしれない・・

というわけで、別の方法を模索してみます。

linux kernelのリポジトリを見ると、/samples/kobject があります。
これは、/sys/kernel以下にアトリビュートというファイルのようなものを
作って読み書きするサンプルです。
(sysfsはファイルではなくアトリビュートと言う)
これが、ほぼやりたいことをしているので、これを参考にして作り直します。
こんなのがあったんだな。

0 件のコメント:

コメントを投稿