GVT-g 기술을 사용하면 두개 이상의 가상머신에 패스스루해주는것도 가능하다고 하는데,
나는 일단 윈도우에서만 사용할 예정이라 Full iGPU Passthrough로 진행하도록 하겠다.
CPU의 세대 등이 영향을 줄수 있기때문에,
내 서버PC의 사양을 기술해두겠다.
i3 10100 CPU를 사용하고 있으며 내장그래픽카드는 UHD 630이다.
앞으로 대부분의 작업은 proxmox Shell에서 진행된다.
IOMMU 활성화
nano /etc/default/grub
로 grub 파일을 수정한다.
GRUB_CMDLINE_LINUX_DEFAULT 줄의 내용을
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction initcall_blacklist=sysfb_init video=simplefb:off video=vesafb:off video=efifb:off video=vesa:off disable_vga=1 vfio_iommu_type1.allow_unsafe_interrupts=1 kvm.ignore_msrs=1 modprobe.blacklist=radeon,nouveau,nvidia,nvidiafb,nvidia-gpu,snd_hda_intel,snd_hda_codec_hdmi,i915"
으로 변경한다.
update-grub
명령어로 변경사항을 grub 부트로더에 적용한다.
nano /etc/modules
로 modules 파일에 아래 내용을 적어넣는다.
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
변경사항을 적용한다.
update-initramfs -u -k all
서버를 한번 리부팅해준다.
dmesg | grep -e DMAR -e IOMMU
명령어를 실행해서 그 내용을 확인하는데,
위 사진의 네번째 줄 IOMMU enabled 가 표기되어있는지 확인해줘야 한다.
내장그래픽 패스스루
lspci -nnv | grep VGA
명령어의 결과를 확인한다
앞에 적혀있는 숫자 00:02.0 을 기억해둔다.
두개 이상의 그래픽카드를 가지고 있는 경우 (2cpu 메인보드 등에서 간혹 존재) 둘을 구분하기 위한 숫자이다.
윈도우 RDP 환경 구축이 끝난 VM으로 이동해서
Hardware > Add > PCI Device를 선택한다.
Raw Device 선택 후 아까 기억해둔 숫자와 일치하는 그래픽카드를 선택한다.
이외에 All Functions, Primary GPU에 체크표시 하고 추가한다.
머신타입이 q35가 맞는지 확인해주고 ( 일반적인 상황에서는 q35에 있을 것이다 )
Display에서 Graphic card : none으로 선택해준다.
최종 결과는 다음과 같아야 한다.
VM을 부팅시키고 잠시 뒤에 RDP를 통해 접속해본다.
VM 내부에서 인터넷 검색 등을 통해서
본인의 CPU에 맞는 적절한 내장그래픽 드라이버를 다운로드 및 설치해준다.
Ctrl + Win + Esc, 윈도우 버튼 우클릭 > 작업관리자
등의 방법을 통해서
작업관리자를 열어서 그래픽카드가 있는지 체크해본다.
내장그래픽카드 UHD 630이 정상적으로 잡혀서 표기되고있는것을 확인할 수 있다.