Ubuntu 20.04で最新のメインラインのカーネルを試す

以下の環境で試していきます。

  • ビルド環境 (以下、プロンプトは build$ で示します)
    • Arch : x86_64 (実機)
    • Distribution : Ubuntu 20.04.1
  • ターゲット環境 (以下、プロンプトは target$ で示します)
    • Arch : x86_64 (VMware fusion) ** Distribution : Ubuntu 20.04.2

ビルド環境とターゲット環境を兼用しても大丈夫です。
今回は、VMに割り当てられるリソースが少ないので別途ビルド環境を用意しています。

ターゲットとするカーネルは5.12とします。
ビルド環境にて、メインラインのカーネルをチェックアウトします。

configはUbuntu 20.04のものを使用します。
ターゲット環境からビルド環境へ転送します。

1target$ scp /boot/config-5.4.0-72-generic 192.168.10.44:~/linux/.config

configはdefconfigから生成する方法もありますが、
ドライバの有無や機能の有無にも関連してくるため、
ひとまずはディストリビューションのものを試すのが無難だと思います。

カーネルのバージョンが5.4から5.12へ変わるため、
oldconfigで不足しているconfigを設定します。

1build$ make oldconfig

数十〜百単位で項目が聞かれますが、とりあえず試すだけであれば
全部デフォルト値(つまりEnter押しっぱなし)で十分だと思います。

一点だけ、CONFIGSYSTEMTRUSTED_KEYS はデフォルト値を削除して空欄にする必要があります。
署名済みカーネルモジュールを生成するためのキーみたいですが、
この点はどういう仕組になっているのかよくわかってないです。
make menuconfig でメニューを表示し / で検索します。

1build$ make menuconfig

次にビルドします。
細かくはカーネルビルドして、モジュールビルドして…とか手順はありますが、
今回そこが目的ではないので以下でまとめてビルドしてしまいます。

1build$ make -j4 bindeb-pkg

ビルドが完了すると以下のファイルが出力されます。

  • linux-headers-5.12.05.12.0-1amd64.deb
  • linux-image-5.12.05.12.0-1amd64.deb
  • linux-image-5.12.0-dbg5.12.0-1amd64.deb
  • linux-libc-dev5.12.0-1amd64.deb

これをターゲットに転送して、インストールします。

1target$ sudo dpkg -i linux-*.deb

完了したらrebootします。
立ち上がったらunameでカーネルのバージョンが上がっていることを確認します。

1target$ uname -a
2Linux ubuntu05 5.12.0 #1 SMP Wed May 5 17:25:30 JST 2021 x86_64 x86_64 x86_64 GNU/Linux
Posted at : 2021-05-06 18:22:31 / Category : none

コメント

まだコメントはありません

コメントを投稿


お名前


メールアドレス(返信を通知する場合のみ記入)


認証コード(210928 と記入してください)