rootファイルシステムの作成


前節でPC上に用意したファイルから、FlashROMに書き込むディスクイメージを作り、RedBootを使用してFlashROMに書き込む。

mkfs.jffs2の準備

JFFS2ファイルシステムを使用するため、ディスクイメージを作るためのツールとしてmkfs.jffs2を用意する必要がある。
RedHatのJFFS2のページ等からmkfs.jffs2のバイナリをダウンロードしてパスの通ったディレクトリに置く。
mkfs.jffs2を含むJFFS2のソースはinfradeadのJFFS2のページRedHatのJFFS2のページに書かれているとおり、infradeadのcvsサーバから入手できる。

ディスクイメージの作成

前節で用意したファイルのあるディレクトリ(~/kompressor_rootfs/)でmkfs.jffs2を使用してディスクイメージを作る。ディスクイメージの作成はroot権限が必要になる。
 $ cd ~/kompressor_rootfs/
 $ su
   (rootのパスワードを入力)
 # mkfs.jffs2 -e 0x20000 -p -o ../kompressor.jffs2
これでディスクイメージファイルkompressor.jffs2が出来る。

ファイルシステムの転送

ファイルシステムを転送する。空き領域を用意するため、転送するファイルのサイズと、実際に確保するべき領域のサイズが異なる。そのため、多少複雑な手順になる。
 RedBoot> "load -r -m xmodem -b 0x00100000"
    としてxmodemでディスクイメージ(kompressor.jffs2)をRAMに転送し、
 RedBoot> "fis unlock -f 0x50100000 -l 0x00400000"
 RedBoot> "fis erase -f 0x50100000 -l 0x00400000"
 RedBoot> "fis write -f 0x50100000 -l 0x001a0000 -b 0x00100000"
 RedBoot> "fis create "jffs2" -n -f 0x50100000 -l 0x00400000"
    とすることで書き込める。

Linuxの起動

書き込んだファイルシステムを使用してLinuxを起動する。
 RedBoot> fis load kernel
 RedBoot> exec -c "root=/dev/mtdblock4 console=/dev/ttySA0 init=/linuxrc"
execコマンドのオプション -c でカーネルに起動オプションを与えている。もしかすると一部は不要かもしれないが念のため付けておいた。
/dev/mtdblock4の部分は、カーネルやディスクイメージのアドレスやサイズによって変わる可能性がある。その場合は正常に起動しないので、カーネル起動時のメッセージにあるRedBootパーティションの一覧を見て、適当な番号を指定する。

[△ Kompressor BoardでLinuxのページへ]
[<< ユーティリティのコンパイル] [デバイスドライバの作成 >>]

[藤田研究室 トップページへ]

SASAKI Shunsuke