Open7
Proxmox構築メモ

目的
- Proxmoxを使用し、一台のPCでWindowsやLinuxの構築を行う
- WindowsにはGPUパススルーを使用してGPUを使用できるようにする
- GPUはAMDのiGPU(760M)でも使用できるようにする
環境
- CPU:AMD 8600G
- ベアボーン:DeskMini X600

Proxmoxのインストールと初期設定
インストール
-
公式サイト
- Downloadより 「Proxmox VE 8.3 ISO Installer」 を入手
- 参考サイト:初期設定は下記サイト様を参考に行う
初期設定
- サブスクリプション契約でないリポジトリを使用する
- ホストのSSH接続に鍵認証を使用するようにする
- 生成し、転送した公開鍵を登録する
$ cat id_ed25519.pub >> ~/.ssh/authorized_keys
- 生成し、転送した公開鍵を登録する
- パスワード認証によるSSHログインは禁止する
$ vim /etc/ssh/sshd_config # パスワードログインは拒否 -PasswordAuthentication yes +PasswordAuthentication no # 公開鍵認証を有効化(もともと出来ていたような?) PubkeyAuthentication yes # ed25519のみ受け付ける PubkeyAcceptedKeyTypes ssh-ed25519 # チャレンジレスポンスは無効 ChallengeResponseAuthentication no
- SSHサーバを再起動
$ systemctl restart sshd

ホスト側でGPUパススルー設定 その1
- 設定は下記サイト様を参考とする
- PCI IDを取得するGPUの「04:00.0」「1002:15bf」、Audioの「1002:1640」は後で使用する
# lspci -nn | grep -e 'AMD/ATI' 04:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev 05) 04:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt RadeonHigh Definition Audio Controller [1002:1640]
- grub設定変更を行い iommu(メモリ仮想化的な?)を有効にする
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt"/g' /etc/default/grub update-grub
- iommuなどを有効にするためのカーネルモジュールを読み込む
echo "vfio" >> /etc/modules echo "vfio_iommu_type1" >> /etc/modules echo "vfio_pci" >> /etc/modules echo "vfio_virqfd" >> /etc/modules
- 仮想化するデバイスを指定する(GPUとAudio)
echo "options vfio-pci ids=1002:15bf,1002:1640" >> /etc/modprobe.d/vfio.conf
- オリジナルのドライバが読み込まれる前に仮想用のものを読み込むよう指定
echo "softdep radeon pre: vfio-pci" >> /etc/modprobe.d/vfio.conf echo "softdep amdgpu pre: vfio-pci" >> /etc/modprobe.d/vfio.conf echo "softdep snd_hda_intel pre: vfio-pci" >> /etc/modprobe.d/vfio.conf
- 設定を有効にして再起動
update-initramfs -u -k all shutdown -r now

Windwos11の環境構築
- 下記サイト様を参考にする
- この手順は画面をメモ的に残す
- ローカルアカウントで初期セットアップを行う場合は下記を参考にする
- https://aichi-pcclinic.jp/blog/20240322-1330/
- ただし以下のようにしてネットワークの切断が必要
- ドライバは次の2つが必要
- vioscsi > w11 > amd64
- NetKVM> w11 > amd64

ホスト側でGPUパススルー設定 その2
- Win11のVM準備が整ったら残りのGPU設定を行う
- GPUのBIOS?を取り出す
- こちらのサイト様に記載の「vbios.c」を用意する
- ビルドして実行
apt install build-essential gcc vbios.c -o vbios ./vbios
- 生成されたbinファイルを移動する
mv vbios_1002_15bf.bin /usr/share/kvm/vbios_7xxx.bin
- WebコンソールからPCIデバイスを追加する
- VM設定ファイルを編集する
vim /etc/pve/qemu-server/<VM_ID>.conf
+args: -cpu 'host,-hypervisor,kvm=off' agent: 1 bios: ovmf boot: order=scsi0;ide0;ide2;net0 cores: 10 cpu: host efidisk0: local-lvm:vm-100-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M - hostpci0: 0000:04:00.0,pcie=1 + hostpci0: 0000:04:00.0,pcie=1,romfile=vbios_7xxx.bin machine: pc-q35-9.0 memory: 24576 meta: creation-qemu=9.0.2,ctime=1739968594 name: Win11 net0: virtio=BC:24:11:30:4A:9E,bridge=vmbr0,firewall=1 numa: 0 ostype: win11 scsi0: local-lvm:vm-100-disk-1,iothread=1,size=250G scsihw: virtio-scsi-single smbios1: uuid=d2b3787a-b049-4b51-b9f1-dbc95a1c1547 sockets: 1 tpmstate0: local-lvm:vm-100-disk-2,size=4M,version=v2.0 vmgenid: 0f284a75-d5a2-44c5-a583-551422d6fc5d

Win11側設定
- virtio-winのゲストツールをインストールする
- virtio-win-guest-tools.exe
- インストール後にGPUが認識されることを確認する
- AMDの公式サイトからドライバをDL、およびインストールする
- AMDリセットバグなるものがあるらしいので防止するバグフィックスを有効にする
- https://github.com/inga-lovinde/RadeonResetBugFix
- プログラムの配置で下記のようにするとサービス登録される
RadeonResetBugFixService.exe install

NPU設定
ただし動作はしない模様
- 以下のPCIデバイスを追加する
- Win11側のデバイスマネージャーで認識していることは確認できる