以前のLinuxデバイスドライバ開発 デバイスで作成したドライバに対してsysfsのアクセスを追加する。
デバイスドライバではfopsによるファイル操作を行うことが一般的だが、sysfsのみでも十分に使えるドライバが出来る。
実行確認
$ sudo insmod skel_drv.ko $ ls -l /sys/class/skel_drv/SKEL_DRV0/ 合計 0 -r--r--r-- 1 root root 4096 5月 12 17:12 dev drwxr-xr-x 2 root root 0 5月 12 17:12 power lrwxrwxrwx 1 root root 0 5月 12 17:12 subsystem -> ../../../../class/skel_drv -rw-r--r-- 1 root root 4096 5月 12 17:12 uevent -rw-r--r-- 1 root root 4096 5月 12 17:12 val $ cat /sys/class/skel_drv/SKEL_DRV0/val 0 $ echo 123 | sudo tee /sys/class/skel_drv/SKEL_DRV0/val 123 $ cat /sys/class/skel_drv/SKEL_DRV0/val 123 $ sudo rmmod skel_drv
teeを使った理由は、下記のような操作ではエラーになるため。
$ sudo echo 123 > /sys/class/skel_drv/SKEL_DRV0/val -bash: /sys/class/skel_drv/SKEL_DRV0/val: 許可がありません
これは、リダイレクトの処理がユーザー権限で行われるため。