linuxカーネルコンパイルノート

3127 ワード

説明:私の現在の構成状況
カーネルバージョン:3.2.4
システムバージョン:archlinux
システムの状況:新しくインストールしたシステムは、多くのものがうまくいかず、やっと最も基本的な使用要求に達した.
ステップ1:構成
この手順は最も複雑だ.menuconfigを構成する必要があります.カーネルソースファイルディレクトリに入力
# make menuconfig

構成されたインタフェースが表示されます.
今日は初めてこの配置インタフェースを見ましたが、中のものはほとんど読めません.配置は言うまでもありません.達人を探して教えに来たが、結局「ブラシブラシ」の選択肢がたくさんできた.もちろん私は今仕方がない.
最後に達人はサボる方法を教えた.
1)ソースファイルディレクトリの下を削除する.configファイルは、カーネルをコンパイルするときに使用される構成情報です.使用する必要はありません
# rm .config

2)入力:
make menuconfig

図-1
図-2
図-1から図-2に従って、
Enable access to .config through/proc/config.gzが選ばれる
次に、カーネルソースファイルディレクトリの下にあるかどうかを確認します.はい、configと入力します.gz内部の内容はリダイレクト.configの中
# zcat /proc/config.gz > ./.config

3)既存のドライバの構成をインポートします.
make localmodconfigを使用して、ローカルドライバの構成リストをインポートできます.
注:後でusb駆動をしないように、こちらではUディスクを探してパソコンに挿入し、コマンドを入力することができます.
# lsmod | grep usb

結果が出ると、ローカルドライバリストにusbドライバがあることを示し、Uディスクを抜くことができる.
次にコマンドを入力します.
# make localmodconfig

これにより、ドライバの構成を構成フォルダにインポートできます.
この構成作業が完了し、
ステップ2:カーネルミラーのコンパイル
1)再カーネルソースディレクトリであることを確認し、次のように入力します.
# make -j3

注:ここではmakeを直接使用できます.
-j3
つまり、3つのスレッドを用いて並列コンパイル(job 3の意味)を行うことで、コンパイル速度を大幅に向上させることができる
また、なぜ3なのかというと、私のパソコンはデュアルコアなので、2つのスレッドがCPUの中で実行され、システムがスケジューリングされるたびに、3番目のアイドルスレッドが挿入され、CPUの時間が多くなります.スピードは自然に速くなった.本当かどうかはわかりませんが、そう感じています.
最後に生成したミラーファイルは:./Arch/x 86/bootの下にbzImageファイルがあります.これがカーネルミラーです.
注:パソコンによって経路が異なると思います.findコマンドを使用して検索できます.
# find . -name "bzImage"

2)このbzImageを
/boot/ディレクトリの下で、ファイル名を使って自分で定義し、覚えやすくすればいいです.
たとえば、私が入力したコマンドは次のとおりです.
cp ./arch/x86/bzImage /boot/vanet.vmlinuz

これにより、/bootディレクトリの下にカーネルミラーがあります.
ステップ3:ramfsを作成します.
1)カーネルソースファイルディレクトリの下に、次のように入力してください.
# make modules_install

具体的に何に使うのか、忘れてしまいました.
終了時には、/lib/modules/ディレクトリの下にあるフォルダであり、後でramfsを生成するために使用されるDEPMOD 3.2.4-VANET-g 3878406が与えられます.
注:コンパイル環境によって生成される名前が異なる場合があります.少なくとも私ではありません.
2)入力:
# mkinitcpio -k  3.2.4-VANET-g3878406 -g /boot/vanet.img

これでまた
/boot/でvanet.を生成imgファイルです.
注:mkinitcpioはこちらに入っていますが、他にもコマンドがあるようで、使い方が違います
ステップ4:grubを変更して、電源を入れてから起動します.
1)grubの起動ファイルは/boot/grubディレクトリの下にあり、名前はmenuと呼ばれている.list
注意:archlinuxの下のgrubはSystem Vルールを使用しています.ubuntuでは文法のルールが違います.名前を忘れた
2)オープンオプションの変更:以下の内容を追加する
# (2) VANET Linux
title Vanet Linux-3.2.4
root (hd0,2)
kernel /boot/vanet.vmlinuz root=/dev/sda3 ro
initrd /boot/vanet.img

注:これはそのルールに基づいて書かれています.
titleが起動したときに表示される名前は、後で何でも構いません.使用に影響しません.
rootは写しに向かいましょう.
kernelの起動に使用するカーネルミラーは、起動時に/boot/ディレクトリの下のvanetを使用することを意味します.vmlinuz(以前に生成された、第2歩を参照)、マウントポイントは:/dev/ディレクトリの下のsda 3(人によって状況が異なり、真剣に選択)roは気にしないで、写しましょう
Initrdの起動に使用するramfsは、起動時に/boot/ディレクトリの下のvanetを使用することを意味する.img(前に生成されました.手順3を参照)
保存が終了すると、rebootで自分でコンパイルしたカーネルがすぐに表示され、その後使用するのは以前のシステムと変わらない.