Linuxデバイスドライバ開発 sysfs

sysfs

以前の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: 許可がありません

これは、リダイレクトの処理がユーザー権限で行われるため。

 

Linuxデバイスドライバ開発

 

添付ファイル: fileskel_drv_part10.tgz 227件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-05-16 (月) 11:46:51