ここでは、Linuxカーネルのコンパイルだけでなく、カーネルのコンパイルとdebパッケージへのコンパイルについても説明します。 その後、このデボムを友人と共有したり、ガールフレンド/ボーイフレンドに自慢したり、必要に応じて再利用したりできます。
開始するには、パッケージfakeroot、カーネルパッケージ、libncurses5-devをインストールします。
aptitude install fakeroot kernel-package libncurses5-dev
すべての依存関係は自動的に強化されます...
次に、
kernel.orgから目的のアーカイブを取得し、/ usr / srcにマージして展開します(たとえば、カーネル2.6.31.4を使用します)。
$ cd / usr / src
$ sudo -s
#wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.4.tar.bz2
#tar xjf linux-2.6.31.4.tar.bz2
#if [-d linux]; rm linux; fi ln -s linux-2.6.31.4 linux
#cd linux
一つのポイントがあります。 インストール済みのシステムに既に動作中のカーネルがあるため、新しいカーネルの構成にすべてのチェックマークを最初から入れたくない場合は、/ bootまたは/ procから既成の構成を取得します。
#cp / boot / config-$(uname -r).config
#zcat /proc/config.gz> .config
その結果、新しいコアの構成の準備ができました。
ここで、特定の目的のためにカーネルを設定するか、新しいモジュールのオプションを追加するか、...つまり、創造性:
#menuconfigを作成
ここで、メニューをすぐに終了すると、次のようなものが表示されることに注意してください。
.config:903:警告:シンボル値 'm'はRFKILL_INPUTに対して無効です
.config:2920:警告:DRAGONRISE_FFのシンボル値 'm'は無効です
.config:2937:警告:GREENASIA_FFのシンボル値 'm'は無効です
.config:2939:警告:THRUSTMASTER_FFのシンボル値 'm'は無効です
.config:2940:警告:ZEROPLUS_FFのシンボル値 'm'は無効です
新しいカーネルを構成するときにこれらのオプションを見つけて、何がそうなのかを見るのは理にかなっています
または、
プロンプトが表示
されたので、次を使用します:
#oldconfigを作成
一致するすべてのオプションに影響を与えず、変更された残りの部分について尋ねる新しいバージョンをコンパイルするには、質問してください。
ちなみに、Xsでの設定に興味がある人は、これを行うことができます。
#xconfigを作成
重要! 「ロード可能なモジュールのサポート」で「カーネルモジュールローダー」と言うことを忘れないでください。オプションがあります。
まあ、それだけです。 Pimpochkiがマークされ、ボタンが押され、ウィンドウが閉じ、新しい構成が保存されました。アセンブリに進みましょう。 最初に、次のことを行います。
#make-kpkg clean
次のようなものが表示されます。
exec make kpkg_version = 12.021 -f /usr/share/kernel-package/ruleset/minimal.mk clean
======ターゲットをminimal_cleanにする[新しい前提条件:] ======
これはカーネルパッケージバージョン12.021です。
テスト! -f .config || cp -pf .config config.precious
テスト! -eスタンプ作成|| rm -fスタンプ作成
テスト! -f Makefile || \
ARCH = i386 distcleanを作成します
make [1]:ディレクトリ `/usr/src/linux-2.6.31.4に入る '
クリーンスクリプト/基本
CLEANスクリプト/ kconfig
クリーンインクルード/設定
CLEAN .config .config.old include / linux / autoconf.h
make [1]:ディレクトリ `/usr/src/linux-2.6.31.4を離れる '
テスト! -f config.precious || mv -f config.precious .config
rm -fモジュール/ modversions.hモジュール/ ksyms.verスクリプト/ cramfs / cramfsckスクリプト/ cramfs / mkcramfs
さて、実際には、カーネルを構築しています。
#fakeroot make-kpkg --initrd --revision = og.091015.00 kernel_image
og.091015.00-アセンブリのリビジョンのみを意味します(文字数は少なくなりますが、それ以外の場合はアセンブリの最後でエラーが発生し、最初からすべてを繰り返す必要があります)。
前のコマンドが正常に実行された後、このような「紳士のセット」を与えることもできます。
#fakeroot make-kpkg --initrd --revision = og.091015.00 kernel_headers
#fakeroot make-kpkg --initrd --revision = og.091015.00 kernel_manual
#fakeroot make-kpkg --initrd --revision = og.091015.00 kernel_doc
#fakeroot make-kpkg --initrd --revision = og.091015.00 kernel_source
その後、次のdebパッケージのセットを取得します。
- linux-image-2.6.31.4_og.091015.00_i386.deb
- linux-headers-2.6.31.4_og.091015.00_i386.deb
- linux-manual-2.6.31.4_og.091015.00_all.deb
- linux-doc-2.6.31.4_og.091015.00_all.deb
- linux-source-2.6.31.4_og.091015.00_all.deb
それらは/ usr / srcにあります。
これらはdpkgを介してのみインストールできます。
#cd / usr / src
#dpkg -i ./linux-image-2.6.31.4_og.091015.00_i386.deb
など
GRUBへの構成は、initrdビルドと同様に自動的に行われる必要があります。
最後のステップ:
#再起動