Linux起動時にinitramfsを使用するためには、以下のいずれかを用意する必要があります。
このうち「usr/gen_init_cpio用の設定スクリプト」を使えると、ユーザ権限で作業ができるため、作業環境の扱いが簡単になります。
しかし、きちんと(間接的に必要となるライブラリ等まで考慮して)スクリプトを記述するのはそれなりの手間がかかり、使いこなすには経験が必要でした。
この作業の支援用として、実行可能ファイルに必要なライブラリ等の情報を抽出して設定スクリプトの雛形を生成するツールを公開します。
以下のリンク先から取得してください:
gen_init_cpio_conf.py実行には python および binutils が必要です。
適当なディレクトリ以下に、initramfsに含めたいファイルを全て展開します。この段階では不要なファイルが含まれていても構わないので、手順としては
などとすればよいでしょう。
最終的にinitramfsに含めたいファイルのリストを用意します。
例)FOO.def として
/bin/busybox /bin/brcrl
誤認識されないなら、パスのディレクトリ部分(/usr/bin)は省略することができます。
busybox brctl
本スクリプトを「-l」 オプションにファイルリスト、続けて作業用の(ファイル一式を展開しておいた)ディレクトリのフルパスを指定して実行すると、initramfs用の設定内容が作成されます。
$ gen_init_cpip_conf.py -l FOO.def /path/to/work/dir > initramfs_script
作業用ディレクトリには、Linuxカーネル構築時に正しく参照が解決できるなら、相対パスを使用することもできます。
例えば、busybox, Xサーバ, matchbox について、実行に必要なライブラリとシンボリックリンクの関係は以下のようになりました。