びぼうろく

北海道の人。適当にもっさりまったり書きます。さくら荘のましろが好きです。アニメとかパソコンとか

Linux Kernelのビルドしてみる

環境

今回カーネルをビルドする環境はこちら

準備

必要なパッケージのインストール

sudo apt install -y kernel-package fakeroot libncurses5-dev

それとこれ

sudo apt build-dep linux

2つ目のはソースパッケージをビルドするときに必要なパッケージをインストールするコマンドらしい。
このコマンドを実行するためには、source.listのdeb-srcをコメント解除する必要がある。
source.listのコメント解除したらapt updateやらないと更新されないぞ、ハマった。。

ソースの取得

好きなカーネルソースコードをとってくる。
カーネルの好みは無いから適当に今のstable(5.7.12)を持ってくることにした。

ダウンロードして解凍

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.7.12.tar.xz
tar xvf linux-5.7.12.tar.xz
cd linux-5.7.12/

コンフィグのコピー

今の環境のコンフィグファイルをコピーしてくる。

cp /boot/config-`uname -r` ./.config

差分オプションを設定する。
Enterでデフォルト値が設定される。

make oldconfig

ビルド

CONCURRENCY_LEVELは要らないような話を聞いたので設定しないでやってみることにする。
それ以外は参考サイトのそのまま実行する。
CPUとメモリリソースがハナクソなので-j 1でやる。
寝てる間にビルド走らせるから時間はかかっていい。

sudo make-kpkg -j 1 --rootcmd fakeroot --initrd --append_to_version=-codelibs --revision=001 kernel_image kernel_headers


ビルドが完了するとひとつ上のディレクトリに.debファイルが作成される。
こいつをインストールすると最新のカーネルに置き換えられる。
(今回はビルドしてみたかっただけなので、インストールはしない(作業PCだし不安定になったら困るので))