Open7

Ubuntuのカーネルを6.11に戻してROCmを入れる(EVO-X2)

LibratechLibratech

EVO-X2のセットアップ中にハマったのでメモ。

ROCm 6.4系はUbuntu 24.04.2 + Kernel 6.11をサポートしているが、 6.14はまだサポートされていない。

https://rocm.docs.amd.com/en/latest/compatibility/compatibility-matrix.html#operating-systems-kernel-and-glibc-versions

2025年8月30日現在、24.04.3 LTS を普通に入れるとカーネル6.14系が入るため、ROCmを安定利用するにはこれを 6.11へ戻して固定する 必要がある。

uname -r
# 6.14.0-29-generic => 非対応

動作確認環境

  • PC: GMKtec EVO-X2
  • SSD1: Windows 11(プリインストール)
  • SSD2: Ubuntu 24.04.3 LTS(別でEFIパーティションを手動作成)
  • UbuntuインストールイメージはUbuntu公式のもの(GMKtecからダウンロードできるものはエラーでインストールできなかった。今思うとSecure Bootをオンにしていたからかも)
LibratechLibratech

流れ

  1. Secure Boot をオフにしておく
  2. 6.11 HWEカーネル(公式パッケージ)を入れる
  3. GRUBの起動デフォルトを 6.11.0-xx に設定
  4. パッケージをhold してカーネルが自動更新されないようにする
  5. amdgpu(graphics + OpenCL)→ ROCmの順で導入
LibratechLibratech

0. BIOSからSecure Bootをオフにしておく

https://amdgpu-install.readthedocs.io/en/latest/install-installing.html#secure-boot-support

オンで使う場合は amdgpu-dkms を署名する必要があるらしいが、かなり面倒そうなので一旦諦めて切っておく。

1. 6.11 HWEカーネルを導入(公式パッケージ)

例:6.11.0-29(24.04向けHWE) の場合。
まず6.11系を探す。

sudo apt update
apt-cache search linux-image-6.11.*generic
# ...
# linux-image-6.11.0-29-generic - Signed kernel image generic

出てきた中で最新のバージョンのパッケージを入れる。

sudo apt install \
  linux-image-6.11.0-29-generic \
  linux-headers-6.11.0-29-generic \
  linux-modules-6.11.0-29-generic \
  linux-modules-extra-6.11.0-29-generic
LibratechLibratech

2. GRUBを「saved」方式に切り替え、6.11をデフォルトにする

そのままだと最新カーネルを起動してしまう。6.11が立ち上がるようにGRUBの設定を変更する。
6.14系を消してしまったほうが設定はシンプルだが、6.14系を使いたいことがあるかもしれないので、下記の設定で念のため残しておく。

https://help.ubuntu.com/community/Grub2/Setup

まずデフォルト設定が効くように /etc/default/grub の設定を書き換える。

# GRUB_DEFAULT を saved に
sudo sed -i 's/^GRUB_DEFAULT=.*/GRUB_DEFAULT=saved/' /etc/default/grub
# GRUB_SAVEDEFAULT=true に設定すると、手動で選択したカーネルがその後デフォルトになる
grep -q '^GRUB_SAVEDEFAULT=' /etc/default/grub || \
  echo 'GRUB_SAVEDEFAULT=true' | sudo tee -a /etc/default/grub

sudo update-grub

GRUBの実際のメニューエントリ名を確認。
(このデフォルト動作は今後変わるかもしれないので注意)

sudo grep "submenu\|menuentry.*6\.11\.0-29" /boot/grub/grub.cfg
# submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-4f2a40a4-35a8-4ed7-8840-6cb88e33a6a1' {
# 	menuentry 'Ubuntu, with Linux 6.11.0-29-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.11.0-29-generic-advanced-4f2a40a4-35a8-4ed7-8840-6cb88e33a6a1' {
# 	menuentry 'Ubuntu, with Linux 6.11.0-29-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.11.0-29-generic-recovery-4f2a40a4-35a8-4ed7-8840-6cb88e33a6a1' {

確認した {submenu}>{menuentry} をデフォルトに設定。

sudo grub-set-default "Advanced options for Ubuntu>Ubuntu, with Linux 6.11.0-29-generic"
sudo grub-editenv list
# saved_entry=Advanced options for Ubuntu>Ubuntu, with Linux 6.11.0-29-generic

再起動し、カーネルを確認

sudo reboot
uname -r
# 6.11.0-29-generic
LibratechLibratech

3. HWEメタパッケージをhold(6.14へ上がらないよう固定)

自動でカーネルが更新される のを防ぐため、HWEメタパッケージをholdする。

sudo apt-mark hold linux-generic-hwe-24.04 linux-image-generic-hwe-24.04 linux-headers-generic-hwe-24.04
apt-mark showhold
  • 上記は マイナー更新 (例:6.11.0-30)も止めるので、更新したければ 手動で入れる必要ありlinux-image-6.11.0-30-generic等)。

  • 固定せずに新しいカーネルが入っても古いカーネルが勝手に消えることはないが、アップグレードされたときに最新のカーネルがデフォルトになってしまうらしい。

LibratechLibratech

4. amdgpu/ROCm をインストール

https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/quick-start.html

基本は公式の手順に従って入れる。
amdgpu-install は公式インストーラ。これを入れるとリポジトリが登録され、 amdgpu-install コマンドで amdgpu/ROCm がインストールできるようになる。

# 最新のURLは要確認
wget -O amdgpu-install.deb "https://repo.radeon.com/amdgpu-install/6.4.3/ubuntu/noble/amdgpu-install_6.4.60403-1_all.deb"
sudo apt install ./amdgpu-install.deb

最新のパッケージのURLは上記の公式ページか、 https://repo.radeon.com/amdgpu-install/latest/ から探す。
次に本体をインストール。

# AMDGPU
sudo apt install amdgpu-dkms

# ROCm
sudo apt install python3-setuptools python3-wheel
sudo usermod -a -G render,video $LOGNAME
sudo apt install rocm

# 再起動
sudo reboot
LibratechLibratech

5. 動作確認

# グラフィックス(必要なら: sudo apt install -y mesa-utils)
glxinfo | grep "OpenGL renderer"
# OpenGL renderer string: AMD Radeon Graphics (radeonsi, gfx1151, LLVM 19.1.5, DRM 3.63, 6.11.0-29-generic)

# ROCm
rocminfo | less
clinfo | less
rocm-smi
  • rocminfoでGPUが列挙され、clinfoでOpenCLプラットフォームが見えればOK。