あまりにアレなので ldd3 なコンテンツ見つつ struct kobject の確認をしてみた。とりあえず Chapter 14. The Linux Device Model というあたり。
ざっくりな理解を以下に列挙してみます。
- kobject は device model を互いに保持する基本的な構造
- 階層的な関係を持っていて parent 属性で親の kobject を取得できる
- parent な kobject にぶら下がっている kobject を列挙できる kset という属性がある
- kobject_add したら sysfs にその kobject なエントリができる、とあるな
- ktype という struct kobj_type 型の属性が sysfs 関連の情報を管理しているのかどうか
- struct kernfs_node 型の sd という属性が若干謎
- reference count の操作は kobject_get および kobject_put を使う
以下な pdf を発見。確認してみます。
ドライバ関連で実機確認
/proc/devices には gpio なデバイスは見当たらない。おそらく、なんですが /dev 配下にはファイルを作っていないのではないかな。別途ソース落として中身確認してみたいと思っています。ちなみに messages には
bcm2708_gpio: bcm2708_gpio_probe c05cfed0
というログが出力されていることを確認しています。