Proxmox 8.2 n100에서 윈도우 내장그래픽(igpu) 패스스루하기.

  

안녕하세요. 달소입니다.

 

이번글에서는 많이들 미니 PC로 사용하시는 n100의 igpu를 활용하기위한 그래픽 패스스루를 진행해보겠습니다.
이전 글도있지만,, 새로 구축하는김에 새로 작성해봅니다. (기존 7버전과 다르게 꽤 변경되었네요)

 

인텔 11세대 이상 CPU라면 동일한 방식으로 진행하시면 될듯하네요.

 

아무쪼록 꽤 긴글이지만 화이팅입니다 ㅎㅎ

image.png.jpg

  

구축환경

Device : firebat n100 

OS : Proxmox 8.2.2

Kernel : 6.8.4

image.png.jpg

 

커널 다운그레이드 하기

제일 먼저 진행할것은 커널 다운그레이드입니다.

아쉽게도 최신버전의 커널에서는 i915-sriov-dkms 가 제대로 설치되지않아서 다운그레이드가 필요합니다.

2024/06/04 현재날짜 기준으로 6.5버전까지 지원합니다.

 

아래 명령어들을 통해 커널버전을 신규로 설치하고 pin을 통해 변경되지않도록 해줍니다.

 

apt update
apt install proxmox-headers-6.5.13-3-pve
apt install proxmox-kernel-6.5.13-3-pve-signed
proxmox-boot-tool kernel pin 6.5.13-3-pve
proxmox-boot-tool refresh
reboot

 

image.png.jpg
image.png.jpg

 

재부팅하고나서 다시 대시보드로 가면 커널버전이 변경되어있는걸 보실 수 있습니다.

 

 

image.png.jpg

 

커널 구성하기

이제 i915-sriov-dkms를 빌드하기위한 패키지들을 설치해주고

혹시 기존에 남아있는 찌거기를 제거해주는 작업을 진행합니다.

 

apt update && apt install git sysfsutils pve-headers mokutil -y
rm -rf /var/lib/dkms/i915-sriov-dkms*
rm -rf /usr/src/i915-sriov-dkms*
rm -rf ~/i915-sriov-dkms
KERNEL=$(uname -r); KERNEL=${KERNEL%-pve}
image.png.jpg

 

이제 dkms 저장소를 가져와서 설치를 진행합니다.

 

cd ~
git clone https://github.com/strongtz/i915-sriov-dkms.git
cd ~/i915-sriov-dkms
cp -a ~/i915-sriov-dkms/dkms.conf{,.bak}
sed -i 's/"@_PKGBASE@"/"i915-sriov-dkms"/g' ~/i915-sriov-dkms/dkms.conf
sed -i 's/"@PKGVER@"/"'"$KERNEL"'"/g' ~/i915-sriov-dkms/dkms.conf
sed -i 's/ -j$(nproc)//g' ~/i915-sriov-dkms/dkms.conf
cat ~/i915-sriov-dkms/dkms.conf
image.png.jpg

 

apt install --reinstall dkms -y
dkms add .
cd /usr/src/i915-sriov-dkms-$KERNEL
dkms status

 

image.png.jpg

 

이제 새 커널을 빌드합니다.

 

dkms install -m i915-sriov-dkms -v $KERNEL -k $(uname -r) --force -j 1
dkms status

 

image.png.jpg
mokutil --import /var/lib/dkms/mok.pub

 

image.png.jpg

 

GRUB 구성 변경하기

cp -a /etc/default/grub{,.bak}
sudo sed -i '/^GRUB_CMDLINE_LINUX_DEFAULT/c\GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7"' /etc/default/grub
update-grub
update-initramfs -u -k all
apt install sysfsutils -y

 

 이제 이제 VGA 카드가 어떤 PCIe 버스번호인지 확인합니다.

 

lspci | grep VGA

 

image.png.jpg

 

그리고 sriov 옵션과 함께 pci 번호를 sysfs.conf에 넣어주세요.

 

echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf
cat /etc/sysfs.conf

 

 

image.png.jpg

 

이제 재부팅을해주시면 됩니다.

재부팅시에 mok 관련설정을 해줘야하기때문에 PC에 모니터와 키보드가 연결되어야합니다.

 

image.png.jpg

 

 Enroll MOK -> Continue -> YES 순으로 누르고 Reboot 해주시면됩니다.

 

그리고 부팅 후 아래 명령어를 입력해주셨을때 Enabled 7 VFs가 나오면 완료입니다.

lspci | grep VGA
dmesg | grep i915
image.png.jpg

 

 여기까지가.. 사전 단계입니다.

다음글에서는 Windows 11기준으로 활성화 단계를해보고

실제 사용할 VM Linux에 패스스루도 진행해보도록하겠습니다.

 

이제 윈도우에서 활성화한 igpu를 패스스루해보겠습니다.

 

Windows 10 VM 생성하기

Windows 10 iso파일과 virtio windows용 드라이버도 받아주세요.

https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso

Download Windows 11www.microsoft.com  

 

그리고 디스크의 iso파일저장소에 업로드해주시면됩니다.

 

VM생성

 

image.png.jpg

 

image.png.jpg

 

 

image.png.jpg

 

image.png.jpg
image.png.jpg
image.png.jpg

 

image.png.jpg
image.png.jpg

 

 

부팅 후 설치를 진행해줍니다.

image.png.jpg

 

드라이버 로드에서 virtio 드라이브를 사용합니다.

 

 

image.png.jpg

 

image.png.jpg

 

윈도우 설치가 완료되면 나머지 virtio 드라이버들도 설치해주세요.

 

 

image.png.jpg

 

image.png.jpg

 

모두 설치가 완료되면 VM을 종료하고 

네트워크 어댑터를 virtio로 변경해주세요.

 

image.png.jpg

 

igpu를 패스스루하면 vnc를 통해서 연결이 안되기때문에 원격데스크탑을 활성화해주고

ip도 미리 확인해주세요.

 

 

image.png.jpg

 

 

image.png.jpg

 

image.png.jpg

 

로컬에서 이제 연결시도해보시면됩니다.

 

image.png.jpg

 

다시 VM을 종료하고 기본 그래픽을 비활성화 내장그래픽을 패스스루합니다.

 

 

image.png.jpg

 

image.png.jpg

 

이제 실행하셔도 화면이 안뜰텐데요.

아까 원격데스크탑 설치해주신걸로 연결하시면됩니다.

 

 인텔® 드라이버 및 지원 도우미 (intel.co.kr)

 

설치하고 나서 웹으로 가면 내장그래픽을 받으라고나옵니다.

image.png.jpg

 

설치가 완료되면 짜잔...!

gpu가 보입니

image.png.jpg

 

길고 긴 글이 끝이 났습니다...

CPU가 오히려 조금 후달리는 느낌이네요 ㅠ

참조글 : https://www.derekseaman.com/2023/11/proxmox-ve-8-1-windows-11-vgpu-vt-d-passthrough-with-intel-alder-lake.html