OpenZaurusでSELinux

何パターンかカーネルをビルドしてみて判明したこと。

2.6.16カーネル + OpenZaurusパッチ ⇒ c7x0系機種でブート可能
2.6.17カーネル + OpenZaurusパッチ ⇒ c7x0系機種でブート可能
2.6.gitカーネル + OpenZaurusパッチ ⇒ MTDデバイスの認識に失敗
(↑コミュニティの最新カーネル)

一方、XATTR/JFFS2パッチは2.6.gitカーネルをベースに開発しているので、2.6.16や2.6.17カーネルに直接パッチを適用することはできない。
(2.6.17以降でJFFS2の内部インターフェースがいくつか変更されているので。)

とはいえ、ZaurusでMTDドライバを認識しない問題のためにカーネルを解析するモチベーション≒0(w
なので、JFFS2/XATTRをOpenZaurus3.5.4のカーネル2.6.16向けに移植した。
実は最初からこうしていれば一番早かったとイマサラながらに思う。私の睡眠時間を返せ。

セットアップのための細かい方法とROMイメージは備忘録も兼ねて後ほどアップする予定。
とりあえず、OpenZaurus3.5.4をベースにカーネル、SELinux対応の/sbin/initとbusyboxに、ポリシーを加えたROMイメージを作成してZAURUS C750でSELinuxを有効にしてブートすることに成功した。
ポリシーはとりあえず中村さんのSimplified Policyをそのままぶち込む。
(但し、fs_use_xattr jffs2 system_u:object_r:fs_t だけ追加w)
諸般の事情によりポリシーまで手が回らないので…。