たまに、新しい機能が使いたいなどの理由で、Linux カーネルのバージョンを新しくしたいときがある。 そんなとき、Ubuntu であればビルド済みのパッケージが提供されているため、比較的容易にカーネルを入れ替えることができる。
使った環境は次のとおり。
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04 LTS Release: 22.04 Codename: jammy $ uname -srm Linux 5.15.0-33-generic aarch64
もくじ
下準備
パッケージをダウンロードするために、あらかじめ wget をインストールしておく。
$ sudo apt-get update $ sudo apt-get install wget
パッケージをダウンロードする
Ubuntu は Kernel PPA でビルド済みの Linux カーネルを提供している。 以下のメインラインカーネルは、不具合の調査や次期リリースに向けたバージョン選定などを目的としているらしい。
上記から、お目当てのバージョンで、必要なパッケージを選んでダウンロードしてくる。 今回は、現時点 (2022-05) でメインラインカーネルとして提供されている最新バージョンの v5.18 を選んだ。
まずは、アーキテクチャに依存しない linux-headers
パッケージはどの環境でも必要になる。
$ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.18/amd64/linux-headers-5.18.0-051800_5.18.0-051800.202205222030_all.deb
そして、次にアーキテクチャに依存したパッケージをそれぞれダウンロードする。 今回は ARM64 環境なので、それに対応するものを。 名前に 64k がつくものは ARM64 環境でページサイズを 64KB に拡張したビルドになっているが、そちらは選んでいない。
$ wget \ https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.18/arm64/linux-headers-5.18.0-051800-generic_5.18.0-051800.202205222030_arm64.deb \ https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.18/arm64/linux-image-unsigned-5.18.0-051800-generic_5.18.0-051800.202205222030_arm64.deb \ https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.18/arm64/linux-modules-5.18.0-051800-generic_5.18.0-051800.202205222030_arm64.deb
インストールする
ダウンロードが終わったら、上記を apt-get
なり dpkg
を使ってインストールする。
$ sudo apt-get install ./*.deb
インストールできたらシステムを再起動する。
$ sudo shutdown -r now
再起動が終わったら、新しい Linux カーネルでシステムが動作しているはず。
$ uname -srm Linux 5.18.0-051800-generic aarch64
めでたしめでたし。