7

次の制約があるライブGNU/Linuxディストリビューションについて考えてみます。すべてのソフトウェアはinitrdイメージに含まれている必要があり(その結果、サイズが大きくなります)、カーネルには静的にコンパイルされたモジュールができるだけ少なくなります。

説明されているディストリビューションの起動プロセスについて考えてみます。ブートローダー(grubやisolinuxなど)がカーネルをロードし、カーネルがinitrdをロードしてメモリに抽出します。抽出中(古いコンピューターでは20〜30秒かかります)、画面には何も表示されません。

疑問に思っていたのですが、initrd抽出プロセス中にスプラッシュ画面を表示する既製のソリューションはありますか?そうでない場合は、次のアイデアについてコメントしてください。

  1. たとえば600x480x8bitの画像をカーネルに静的にコンパイルし、initrdの抽出中に何らかの方法でフレームバッファにフラッシュします。

  2. 同じことを行いますが、特定のビデオドライバー(VESAなど)を強制的にロードし、カーネルのフレームバッファーではなく、そのコードにハッキングします。

ありがとうございました。

4

3 に答える 3

2

おそらく、もっと簡単にすることができます: 2 つの initrd ファイルを作成します。最初のものは小さいかもしれません。次に、実際の initrd が抽出されている間、Plymouth を呼び出してスプラッシュ スクリーンを表示できます。

于 2013-12-16T16:34:33.023 に答える
1

カーネルが initrd イメージをロードすると考えるのは間違っています。これはブートローダーによって行われます。スプラッシュ スクリーンを表示する場合は、ブート ローダーにイメージを表示するように指示する必要があります。これを行う方法は、ブートローダーによって異なります。

于 2013-05-21T17:04:37.803 に答える
1

プレーンな .ppm ファイルを作成して、カーネル圧縮モードに LZMA 圧縮を使用してみてください。これは、ブート ロゴ オプションを使用して行うことができますが、うまくいくかどうかはわかりません。

まず、ブートアップ ロゴと標準の 224 色の Linux ロゴのサポートをカーネルで有効にする必要があります。

デバイス ドライバー —> グラフィックサポート –>

Support for frame buffer devices
VESA VGA graphics support
Video mode selection support
Framebuffer Console support
Select compiled-in fonts
VGA 8×16 font
Bootup logo
Standard 224-color Linux log

次に、.pngという名前のイメージがある場合、適切なファイルscreen.pngを生成する必要があります。.ppm

pngtopnm screen.png| ppmquant -fs 223 | pnmtoplainpnm > /usr/src/linux/drivers/video/logo/logo_linux_clut224.ppm 

次に、ブートローダーをコンパイル、インストール、更新し、それが機能するかどうかを確認します。

于 2013-07-09T13:31:33.083 に答える