はじめてのLinuxカーネルのビルド方法 手順と気を付けること

プログラミングLinux

Linuxカーネルのビルド

Linuxカーネルのビルドを初めてやったときは、とても感動したのを覚えています。

得体のしれないOSを御した雰囲気がしますね。単にビルドしただけなんですが、何かを成し遂げた気がしました。

慣れるとそんなに大変ではありませんが、初めてだと何をやればいいか分からないですね。

カーネルのビルド方法を説明します。

ディストリを選ぶ

製品でやるならそのディストリビューションをインストールしてください。そうでないなら、先進的なディストリビューションを選ぶのが普通です。

Debian系ならDebian testing、レッドハット系ならFedoraをインストールしてください。(UbuntuはDeban系です)

今回はDebian testingを選んだと仮定します。(2022/11時点です)

aptでパッケージをインストール

とりあえずは、build-essentialは必須です。

その他はビルドエラーが出るたびにインストールするというのでいいかと思います。

今回やってみたら、ncursesのインストールの必要がありました。

# apt install build-essential
# apt install libcurses-dev

大事なのはビルドエラーが出たときに、メッセージを読む力です。

ちゃんと読めば何をしなければならないかが書いてあるものです。

ディストリビューション配布のカーネルをビルド

Debianで使われているカーネルをビルドしてみます。

linux-sourceをインストールすると/usr/srcにソースが配置されまますので、~/kernelに展開します。

# apt install linux-source
$ mkdir kernel
$ cd kernel
$ tar xvf /usr/src/linux-source-X.X.tar.gz
$ cd linux-source-X.X

configファイルをどこからか持ってくる必要があります。カーネルハッカーはビルド時間が小さくなるように自前で極小のconfigを持っているものですが、初めての人は持っていないでしょうから、配っているお手本を持ってきます。

$ unxz -c /usr/src/linux-config-X.X/config.amd64_none_amd64.xz > .config

まずmenuconfigは一回は開いておきましょう。何かを訊かれます。とりあえずEnterを押しておいてください。

$ make menuconfig

ここからビルドです。エラーとなる可能性がありますので、よくエラーの内容を読むか、エラーの内容をgoogleで検索しましょう。

$ make

このmakeが時間がかかります。気長に待ちましょう。

以下でインストールします。

# make modules_install
# make install

grubの設定ができてないよ、というエラーが出た場合は、

/etc/default/grubでGRUB_DISABLE_OS_PROBER=falseを記述して(大抵はコメントをはずす)、update grubしてください。

# update-grub

これで完成です。再起動して起動してみてください。

uname -rでカーネルバージョンが上がっていれば成功です。

まとめ

はじめてのLinuxのカーネルのビルド方法を説明しました。

カーネルハッカーへの第一歩です。

>>> 今日を生き抜くプログラミングの知識 Linuxの知識

コメント

スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
タイトルとURLをコピーしました