手持ちのUbuntu24.04のカーネルバージョンを6.8.0→6.18.21へ更新したときのメモです。
※ 更新は自己責任でお願いします。
※ 自分の備忘録のためコマンドの説明は省略しています。
fakerootを使う方法もあるようですが、makeを使った手順を記載しています。
環境
Ubuntu: 24.04
Linux Kernel: 6.8.0-107-generic
準備
1.ツールをインストール
sudo apt-get update && apt install -y build-essential bc bison flex libelf-dev libssl-dev libncurses5-dev
2.Linux Kernelのアーカイブサイト( https://www.kernel.org )より、使用したいバージョンをダウンロード
longterm 6.18.21のtarballをダウンロードし、/usr/local/srcへ展開しました。
以下、作業ディレクトリは/usr/local/src/linux-6.18.21です。
3.ベースにするコンフィギュレーションファイルをコピー
cd /usr/local/src/linux-6.18.21
cp /boot/config-<KERNEL VERSION> .config
4.カーネルコンフィギュレーション
①、②いずれかの方法で設定する
① エディタを使用して.configを直に設定
② make menuconfigで設定
余談:個人的には、make menuconfigはいつもどこに何があるのか迷子になるので、エディタで修正するほうが多いです。
とくにコンフィギュレーションは変更せず、カーネルのバージョンアップのみの場合でも、「CONFIG_SYSTEM_TRUSTED_KEYS」「CONFIG_SYSTEM_REVOCATION_KEYS」より、.pemの情報を削除する必要があります。削除しないとmake時にエラーが起きます。
Ubuntu公式ビルドであればpemが提供されるらしいのですが、自分でビルドする場合は「ひとまず消せ」とのこと。
何も考えず、その情報に従います。
make menuconfig経由で修正する場合は、...探してください。
5.makeを実行
make
数時間かかる。
6.モジュール等インストール
make modules_install
make install
7.リブート
起動時、GRUBのメニューで「Advanced options for Ubuntu」を選択すると、以前使用していたカーネルと、今回作成したカーネルがリストに現れます。
(昔は、ビルドしたカーネル等を自分でGRUBの設定ファイルに登録(?)していた記憶ですが、いつのまにかやらなくなったな...)
いずれにせよ、ビルドしたカーネルが使えるようになったので、
めでたしめでたし。

