Ubuntu で kernel をソースコードからビルドする (make-kpkg 編)
最新の Linux kernel を利用するには、ソースからビルドするしかありません。 Ubuntu でそれをやる場合、Fedora とは違う作法があるようです。 1. kernel ソースを kernel.org からダウンロードします。...
RHEL系については以下に記事を書いたりしたわけですが、debian系のUbuntuについてはカーネルビルドしたことがなかったので、試してみることにしました。
検証環境:
# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.4 LTS"
手順
1. 事前に以下のパッケージを導入しておく。
sudo apt-get install libncurses5-dev make kernel-package xzip
2. ソースをダウンロードし展開する。# 今回は3.13.6で検証しています。
cd /usr/src
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.6.tar.xz
xz -cd linux-3.13.6.tar.xz | tar -xf -
3. コンフィグファイルをコピーしてくる。
cd linux-3.13.6
cp /boot/config-3.11.0-18-generic ./.config
4. コンフィグファイルを編集し、必要なビルドオプションを設定する。
make oldconfig
make menuconfig
5. パッケージの形にビルドする。必要に応じてCONCURRENCY_LEVEL(並列度)を設定する。
CONCURRENCY_LEVEL=8 make-kpkg --initrd kernel_image kernel_headers
6. 一つ上のディレクトリにファイルができていることを確認する。
ls -l
合計 127428
drwxrwxr-x 25 root root 4096 3月 8 20:51 linux-3.13.6
-rw-r--r-- 1 root root 77194340 3月 7 15:15 linux-3.13.6.tar.xz
drwxr-xr-x 24 root root 4096 3月 8 18:25 linux-headers-3.11.0-15
drwxr-xr-x 7 root root 4096 3月 8 18:25 linux-headers-3.11.0-15-generic
drwxr-xr-x 24 root root 4096 3月 8 18:36 linux-headers-3.11.0-18
drwxr-xr-x 7 root root 4096 3月 8 18:36 linux-headers-3.11.0-18-generic
-rw-r--r-- 1 root root 9180472 3月 8 20:30 linux-headers-3.13.6_3.13.6-10.00.Custom_amd64.deb
-rw-r--r-- 1 root root 44077504 3月 8 20:28 linux-image-3.13.6_3.13.6-10.00.Custom_amd64.deb
7. 必要に応じて/etc/default/grub
を書き換えます。書き換えた後はsudo update-grub2
コマンドの実行を忘れずに。
8. 再起動を実施し、念のためgrubメニューからインストールしたパッケージから開始できることを確認する。