SVM Mode
: EnabledPrimary Video Adaptor
: PEG (External First)IOMMU
: EnablediGPU Configuration
: UMA_AUTOCSM
: Enabled커널파라메터에 아래 내용을 추가한다.
amd_iommu=on iommu=pt video=efifb:off pcie_acs_override=downstream,multifunction amdgpu.exp_hw_support=1 modprobe.blacklist=amdgpu,snd_hda_intel,ccp
RHEL 9 이상에서는 아래 방법으로 추가하면 된다.
$ grubby --args="amd_iommu=on iommu=pt video=efifb:off pcie_acs_override=downstream,multifunction amdgpu.exp_hw_support=1 modprobe.blacklist=amdgpu,snd_hda_intel,ccp" --update-kernel ALL $ echo "blacklist amdgpu" >> /etc/modprobe.d/pve-blacklist.conf $ echo "blacklist snd_hda_intel" >> /etc/modprobe.d/pve-blacklist.conf $ echo "blacklist ccp" >> /etc/modprobe.d/pve-blacklist.conf
가상화 호스트에서 해당 장치를 사용하지 않기 위해 장치를 오버라이드 시킨다.
호스트에서 lspci -nnD
명령어를 입력하면 아래와 같은 정보가 나타난다.
[root@hev ~]# lspci -nnD ...생략... 0000:08:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1638] (rev c8) 0000:08:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir Radeon High Definition Audio Controller [1002:1637] ...생략...
Ryzen 5700G의 iGPU의 장치 정보를 보면 슬롯ID는 0000:08:00.0
이고 장치ID는 1002:1638
인것을 확인할 수 있다.
또한 0000:08:00.1
장치는 iGPU에 포함된 오디오 장치 정보이다(오디오칩셋이 아니라 HDMI나 DP 포트로 출력되는 오디오장치).
이 두 장치를 호스트OS에서 사용하지 않기 위해 장치오버라이드를 수행한다.
[root@hev ~]# driverctl set-override 0000:08:00.0 vfio-pci [root@hev ~]# driverctl set-override 0000:08:00.1 vfio-pci [root@hev ~]# driverctl list-overrides 0000:08:00.0 vfio-pci 0000:08:00.1 vfio-pci
이후 호스트를 리부팅시키면 부팅중 화면이 멈추고 동작하지 않는것처럼 보일것이다.
이것은 당연하게도 해당 그래픽 장치를 호스트에서 제거하였기 때문에 발생하는 현상이다. SSH같은 원격이나 WEB서비스로 접근하면 정상적으로 동작하는것을 확인할 수 있다.
가상머신에서는 5700G iGPU용 firmware가 필요한데 대부분의 경우 자동으로 설치된다
혹시 dmesg
커널 로그에 아래와 같은 오류가 보인다면
[ 2.448467] [drm] amdgpu kernel modesetting enabled. [ 2.448554] amdgpu: CRAT table not found [ 2.448556] amdgpu: Virtual CRAT table created for CPU [ 2.448563] amdgpu: Topology: Add CPU node [ 2.457375] [drm:amdgpu_pci_probe [amdgpu]] *ERROR* amdgpu requires firmware installed [ 2.457547] amdgpu: See https://wiki.debian.org/Firmware for information about missing firmware
펌웨어 관련 패키지 amd64-microcode
를 설치해주도록 한다.
root@plex:~# apt install amd64-microcode