vnc での表示 (proxmox) ― 2024年10月11日 08:23
表示が遅いです
以下の構成のvm を spiceで表示すると、foot の描画は問題ありませんが、壁紙や、firefox、youtube などで、描画が遅くなりました。
- sway on alpine linux 3.20 with display spice(qxl) / proxmox
- sway on alpine linux 3.18 with display spice(qxl) / proxmox
以下は、遅くありません。
- sway on alpine linux 3.18 with display spice(qxl) / local kvm
- gnome on alpine linux 3.20 with display spice(qxl) / proxmox
解決?
以下に、”SPICEの為、Xorgセッションを使う”とありました。 Wayland の 描画は、Proxmox の SPICE では、遅いのかもしれません。
proxmox の novnc は、Windowキーの入力がしづらい為、 別のvnc clientで接続すると遅くありませんでした。
proxmox の spice が、X / Wayland の違いで影響を受けたのだと思うのですが、 gnome の表示が遅くなかったのが、何故かは、判りません。:D
Baldur's Gate 3 の画像 ― 2024年10月01日 18:24
Ubuntu 24.04 on Proxmox 8.2.7 with ADM Radeon RX 7600 (GPU PassThrough) ― 2024年09月30日 20:16
Windows環境で、Baldur's Gate 3を遊んだPCに、Proxmoxを入れて、UbuntuのVMで動作するかを確認しました。
ベアメタル上に Ubuntu を入れて動作確認
まずは、ベアメタル上にUbuntu 24.04をインストールして、動作を確認。noble用のamdgpu-insatll_6.2.*.debをインストールして、Baldur's Gate 3 が動作することを確認しました。
Proxmox の構築
BIOS の設定
後で記載します
Proxmox のインストール
ISO から、インストールしました
Activating IOMMU for GRUB
video=efifb:off は、不要かもしれません。
- /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt amd_iommu=on video=efifb:off"
- update-grub
ROM の取得
GPU passthrough の設定(/etc/modules の vfio設定等)の前に、AMD GPU の romをダンプします。
cd /sys/bus/pci/devices/0000:03:00.0/ echo 1 > rom cat rom > /tmp/image.rom echo 0 > rom
vfio設定後等だと、cat でエラーが出て取得できませんでした。
rom-parser で、確認すると、正しく取得できたかわかりやすいです。 以下の様なエラーや、Invalid が出ていると正しく読めないと思います。
rom-parser ./vbios_1002_7480.bin Valid ROM signature found @0h, PCIR offset 3c0h PCIR: type 0 (x86 PC-AT), vendor: 1002, device: 7480, class: 030000 PCIR: revision 0, vendor revision: 1603 Error, ran off the end
romファイルは、以下に配置します。
/usr/share/kvm
vendor-reset インストール
AMD Reset Bug対応として、Proxmoxに、 gnif/vendor-resetをインストールし、service 登録します。
service 登録の方法は、 [TUTORIAL] PCI/GPU Passthrough on Proxmox VE 8 のとおり。ただ、device_specific の書き込みに失敗したので、'echo device_specific' の範囲をシングルクォートで囲むようにしました。
ExecStart=/usr/bin/bash -c 'echo device_specific' > /sys/bus/pci/devices/0000\:03\:00.0/reset_method
vfio設定
blacklistや、vfioのsoftdep設定も、試しましたが、 現時点では、以下の設定のみを行っています。
> cat /etc/modules vfio vfio_iommu_type1 vfio_pci vfio_virqfd vendor-reset
lspci -v で、driver が vfio かを確認します。
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc.[AMD/ATI] Navi 33 [Radeon RX 7600/7600 XT/7600M XT/7600S/7700S / PRO W7600] (rev cf) (prog-if 00 [VGA controller]) (中略) Kernel driver in use: vfio-pci Kernel modules: amdgpu (中略) 03:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 HDMI/DP Audio (中略) Kernel driver in use: vfio-pci Kernel modules: snd_hda_intel
VMの設定
Ubuntu のインストール
以下のマシン構成でUbuntu 24.04 を ISOからインストールします。
- CPU : hostを選択
- BIOS: OVMF(UEFI)を選択
- マシン:q35 を選択(バージョンは最新、vIOMMUは起点(None))
- Pre-Enroll keys:未選択
- TPM追加:未選択
- ディスプレイ:VirIO-GPU
リモートログインと、sshdのインストール
ディスプレイがなくなっても、GUIの操作ができるように、 Ubuntu24.04のリモートログインを有効にします。
加えて、もしものために、sshdをインストールします。
sudo apt install openssh-server sudo systemctl enable ssh sudo systemctl start ssh
amdgpu driver のインストール
ベアメタル同様、amdgpu-insatll_6.2.*.debをインストールします。 amdgpu-install も、ベアメタルと同様です。
sudo amdgpu-install --usecase=graphics,rocm
fwupd のサービス停止
rocminfo を実行すると、”error: kvm run failed Bad address” が出たので、 まじないかもですが、同様の記事を参考にfwupd サービスを停止します。
systemctl stop fwupd fwupd-refresh.service fwupd-refresh.timer fwupd-offline-update.service systemctl mask fwupd fwupd-refresh.service fwupd-refresh.timer fwupd-offline-update.service systemctl status fwupd fwupd-refresh.service fwupd-refresh.timer fwupd-offline-update.service
PCIデバイスの追加と、ディスプレイの削除
仮想マシンを停止し、マシン構成にPCIデバイスを追加します。 加えて、ディスプレイを削除します。
- PCIデバイス:0000:03:00,pcie=1,romfile=XXXX,xvga=1
- ディスプレイ:VirIO-GPU << 削除
PCIデバイスのromfile設定は、ProxmoxのWebUIでは設定できないため、 設定ファイルを修正します。
vi /etc/pve/qemu-server/XXX.conf hostpci0: 0000:03:00,pcie=1,romfile=XXXX,x-vga=1
amdgpu_top のインストール
PCIデバイス追加後、VMを起動し、RemminaのRDPプロトコルで 接続します。
AMD GPUの動作状況を確認するツールとして、 AMDGPU_TOPをインストールしました。
これで、冒頭の画面のように、RX7600が System Detailsにも表示され、状況を確認できました。
できてない事、未確認の事
- Steam でのゲームパッドの認識
- サウンドの出力、マイクの入力
前者は、ElecomのJC-U4013Sが ベアメタルでは認識でき、使用できていました。
USBデバイスとして、VMに追加し、joystickと、xboxdrv をインストールし、 joystickとしては認識でいているのですが、Steamでは認識できませんでした。
sudo apt install joystick sudo apt install xboxdrv
後者は、GPUをPCIで追加する際、全機能ではなく個別に追加し、 ROMファイルも個々に指定するようですが、 手持ちのスピーカがなく、未確認です。:D
最近のコメント