RTX 3060 TiからRX 9060 XTへGPUを換装した

RTX 3060 TiからRX 9060 XTへGPUを換装した

  • 日本語
  • GPU
  • AMD
  • RX 9060 XT
  • Linux Mint
  • 自作PC

NVIDIA GeForce RTX 3060 Ti(8GB VRAM)からAMD Radeon RX 9060 XT(16GB VRAM)へGPUを換装した。 VRAM容量が倍増し、RDNA 4アーキテクチャによる電力効率の向上も期待できる。 Linux Mint環境ではカーネル更新やファームウェアの手動導入が必要だったため、その一連の作業を記録する。

#初のRadeon GPU

RX 9060 XT

#環境

  • OS: Linux Mint 22.3 Zena
  • CPU: AMD Ryzen 5 5600X
  • マザーボード: MSI MPG X570 GAMING PLUS(BIOS A.Q0)
  • RAM: 32GB

#換装内容

項目変更前変更後
GPUNVIDIA GeForce RTX 3060 Ti (8GB VRAM, GA104)AMD Radeon RX 9060 XT (16GB VRAM, RDNA 4, Navi 44)
カーネル6.8.0-106-generic6.17.0-19-generic
amdgpuファームウェアgfx1200なしgc_12_0_x系 手動導入
Resizable BAR未有効化有効化済み

これまで頑張ってくれた RTX 3060 Ti ありがとう。 定期的に掃除してたから4年ぐらいフルで利用してた割に綺麗だと思う。GPUも高騰してるから売るってよりも再利用したい。 もう一台PC組んでも良いかも。

RTX 3060 Ti

今日から RX 9060 XT よろしく。 Radeonは初めてだから楽しみ。

開封

#ハードウェア換装

#作業手順

  1. PCをシャットダウンし、コンセントを抜く
  2. RTX 3060 Tiの補助電源(8pin)を抜く
  3. PCIeスロットのリリースレバーを押してRTX 3060 Tiを引き抜く(意外と固くて焦った)
  4. RX 9060 XTをPCI_E1(一番上のフルレングススロット、CPU直結)に挿す
  5. 補助電源(6+2pin)を接続(向き注意)
  6. 電源投入

#映像が出力されないトラブル発生

電源を入れたところ、PCの電源は入りケースのRGBやCPUファンは動作するものの、モニターに映像が出力されなかった…

原因は PCIeスロットの接触不良 だった。 使用しているLian Li O11 Dynamicはマザーボードが垂直マウントのため、GPUの重みでスロットから浮きやすい。 背面からもマザーボードを抑えながらGPUをしっかり押し込むことで解決した。 初期不良かと思って焦った…

#補助電源の挿し方

RX 9060 XTの補助電源は6+2pin構成になっている。 コネクタにはツメ(クリップ)があり、これで向きを判別できる。 6ピン部分をソケットに軽く合わせて向きを確認し、2ピンをくっつけて一緒に押し込む。 カチッとクリップがロックされる感触があれば正しく接続されている。

補助電源端子

自作した当初のRTX 3060 Tiでは意識してなかったような…偶然成功してたのか…

接続成功の確認はGPUがピカピカしたことで確認。

接続成功

#GPUファンについて

RX 9060 XTはセミパッシブ(ゼロファン)モードを搭載しており、低温時にファンが停止するのは正常な動作である。起動時(POST時)に一瞬回ってから停止するのが一般的な挙動だ。

#ソフトウェア対応

RX 9060 XT(RDNA 4 / gfx1200系)をLinux Mintで動かすには、今回の環境では以下の3つを揃える必要があった。

  1. RDNA 4を認識できる新しいカーネル
  2. Mesa 25系
  3. amdgpuファームウェア(gc_12_0_x / psp_14_0_x / sdma_7_0_x 系)

換装直後の状態(カーネル6.8)では、amdgpuドライバがRDNA 4に対応しておらず、ソフトウェアレンダラー(llvmpipe)にフォールバックしていた。

#カーネル更新(6.8 → 6.17)

バージョン選択の理由

バージョン状況
6.8Linux Mint 22.x系の標準カーネル。今回のGPUはこの状態では正常動作しなかった
6.14HWE系の候補として見られる時期がある
6.17今回導入した版。実機で正常起動と描画を確認できた

Linux Mint 22.3環境では Update Manager から 6.17 系を選んで導入した。結果として問題なく動作している。

手順

  1. Update Manager → 表示 → Linux カーネル
  2. 警告画面で「続行」(NVIDIAプロプライエタリドライバを使用していないため問題なし)
  3. 左側で「6.17」を選択
  4. 「6.17.0-19」をクリック → 「インストール」

古いカーネル(6.8)は削除されずに残るため、問題が発生した場合はGRUBメニュー → Advanced options → 6.8カーネルで起動できる。

#Mesa確認

bash
glxinfo | grep "Mesa"

当時の確認結果はMesa 25.2.8で、Mesa 25系を既に満たしていた。追加作業は不要。

#amdgpuファームウェアの手動導入

当時のLinux Mint 22.3標準の linux-firmware パッケージ(20240318系)には、RDNA 4向けのファームウェアが含まれていなかった。

bash
ls /lib/firmware/amdgpu/ | grep '^gc_12'
# → 何も表示されない

導入手順

linux-firmwareリポジトリからamdgpuファームウェアを取得する。リポジトリが巨大(730MB程度)なため、sparse-checkoutでamdgpuディレクトリのみを取得した。

それでもクローンには結構時間かかった。

bash
cd ~/ダウンロード
git clone --depth 1 --filter=blob:none --sparse https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
cd linux-firmware
git sparse-checkout set amdgpu

RDNA 4向けファームウェアの存在を確認する。

bash
ls amdgpu/ | grep -i "gc_12\|navi4\|gfx_12\|psp_14\|sdma_7"

主なファイルとして gc_12_0_0_me.bingc_12_0_1_me.binpsp_14_0_2_sos.binsdma_7_0_0.bin などが含まれていることを確認できた。

ファームウェアを配置してinitramfsを更新する。

bash
sudo cp amdgpu/* /lib/firmware/amdgpu/
sudo update-initramfs -u -k 6.17.0-19-generic

なお、Ubuntuのlinux-firmwareパッケージがgfx1200対応版に更新されれば、この手動管理は不要になる。パッケージ更新時に上書きされる可能性があるが、より新しいファームウェアが含まれるため問題ない。

#BIOS設定(Resizable BARの有効化)

カーネル更新・ファームウェア導入後の再起動時に、BIOSでResizable BARを有効化した。

#設定場所

Settings → Advanced → PCIe/PCI Subsystem Settings

#設定項目

項目設定値
Re-Size BAR SupportEnabled
Above 4G memory / Crypto Currency miningEnabled(Re-Size BARを有効にすると自動有効化)

前提条件として、CSMが無効(UEFIモード)であることとBIOSがResizable BAR対応であることが必要だが、いずれも BIOSアップデート で確認済みだった。

#動作確認

#GPU認識

bash
$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: AMD Radeon Graphics (radeonsi, gfx1200, LLVM 20.1.2, DRM 3.64, 6.17.0-19-generic)

RX 9060 XTがハードウェアアクセラレーション付きで正常に認識されている。

#カーネル

bash
$ uname -r
6.17.0-19-generic

カーネル6.17で正常に起動している。

#今後の課題

#カーネル6.17のサポート期間

HWEカーネルは追随更新が必要になるため、今後も新しい系列への切り替えは意識しておきたい。フォールバック用として6.8は残してある。

#ROCm / ローカルLLM

RTX 3060 Ti(CUDA)からRX 9060 XT(ROCm)への移行に伴い、ローカルLLMのワークフロー変更が必要になる。OllamaのROCm対応版の導入を検討している。16GB VRAMにより、以前の8GBから大幅にモデルサイズの選択肢が広がるのは楽しみだ。

#Kdenliveの設定見直し

普段使っているKdenliveも、GPU換装に合わせて NVENC から VAAPI への切り替えが必要だった。アプリ側の対応は RX 9060 XTへ換装したのでKdenliveの設定をNVENCからVAAPIへ切り替えた にまとめた。

#まとめ

NVIDIAからAMDへのGPU換装は、Linux環境ではカーネルやファームウェアの対応状況を事前に確認しておくことが重要だった。 特にRDNA 4のような新しいアーキテクチャでは、ディストリビューションのパッケージが追いついていない場合があり、手動でのファームウェア導入が必要になることがある。

ただ、AMDのGPUはオープンソースドライバ(amdgpu + Mesa)で動作するため、NVIDIAのプロプライエタリドライバで経験した nvidia-prime問題 のようなトラブルは起きにくいと感じている。 一度環境が整えば、非常に安定して動作する。

VRAM 8GB → 16GBの恩恵は、ゲームだけでなくローカルLLMの運用でも大きい。ROCm環境の構築が次のステップになるかな? できることが増えそうなので楽しみ。