回答:
apt-get sourceして、カーネルのUbuntuバージョンをダウンロードしますapt-get source linux-image-$(uname -r)
以下を含むフォルダーを提供します。
linux-3.2.0 linux_3.2.0-26.41.dsc linux_3.2.0-26.41.diff.gz linux_3.2.0.orig.tar.gz
太字の差分には、すべてのUbuntu / Debianカスタマイズが含まれています。
.config使用してストックカーネルを構築するには、「昔ながらの」Debian make-kpkgメソッドを使用しますこれは、wikiで説明されている別の昔ながらの方法です。
sudo apt-get install kernel-package
初めてカーネルをコンパイルする場合:
sudo apt-get build-dep linux-image-$(uname -r)
次にcdソースディレクトリ(ここlinux-3.2.0)に移動し、実行中のカーネルの構成でファイルmake oldconfigを作成するか、このディレクトリに.configサードパーティをコピーします.config。
テキスト設定とグラフィカル設定のどちらを使用するかに応じて、次をインストールします。
(テキスト)
sudo apt-get install libncurses5 libncurses5-dev
(グラフィカル)
sudo apt-get install qt3-dev-tools libqt3-mt-dev
そして、実行します:
(テキスト)
make menuconfig
(グラフィカル)
make xconfig
完了したら、次を実行します。
fakeroot make-kpkg -j N --initrd --append-to-version=my-very-own-kernel kernel-image kernel-headers
ここでN、並行して実行するジョブの数(通常、使用しているCPUの数)my-very-own-kernelは、このビルドを識別するカスタム文字列です。
完了すると、カーネルイメージとヘッダーファイルは、親ディレクトリのdebsとして準備が整います。あなたがそれらをインストールすることができsudo dpkg -i、またなど、GRUBエントリを追加するの世話をするであろう、
linux-3.2.0ディレクトリに移動して実行する必要がありますpatch -p1 <../patch.diffか?
apt-get source ...すでにあなたのためにそれをしました!
fakeroot debian/rules editconfigs、fakeroot debian/rules clean、fakeroot debian/rules binary正しい、問題のない方法です。
手順は次のとおりです。この手順は、nixCraftのHow to:Compile Linux kernel 2.6に基づいていますが、かなり近代化されています。
kernel.orgでアップストリームカーネルソースコードを入手できます。ここでは、バージョン3.16.1(この記事の執筆時点での最新の安定したカーネル)が使用されます。そのため、異なるバージョンを使用している場合は、これらのコマンドを変更する必要があります。
カーネルソースコードは現在、で提供されています。タール。xzアーカイブは、任意のバージョンで「tar.xz」リンクをクリックします。

cdアーカイブをダウンロードしたディレクトリに移動した後、次のコマンドで展開できますtar。
tar xf linux-3.16.1.tar.xz
Ubuntuのツールチェーン(gcc、makeなど)を取得するには、ビルドに不可欠なメタパッケージをインストールします。
sudo apt-get update
sudo apt-get install build-essential
カーネルに入る内容を構成する合理的にユーザーフレンドリーな2つの方法が、makeターゲットxconfigとによって提供されますmenuconfig。
xconfigグラフィカル構成ユーティリティを実行しますが、menuconfigテキストベースです(つまり、そのインターフェイスは端末内に完全に表示されます)。それぞれにbuild-essentialで提供されていない追加のソフトウェアが必要です。
グラフィカルに設定するには、 libqt4-devと pkg-config
をインストールして実行します
make xconfig:
sudo apt-get install libqt4-dev pkg-config
make xconfig
ターミナルで設定するには、インストールしてlibncurses5-dev(この情報について Hannuに感謝します)、実行しますmake menuconfig:
sudo apt-get install libncurses5-dev
make menuconfig
最初にこれを実行してカーネルをコンパイルし、作成しますvmlinuz:
make
vmlinuz「カーネル」です。具体的には、GRUBまたは使用する他のブートローダーによって圧縮解除され、メモリにロードされるのはカーネルイメージです。
次に、ロード可能なカーネルモジュールをビルドします。
make modules
これらのmakeコマンドが正常に完了したと仮定して、新しいカーネルをインストールします。最初にモジュールをインストールします。
sudo make modules_install
次に、カーネル自体をインストールします。
sudo make install
これにより、vmlinuz-3.16.1(のコピーvmlinuz)、config-3.16.1(カーネル構成パラメーターを格納するテキストファイル)、およびSystem.map-3.16.1(カーネルシンボルルックアップテーブル)がに格納され/bootます。詳細については、Hadronおよびによるcomp.os.linux.miscの投稿を参照してくださいman installkernel。
このセクションは、Kernel / Compileの情報に一部基づいています。
カーネルが必要な場所になったら、次のものが必要です。
ブートローダーの構成のエントリ。これにより、そこから選択して起動できます。
初期RAMファイルシステム、環境からカーネルをロードするドライバとマウントは/、ファイルシステム。
(古いカーネルをインストールしている場合、または新しいudevの代わりにdevfsを使用するようにカーネルを設定している場合は、代わりに初期ramdiskをセットアップする必要がありますman initrd。
以下を使用してinitramfsを生成しますmkinitramfs。
cd /boot
sudo mkinitramfs -ko initrd.img-3.16.1 3.16.1
GRUB2ブートローダーの構成を更新すると(9.10 以降Ubuntuのデフォルトになっています)、新しいカーネルが自動的に検出され、そこからブートするオプションが追加されます。
sudo update-grub
これで、再起動して新しいカーネルをテストできます。GRUBブートメニューを表示するには、起動中に長Shift押しするか押す必要がありEscます。GRUBブートメニューでは、インストールされているさまざまなカーネルから選択できます。
カーネル(または別のカーネル)をデフォルトにするには、GRUBのブート順序を変更するにはどうすればよいですかを参照してください。
make menuconfig必要apt get install libncurses5-dev
(バニラではなく)Ubuntuカーネルを構築するための簡単な手順は、https://wiki.ubuntu.com/Kernel/BuildYourOwnKernelにあります。
wiki全体をコピーするわけではありませんが、現在インストールしているUbuntuカーネルのバージョンをコンパイルするための最小限の手順をリストします。(最新バージョンを取得するには、次のUbuntuリリースのカーネルgitリポジトリのクローンを作成します。)Ubuntu 16.04でテスト済み。
# Get source code
apt-get source linux-image-$(uname -r)
# Install dependencies
sudo apt-get build-dep linux-image-$(uname -r)
# Compile
cd linux-4.4.0
fakeroot debian/rules clean
fakeroot debian/rules binary
# Install (obviously the versions will be different)
cd ..
sudo dpkg -i linux-image-4.4.0-38-generic_4.4.0-38.57_amd64.deb linux-headers-4.4.0-38_4.4.0-38.57_all.deb linux-headers-4.4.0-38-generic_4.4.0-38.57_amd64.deb