Proxmox 버전 8이 되면서 GPU Passthrough가 훨씬 쉬워졌습니다.
Grub 건들지 않았습니다.
메인보드 자체에서 iommu 옵션 활성화 했습니다.
특히 인텔은 iGPU 없는 CPU로 했습니다.
1등
펜타네스트 2023.12.08. 15:26
Copy 사용율을 보니 화면출력은 안하고 디바이스만 넘겨준 것 같은데
혹시 저 상태로 화면출력 잘 되는 지 확인 부탁드려도 될까요?
혹시 저 상태로 화면출력 잘 되는 지 확인 부탁드려도 될까요?
펜타네스트
펜타네스트 2023.12.08. 23:27
WHYism
감사합니다 출력중인데 Copy 0%는 신기하네요
2등
화정큐삼 2023.12.08. 16:13
저도 같은 8.0.4 버전에서 진행했었는데요.
아래처럼 유튜브에 나온 상당히 복잡한 과정을 한번의 의심없이 다 적용했었습니다.
이걸 전부다 생략해도 되는건가요?
[dmesg 출력에서 발생하는 일부 성가신 오류를 무시한 경우,다음 명령을 실행합니다.]
nano /etc/modprobe.d/kvm.conf
#이 단계는 패스스루에 필요하지 않지만 청결을 유지하는 데 도움이 됩니다.
options kvm ignore_msrs=Y report_ignored_msrs=0
#Ctrl + X를 누른 다음 Y + Enter를 눌러 변경 내용을 저장합니다.
[Intel CPU의 경우 (한줄로 기입)]
nano /etc/default/grub # 다음 줄을 붙여넣고, 기존 줄 앞에 해시태그/#을 붙입니다.
GRUB_CMDLINE_LINUX_DEFAULT=”quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction pci=nommconf”
다음 명령을 사용하여 grub 업데이트
update-grub
호스트를 재부팅하여 변경 사항 적용
reboot
호스트가 가동되고 실행되면 다음 명령을 실행합니다.
dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
#출력이 없으면 문제가 있습니다.당신은 이런 것을 보고 있어야 합니다.
"DMAR: IOMMU enabled"
일부 플랫폼의 경우 안전하지 않은 인터럽트를 허용해야 할 수 있습니다.다음 명령을 실행합니다.
nano /etc/modprobe.d/iommu_unsafe_interrupts.conf # 다음 행을 추가합니다;
#이 옵션을 선택하면 시스템이 불안정해질 수 있습니다.
options vfio_iommu_type1 allow_unsafe_interrupts=1
#Ctrl + X를 누른 다음 Y + Enter를 눌러 변경 내용을 저장합니다.
필요한 커널 모듈을 사용하도록 설정하고 다음 명령을 실행합니다.
nano /etc/modules #다음 행을 추가합니다.
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
#Ctrl + X를 누른 다음 Y + Enter를 눌러 변경 내용을 저장합니다.
모듈 관련 내용을 변경한 후 initramfs를 새로 고쳐야 합니다.다음 명령을 실행합니다.
update-initramfs -u -k all
이제 재매핑이 활성화되었는지 확인합니다. 다음 명령을 실행합니다.
dmesg | grep remapping # 이런 것을 출력해야 합니다;
“AMD-Vi: Interrupt remapping enabled”
“DMAR-IR: Enabled IRQ remapping in x2apic mode”
#이전 CPU에서는 'x2apic'이 다를 수 있지만 여전히 작동해야 합니다.
VM이 그래픽 카드 등에 대한 전체 액세스 권한을 부여하기 위해 드라이버 모듈을 블랙리스트에 추가하는 중 R.다음 명령을 실행합니다.
nano /etc/modprobe.d/pve-blacklist.conf # 다음 행을 추가합니다;
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
blacklist snd_hda_codec_hdmi
blacklist snd_hda_intel
blacklist snd_hda_codec
blacklist snd_hda_core
blacklist radeon
blacklist amdgpu
#Ctrl + X를 누른 다음 Y + Enter를 눌러 변경 내용을 저장합니다.
PCI 디바이스에 해당하는 ID를 찾는 중입니다.다음 명령을 실행합니다.
lspci -nn | grep -i vga
#"device" = amd, ati, nvidia, usb, audio, wireless 등
#그런 다음 아래와 유사한 목록이 표시됩니다.
#한 번에 하나의 장치만 참조하고 필요한 ID를 기록합니다.
“0x:00.x VGA compatible controller … [1234:5678]”
“0x.00.x Audio Device … [1234:5678]” # GPU 오디오 ID를 기록할 필요가 없습니다..
“0x.00.x USB controller … [1234:5678]”
호스트의 PCI 디바이스 ID 블랙리스트 지정,다음 명령을 실행합니다.
nano /etc/modprobe.d/vfio-pci.conf
#여기에 disable_vga를 추가하면 게스트가 SeaB에서 부팅되지 않을 수 있습니다.IOS 모드.
#다음과 같이 이 파일에 장치 ID를 추가합니다.
options vfio-pci ids=1234:5678,1234:5678 disable_vga=1
#GPU 오디오 ID를 추가하지 마십시오.
호스트의 PCI 디바이스 ID를 블랙리스트에 추가하는 중입니다. 다음 명령을 실행합니다.
이 방법 대신 VM의 하드웨어 섹션에서 수행할 수 있습니다. 하드웨어 -> 추가 -> PCI 장치.
nano /etc/pve/qemu-server/”VMID.conf
#표시된 대로 각 장치 ID를 추가합니다.
#VMID =(예: 100, 101, 102 등)
#일부 기기에서는 'http=1'을 사용하지 않도록 해야 할 수도 있습니다.
hostpci0: “0x:00”,pcie=1,x-vga=1
#hostpci1: “0x:00”,pcie=1
#hostpci2; “0x:00”,pcie=1
#Ctrl + X를 누른 다음 Y + Enter를 눌러 변경 내용을 저장합니다.
아래처럼 유튜브에 나온 상당히 복잡한 과정을 한번의 의심없이 다 적용했었습니다.
이걸 전부다 생략해도 되는건가요?
[dmesg 출력에서 발생하는 일부 성가신 오류를 무시한 경우,다음 명령을 실행합니다.]
nano /etc/modprobe.d/kvm.conf
#이 단계는 패스스루에 필요하지 않지만 청결을 유지하는 데 도움이 됩니다.
options kvm ignore_msrs=Y report_ignored_msrs=0
#Ctrl + X를 누른 다음 Y + Enter를 눌러 변경 내용을 저장합니다.
[Intel CPU의 경우 (한줄로 기입)]
nano /etc/default/grub # 다음 줄을 붙여넣고, 기존 줄 앞에 해시태그/#을 붙입니다.
GRUB_CMDLINE_LINUX_DEFAULT=”quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction pci=nommconf”
다음 명령을 사용하여 grub 업데이트
update-grub
호스트를 재부팅하여 변경 사항 적용
reboot
호스트가 가동되고 실행되면 다음 명령을 실행합니다.
dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
#출력이 없으면 문제가 있습니다.당신은 이런 것을 보고 있어야 합니다.
"DMAR: IOMMU enabled"
일부 플랫폼의 경우 안전하지 않은 인터럽트를 허용해야 할 수 있습니다.다음 명령을 실행합니다.
nano /etc/modprobe.d/iommu_unsafe_interrupts.conf # 다음 행을 추가합니다;
#이 옵션을 선택하면 시스템이 불안정해질 수 있습니다.
options vfio_iommu_type1 allow_unsafe_interrupts=1
#Ctrl + X를 누른 다음 Y + Enter를 눌러 변경 내용을 저장합니다.
필요한 커널 모듈을 사용하도록 설정하고 다음 명령을 실행합니다.
nano /etc/modules #다음 행을 추가합니다.
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
#Ctrl + X를 누른 다음 Y + Enter를 눌러 변경 내용을 저장합니다.
모듈 관련 내용을 변경한 후 initramfs를 새로 고쳐야 합니다.다음 명령을 실행합니다.
update-initramfs -u -k all
이제 재매핑이 활성화되었는지 확인합니다. 다음 명령을 실행합니다.
dmesg | grep remapping # 이런 것을 출력해야 합니다;
“AMD-Vi: Interrupt remapping enabled”
“DMAR-IR: Enabled IRQ remapping in x2apic mode”
#이전 CPU에서는 'x2apic'이 다를 수 있지만 여전히 작동해야 합니다.
VM이 그래픽 카드 등에 대한 전체 액세스 권한을 부여하기 위해 드라이버 모듈을 블랙리스트에 추가하는 중 R.다음 명령을 실행합니다.
nano /etc/modprobe.d/pve-blacklist.conf # 다음 행을 추가합니다;
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
blacklist snd_hda_codec_hdmi
blacklist snd_hda_intel
blacklist snd_hda_codec
blacklist snd_hda_core
blacklist radeon
blacklist amdgpu
#Ctrl + X를 누른 다음 Y + Enter를 눌러 변경 내용을 저장합니다.
PCI 디바이스에 해당하는 ID를 찾는 중입니다.다음 명령을 실행합니다.
lspci -nn | grep -i vga
#"device" = amd, ati, nvidia, usb, audio, wireless 등
#그런 다음 아래와 유사한 목록이 표시됩니다.
#한 번에 하나의 장치만 참조하고 필요한 ID를 기록합니다.
“0x:00.x VGA compatible controller … [1234:5678]”
“0x.00.x Audio Device … [1234:5678]” # GPU 오디오 ID를 기록할 필요가 없습니다..
“0x.00.x USB controller … [1234:5678]”
호스트의 PCI 디바이스 ID 블랙리스트 지정,다음 명령을 실행합니다.
nano /etc/modprobe.d/vfio-pci.conf
#여기에 disable_vga를 추가하면 게스트가 SeaB에서 부팅되지 않을 수 있습니다.IOS 모드.
#다음과 같이 이 파일에 장치 ID를 추가합니다.
options vfio-pci ids=1234:5678,1234:5678 disable_vga=1
#GPU 오디오 ID를 추가하지 마십시오.
호스트의 PCI 디바이스 ID를 블랙리스트에 추가하는 중입니다. 다음 명령을 실행합니다.
이 방법 대신 VM의 하드웨어 섹션에서 수행할 수 있습니다. 하드웨어 -> 추가 -> PCI 장치.
nano /etc/pve/qemu-server/”VMID.conf
#표시된 대로 각 장치 ID를 추가합니다.
#VMID =(예: 100, 101, 102 등)
#일부 기기에서는 'http=1'을 사용하지 않도록 해야 할 수도 있습니다.
hostpci0: “0x:00”,pcie=1,x-vga=1
#hostpci1: “0x:00”,pcie=1
#hostpci2; “0x:00”,pcie=1
#Ctrl + X를 누른 다음 Y + Enter를 눌러 변경 내용을 저장합니다.
펜타네스트 2023.12.08. 16:16
화정큐삼
저는 심지어 여기다가 rom까지 덤프떠서 씌우는 과정까지...ㅠㅠ
화정큐삼
네, 안해도 되던데요? 전 서버의 CMOS에서 가상화 모든 기능을 켰고, SR-IOV, IOMMU 등등 다 활성화 했습니다.
화정큐삼
3등
달소 2023.12.08. 17:13
오호,, 정말 별다른 설정없이 성공하신거면 많은 변화가있나보네요
달소
네, 정말 별다른 설정 없었어요.
매화 2023.12.11. 11:56
헐 8인데 grub config 이것저것 다 만지면서 해도 안돼서 반포기하고 있었는데...????
매화
8.1로 하세요.
매화
https://svrforum.com/svr/1087669
애즈락은 이 글 참조요.
애즈락은 이 글 참조요.
cmt alert