「Essential Linux Device Drivers」という本を読み始めました。私は新しいカーネルでコンパイルして起動するプロセスに従います。ただし、新しくコンパイルされたカーネルから起動することはできません。 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と入力し、新しくコンパイルされたカーネルを選択しましたが、これがどのように問題になるかを理解していません。
答え1
Ubuntuには、インストールを実行するDebianからインポートされたスクリプトがあります。カーネルをコンパイルして実行すると、sudo make modules_install install
カーネルが正しくインストールされます。
後で編集:ここUbuntuとDebianで使用されるスクリプトです。上記のインストールコマンドを実行してディストリビューションインストールを実行すると、カーネルMakefileによって自動的に呼び出されます。
答え2
grub.confファイルには、次のようなエントリが必要です。
title My Linux Kernel
root (hd0,0)
kernel /boot/gentoo-kernel root=/dev/sda1
あなたのUbuntuカーネルには同様のものがあるかもしれません
initrd /boot/initrd.img
ハードウェアでカーネルをコンパイルする場合は必要ありません。これは問題を引き起こす可能性があります。
grub.confファイルに関するご意見をお寄せください。そうしないと、構成が原因である可能性があります。
古いカーネルには、新しいハードウェアに必要なドライバがない可能性があります。
最新のUbuntuシステムは、以前のカーネルバージョンにスムーズに戻すことはできません。
そのカーネルバージョンに近い古いバージョンのUbuntuまたはkernel.orgの最新のカーネルバージョンを実行してみることができます。
答え3
各Linuxディストリビューションには、独自のパッケージ配布メカニズムと戦略があります。これはカーネルと同じです。ほとんどのディストリビューションは、主にバイナリパッケージを提供するツールを使用してコンパイルプロセスを非表示にします。
特定のLinuxディストリビューションでカスタムカーネルをコンパイルするには、システムを壊さずに必要な方法でコンパイルする方法について、このデプロイメントガイドに従ってください。
Ubuntuには独自の方法があります。 Achlinuxも同じで、Redhatも同じで、Gentooも同じです。
Ubuntuの場合は、こちらの記事に従ってください。https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel