Minisforum N5 PRO NASで次期仮想ホストを構築しよう
動機
ESXiをThreadripperで作ったがWin11に対応してない・・・
ケース大きいしN5 PRO NASで構築しよう!
仮想化はESXiがごたごたしてたし、過去のESXiをUSBで起動していると
USB自体が破損して再設定もあったので今回Proxmoxで作成します。
Proxmox自体が初めて
仮想化ホストでHyper-VかXenにしようかKVMにしようか悩んで、
GPUパススルーができそうなproxmoxに決定
加えて、ESXiからもインポートができそうだった
Proxmoxの起動ができず・・・
N5 PRO NASの場合、
PROXMOXをSATA-SSDに入れた場合、起動時のBIOS設定で
Offboard sata controller configurationを有効化しないとProxmoxのOSを認識しません。
→有効化設定で無事に起動できるようになりました。
憶測
Ryzen AI 370のPCIレーンがAMDのサイトで16レーンなのでhttps://www.amd.com/ja/products/processors/laptop/ryzen/ai-300-series/amd-ryzen-ai-9-hx-370.html
x4 PCIx16スロット
x4 Oculink
x1 NVMe-A
x2 NVMe-B
x1 NVMe-C
合計12レーンで残り4レーンがSATAで接続しているのかなと勝手に考えて納得してます。
ESXi時代のUSBメモリインストールでやれなかったこと
2017年に構築して3~4回くらいUSBメモリが壊れているので、
ログの出力をなるべくメモリに書き出したり出力を抑えるようにしたいと考えてfolder2ramを導入
参考1
参考2
https://github.com/bobafetthotmail/folder2ram/blob/master/README.md
上記を設定することで、起動時にメモリをマウントし、シャットダウン前に書き込みを
所定のフォルダ(例えば/var/logなど)を行ってくれるはず
ESXiからのインポート
最初に調べたものだとvmdkを格納して変換する必要がありそうだと思ってましたが、
ホストが別だと直接接続してLAN経由でインポートできました。
めっちゃ楽
→インポートのマシンを選択して割り当てを再設定すればいい感じ
※一部仮想マシンのWINDOWS認証が外れてしまって現在どうすればいいのか考えてます。
1台成功・1台失敗
失敗しているのはGPUパススルーしてるメインPCなのでPCI構成も大幅に変わった影響かもしれない。。。
Radeon 890Mのパススルー
パススルーがうまくいかずめっちゃはまったのでXに助言を求めた結果
やり方をいろいろ試行錯誤している結果なので最善の状態ではないかもしれません。
教えてもらったqiita
GRUBを編集
nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="amd-pstate=passive quiet intel_iommu=on amd_iommu=on iommu=pt initcall_blacklist=sysfb_init textonly video=astdrmfb video=efifb:off pcie_acs_override=downstream,multifunction"
GRUBを更新
update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.14.11-1-pve
Found initrd image: /boot/initrd.img-6.14.11-1-pve
Found linux image: /boot/vmlinuz-6.14.8-2-pve
Found initrd image: /boot/initrd.img-6.14.8-2-pve
Found memtest86+ 64bit EFI image: /boot/memtest86+x64.efi
Found memtest86+ 32bit EFI image: /boot/memtest86+ia32.efi
Found memtest86+ 64bit image: /boot/memtest86+x64.bin
Found memtest86+ 32bit image: /boot/memtest86+ia32.bin
Adding boot menu entry for UEFI Firmware Settings ...
done
vfioモジュールを追加
vfio
vfio_iommu_type1
vfio_pci
/etc/modprobe.d/vfio.confを作成
まずはPCIデバイスIDを調べる
一応グラボっぽいのがRadeon 880/890MとHDMI出力でのオーディオ出力に必要そうなやつをGrep
lspci -nn | grep Radeon
c5:00.0 Display controller [0380]: Advanced Micro Devices, Inc. [AMD/ATI] Strix [Radeon 880M / 890M] [1002:150e] (rev d1)
c5:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Radeon High Definition Audio Controller [Rembrandt/Strix] [1002:1640]
取得したIDが以下
[1002:150e]
[1002:1640]
vfio.confにデバイスIDを記載する
options vfio-pci ids=1002:150e,1002:1640 disable_vga=1
softdep amdgpu pre: vfio-pci
softdep snd_hda_intel pre: vfio-pci
VBIOSを抽出する
手順でVBIOSの抽出で
Expand vbios.c
のファイルをサクラエディタ等で保存して
WinSCPで/homeにアップロードする。
gccコンパイルが必要っぽいのでgccを入れる
apt install gcc
which gcc
/usr/bin/gcc
ファイルのコンパイル
gcc vbios.c -o vbios
./vbios
dump vbios 1002:150e to vbios_1002_150e.bin
ls -l
total 44
-rwxr-xr-x 1 root root 16440 Sep 18 01:39 vbios
-rw-r--r-- 1 root root 17408 Sep 18 01:39 vbios_1002_150e.bin
-rw-r--r-- 1 root root 3034 Sep 18 01:30 vbios.c
vbios_1002_150e.binをリネームして/usr/share/kvm/に格納する
mv vbios_1002_150e.bin /usr/share/kvm/vbios_Radeon890M.bin
initramfsを更新して再起動Proxmox再起動
update-initramfs -u -k all
reboot
仮想マシンの設定ファイルを更新する
VBIOSとGopの設定を行う
hostpci0: 0000:c5:00.0,pcie=1,romfile=vbios_Radeon890M.bin
hostpci1: 0000:c5:00.1,pcie=1,romfile=AMDGopDriver.rom
RadeonResetBugFixサービスを入れる。
Radeonのバグ?っぽいのがあるのでインストールを行う。
AMDのRadeon890Mにドライバーエラー43が出ていないことを確認!
再起動できることを確認する
ひとまず細かいVMの設定とかは書き連ねたので公開
今後、追記で更新していく感じにしようかと思います。