[Suzaku:00194] Re: カーネルはどうやってrootファイルシステムイメージを探すか?

Yasushi SHOJI email@hidden
2004年 12月 21日 (火) 18:01:05 JST


At Tue, 21 Dec 2004 17:40:33 +0900,
Morizzo wrote:
[...]
> > > その割には、jffs2の場合はddを使って少し違う方法で書き込みイメージを
> > > 生成しているようなので、いまいちルールが読み切れないです。
> > jffs2の場合は、また違うルールだからですね。
> 
> だとすると、以前[Suzaku-ML:00142]で
> 
> > jffs2を試してみたいかたは、vendor/AtmarkTechno/SUZAKU/*.jffs2を使って
> > みてください。
> 
> なんて書かれていましたけど、
> 単純にgenromfsの代わりに、mkfs.jffs2を使ってイメージだけ作っても
> 改造しなければカーネルはルートFSを見つけてくれない、
> ということなんですね。

mtd mappingの uclinuxを入れることで暗黙のルールができあがるからで、
jffs2のときにはこれを外す必要があります。

jffs2を使う場合は、uclinux mappingをはずして、compiled-in kernel
parameterを指定することで動きます。

root=/dev/mtdblock3 rootfstype=jffs2

mtdblock3の部分は userlandの partitionに置き換えてください。

http://armadillo.atmark-techno.com/armadillo-j/memo/jffs2root
suzakuではないのですが、armadillo-jの memoをごらんください。

> > 現在の suzakuでは、m68knommuで採用している方法をとっています。この方法
> > は、bss sectionの部分に romfsの magic numberを見付けた場合、romfsを
> > bssの後にずらし、ずらした場所をmtdの partionに割り当てます。
> > 
> > kernelは、root filesystemをマウントする場合に、この mtdのパーティショ
> > ンを mountするようになっています。
> > 
> > code的には、romfsを移動する場所は、mach_early_init()の中。mtdの部分は、
> > drivers/mtd/maps/uclinux.c::uclinux_mtd_init()の中です。
> 
> ありがとうございます。
> 具体的な説明でだいぶん頭の中では動作のイメージができてきました。
> ソースも見てみましたが、その部分だけの短絡的な理解は難しそうで
> やはり関連する部分のソースも追いかけないとダメですね。
> 
> ブートローダやドライバがハードウェア依存・実装依存になるのは
> 仕方ないと思いますが、
> カーネルに飛び込んだ後でもルートFSを探すのにもけっこうハード依存(?)な
> コードを書かなければいけない、というのはちょっとオドロキです。
> SuzakuでCFブートなんてもくろんでますが、config変更+ちょこっとドライバ書く
> だけではダメで、ドロドロした改造が続きそうな予感がしています・・・

cfからブートするには、true IDE modeを使うか、cfのストレージに見えるよ
うにするかの2種類があると思います。簡単なのは true ide modeです。

suzakuの hermitでは、そのへんを考慮していませんが、armadillo-9の
hermitでは両方使えるようになっています。

cfの回路図の方は、近日公開予定です。(ET2004のデモで使ったやつです)
--
           yashi



suzaku メーリングリストの案内