목차

Ryzen 5700G iGPU PCI Passthrough

BIOS 설정

커널 설정

커널파라메터에 아래 내용을 추가한다.

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

첨부파일

참조링크