不況で倒産寸前のベンチャー企業(?)でプログラマー歴2年になった 新米プログラマーの日記のような雑記です。
welcome 猫並プログラマーの奮闘日記 !
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
category : スポンサー広告 

SH4A(7780)搭載ボードにLinuxを移植する(ramdisk編)
とりあえず、initramfsのマウントとスクリプトの実行ができたので書きます。
メモリ上でファイルシステムを展開してマウントする方法です。

まず、自分の設定した構成は以下
ファイルシステム・・・initramfs
使用ライブラリ・・・busybox-1.15.0

昔はinitrdというのが主流だったみたいですが数年前からinitramfsが推奨されるようになりました。
何が違うのかというと結構難しいので簡潔に書きます。

まずinitrdの特徴はこんなかんじ、
・ファイルフォーマットはかならずext2,ext3のいずれか
・ディスクイメージとしてまとめる
・カーネルからはブロックデバイスとして認識されマウント
・トップディレクトリにlinuxrcというのがある。

次にinitramfsについて
initramfsの特徴は、
・cpio形式でアーカイブされている。
・トップディレクトリにinitスクリプトがある。
・カーネルはファイルシステムとして/ディレクトリポイントへマウントする。

・・・たぶん、linuxを触ってないと意味不明だと思いますw
ただ、initramfsのほうが単純なのはわかってもらえるんじゃないかと

手っ取り早くどんなものか知りたい場合、Debianなどはinitramfs-toolsパッケージがあるので、
適当なディレクトリで「mkinitramfs」というコマンドを実行してみてください。使い方の例としては以下
mkinitramfs initramfs.gz
実行するとinitramfs.gzというファイルができます。展開していくと以下のような構成になっています。
-binディレクトリ
 ashなど実行ファイル
-sbinディレクトリ
 initなど実行ファイル
-configディレクトリ
 initファイルで使われる設定情報
-scriptディレクトリ
 各種スクリプト
-etcディレクトリ
initファイル

大体こんな感じ、この中で最低限必要なのは
binディレクトリ
sbinディレクトリ
etcディレクトリ
initファイル
これだけ、これをcpioコマンドgzipコマンドで固めれば出来上がります。
例・(cd root; find . | cpio -o -H newc ) | gzip > initrd.gz

2.6カーネルではinitrd,initramfsの両方をサポートしてます
カーネルはメモリ上で読込むときにcpioアーカイブ形式で内部にinitファイルがあればinitramfs、
それ以外ならinitrdイメージとして判断します。

・・・今日は疲れたからこの辺で。

明日、自分の行った過程とはまった部分、busyboxを書こうと思います。
スポンサーサイト
category : Linux移植  comment : 0  track back : 0

thema:Linux - genre:コンピュータ















 

trackback URL
http://nekohara348.blog99.fc2.com/tb.php/63-1dcd6134
trackback
プロフィール

猫原

Author:猫原
猫でもわかる程度の能力な新米プログラマーです。

扱える言語:
アセンブラ(intel系,SH系),C/C++,C#,
java,PHP,etc...

趣味
アニメとかゲームとかプログラムとか
ようするにオタク
(特にガンダム大好きです)

最近のマイブームはニコ動でアイマス架空戦記見ること
(千早かわいいよ千早)

フリーエリア
検索フォーム
ブロとも申請フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。