ロバートラブの本を読んでいます。Linuxカーネルの開発Linuxカーネル開発の詳細については!
しかし、第2章:カーネルを始める、カーネルをダウンロードしてインストールするように指示されました。これは私を混乱させる。 「カーネルを作るのは簡単だ」と彼は言った。しかし、Linux環境にLinuxカーネルをインストールするという考えは私には理解できません。まるでこの新しいLinuxを仮想的に実行しているかのように?
彼が出した措置は次の通りである。カーネルのソースコードを取得
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
$ git pull
それから圧縮されたパッケージを解凍する(GNU zipの場合は2つの方法がありますが、ここではbzip2の方法です)、
$ tar xvjf linux-x.y.z.tar.bz2
そしてそこであなたはカーネルビルドmake
などを実行してmenuconfig
deconfig
oldconfig
だからあなたは新しいカーネルのインストール。彼はインストールが「アーキテクチャとブートローダーによって異なります」と説明し、「カーネルイメージをコピーする場所の[マイ]ブートローダーの指示を確認してください。」次に、イメージをコピーして実行する方法の例を提供しました。
$ make modules_install
その後、この章ではカーネルインストールチュートリアルを続行しません。
これが私が迷子になった場所です。私はこれまですべてのコマンドを知っています。 (私は数年間Fedoraを使用してきました。氏など)が、既存のLinux環境にLinuxカーネルを「インストールする」という概念を理解していません。ここで何が起こっているのか(後で詳しく説明するかもしれません)、実際にカーネルを実行する方法についての説明はありません。新しいハードドライブに入れる必要がありますか?仮想マシンのように実行されていますか? BIOSで特定の起動オプションを選択しますか?実際にどのように実行しますか?このステップはこの章、3章、4章にはありません。
答え1
make install
カーネルイメージを/bootディレクトリにコピーするだけです。 make modules_install
モジュールを/lib/modules/kernel-version/にコピーします。最近、ほとんどのLinuxディストリビューションはgrubで起動するため、実行してupdate-grub
/bootで新しいカーネルイメージを確認し、そのカーネルから起動することを選択できるように、そのブートエントリをgrub設定ファイルに追加する必要があります。通常、起動ハードウェアといくつかの起動スクリプトにアクセスするために必要なモジュールを含むinitrdも必要です。少なくともDebianベースのディストリビューションではupdate-initramfs -k kernelversion
beforeを実行して作成できますupdate-grub
。