はじめに
各開発PCのパッチのあたりぐあいを確認していたら、
あれ? カーネルのバージョンが違うぞ?
あれ? apt update && apt upgrade してもカーネルが古いままだぞ?
となった方向けのメモ
たぶん、HWEがあたってない
環境
以下の pc1
と pc2
の2台の間で、カーネルのバージョンが違う、5系と6系で違う。
他のマシンをみても6.5
なので、 pc1
の 6.5
が採用したいバージョン。あわせたい。
- pc1
$ uname -a
Linux pc1 6.5.0-44-generic #44~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Jun 18 14:36:16 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
- pc2
$ uname -a
Linux pc2 5.15.0-116-generic #126-Ubuntu SMP Mon Jul 1 10:14:24 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
uname
の出力の読み方
この情報からわかる主な違いは以下の通り。
カーネルバージョン
- pc1: 6.5.0-44-generic
- pc2: 5.15.0-116-generic
pc1のカーネルバージョンは6.5.0であり、pc2のカーネルバージョンは5.15.0。
ビルド番号
- pc1: #44~22.04.1-Ubuntu
- pc2: #126-Ubuntu
pc1のビルド番号は#44~22.04.1で、pc2のビルド番号は#126です。これは、pc2がより多くのビルドを経ていることを示している。
SMPとPREEMPT
- pc1: SMP PREEMPT_DYNAMIC
- pc2: SMP
pc1にはPREEMPT_DYNAMICの記述があり、これはカーネルがプリエンプション(割り込み処理)を動的に調整できることを示している。これにより、リアルタイム性が要求されるアプリケーションに対して柔軟性が向上する。pc2にはこの記述はないので未対応。
ビルド日時
- pc1: Tue Jun 18 14:36:16 UTC
- pc2: Mon Jul 1 10:14:24 UTC 2024
対応方法
HWE (Hardware Enablement) スタックを利用する。
以下のコマンドでインストールするだけ。
HWEスタック(Hardware Enablement Stack)は、UbuntuのLTS(Long Term Support)リリースにおいて、新しいハードウェアサポートやカーネルアップデートを提供する仕組みです。
LTSリリースは通常5年間のサポートが提供されますが、その間に新しいハードウェアが登場します。HWEスタックを使用することで、LTSリリースでも最新のハードウェアをサポートする新しいカーネルやXサーバー、ドライバなどを利用できるようになります。
通常、HWEスタックは次のLTSリリースやその中間リリースがリリースされた際に更新されます。
$ sudo apt install --install-recommends linux-generic-hwe-22.04
インストールがおわったら再起動します。
$ sudo reboot
確認
- pc1
$ uname -a
Linux pc1 6.5.0-44-generic #44~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Jun 18 14:36:16 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
- pc2
$ uname -a
Linux pc2 6.5.0-44-generic #44~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Jun 18 14:36:16 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
さいごに
かんたんでしたね