N100 Proxmox에서 iGPU 패스스루 하기.
최신 정리글
안녕하세요. 달소입니다.
이번에는 N100 Proxmox에서 내장그래픽(iGPU)를 내부 윈도우 VM으로 패스스루하는 방법입니다.
일단 10세대 부터(?) SR-IOV 를 통한 패스스루만 가능하다고 하니 참고해주시면되겠습니다.
삽질을 너무 많이해서 고생을 했습니다..
윈도우는 이전에 썼던글을 통해 설치 + 원격 셋팅을 해주시고
여기서는 Proxmox Host 설정부터 진행해주겠습니다. 과정중 재부팅도 필요하니 VM은 모두 종료된 상태로 진행해주시는게 좋습니다.
Proxmox Host 설정하기
먼저 빌드를 위한 패키지들 먼저 설치해주세요.
++ sysfsutils 도 함께 설치해주세요.
그리고 아래 깃 레포를 클론해줍니다. 깃도 없으니 apt install git으로 설치를
vi i915-sriov-dkms/dkms.conf
mv i915-sriov-dkms /usr/src/i915-sriov-dkms-6.1
이제 빌드를 해줍니다.
dkms install -m i915-sriov-dkms -v 6.1
설치가 된부분은 dkms status으로 확인가능합니다.
이제 커널부분 변경입니다.
기본 CMDLINE은 주석처리 하고 아래에 아래 내용을 추가해주시면됩니다.
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on i915.enable_guc=3 i915.max_vfs=7"
그리고 아래 내용들로 변경된 사항들을 업데이트해줍니다.
update-grub
update-initramfs -u
그리고 lspci | grep VGA로 나온 PCI 번호를 참고해서 아래내용을 sysfs에 넣어줍니다.
echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf
이제 재부팅을 해주겠습니다.
재부팅전 pci 패스스루현황
변경 후 입니닷
이제 Proxmox 의 iGPU-Pool을 만들어주겠습니다.
0번을 제외한 1~7번까지 할당해주면됩니다.
Windows VM 설정
이제 윈도우 VM 설정입니다.
하드웨어 -> 장치추가 -> PCI
그리고 기본 그래픽은 없음처리해주세요.
이제 부팅하게되면 최초 iGPU가 제대로 인식되지않는데
여기서 사용안함 처리를 한번하고 다시 시작해주고
intel igpu 드라이버를 검색해서 업데이트 후 재시작 한번 시켜주시면 됩니다.
정상적으로 인식되면 아래와같이 나옵니다.
hw 트랜스코딩도 됩니당.
참고 :
알 수 있을까요?
유튜브 실행시 부하로 보면될듯한데.. 저도 정확하게는 잘모르겠습니다 ㅠ
윈도우는 아니고, 리눅스 VM에 패스스루 해서 tvh 트랜스코딩에 적용해 보려고 합니다.
꽤 귀찮더라구요...
원인은 CPU 설정을 Host 로 하지 않은데 있었습니다. 어찌보면 Host 로 생성하는 것이 당연한 것을...
그리고 본문에 sysfsutils 패키지 설치 부분이 빠져있어서 apt install sysfsutils 는 추가해주시면 졸겠습니다.
안된다고 징징 거렸던 것은 다 지웠습니다. ㅎㅎ
검색해보니, 이렇게 셋업하면 여러 머신에서 GPU를 동시사용도 가능한것처럼 보이네요.
반쪽의 성공인것 같네요. ㅎㅎ
윈도우 VM에 4K SDR 샘플 동영상 다운받고 Handbrake 동영상 인코더 설치후 테스트 해보았습니다.
(참고로 핸드브레이크는 VAAPI 는 안되고 인텔 QSV 코덱만 지원되는것 같습니다.)
1. n100 에서
인코딩 실패하고, 디코딩 할때는 GPU 비디오 디코더 잘 사용됩니다.
2. 별도의 i8700K 프록스목스에 설치된 윈도우 VM (기존의 방법대로 전체 GPU 패스스루)
인코딩, 디코딩 다 잘됩니다.
플렉스미디어서버는 테스트 해보지 않았는데, 본문에 달소님께서 성공하셨다는 것으로 봐서, VAAPI 코덱은 잘 되는것 같습니다. (기억이 불확실한데 Plex는 QSV가 아니고 VAAPI 코덱이 사용되는 것으로 압니다.)
결론적으로 기존의 Raw Device 패스스루는 VAAPI, QSV 둘다 되고, Mapped Device 패스스루는 VAAPI
만 지원하는 것으로 예상됩니다.
뭐 그냥 그렇다는 뜻이고, 호기심에 설치해 보았을 뿐 윈도위 VM 에서 Heavy 하게 GPU 가속을 사용할 일은 없을 것 같습니다.
==============================
추가: Handbrake 말고 Movavi 컨버터로 해보니 HW 인코딩도 잘 됩니다.
추가2: 팟플레이어를 사용한 비디오 디코딩 테스트
4K 영상 하드웨어 가속없이 재생하면 CPU가 힘겨워하고 재생도 좀 끊기는데
하드웨어 가속 디코딩 사용하면 RDDP 연결인데도 볼만합니다. ㅎㅎ (실제 이걸로 동영상 시청할 일은 없겠지만서도.)
항상 좋은 글 감사합니다.
이번에는 정말험난했네요...
재부팅전 pci 패스스루현황
image.png.jpg
변경 후 입니닷
image.png.jpg
이 부분 사진이 없어서 어떤게 달라져야하는지 모르겠네요.
밑에 PROXMOX 에서 1~7 추가 하는 과정에서 0000:00:02.0 이거 하나밖에 안나오면 적용이 안된거 맞나요?
억지로 디바이스 사용안함 하고 다시 디바이스 사용 하면 경고표시가 사라지지만, 윈도우 재시작하면 드라이버가 다시 경고표시가 뜨고 적용이 안되네요.
cmt alert