• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
가이드

2. Proxmox 그래픽 PCI PASSTHROUGH(패스스루) 사용방법 + 해킨토시 그래픽가속설정

화정큐삼 화정큐삼 1059

5

28

MacOS 해킨토시의 외장 그래픽 가속처리가 목적인 게시물 이지만

IOMMU 등을 활성해서 그래픽 패스스루 처리를 목적으로 하시는 분들께도 도움이 될만한 자료 같아서 번역해서 올립니다.

원본 자료 아래 내용을 참조했습니다. 

 

 
 

 

작동을 위한 중요한 BIOS 설정

VT-d 사용
CSM 사용안함
ACS 사용 #(있는 경우), Enabled로 설정(Auto가 작동하지 않음)
4G 디코딩 사용
크기 조정 가능한 BAR/스마트 액세스 메모리 사용안함 #(AMD GPUS(베가 이상)를 사용하면 '코드 43 오류'가 발생함)
IOMMU 사용 #(있는 경우), 대부분 AMD 보드용
CPU/iGPU로 기본 디스플레이 설정 # CPU에 iGPU가 있는 경우
64M 메모리 사전 할당 
 

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”
 

AMD CPU의 경우 (한줄로 기입)

nano /etc/default/grub # 다음 줄을 붙여넣고, 기존 줄 에 해시태그/#을 붙입니다.
GRUB_CMDLINE_LINUX_DEFAULT=”quiet 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
#다음과 같이 이 파일에 장치 ID를 추가합니다.
options vfio-pci ids=1234:5678,1234:5678 disable_vga=1
#GPU 오디오 ID를 추가하지 마세요. 여기에 비활성화_vga=1을 추가하면 게스트가 SeaBIOS 모드에서 부팅하는 것을 방지할 수 있습니다.
#줄 끝에 비활성화_idle_d3=1을 추가하면 기본적으로 D3 장치 전원 상태가 비활성화됩니다. 특정 하드웨어가 저전력 모드로 들어가는 것을 방지#하고, 일부 하드웨어가 통과할 때 문제를 일으킬 수 있으므로 여기에서 자세한 내용을 읽어보세요. 비활성화해도 아무런 해가 없으며 회선에서 #더 많은 전력을 소비할 수 있습니다. 예를 들어 Thunderbolt 카드의 경우 더 나은 안정성을 보여주었습니다.
 

호스트의 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를 눌러 변경 내용을 저장합니다.
 

호스트를 다시 재부팅하여 변경 사항 적용

reboot
 

연결된 외부 모니터에 대한 적절한 디스플레이 가속을 얻을 수 있는 방법

이 방법 대신 VM의 하드웨어 섹션에서 수행할 수 있습니다. 하드웨어 -> 디스플레이 -> 없음.
nano /etc/pve/qemu-server/”VMID”.conf
VMID =(예: 100, 101, 102 등)
#디스플레이를 없음(vga: 없음)으로 설정하면 콘솔/noVNC가 비활성화됩니다. "태스크 오류: vncproxy를 실행하지 못했습니다."
#필요한 경우 vmware로 되돌립니다.
vga: 없음
#vga: vmware이것을 사용하는 경우 'vga: none'을 제거합니다.
#Ctrl + X를 누른 다음 Y + Enter를 눌러 변경 내용을 저장합니다.
 

호환 가능한 GPU에 대한 몇 가지 정보

EFI/OC/config.plist  #EFI 드라이브를 마운트하고 OpenCore Configurator에서 파일을 엽니다.
#부트 인수는 NVRAM -> 7C436110-AB2A-4BBB-A880-FE41995C9 아래에 있습니다.F82
#AMD RX 5000 및 6000 시리즈는 적절한 출력을 얻으려면 다음 부트 인수가 필요합니다.
agdpmod=pikera
 

#Nvidia에서 GTX 600 또는 700 시리즈를 구입한 경우에만 OpenCore 레거시 패처를 사용하십시오. 이 시리즈는 MacOS와 호환되는 유일한 시리즈이기 때문입니다.
#AMD RX 400/500 및 RX 5000/6000 시리즈는 기본 카드이므로 패치가 필요하지 않습니다.
Screenshot 2023-05-07 at 10.03.15
#GPU가 완전히 작동하도록 설정할 설정입니다.일부의 경우 모든 기능과 ROM-Bar만 선택할 수 있습니다.
#이 체크박스는 카드마다 다르므로, 당신에게 맞는 것을 테스트해야 할 수도 있습니다.
#일부 카드에서는 .rom 파일을 덤프해야 작동할 수 있습니다.이 파일을 얻으려면 특정 카드에서 직접 파일을 덤프해야 합니다. 가이드를 사용하여 파일을 참조하십시오.우리는 그것을 위한 가이드를 나중에 추가할 수도 있습니다.
#PCI-Express를 선택하지 않으면 HDMI-Audio와 같은 기능이 작동하지 않을 수 있다는 사실을 최근에 발견했습니다.그러나 선택된 상태에서 설치가 부팅되지 않을 수 있으므로 선택 해제하십시오.
 

#알림!Nvidia에서 GTX 600 또는 700 시리즈를 구입한 경우에만 OpenCore 레거시 패처를 사용하십시오. 이 시리즈는 MacOS와 호환되는 유일한 시리즈이기 때문입니다.
#OCLP를 사용하고 있는데 이러한 오류가 발생하면 이를 분류합니다.
EFI/OC/config.plist  #부트 인수는 NVRAM -> 7C436110-AB2A-4BBB-A880-FE41995C9F82   아래에 있습니다.
amfi_get_out_of_my_way=0x1 # AMFI 활성
ngfxcompat=1 # 강제 호환 속성 누락
ngfxgl=1 # 강제 OpenGL 속성 누락
nvda_drv_vrl=1 # nvda_drv(_vrl) 변수 누락
#SIP 오류를 해결하려면 csr-active-config를 다음으로 변경합니다.
030A0000
#재부팅 시 부트 피커에서 NVRAM 재설정을 선택합니다.
신고공유스크랩
28

화정큐삼 화정큐삼
30Lv. 18235P
다음 레벨까지 985P

1) Xpenology RedPill DS918+ FRIEND DSM 7.2.1-69057 Update 1, ASUS IOT H310i-IM-A R2.0 G5500 / Intel I211, I219-V / 16GB  / SilverStone ECS07 5포트 SATA M.2 NVMe PCIe 스토리지 확장 카드 / 3x4TB + 1x3TB SHR, 1x8TB 

 

2) Xpenology RedPill DS1823xs+ FRIEND DSM 7.2.1-69057 Update 1, Asus B150I PRO GAMING/AURA i3-7100T / Intel Gigabit LAN x 3 / 16GB  /  ASM1166 M.2 NVME PCIE 6 Port Sata 스토리지 확장 카드 / 6 x 3TB RAID6

profile image
jerry80 2023.08.10. 16:09
화정큐삼
맥 가속은 GT720 받은다음에 천천히 해보아야겠습니다. 몰라도 너무 몰라서, 맥에서는 무지 헤매거든요. ㅎㅎ
profile image
jerry80 2023.08.10. 17:12
화정큐삼
아. 역시 기계는 거짓말안하고, 문제는 망할 기억력입니다. ㅠㅠ
테스트 서버에 처음에 CSM disable 했을때 부팅이 안되어서 일단 이 옵션 켜고 "부탕/설치 한 다음에 나중에 꺼야지" 하고서는 까먹었습니다. ㅠㅠ

재설치할 각오로 바이오스 화면 다시 들어가봤더니 이게 켜져있습니다... 엉엉....
Disable 한다음에 부팅다시했더니, IOMMU Enable 한방에 됩니다. ㅠㅠ
패스스루 설정 미리 해두었던것 들은 당연히 다 살아있고요.

윈10 버추얼로 설치하고 이번에는 내장그래픽아닌 Quadro P620 패스스루 하고, 드라이버 설치하니,
여기 연결된 모니터에 화면 바로 뜨고 키보드/마우스도 패스해주니 네이티브 윈도우 사용하는 것과 차이가 없네요.

맥도 이렇게 쉬우면 좋을텐데 말이지요... 하긴 맥은 컨셉자체가 단일하드웨어에 최적화된 소프트웨어가 장점이니 다를 수 밖에 없겠군요...

이정도 성능이면 집의 AMD 윈도 컴을 프록스목스 기반으로 바꾸고 윈도 VM 설치하고 자동재시작해두면
부팅은 좀 시간이 걸리고 초기 화면이 안보여 답답하겠지만, 헤놀이나 기타 운영체제를 Virtual 로 깔아두고
사용해도 될것 같네요. 집에 항상 리눅스 컴이 없어서 답답했었는데, 리눅스도 데탑없는 환경으로 하나 깔아두고
말이지요.. ㅎㅎ

다 한것 같습니다. 맥 빼고. ㅋㅋ
profile image
화정큐삼 글쓴이 2023.08.10. 18:09
jerry80

8세대 iGPU 가속용 프레임 버퍼설정 찾았습니다.

https://github.com/5T33Z0/OC-Little-Translated/blob/main/11_Graphics/iGPU/iGPU_DeviceProperties.md#coffee-lake-and-comet-lake

 

i7 8700K, i5 8400 둘다 UHD 630 이네요.

profile image
jerry80 2023.08.10. 19:51
화정큐삼
NOTE: The following mainboards/chipsets require BusID patches if the screen turns black after booting in verbose mode: B360, B365, H310, H370, Z390.

제가 쓰는 보드 둘다 해당이네요. 아무래도 GT720오면 해봐야 할것 같습니다. ㅎㅎ
profile image
화정큐삼 글쓴이 2023.08.10. 21:07
jerry80
근데, BusID 패치란게 별거 없는것 같아 보이는데요?
일단 07009B3E 로 시도해 봐서 검게 변하면 00009B3E 로 바꿔서 해보라는게 전부 같은데요?

Key Type Value Notes
AAPL,ig-platform-id Data 07009B3E 기본값
AAPL,ig-platform-id Data 00009B3E 기본값으로 인해 검은색 화면 문제가 발생하는 경우
framebuffer-patch-enable Data 01000000
framebuffer-stolenmem Data 00003001

참고: B360, B365, H310, H370, Z390 메인보드/칩셋은 상세 모드로 부팅한 후 화면이 검게 변하면 BusID 패치가 필요합니다.
profile image
jerry80 2023.08.10. 21:14
화정큐삼
그런가요 ? 그거 클릭하면 뭐가 잔뜩 씌어있는 페이지가 나와서... 테스트 서버에 한번 해보지요 뭐.
profile image
화정큐삼 글쓴이 2023.08.17. 12:30

그리고 INTEL CPU IOMMU 활성은 가능하면 6세대 이후로 시도하셔야 성공률이 높은것 같습니다.

제일먼저 시도해본것이 4세대 데스크톱 기가바이트 메인보드인데요.
첫케이스 부터 운좋게 한번에 성공했습니다.
그 이후론 10세대 데스크톱에서 Z490 칩셋으로 시도해서 성공했습니다.

노트북의 경우 1,4,5,6 세대 전부다 시도해 봤는데, IOMMU 활성이 쉽지가 않았습니다.
바이오스에서 딱히 건드릴 수 있는것도 거의 없습니다.
UEFI Only 를 반드시 유지해야 IOMMU 가 활성화 되는것도 아닌것 같습니다.
6세대 노트북에선 CSM Only 로도 잘 동작하는군요.

 

리눅스는 USB 외장상태로도 부팅이 가능해서 

USB 외장에  Proxmox 8.0.4 설치된 SDD 를 담아두고

노트북만 계속 바꾸어가며 시험중입니다.

 

노트북이 바뀌면 네트워크 NIC 명칭도 계속 바뀔수 있습니다.

ip a 로 en* 로 나가는 랜카드 명칭만 어떤것으로 바뀌었는지 확인하시구요.

/etc/network/interfaces 안에 2군데만 en* 명칭 따라가며 변경하시고

service networking restart 만 해주시면 

랜카드가 동작되실겁니다.

USB형 랜카드도 동작가능합니다.

12

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
오픈소스 개인 구독 추적기 Wallos 7 달소 1일 전23:26 270 +2
질문 /var/www 폴더가 삭제되었습니다. ㅜ,.ㅜ 2 니속사정 3일 전20:42 275 +1
잡담 jellyfin 자원 진짜 안쓰네요 1 kmw_ 3일 전19:26 409 +1
131 가이드
image
opq! 24.04.02.21:25 491 +9
130 가이드
image
달소 23.07.04.20:38 1942 +7
129 가이드
image
짹짹이 24.02.11.14:56 647 +6
128 가이드
image
미오뜨 23.10.16.15:05 1116 +6
127 가이드
image
달소 23.11.07.00:00 1584 +6
126 가이드
image
ExpBox 23.04.23.02:29 1249 +6
가이드
image
화정큐삼 23.08.08.09:33 1059 +5
124 가이드
image
akrsoTale 23.10.15.15:52 464 +5
123 가이드
image
달소 23.07.15.16:34 1516 +5
122 가이드
image
keiminem 23.12.24.21:55 644 +5
121 가이드
image
달소 23.09.27.14:22 1481 +5
120 가이드
image
달소 23.06.20.00:13 840 +4
119 가이드
image
화정큐삼 23.08.07.12:40 1176 +4
118 가이드
image
달소 23.09.09.22:30 828 +4
117 가이드
image
달소 23.05.29.22:04 483 +4
116 가이드
image
keiminem 23.11.21.15:54 508 +4
115 가이드
image
달소 23.04.01.02:40 1866 +4
114 가이드
image
달소 23.09.17.15:55 949 +4
113 가이드
image
달소 23.07.24.01:10 1937 +4
112 가이드
image
달소 23.07.16.18:02 785 +4