Buildroot作成Linuxでboot時にデバイスのパーミッションを開ける方法

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の書き方をまとめた。記事にするほどの内容じゃない気もするが、忘れそうなので備忘録として残しておく。

コメント