Hack BBS
[全部のスレッド一覧][新規投稿][記事の削除・変更]
[Home Page]
返信投稿はタイトルのリンクをクリックして下さい
スレッド【No.195】の中の記事をすべて表示しています
【No.195】のスレッド
04/03/30(火) 22:02:17 投稿者[高橋
] [No.195]のスレッド内
- 【No.195】 タイトル[gz ファイルを展開しているのは誰?]
この記事がスレッドの最初です
- 普通の組込み系 PowerPC Linux では、load_kernel 関数が
kernel loader の処理を行う所で、gzip 圧縮された kernel
Image を伸張し、所定のメモリ上に配置します。
arch/ppc/boot/common/misc-simple.c か、
arch/ppc/boot/simple/misc-embedded.c です。
元々は、起動時に serial console に、その旨の情報が出力さ
れる Uncompressing Linux... のように。
シリアル付けた方のが掲載していた起動メッセージに、その
出力は無かったので、puts をガシガシ削っているのでしょう
かね。(boot debug には、大変役に立つのに)
私の手元には、LinkStation も玄箱もありませんので、単なる
想像ですけど。
04/04/01(木) 17:38:44 投稿者[山下康成] <http://www.yamasita.jp/>
[No.195]のスレッド内
- 【No.210】 タイトル[Re: gz ファイルを展開しているのは誰?]
【No.195】に対する返信
- >普通の組込み系 PowerPC Linux では、load_kernel 関数が
>kernel loader の処理を行う所で、gzip 圧縮された kernel
>Image を伸張し、所定のメモリ上に配置します。
>arch/ppc/boot/common/misc-simple.c か、
>arch/ppc/boot/simple/misc-embedded.c です。
前者(misc-simple.c)のdecompress_kernel()でした。
詳しくは後ほど
04/04/02(金) 01:45:59 投稿者[たつや
] <http://linkstation.yi.org/>
[No.195]のスレッド内
- 【No.212】 タイトル[Re: gz ファイルを展開しているのは誰?]
【No.210】に対する返信
- >前者(misc-simple.c)のdecompress_kernel()でした。
>詳しくは後ほど
「ローダ」読みました。
カーネルには組み込まれないけど、やっぱりこのソースを使っている
んですね。
む〜、ソースほしい。MontaVista のソースには arch/ppc/boot/sandpoint
というディレクトリ自体が存在しないので、この辺はわからないので
す。
私が使っているのは preview release なので、MontaVista を購入し
た場合に手に入るものとはバージョンが違うからなのか、それとも
ローダ自体が BUFFALO で書いたものなのかはわかりませんが、、、
とりあえず、今は山下さんのカーネルコンパイル等のご報告を楽しみ
にさせていただいています。
明日は BUFFALO からのよい返事が来ることを期待しつつ、、、
04/03/30(火) 23:32:18 投稿者[たつや
] <http://linkstation.yi.org/>
[No.195]のスレッド内
- 【No.198】 タイトル[Re: gz ファイルを展開しているのは誰?]
【No.195】に対する返信
- >普通の組込み系 PowerPC Linux では、load_kernel 関数が
>kernel loader の処理を行う所で、gzip 圧縮された kernel
>Image を伸張し、所定のメモリ上に配置します。
一般的にはそのとおりだと思います。
が、LinkStation のカーネルイメージは先頭に山下さんが解析
されたようなヘッダ情報があり、その直後にいきなり gzip の
ヘッダがあります。
カーネル本体より後には initrd が入っていたりしますが、い
ずれも gzip 圧縮データですので、通常の zImage のように自
己展開を行うコードがまったく存在しないように見えます。
>シリアル付けた方のが掲載していた起動メッセージに、その
>出力は無かったので、puts をガシガシ削っているのでしょう
>かね。(boot debug には、大変役に立つのに)
というわけで、メッセージを削っているのではなくて、その
メッセージを表示する部分が存在しないのですね。
で、カーネルイメージを展開するコードがない→誰が展開し
ているのか?もしかして Flash 上のブートコードで展開して
いるのではないか、という推測になっているのではないかと
思います。