Ubuntuのカーネルを6.11に戻してROCmを入れる(EVO-X2)
EVO-X2のセットアップ中にハマったのでメモ。
ROCm 6.4系はUbuntu 24.04.2 + Kernel 6.11をサポートしているが、 6.14はまだサポートされていない。
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をオンにしていたからかも)
流れ
- Secure Boot をオフにしておく
- 6.11 HWEカーネル(公式パッケージ)を入れる
- GRUBの起動デフォルトを 6.11.0-xx に設定
- パッケージをhold してカーネルが自動更新されないようにする
- amdgpu(graphics + OpenCL)→ ROCmの順で導入
0. BIOSからSecure Bootをオフにしておく
オンで使う場合は 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
2. GRUBを「saved」方式に切り替え、6.11をデフォルトにする
そのままだと最新カーネルを起動してしまう。6.11が立ち上がるようにGRUBの設定を変更する。
6.14系を消してしまったほうが設定はシンプルだが、6.14系を使いたいことがあるかもしれないので、下記の設定で念のため残しておく。
まずデフォルト設定が効くように /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
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
等)。 -
固定せずに新しいカーネルが入っても古いカーネルが勝手に消えることはないが、アップグレードされたときに最新のカーネルがデフォルトになってしまうらしい。
4. amdgpu/ROCm をインストール
基本は公式の手順に従って入れる。
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
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。