1

Essential LinuxDeviceDriversという本を読み始めました。新しいカーネルをコンパイルして起動するプロセスに従っています。ただし、新しくコンパイルされたカーネルを起動できません。grubで新しいカーネルを選択してから、何も表示されません。画面は同じままです。

この本で説明されているように、これが私が取っているステップです(本が基づいているのでカーネル2.6.24を使用しています)-

  • cd /usr/src/linux-2.6.24(ダウンロードしたカーネルのベースディレクトリ)
  • きれいにする
  • cp arch / x86 / configs / i386_defconfig .config
  • bzImage cp arch / x86 / boot / bzImage / boot/vmlinuzを作成します

この本には、'新しいブートイメージの到着についてブートローダーに警告する必要があるかもしれないと書かれています。GRUBブートローダーを使用している場合は、これが自動的に認識されます。

GRUBでこのカーネルを選択するオプションがなかったため、私の場合は自動的に認識されませんでした。そこで、ターミナルでupdate-grubと入力して、手動で実行しました。そして、これもうまくいきませんでした。ただし、ファイル名をvmlinuzからvmlinuz-2.6.24に変更し、update-grubと入力すると、ファイル名が取得されます。したがって、本の11ページには、すでに複数のことが省略されているようです...

この本には、マシンを再起動するように書かれています。

とにかく、GRUBでこのカーネルを選択できるようになりましたが、上で述べたように、正しく起動しないため、画面が空白になり、変更されることはありません。だから私は何かが欠けていますか?私は本の指示に正確に従った。

4

2 に答える 2

3

ほとんどの自動grubセットアップには、カーネルが起動しようとしたときに生成されるメッセージを非表示にするカーネルオプションが含まれています。例えば:

/boot/vmlinuz-x.x.x.x-generic root=UUID=something ro quiet splash

起動したいカーネルのgrubメニュー行で、「e」を押して一時的に編集し、quietやsplashなどのオプションを削除します(ただし、roはそのままにします)。

次に、一時的に変更された行を起動し、進行状況メッセージを確認して、起動が失敗している場所を特定します。

于 2012-06-24T14:54:07.310 に答える
1

デフォルトの構成では、おそらくinitrdが必要です(たとえば、ファイルシステムとルートデバイスには、 initrdが提供するモジュールからのドライバーが必要なため)。

特定のハードウェアに合わせてカーネルを適切に構成するか(モジュール内ではなく、カーネル内として重要なドライバーとして慎重に有効にする)、手順を使用してinitrdを使用してカーネルパッケージを構築できます。

Linuxのディストリビューションと習慣に適した手順を見つける必要があります。たとえば、このようなものです。私はDebianで使用しています:

time fakeroot make-kpkg -j2 --initrd --revision=3.4.2 --append-to-version=-amd64 binary
于 2012-06-24T13:25:33.220 に答える