web-dev-qa-db-ja.com

新しくコンパイルされたLinuxカーネルの起動

「エッセンシャルLinuxデバイスドライバー」という本を読み始めました。新しいカーネルをコンパイルして起動するプロセスに従っています。ただし、新しくコンパイルされたカーネルを起動できません。grubで新しいカーネルを選択すると、何も表示されません。画面は同じままです。

この本で説明されているように、私が取っている手順は次のとおりです(この本の基になっているので、カーネル2.6.24を使用しています)。

cd /usr/src/linux-2.6.24 # the base dir of the kernel I downloaded
make clean
cp Arch/x86/configs/i386_defconfig .config
make bzImage
cp Arch/x86/boot/bzImage /boot/vmlinuz

本はそれを言います:

新しいブートイメージの到着についてブートローダーに警告する必要がある場合があります。 GRUBブートローダーを使用している場合、これは自動的に計算されます。

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

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

とにかく、GRUB)でこのカーネルを選択できるようになりましたが、上記のように正しく起動しないため、画面に何も表示されず、変更されません。この本の指示に正確に従った。私はこの本に50ユーロを費やした後、この問題のために11ページを超えることができなくなった。

VirtualBoxでUbuntuを使用しているという事実は問題ではないと思いますか?私は仮想マシンUbuntuの起動中にgrubに入り、新しくコンパイルされたカーネルを選択するだけで、それがどのように問題になるのかわかりません。

7
Jim_CS

Ubuntuには、Debianからインポートされたスクリプトがインストールされています。カーネルをコンパイルした後、Sudo make modules_install installを実行するだけで、カーネルが正しくインストールされます。

後で編集: ここ はUbuntuとDebianが使用するスクリプトです。上記のインストールコマンドを発行し、ディストリビューション固有のインストールを実行すると、カーネルMakefileによって自動的に呼び出されます。

3
gimmesudo

各Linuxディストリビューションには、パッケージの展開に関する独自のメカニズムとポリシーがあります。これはカーネルでも同じです。ほとんどのディストリビューションは、ほとんどの場合バイナリパッケージを提供するツールでコンパイルプロセスを隠しています。

特定のLinuxディストリビューションでカスタムカーネルをコンパイルする場合は、システムを壊さずにコンパイルする方法について、このディストリビューションのハウツーに従う必要があります。

Ubuntuには、Achlinuxでも同じ、Redhatでも同じ、Gentooでも同じ方法があります。

したがって、Ubuntuの場合は、こちらのドキュメントに従ってください https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

0
netmonk

Grub.confファイルには、これに類似したエントリが含まれている必要があります

title My Linux Kernel
root (hd0,0)
kernel /boot/gentoo-kernel root=/dev/sda1

あなたのUbuntuカーネルは次のようなものを持っているかもしれません

initrd /boot/initrd.img

ハードウェアでカーネルをコンパイルするときには、これは必要ありません。これが問題の原因である可能性があります。

Grub.confファイルにコメントしてください。それを見ていきます。さもなければ、あなたの設定は責任があるかもしれません。

古いカーネルには、新しいハードウェアに必要なドライバーがない場合もあります。

新しいubuntuシステムは、多くの問題なしに古いカーネルバージョンに戻ることはありません。

そのカーネルバージョンに近いバージョンまたはkernel.orgの最新のカーネルバージョンを実行する古いubuntuを試すことができます。

0
Joe