[KVM] ·ÎÅ° ¸®´ª½º¿¡¼ ³»Àå ±×·¡ÇÈ Æнº½º·çÇؼ VMÀ©11¿¡¼ »ç¿ëÇϱâ.. µµ¿ÍÁÖ¼¼¿ä
160;안녕Ȣ16;세요
/196;Ȗ12;리눅스에서 가상머신1004;/196; 윈도우를 만들Ǻ12; 내1109;그래픽1012; 윈도우용1004;/196; 사용Ȣ16;/140;고 합니다
본체lj16; 외1109;1004;/196; RTX4090가 1080;고 1060;,148; 리눅스에서 메1064;1004;/196; 사용1473;1077;니다
문1228;lj16; 1064;텔CPU(i9-12900K)1032; 내1109;그래픽(UHD770)를 패스스루해서 윈도11에 사용Ȣ16;/140;Ȣ16;lj16;데 1096; 안.121;니다...도와1452;세요
현1116; 1228;가 1652;행한 순서1077;니다
1.
# vi /etc/default/grub 1077;/141;해 아래 녹색 문1109; 추가
GRUB_CMDLINE_LINUX="selinux=0 crashkernel=auto resume=UUID=eb32042b-dd3d-4295-862d-dccf4d75162b rd.driver.blacklist=nouveau nouveau.modeset=0160;intel_iommu=on iommu=pt rd.driver.pre=vfio-pci"
# grub2-mkconfig -o /boot/grub2/grub.cfg
# lspci -nn | grep -i Intel -> ,160;색해서 나온 VGA(00:02.0/8086:4680)/Audio(00:1f.3/8086:7ad0) 컨트롤러 ID 확1064;160;
160;# vi /etc/modprobe.d/vfio.conf -> 새/196;운 vfio.conf 생성후 Ꮢ1;션값 1077;/141;
options vfio-pci ids=8086:4680,8086:7ad0
# 1116;ǥ12;ᔚ1;
# dmesg | grep -E "DMAR|IOMMU" -> 1116;ǥ12;ᔚ1;후 IOMMU 활성화 확1064; ( IOMMUlj16; 활성화.108;,163; 같1008;데 1473;간에 Skip IOMMU disabling for graphics 문1109;1060;..)
[ 160; 160;0.000000] ACPI: DMAR 0x0000000034D97000 000088 (v02 INTEL 160;EDK2 160; 160; 00000002 160; 160; 160;01000013) [ 160; 160;0.000000] ACPI: Reserving DMAR table memory at [mem 0x34d97000-0x34d97087] [ 160; 160;0.000000] DMAR: IOMMU enabled [ 160; 160;0.001007] DMAR: Host address width 39 [ 160; 160;0.001008] DMAR: DRHD base: 0x000000fed90000 flags: 0x0 [ 160; 160;0.001012] DMAR: dmar0: reg_base_addr fed90000 ver 4:0 cap 1c0000c40660462 ecap 29a00f0505e [ 160; 160;0.001014] DMAR: DRHD base: 0x000000fed91000 flags: 0x1 [ 160; 160;0.001018] DMAR: dmar1: reg_base_addr fed91000 ver 5:0 cap d2008c40660462 ecap f050da [ 160; 160;0.001019] DMAR: RMRR base: 0x0000003c000000 end: 0x000000403fffff [ 160; 160;0.001022] DMAR-IR: IOAPIC id 2 under DRHD base 160;0xfed91000 IOMMU 1 [ 160; 160;0.001023] DMAR-IR: HPET id 0 under DRHD base 0xfed91000 [ 160; 160;0.001024] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping. [ 160; 160;0.001854] DMAR-IR: Enabled IRQ remapping in x2apic mode [ 160; 160;1.276640] pci 0000:00:02.0: Skip IOMMU disabling for graphics [ 160; 160;2.296041] DMAR: No ATSR found [ 160; 160;2.296046] DMAR: IOMMU feature fl1gp_support inconsistent [ 160; 160;2.296047] DMAR: IOMMU feature pgsel_inv inconsistent [ 160; 160;2.296048] DMAR: IOMMU feature nwfs inconsistent [ 160; 160;2.296049] DMAR: IOMMU feature dit inconsistent [ 160; 160;2.296050] DMAR: IOMMU feature sc_support inconsistent [ 160; 160;2.296051] DMAR: IOMMU feature dev_iotlb_support inconsistent [ 160; 160;2.296052] DMAR: dmar0: Using Queued invalidation [ 160; 160;2.296058] DMAR: dmar1: Using Queued invalidation [ 160; 160;2.296761] DMAR: Intel(R) Virtualization Technology for Directed I/O
# dmesg | grep -i vfio -> vfio_pci 활성화 확1064;(아래 코드에 Audio가 안보1060;lj16;데 1221;상1064;1648; 모르,192;습니다 12640;12640;)
0.000000] Command line: BOOT_IMAGE=(hd0,gpt6)/boot/vmlinuz-4.18.0-348.20.1.el8_5.x86_64 root=UUID=34efdff4-9cab-4895-b0c0-9c72e50ec50c ro selinux=0 crashkernel=auto resume=UUID=eb32042b-dd3d-4295-862d-dccf4d75162b rd.driver.blacklist=nouveau nouveau.modeset=0 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci [ 160; 160;0.000000] Kernel command line: BOOT_IMAGE=(hd0,gpt6)/boot/vmlinuz-4.18.0-348.20.1.el8_5.x86_64 root=UUID=34efdff4-9cab-4895-b0c0-9c72e50ec50c ro selinux=0 crashkernel=auto resume=UUID=eb32042b-dd3d-4295-862d-dccf4d75162b rd.driver.blacklist=nouveau nouveau.modeset=0 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci [ 160; 160;4.725074] VFIO - User Level meta-driver version: 0.3 [ 160; 44.794978] vfio-pci 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=mem [ 160; 45.738714] vfio-pci 0000:00:02.0: enabling device (0002 -> 0003) [ 160; 45.845798] vfio-pci 0000:00:02.0: vfio_ecap_init: hiding ecap 0x1b@0x100 [ 2146.910596] vfio-pci 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=mem
2. QEMU/KVM 에서 윈도11 만들기에서 아래사1652;처/100; PCI 0000:00:02.0(VGA) 와 PCI 0000:00:1f:3(Audio) 추가시 가상머신1060; 만들Ǻ12;1648;1648; 않습니다
160; 160;Ȣ16;1648;만 160;VGA만 추가Ȣ16;고(Audiolj16; 1228;외) 만들면 윈도11까1648;lj16; 1096; 만들Ǻ12;1665;니다
3. VGA만 추가Ȣ16;고 만든 윈도우11 가상머신에서 1109;치관리1088;/디스플/112;1060; Ǻ12;ᇨ1;터 항목1012; 보면 아래 사1652;처/100; UHD7701008; 1064;식Ȣ16;나 드라1060;버가 1221;상
160; 160;설치가 .104;1656;않아 계속 MS기본컨트롤러(Red Hat QXL controller)/196; 1064;식.104;고1080;습니다
여기까1648; 1228;가 ,160;색해서 Ǻ12;찌Ǻ12;찌해서 1652;행한 상태1077;니다
윈도우11 1652;1077;후 드라1060;버를 계속 1228;설치해도 똑같고 MS 기본 컨트롤러를 1228;,144;Ȣ16;면 1116;ǥ12;ᔚ1;시 오류/196; 윈도우1652;1077;불가/196; .104;고 ...
1228;가 할수1080;lj16; 모든,163;1012; 해봤lj16;데 1060;1060;상 1652;행1060; 안돼고1080;습니다...
1228;가 놓친 ǥ12;ǥ16;1060; 1080;,144;나 위 명/161;Ǻ12; 1077;/141;후 나오lj16; 코드에서 1096;못.108;,163;1060; 1080;1012;까요?
Grub ÂÊ¿¡ Ãß°¡ ¿É¼Ç ¼³Á¤ÀÌ ÇÊ¿äÇÒ°Í °°Àºµ¥¿ä?
https://3os.org/infrastructure/proxmox/gpu-passthrough/igpu-passthrough-to-vm/#windows-virtual-machine-igpu-passthrough-configuration
Ãß°¡ÀûÀ¸·Î
modprobe ¿É¼Çµµ ÇÊ¿äÇÑ °Í °°³»¿ä.
https://www.reddit.com/r/homelab/comments/jyudnn/enable_mediated_intel_igpu_gvtg_for_vms_in/
¾Æ½±°Ôµµ ¾È³»ÇØÁØ ³»¿ëÀº ·ÎÅ°¸®´ª½º¿Í ¸í·É¾î¿Í °æ·Î¹æ½ÄµîÀÌ ´Þ¶ó¼ Àû¿ëÀÌ µÇÁú¾Ê½À´Ï´Ù..
ÇØ´ç ÀåÄ¡¸¦ ºÎÆýÿ¡ ÀνÄÇÏÁö ¾Êµµ·Ï Àû¿ëÇØ¾ß ÇÕ´Ï´Ù. ±â¾ïÀÌ °¡¹°°¡¹°Çѵ¥ ÇØ´ç ÀåÄ¡ µå¶óÀ̹ö¸¦ ·Îµù ¾ÈÇÏ°Ô Çß´ø°Í °°³×¿ä.
https://atl.kr/dokuwiki/doku.php/pci-passthrough_kvm
¾È³»ÇØÁֽŠ³»¿ëÀ¸·Î ÁøÇàÇßÁö¸¸ ÀÌÀü ¿À·ù»óȲ°ú °°°í Ãß°¡·Î »ç¿îµå°¡ ¾ÈÀâÈ÷´Â ÀÌ»óÁõ»ó°¡»ý°Ü¼ ´Ù½Ã ¿øº¹Çß½À´Ï´Ù..
1) ¾Æ·¡ ¸í·É¾î·Î vga ÀåÄ¡ bus ÁÖ¼Ò¸¦ vfio-pci °¡ ¾Æ´Ñ ´Ù¸¥ °ÍÀÌ Á¡À¯ÇÏ°í ÀÖ´ÂÁö È®ÀÎ
cat /proc/iomem > /tmp/iomem.txt
nano /tmp/iomem.txt
2) vga (0000:00:02.0) bus ÁÖ¼Ò¸¦ ´Ù¸¥ ÀåÄ¡°¡ ¿¬°áÇÏ°í ÀÖ´Ù¸é ¾Æ·¡ ¸í·ÉÀ¸·Î Á¦°ÅÈÄ ´Ù½Ã ¿¬°á
echo 1 > /sys/bus/pci/devices/0000\:00\:02.0/remove
echo 1 > /sys/bus/pci/rescan
3) 1¹øÀ¸·Î È®ÀÎÇؼ ÀÌ»óÀÌ ¾ø´Ù¸é Æнº½º·ç¿¡ ¹®Á¦ ¾øÀ»°ÍÀÔ´Ï´Ù.