PC用Linuxではudevルールを追加することでboot時に一般ユーザにもデバイスへのアクセス権限を与えることが出来る。同様な仕組みはBuildrootでも提供されており、SBC用Linuxシステムでもデバイスへの権限管理が可能だ。方法をまとめた。
menuconfigでmdevを選択
Buildrootではmdevとeudevを使うことが出来、menuconfigの”/dev management”選択画面(トップ画面から行ける”System configuration”のサブ画面)で選べる。
eudevはPC用Linuxとの互換性も高く高機能だが、設定が少し複雑。特別な理由が無い限りBusyBoxベースで軽量なmdevを選べば十分だろう。
mdev.confに設定を記述
インストールは基本的に、menuconfigで上記のように”/dev management”の選択で”devtmpfs + mdev”を選んでmakeを実行すれだけでOK。(/etc/mdev.confがシステムイメージに追加されない等うまく行かない場合は、make busybox-rebuildを実行すると良い)
あとは/etc/mdev.confに必要な記述を行う(詳細はBusyBox公式ドキュメントを参照)。例えば、以下のような一行を加えるとwheelグループのユーザにi2cバスへのアクセス権限が開放される
i2c-([0-9]+) root:wheel 660
システムのブート後に確認。
$ ls -l /dev/i2c-0
crw-rw---- 1 root i2c 89, 0 Jan 29 19:58 /dev/i2c-0
まとめ
mdevの有効化と設定ファイルmdev.confの書き方をまとめた。記事にするほどの内容じゃない気もするが、忘れそうなので備忘録として残しておく。
コメント