🎃

Secure Bootの罠とROCm:最新RadeonでのPyTorchとLinux Mint AI開発環境構築ログ

に公開

はじめに

2025年年末、最新の Radeon RX 9060 XT (RDNA 4) を入手し、Linux Mint環境でAI開発(PyTorch)を行おうとした際のつまずいた点の記録です。

もともと、Radeon RX 6600XTを使用していて、「最新のGPUだから公式ドライバを入れればいいだろう」というWindows的な直感で作業を進めた結果、画面出力の不具合とROCmのバージョン不整合という二重の罠にはまりました。

同じ構成で躓いている方のために、解決までの道のりと「なぜ動かなかったのか」の原因をまとめました。

環境

  • OS: Linux Mint 22 (Ubuntu 24.04 LTSベース)
  • CPU: AMD Ryzen 7 5700X
  • GPU: AMD Radeon RX 9060 XT (RDNA 4 / gfx1200)
  • Python環境: uv (Python 3.12)

結論(3行まとめ)

  1. LinuxMintでは公式ドライバインストーラーは使わない:Secure Boot環境では署名エラーでGPUが動かなくなる(OS標準ドライバでOK)。
  2. Stable版 ROCm は動かない:RDNA 4 (gfx1200) は ROCm 6.0系では未対応。ROCm 7.0系から対応(https://rocm.docs.amd.com/en/latest/compatibility/compatibility-matrix.html#compatibility-matrix)
  3. 解決策:ドライバは標準の amdgpu を使い、PyTorchは ROCm 7.1 対応のNightly版 を入れる。

トラブル1:映像出力の消失とSecure Bootの罠

現象

AMD公式サイトからLinux用ドライバインストーラーをダウンロードし、インストールを実行。
再起動後、以下の不具合が発生した。

  • モニター解像度が低下し、リフレッシュレートが 30Hz に固定される。
  • ディスプレイ設定での表示が 「不明なディスプレイ (None-1)」 になる。
  • inxi -G コマンドで確認すると、ドライバが適用されておらず、ソフトウェア描画(llvmpipe)になっていた。
Device-1: AMD driver: N/A  # ドライバが当たっていない
...
renderer: llvmpipe (LLVM 20.1.2 256 bits) # CPUで無理やり描画している
原因:Secure Bootによる署名ブロック

AMD公式インストーラーが導入するカーネルモジュール(DKMS)には、PCのBIOSが信頼するデジタル署名が含まれていなかった。

そのため、Secure Bootが有効な状態ではOSがドライバの読み込みを拒否し、GPUが機能停止していた。

解決策

インストールしてしまった「署名のないドライバ」を削除し、Linuxカーネル標準の「署名済みドライバ」に戻した。

# 不正なドライバ(バージョンは環境による)を削除

sudo dkms remove amdgpu/6.16.6-2255209.24.04 --all 

sudo reboot

これで driver: amdgpu が読み込まれ、4K 60Hz表示が復活した。

トラブル2:PyTorchの互換性問題

画面は直ったものの、PyTorchでGPUを使おうとするとエラーが発生した。

最初は安定版である ROCm 6.0 対応のPyTorchをインストールしたが、認識しなかった。

ROCm 6.0 (Stable): RuntimeError: No HIP GPUs are available

原因:情報の欠如と対応ラグ

RX 9060 XT (gfx1200) はアーキテクチャが新しすぎるため、当時の安定版 ROCm (6.x系) ではサポートされていなかった。また、RDNA 4 は旧世代である RDNA 3 (gfx1100) との命令セットの互換性がなさそうな雰囲気で、情報の偽装も試したが動作しなかった。

解決策:ROCm 7.1 Nightly版の導入

AMD公式の Compatibility Matrix を確認したところ、ROCm 7.0 以降で gfx1200 (RDNA 4) が正式サポートされていることを初めて知った。

これを受け、ROCm 7.x 系に対応した PyTorch を探した結果、Nightly(開発版)リポジトリにて ROCm 7.1 対応版 がリリースされていることを見つけた。

よってNightly版を導入した。

uv venv # 仮想環境の作成
source .venv/bin/activate # 仮想環境の有効化

uv pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm7.1 # ROCm 7.1 対応のNightly版をインストール

その後、以下のPythonスクリプトを実行し、ネイティブにGPUが認識され、Tensor計算が行えることを確認した。

import torch

print(f"PyTorch Version: {torch.__version__}")

if torch.cuda.is_available():
    print(f"GPU Name: {torch.cuda.get_device_name(0)}")
    
    # 実際にGPU上でTensor計算ができるかテスト
    x = torch.rand(5, 3).cuda()
    print("Success: GPU Tensor calculation verified.")
    print(x)
else:
    print("No GPU found.")

実行結果:


PyTorch Version: 2.6.0.dev20260105+rocm7.1
GPU Name: AMD Radeon RX 9060 XT
Success: GPU Tensor calculation verified.
tensor([[0.2635, 0.1267, 0.5491],
        [0.1244, 0.5416, 0.4178],
        [0.5998, 0.6572, 0.0212],
        [0.1719, 0.3895, 0.7995],
        [0.2613, 0.4313, 0.2237]], device='cuda:0')

device='cuda:0' と表示されており、RX 9060 XT 上で正常に計算が行われていることが確認できた。

まとめ

今回の環境構築で躓いたポイントは以下の3点でした。

  1. 「公式ドライバ=絶対」ではない
    Linux Mint(特にSecure Boot有効時)において、メーカー配布のインストーラーが必ずしも正解とは限らない。署名のないドライバはロードされず、画面異常を引き起こす原因となるため、OS標準ドライバの利用を第一に検討すべきだった。

  2. 情報収集は「一次情報」から
    検索で出てくるブログ記事は情報が古い場合がある。自分の情報収集の反省として、AMD公式の「Compatibility Matrix」などの一次ドキュメントを最初に確認すべきだった。

  3. 最新ハードウェアには「Nightly版」を視野に
    PyTorchの安定版(Stable)は信頼性が高いが、最新アーキテクチャへの対応にはラグがある。発売直後のGPUを使う場合は、迷わずNightly版(開発版)を視野に入れる必要があった。

Linuxで最新Radeonを使う方の参考になれば幸いです。

この記事はgeminiで一部生成し作成しました。

Discussion