*적용중인 도장
참조 원문의 영문 원제는
"How to disable your unsupported GPU for MacOS" 입니다.
의역과 사견이 들어가 있으며
제가 먼저 필요해서 서핑을 하면서 정리하는 목적이 있어
불특정하게 자주 내용이 업데이트 될 수 있습니다.
노트북은 그냥 있는 소스 가져다 썻는데
데탑에서는 특이한 조합으로 맞추는 바람에
목마른 자가 우물을 판다고 2일정도 시간 투자해서 원문보고 자료 만들어 봤습니다.
사전지식들이 어느정도 있다는 가정하에 적은 자료이기때문에 어느정도 기초지식 습득 후 접근하시기 바랍니다.
여기서 맥OS는 모하비-카탈리나 이며. 다들 아시다 시피 엔비디아에서는 7시리즈일부와 6시리즈 일부만 지원합니다.
9와10, 20은 지원하지 않으며, 모하비-카탈리나를 지원하는 amd 또는 엔비디아 gpu를 추가로 달아도 지원하지 않는 gpu가 달려있으며
패닉 및 설치충돌등의 장애가 생길 가능성이 상당히 크니 하드웨어적으로 뽑아 버리거나 s/w적으로 처리를 해줘야 합니다.
지금 기록을 남기려고 하는건
aml 혹은 plist등의 생성 혹은 수정작업으로 처리하는 방법을 적어보고자 합니다.
총 3가지 방법이 존재합니다.
1. 외장GPU를 다 막아버리고 내장 gpu를 쓰는 것.
외장gpu는 뭐가 되던 상관없으며, 내장gpu는 인텔의 내장gpu중 모하비-카탈리나 지원 모델칩셋이어야만 합니다.
amd 라이젠 내장gpu는 안된다는 뜻이니 해당되지 않는다면 1번 방법은 패스해야 합니다.
사용법:
WhateverGreen 플래그 사용한다.
부팅시 옵션에 "-wegnoegpu" 를 추가로 입력해주면 됩니다. 당연히 WhateverGreen kext가 있어야 겠죠.
2. 특정 칩셋 제조사의 GPU를 막고 지원 하는 외장 GPU를 쓰는 것.
1) 엔비디아칩셋 막는 방법
클로버 config.plist의 device -> properties (속성) 탭에서
텍스트 수정하는 방식으로 하길 원한다면
|
하면 됩니다.
2) AMD (모하비-카탈 비지원모델)
클로버 config.plist의 device -> properties (속성) 탭에서
텍스트 직접 수정코드로는
|
입니다.
특이점은
라데온2개를 쓸경우 1개는 os지원 1개는 미지원 일경우
이 방식을 쓰면 그냥 amd gpu자체가 다 막히니 그렇게 사용하면 안됩니다.
제 경우에는 gtx2080ti + gt710 을 쓰는데
엔비디아 칩셋을 막게 되면
두 카드 모두 차단되기떄문에 그래픽카드가 없는 것으로 인식됩니다.
그렇게 될 경우 아래 3번의 방법을 써야 합니다.
3. SSDT 패치로 특정 GPU만 차단.
원본 ssdt/dsdt을 추출해야합니다.
우선 클로버로 부팅을 해서 F4 버튼을 누르면 EFI/CLOVER/ACPI/ORGIN (아래 샘플 이미지 추가)
에 aml 확장자의 어셈블파일이 저장이 됩니다.
이 파일들을 우선 작업을 할 임시 폴더로 옮깁니다. 저 같은 경우에는 귀차니즘으로 바탕화면에 폴더 만들어 넣었습니다.
그리고 이 파일들을 작업하기 위해 disassembling [디스어셈블링 : 분해하다, 해체하다 ]을 합니다.
모든 하드웨어 정보가 다 들어있기때문에 1번 슬롯 PCI_Ex 를 사용중지 할 코드만 찾아서 넣어줘야 합니다.
우선 iasl 을 다운받습니다. (https://bitbucket.org/RehabMan/acpica/downloads/)
그리고 압축을 풀어 아까 귀차니즘으로 만든 폴더에 iasl 파일을 넣어줍니다.
혹시 모르니 권한을 777정도도 주겠습니다.
그리고 실행을 합니다.
./iasl -dl DSDT.aml SSDT*.aml |
영문 기술자료에는 -da -dl 로도 많이 쓰여져 있지만 이는 과거형이며, 스카이레이크 이상 시스템에서는 -da 를 제외합니다.
위와 같이 aml과 dsl로 디스에셈블이 되었습니다.
_OFF 인 메소드를 찾습니다.
|
입력 결과 나온 파일리스트는
gpu를 차단시키기 위해선 OFF 명령코드가 들어간 dsl 을 찾고
그 코드는
dsdt.dsl , ssdt-11-opttabl.dsl 중 1개로 좁혀졌습니다.
dsdt.dsl 에서 OFF 메소드를 검색해보면
PowerResource (V0PR, 0x00, 0x0000) { Name (_STA, One) // _STA: Status Method (_ON, 0, NotSerialized) // _ON_: Power On { ADBG (Concatenate ("VOL0._ON:", ToHexString (VL0M))) If (VR3A) { CPON (VL0M) Store (One, _STA) } Else { ADBG ("Global RTD3 lock") } } Method (_OFF, 0, NotSerialized) // _OFF: Power Off { ADBG (Concatenate ("VOL0._OFF:", ToHexString (VL0M))) |
PowerResource 에 대한 매크로 이기때문에 무시해 줍니다.
클래스 같은 개념으로 보시면 됩니다.
실제 명령처리 되는 정보를 봐야 하기때문에 이부분은 패스합니다.
ssdt-11-opttabl.dsl를 열어봅니다.
" Method (_OFF " 키워드로 검색을 합니다. MaciASL 프로그램으로 오픈합니다.
오른쪽 하단에 보면 해당 주소와 실제 Power Off 하는 코드도 확인이 가능합니다.
주요부분만 캡쳐를 했는데
전체 코드 구조로 보자면
|
위와 같이 처리가 됩니다.
이제 acpi/patch 에 집어 넣을 aml 코드를 만들어 주면 됩니다.
형식예제는 아래와 같습니다.
|
파일명은 알아서 하면 되지만 SPOOFING, disable-gpu 등으로 알아보고 쉽게 써야 나중에 봤을때 안열어봐도 이게 뭔지 알수있는 팁아닌 팁이 있습니다.
MaciASL 을 실행하고
신규 작성으로 저 코드를 작성하고 (복붙, 주요부분 수정) 다른이름으로 저장시에는
기계언어 바이너리 타입으로 저장해줘야 기계가 알아 먹습니다.
디스어셈블링한건 인간이 알아보기 우해 바이너리를 텍스트화 한것이니, 다시 기계언어로 돌려줘야 하는거라 보면 됩니다.
파일 저장 위치는
EFI / Clover / ACPI / patched /
저장하면 됩니다.
기타 고려사항은 원문 그대로 원역해석으로 남겨봅니다.
이 방법은 SSDT에서 _DSM 방법을 사용하여 특성을 주입합니다. 기본 ACPI에 해당 경로에 기존 _DSM 방법이 있으면 이름을 바꿔야합니다. 그렇지 않으면 기본 _DSM이 SSDT가 추가하는 _DSM과 충돌하기 때문입니다. 일반적으로 config.plist / ACPI / DSDT / Patches에 _DSM-> XDSM 패치를 입력하면됩니다. 이 패치는 모든 내 가이드 plist에서 제공되지만 비활성화되어 있습니다. |
클로버 기준이지만
오픈코어도 각 폴더에 맞게 넣으면 됩니다.
클로버(오픈코어) 설치하는법, 클로버(오픈코어) 구조, 유닉스/맥 의 권한변경방법, 명령어 실행등에 대해서는 당연히 숙지 했다고 생각하고 글을 씁니다.
이부분에 대해서 무지하다면 최소한 이부분에 대한 기초를 습득하고 본 게시글을 읽는것이 스트레스가 덜 할 것입니다.
주 작업이 3번으로 하려고 정리한 자료라 1-2번은 상대적으로 내용이 적습니다.
그만큼 어렵지 않습니다.
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
macOS Sequoia 15.0.1 24A348 정식버젼 고스트 이미지 OC 1.0.2 ft: 전체공개 +29 | 941 | 24.10.1121:10 | 좌절금지 |
오픈코어 1.0.2 +23 | 578 | 24.10.0900:22 | 줌바이퍼 |
[중급편] 노트북 해킨 +16 | 1406 | 24.07.1219:19 | Stultus |
macOS Ventura 13.7 22H123 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체 공개 +17 | 575 | 24.09.1917:09 | 좌절금지 |
macOS Sonoma 14.7 23H124 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체공개 +31 | 910 | 24.09.1723:58 | 좌절금지 |
[초급편] 문제 스스로 해결하기 +20 | 4003 | 24.03.2920:07 | Stultus |
[입문편] 첫 해킨 길라잡이 +40 | 5087 | 24.01.1218:54 | Stultus |
[필독 - 안정화] macOS 해킨토시 설치 후 안정화 작업 목록 및 글타래 모음 총정리 📋 +67 | 5.1만 | 23.01.0913:39 | shl628 |
Hot AMD Sequoia용 AppleALC 1.9.2 +3 | 109 | 24.10.2319:04 | 사노라맨 |
Hot [Sequoia 15.0.1, OC r1.0.2] ASUS TUF B550-PLUS / RYZEN 5 5600X / RX470 +2 | 106 | 24.10.2322:26 | 뿌엥 |
Hot OCLP로 지원되지 않는 기기/dGPU를 사용하는 해킨토시의 사이드카 품질 문제 해결방법 +1 | 122 | 24.10.2321:29 | 해킨도전자 |
106 | 24.10.2322:26 | 뿌엥 | |
122 | 24.10.2321:29 | 해킨도전자 | |
109 | 24.10.2319:04 | 사노라맨 | |
787 | 24.10.1412:27 | shl628 | |
673 | 24.10.1316:00 | 수박 | |
346 | 24.10.1222:56 | Stultus | |
941 | 24.10.1121:10 | 좌절금지 | |
734 | 24.10.1115:53 | 수박 | |
578 | 24.10.0900:22 | 줌바이퍼 | |
1406 | 24.07.1219:19 | Stultus | |
1214 | 24.10.0500:31 | 줌바이퍼 | |
569 | 24.10.0410:49 | Tamy | |
749 | 24.09.2923:48 | 머트 | |
629 | 24.09.2822:28 | 머트 | |
463 | 24.09.2808:22 | Tamy | |
894 | 24.09.2321:32 | Stultus | |
995 | 24.09.2210:59 | 좌절금지 | |
644 | 24.09.2203:23 | 누림어멈 | |
1191 | 24.09.1919:17 | 좌절금지 | |
575 | 24.09.1917:09 | 좌절금지 | |
498 | 24.09.1813:37 | Stultus | |
910 | 24.09.1723:58 | 좌절금지 | |
601 | 24.09.1722:40 | 좌절금지 | |
453 | 24.09.1717:13 | 맥가즈아 | |
562 | 24.09.1708:13 | 김경석 | |
234 | 24.09.1617:47 | Panictosh | |
768 | 24.09.1504:35 | Tamy | |
584 | 24.09.1319:18 | Stultus | |
706 | 24.09.1019:44 | 치토 | |
484 | 24.09.0118:13 | 머핀X | |
462 | 24.09.0112:54 | 해킨도전자 | |
546 | 24.08.3115:34 | 머핀X | |
306 | 24.08.2601:42 | 화정큐삼 | |
305 | 24.08.2422:59 | 하나브 | |
318 | 24.08.2316:25 | 화정큐삼 | |
415 | 24.08.1810:56 | CanBe | |
363 | 24.08.1800:04 | 화정큐삼 | |
300 | 24.08.1722:03 | 화정큐삼 | |
201 | 24.08.1710:14 | jbhlyk | |
312 | 24.08.1622:06 | Stultus | |
218 | 24.08.1511:16 | hackillious | |
169 | 24.08.1421:30 | 세유니 | |
419 | 24.08.1419:58 | Stultus | |
377 | 24.08.1311:26 | 오디세이 | |
270 | 24.08.1115:46 | 좌절금지 | |
186 | 24.08.1111:21 | 티타보르 | |
233 | 24.08.1022:46 | Stultus | |
539 | 24.08.1022:10 | 오디세이 | |
168 | 24.08.1019:05 | jbhlyk | |
200 | 24.08.0923:20 | RogerT |
기대됩니닷