💬

GMKtec EVO-X2にUbuntu 24.04+ROCmを導入

に公開

EVO-X2(Ryzen AI Max+ 395/RAM 128GB/SSD 2TB)に Ubuntu 24.04 LTS を入れ、ROCm を導入し、rocminfo / rocm-smi が正常に動くところまで。途中で遭遇した「貼り付けが勝手に変わる」現象や、起動時に出る usb 3-5 のエラーの扱いも実機ログで共有します。

TL;DR

  • linux-oem-24.04c を使うと、最新APUのI/O/AMDGPU周りが安定しやすい
  • rocminfo / rocm-smi が動けば “GPUが見えている” 状態
  • 起動時に usb 3-5 関連のエラーが出ても、本検証では実害なし(後日切り分け対象)
  • ターミナルの“謎補完”は bash --noprofile --norc と フルパス+引用符 で回避

1. マシン構成

GMKtec EVO-X2

  • プロセッサ:AMD Ryzen™ AI Max+ 395(16コア/32スレッド、最大 5.1GHz)
    • NPU:最大 50 TOPS/合計 最大126 TOPS(CPU+GPU+NPU)
  • 内蔵GPU:AMD Radeon™ 8060S(iGPU/システムメモリ共有)
  • メモリ:128GB LPDDR5X-8000(オンボード 8×16GB、増設不可)
  • ストレージ:2TB M.2 2280 NVMe(PCIe 4.0×4、1スロット空き)
  • 画面出力:HDMI 2.1 ×1、DisplayPort 1.4 ×1、USB4 ×2(最大 8K@60Hz、同時4画面)
  • 通信:有線 2.5G LAN ×1、Wi-Fi 7、Bluetooth 5.4

https://www.amazon.co.jp/dp/B0F5H9KS9R?th=1&linkCode=ll1&tag=nabelabs-22&linkId=03e0d0c8626fd1b723946524a68fbffb&language=ja_JP&ref_=as_li_ss_tl

2. M.2 SSD 換装

Ubuntu 導入にあたり、元々 Windows11 が入っているSSDをそのまま残しておきたい、と別にM.2 SSDを購入して、そちらにUbuntuをインストールすることにしました。あとで切替えて起動できるようにしようと思いますが、当面、必要になるまでは、元のSSDを外して、Ubuntu専用のSSDでいろいろ試してみようと思います。

まずは分解です。GMKtec公式の分解動画が公開されていますので参考にしてください。

https://youtu.be/1zUyVSKtczU

要は、底面のゴム足をラジオペンチなどで剥がして、下の写真の赤丸の2つのネジを外すだけです。もうひとつのゴム足も同様。

EVO-X2+nabelabo-1.jpg

開けるとこんな風に、大きなファンと、M.2 SSDのスロットにアクセスできます。

2025-11-08 17.21.08a.jpg

M.2 SSDは結構熱くなるので、ヒートシンク必須です。EVO-X2には十分スペースがあるので大き目のヒートシンクでも大丈夫でしょう。

2025-11-08 17.35.00a.jpg

大き目で大丈夫とは書きましたが、2つ並べるとギリギリって感じでした。もうちょっとだけスロット離して配置して欲しかったな。

3. Ubuntu導入

それでは Ubuntu を通常インストールしていきます。ROCmの最新の導入などを考えて、バージョンは 24.04 LTS をベースにします。インストール用のUSBメモリの準備は Server world などを参考に。
https://www.server-world.info/query?os=Ubuntu_24.04&p=download

UbuntuのUSBメモリが準備できたら、EVO-X2に挿して、電源入れて、すぐにDELキー押してBIOS設定に入ります。

2025-11-08 18.24.18a.jpg

Bootタブで、「USB Device」SSDの「NVME」より上に「USB Device」を持ってきて保存して終了。
Ubuntu 24.04 LTSのインストールも Server World を参考にサクサク進めました。
https://www.server-world.info/query?os=Ubuntu_24.04&p=install

ちなみに、構成は Ubuntu Server (minimized) を選択、NICは eno1 と認識されてMacアドレスもインストーラーで表示されたので、DHCPサーバ側で固定IPを割り振りました。今回、SSDは、Gen4のM.2 SSDで容量は1TB、パーティション分けはせず、全領域をLVMに割り当てました。最小構成ですが、OpenSSH Serverだけはチェックして、インストール完了。

セットアップ後に基本ツールを導入:

sudo apt update && sudo apt install -y build-essential git cmake python3-venv \
    linux-oem-24.04c
sudo reboot

linux-oem-24.04c について

EVO-X2の“最新世代ハード”を安定して使うため、より新しいカーネルとドライバ束(HWEよりさらに新しめ)を入れるのが linux-oem-24.04c で、AMD Strix Halo 世代の xHCI(USB 3.x コントローラ)、USB4/Thunderbolt、Wi-Fi 7 / BT 5.4、2.5G LAN、そして AMDGPU (gfx1151) などは、24.04標準やHWEよりもさらに新しい修正が入っていることが多いそうです。
また、AMDGPU/ROCm 側の恩恵として、新しめの amdgpu ドライバや、IOMMU/電源管理系の修正が入り、llama.cpp の HIP/rocBLAS オフロード時に相性が良いことが多い(低レイテンシ化・VRAM認識の安定など)。

4. 初期トラブル

再起動させたら、2点問題発生

症状1:コンソールでプロンプトが出ない

  • 起動直後に Ubuntu 24.04.3 LTS evo-x2 tty1 の1行のみ表示され、ログインプロンプトが出ないなった(Enter押下で表示)

症状2:起動が遅い

計測例:
systemd-analyze time
# Startup finished in 16.8s (firmware) + 1.9s (loader) + 1min 8.8s (kernel) + 7.0s (userspace) = 1min 34.5s

→ kernelフェーズが約69秒と長め。

USB関連の典型エラー抽出

sudo dmesg -T | egrep -n "usb 3-5|Timeout while waiting for setup device command|device descriptor read/64|not accepting address" | tail -n 120
実機ログ:
... usb 3-5: new high-speed USB device number 2 using xhci_hcd
... usb 3-5: device descriptor read/64, error -110
... usb 3-5: device descriptor read/64, error -110
... usb 3-5: new high-speed USB device number 3 using xhci_hcd
... xhci_hcd 0000:c7:00.0: Timeout while waiting for setup device command
... usb 3-5: device not accepting address 5, error -62

この usb 3-5 が悪さをしている?
Bus 003 に HID(キーボード/マウス)は見えるが、3-5に実体デバイスは出ないケース
念のため、USBキーボードやマウスとか全部外しても改善せず。

直近1分に新規エラーが出ているかを簡易チェック

sudo journalctl -k --since "1 min ago" \
  | egrep -i "usb 3-5|Timeout while waiting|descriptor read/64|not accepting address" \
  || echo "OK: 直近1分は新規エラーなし"

実機ログ:
OK: 直近1分は新規エラーなし

ここでチャッピーから提案。

  • 起動時エラーは出続けるが、GPU推論・ROCm・ネットワークは安定している
  • LLM用途への影響は現時点で見られず。後述記事の通り、ROCmでの推論実測も良好
    チャッピーは、無視してよくね?とw

「コピペが勝手に変わる」現象の対策

症状:lddがlldd化、パスが//usr/bin化など、リターンキーで先頭に一文字追加されてしまう症状。
これもチャッピーと相談
一時的にクリーンな bashに切り替えましょう、と

対処:クリーンBashで確認:
bash --noprofile --norc
echo "$0 (clean shell)"; alias; bind -V | grep enable-bracketed-paste

bash (clean shell)
enable-bracketed-paste is set to `on'

5. ROCm の導入と確認

5.1 パッケージの取得と導入

まずは AMD リポジトリの “インストーラ” パッケージを取得して導入します。

# 1) 取得
wget https://repo.radeon.com/amdgpu-install/6.4.4/ubuntu/noble/amdgpu-install_6.4.60404-1_all.deb

# 2) 導入(依存解決付き)
sudo apt update
sudo apt install -y ./amdgpu-install_6.4.60404-1_all.deb
  • ここで amdgpu-install コマンド本体と、関連リポジトリ設定が入ります
  • 参考:amdgpu-install --help で usecase(プリセット)を確認できます

5.2 ROCm をインストール

EVO-X2 を日常の GUI 利用もしつつ、ROCm で LLM 推論を行うため、

  • デスクトップ用グラフィックス(Mesa/Vulkan 等)+ ROCm ランタイムをまとめて導入し、rocminfo / hipcc / rocm-smi が使える状態にする
  • graphics,rocm を同時指定してユーザー空間を一括導入
sudo amdgpu-install --usecase=graphics,rocm --accept-eula -y
  • graphics:Mesa/VA-API/Vulkan など デスクトップ用グラフィックスのユーザー空間を導入
  • rocm:HIP/rocBLAS 等、ROCm ランタイム一式を導入
  • --accept-eula -y:ライセンス同意と非対話インストール

5.3 導入後の確認

rocminfo(HSA/デバイス検出)

/opt/rocm/bin/rocminfo | head -n 15

ROCk module is loaded
=====================
HSA System Attributes
=====================
Runtime Version:         1.15
Runtime Ext Version:     1.7
System Timestamp Freq.:  1000.000000MHz
Machine Model:           LARGE
System Endianness:       LITTLE
Mwaitx:                  DISABLED
XNACK enabled:           NO
DMAbuf Support:          YES
VMM Support:             YES

hipcc(コンパイラ)

/opt/rocm/bin/hipcc --version

HIP version: 6.4.43484-123eb5128
AMD clang version 19.0.0git ...
InstalledDir: /opt/rocm-6.4.4/lib/llvm/bin

rocBLAS の有無

ls -1 /opt/rocm/lib/*rocblas* 2>/dev/null

/opt/rocm/lib/librocblas.so
/opt/rocm/lib/librocblas.so.4
/opt/rocm/lib/librocblas.so.4.4.60404

rocm-smi

温度/電力/使用率のスナップショットを確認

/opt/rocm/bin/rocm-smi --showtemp --showpower --showuse --alldevices

5.4 つまずきポイントと対処

  • DKMS 競合:OEM カーネル利用時は DKMS を入れない方が安定するケースあり。問題が出たら --no-dkms を付けて再導入
  • クリーン再導入:失敗時は sudo amdgpu-uninstall → sudo apt autoremove → 再実行
  • グラフィックス周り:graphics を外すと GUI 側の最適化/デコーダ系が薄くなることがあるため、本機は graphics,rocm 同時指定を推奨

今回(Ubuntu 24.04.3 LTS + linux-oem-24.04c + amdgpu-install 6.4.4、--usecase=graphics,rocm)では、DKMS 競合は発生せずそのまま動作しました。
rocminfo と hipcc --version が通り、rocm-smi でも温度・電力・使用率が取得できています。
なお、AMDGPU の カーネル側バージョン表記(例:6.12.12) と ROCm ユーザー空間(例:6.4.4) は命名体系が異なるため一致しませんが、これは正常だそうです。

# DKMS の状態
dkms status | grep -i amdgpu || echo "amdgpu の DKMS エントリは見つかりません"

# 現在のカーネルと amdgpu モジュールが一致しているか
uname -r
modinfo amdgpu | egrep 'filename|version|srcversion|vermagic'

# ROCm 基本確認
/opt/rocm/bin/rocminfo | head -n 15
/opt/rocm/bin/hipcc --version

# 軽い動作確認(余計な罫線を省いた rocm-smi 出力)
/opt/rocm/bin/rocm-smi --showtemp --showpower --showuse --alldevices \
  | sed -e '1,2d' -e '/^=\\{5,\\}$/d' -e '/End of ROCm SMI Log/d'

本記事では EVO-X2 への Ubuntu 導入と ROCm 環境の整備・確認までを一気通貫で押さえました。次回はこの基盤の上で llama.cpp を用いた LLM 推論を行います。

https://www.amazon.co.jp/dp/B0F5H9KS9R?th=1&linkCode=ll1&tag=nabelabs-22&linkId=03e0d0c8626fd1b723946524a68fbffb&language=ja_JP&ref_=as_li_ss_tl

Discussion