100% 당첨매일매일 출석 도장 찍고 포인트 받아가세요

X86 주요 단축키
  • 1 X86 톺아보기
  • 2 커스텀맥 톺아보기
  • 3 X86 시작백과
  • 4 X86 필수어플
  • 5 X86 커뮤니티
  • 6 인생은 랜덤
  • X86 실시간 구글검색글 현황
    X86 iQuiz
    🚀 글 사용자 기능   |     |   👨🏻‍ 구글+  |   📌 스크랩{20}   |   ⛳ URL복사  |   🚩 짧은URL  |   🔗 글추적   |   📜 PDF
    읽기 최소레벨 지정  

    About ZISQO

    Phaseone POCP 2017-2019
    Phaseone CaptureONE Pro Master Class Instructor in South Korea
    Commercial Photographer, Photography Consultant & Intructor, Web & Mobile Developer
    PHASEONE, HP, DATACOLOR, X-RITE, EIZO, APPLE, SAEKI P&C

    Original Link
    @아이뱅크 님께서 링크를 남겨주신 게시물을 따라.. 야밤에 토니맥을 마실 갔다가- 잠도 안오고 해서 한 번 간략하게나마 정리를 해볼까 합니다. 정보 제공해주신 @아이뱅크님, @D'Artagnan 님 감사합니다.

    ---------------------------------------------------------------------------------------------

    애플 OEM ACPI 테이블을 보면 아래의 이름으로 GPU 함수 이름이 정리되어 있습니다.

    iMac13/14/15/17: Discrete GPU = "GFX0" (@0). Integrated GPU = "IGPU" (@2 or 0x00020000)
    MacPro3,1/5,1: Discrete GPU#1 = "PSX1" (@0).
    MacPro6,1: Discrete GPU#1 = "GFX1" (@0). Discrete GPU#2 = "GFX2" (@0).

    iMac13/14/15/17의 외장 GPU는 GFX0으로 할당되고 내장 그래픽은 IGPU로 할당 됩니다.
    MacPro3,1/5,1은 외장 GPU가
    PSX1으로 할당 됩니다.
    MacPro6,1은 외장 GPU1번이
    GFX1 외장 GPU2번이  GFX2로 할당되게 되는데요.


    커스텀 맥을 사용할 때 빈번하게 발생하는 블랙 아웃은 할당되는 함수에서 GPU 포트가 할당되어 있지 않기 때문입니다.
    그래서 설치후 블랙 아웃이 발생하게 된다고 Tonymac에 글을 남긴 shilohh의 표현이 그렇습니다.
    (근데 토니맥에 글을 정말 복잡하게 써놓긴 했어요;; ㅎㅎ)


    * 주의 *

    가) 최소한 Error 수정을 끝낸 DSDT.aml을 첨부 했을 때 빛을 발휘 합니다!
    나) DSDT의 GPU 네이밍이 GFX0 / GFX1등으로 되어 있지 않다면 SSDT에 인젝션을 권장 합니다

    어쩔수 없이 맥에서 DSDT를 추출할 경우 아래의 과정을 거쳐 주세요
    1) 최초 부팅 시 클로버 부트로더 GUI에서 F4를 누르고 5초 정도 기다려 주세요
    2) EFI/Clover/ACPI/origin 폴더에 다량의 aml이 추출됩니다
    3) 그 중 OEM으로 추출된 DSDT.aml을 바탕화면으로 복사합니다
    4) 만약 SSDT.aml과 SSDT-1이 있다면 SSDT-2를 새로 만들어서 GPU 인젝션을 하시면 됩니다
    5) 완성된 SSDT-1.aml은 EFI/Clover/ACPI/patched에 넣어 줍니다
    6) DSDT.aml은  EFI/Clover/ACPI/patched에 넣어 줍니다
     

    SSDT GPU Injection workflow

    우선  IORegistryExplorer에서 여러분의 그래픽 카드의 디바이스 이름이 어떻게 되어 있는지 확인하면, DSDT에서 그래픽 장착 슬롯에 대한 디바이스 이름을 손쉽게 확인할 수 있습니다.

    IOResistryExplorer path                   /    SSDT Scope Variations

    PCI0@0 > PEG0@1 > PEGP@0         /     (\_SB.PCI0.PEG0.PEGP)
    PCI0@0 > BR3A@3 > H000@0       /     (_SB.PCI0.BR3A.H000)
    PCI0@0 > BR3A@3 > D077@0        /     (_SB.PCI0.BR3A.D077)
    PCI0@0 > BR2A@2 > H000@0       /     (_SB.PCI0.BR2A.H000)
    PCI0@0 > BR2A@2 > D075@0        /     (_SB.PCI0.BR3A.D075)

    IOResistryExplorer에서 검색한 GPU 디바이스 이름을 DSDT.aml에서 찾았을 때
    "Name (_ADR, Zero)" 또는 "Name (_ADR, 0x00)"으로 보일 때 해당 DSDT는 잘못되었다고 보셔야 하고 윈도우에서 추출하셔서 다시 시도하시기 바랍니다.

     

    가장 많은 케이스가될 PEG0.PEGP에 대한 수정 방법 입니다.


    DSDT.aml / PEG0.PEGP 

        External (PEGP, DeviceObj)
        External (\_SB_.PCI0.PEG0, DeviceObj)
    .
    .
        Scope (\_SB_.PCI0.PEG0)
        {
               Scope (PEGP)
              {
                      Name (_STA, Zero)
              }
              Device (GFX1)
    

    a) 위 코드를 SSDT-1.aml의 Device (_SB.PCI0.NPE3.GFX1) 코드 위에 붙여 넣습니다. b)의 과정을 보시면 더 잘 이해 되실 겁니다.

    /*
     * Intel ACPI Component Architecture
     * AML Disassembler version 20100331
     *
     * Disassembly of iASLTzPejO.aml, Sun Oct  9 01:14:02 2016
     *
     *
     * Original Table Header:
     *     Signature        "SSDT"
     *     Length           0x0000015F (351)
     *     Revision         0x01
     *     Checksum         0x26
     *     OEM ID           "shiloh"
     *     OEM Table ID     "GFX1"
     *     OEM Revision     0x00001000 (4096)
     *     Compiler ID      "INTL"
     *     Compiler Version 0x20100331 (537920305)
     */
    DefinitionBlock ("iASLTzPejO.aml", "SSDT", 1, "shiloh", "GFX1", 0x00001000)
    {
        External (PEGP, DeviceObj)  /* DSDT.aml에 포함된 GPU 정보 코드 */
        External (\_SB_.PCI0.PEG0, DeviceObj)  /* Zero Address 코드 */
     
        Scope (\_SB.PCI0.PEG0) /* Zero Address 를 패치 합니다 */
        {
            Scope (PEGP)  /*  DSDT.aml의 PEGP 주소를 비워냅니다 */
            {
                Name (_STA, Zero)
            }
    
            Device (GFX1)  /* SMbios는 맥프로6,1이기에 GFX1으로 GPU정보를 로드 합니다 */
            {
                Name (_ADR, Zero)
                Name (_SUN, One)
                Method (_DSM, 4, NotSerialized)
                {
                    If (LEqual (Arg2, Zero))
                    {
                        Return (Buffer (One)
                        {
                            0x03
                        })
                    }
    
                    Return (Package (0x0E)
                    {
                        "@0,connector-type", 
                        Buffer (0x04)
                        {
                            0x00, 0x08, 0x00, 0x00
                        }, 
    
                        "@1,connector-type", 
                        Buffer (0x04)
                        {
                            0x00, 0x08, 0x00, 0x00
                        }, 
    
                        "@2,connector-type", 
                        Buffer (0x04)
                        {
                            0x00, 0x08, 0x00, 0x00
                        }, 
    
                        "@3,connector-type", 
                        Buffer (0x04)
                        {
                            0x00, 0x08, 0x00, 0x00
                        }, 
    
                        "@4,connector-type", 
                        Buffer (0x04)
                        {
                            0x00, 0x08, 0x00, 0x00
                        }, 
    
                        "@5,connector-type", 
                        Buffer (0x04)
                        {
                            0x00, 0x08, 0x00, 0x00
                        }, 
    
                        "hda-gfx", 
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        }
                    })
                }
            }
    
            Device (HDAU)   /* Scope 구문안에 있으므로 HDAU를 패치할 패스를 기재 안합니다 */ 
            {
                Name (_ADR, One)
                Method (_DSM, 4, NotSerialized)
                {
                    If (LEqual (Arg2, Zero))
                    {
                        Return (Buffer (One)
                        {
                            0x03
                        })
                    }
    
                    Return (Package (0x02)
                    {
                        "hda-gfx", 
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        }
                    })
                }
            }
        }
    }
    

    b) 위 코드는 DSDT.aml에 GPU와 관련된 정보가 없을 때 SSDT-1에서 GPU정보를 참고하라는 의미입니다.
    * DSDT에 이미  GPU 정보가 있는 것도 있습니다만, 포트 정보가 인식되냐 안되냐의 문제보다 GPU Device 이름이 SMBIOS 버전에 맞는 GPU 정보가 나오는지가 관건입니다.
    * 무작정 DSDT의 디바이스 이름 한 두개  변경 한다고 인젝션이 되지 않습니다. (에러로 인한 DSDT 수정외에는 추가 SSDT등을 통해서 편집하는게 유지 보수 면에서는 간편하다고 할 수 있습니다)
     

     

    NPE2.SLT2 : HP Z420 / Z620의 C602, X79 칩셋
    * 제가 사용중인 실사용 코드이며 HP Z420용입니다. 타 시스템의 칩셋은 이 것과 다를 수 있습니다.

    우선 DSDT.aml 스샷을 보겠습니다.

    스크린샷 2016-10-09 오전 2.42.07.png
    DSDT상에서 NPE2/SLT2에 그래픽 카드를 설치한 것은 IORegistryExplorer에서 확인한 내용이지만 정작 C602 칩셋의 경우, GPU 관련 정보를 넣으면 여전히 블랙아웃이 생기므로 SSDT에 GPU정보를 인젝션하거나 EFI String으로 블랙 아웃을 회피할 수 있겠습니다. 바로 아래 링크를 누르시면 참고해 보실 수 있습니다

    .

    클로버 Device Properties를 이용한 EFI String

     

    
    /*
     * Intel ACPI Component Architecture
     * AML Disassembler version 20100331
     *
     * Disassembly of iASL87J1f0.aml, Sat Oct  8 23:32:20 2016
     *
     *
     * Original Table Header:
     *     Signature        "SSDT"
     *     Length           0x0000021F (543)
     *     Revision         0x01
     *     Checksum         0x63
     *     OEM ID           "APPLE "
     *     OEM Table ID     "Devicein"
     *     OEM Revision     0x00015601 (87553)
     *     Compiler ID      "INTL"
     *     Compiler Version 0x20100331 (537920305)
     */
    DefinitionBlock ("iASL87J1f0.aml", "SSDT", 1, "APPLE ", "Devicein", 0x00015601)
    /* 저는 SSDT drop table을 GFX1으로 안하고 Devicein으로 Config.plist에서 로드합니다 */
    {
        External (\_SB_.PCI0, DeviceObj)    /* \_SB.PCI0의 전체를 참고 합니다 */
        External (\_SB_.PCI0.NPE2, DeviceObj)   /* \_SB_,PCI0.NPE2를 참고 합니다 */
        External (\_SB_.PCI0.NPE2.SLT2, DeviceObj) /* \_SB_,PCI0.NPE2.SLT2를 참고 합니다 */
    
        Method (XOSI, 1, NotSerialized)
        {
            Name (WINV, Package (0x06)
            {
                "Windows", 
                "Windows 2001", 
                "Windows 2001 SP2", 
                "Windows 2006", 
                "Windows 2006 SP1", 
                "Windows 2009"
            })
            Return (LNotEqual (Match (WINV, MEQ, Arg0, MTR, Zero, Zero), 
                Ones))
        }
    
        Scope (\_SB.PCI0)  /* HDEF 관련 패치입니다만 GPU 정보는 아닙니다 */
        {
            Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Name (_PRW, Package (0x02)
                {
                    0x08, 
                    0x04
                })
                Method (_DSM, 4, NotSerialized)
                {
                    If (LEqual (Arg2, Zero))
                    {
                        Return (Buffer (One)
                        {
                            0x03
                        })
                    }
    
                    Return (Package (0x02)
                    {
                        "hda-gfx", 
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        }
                    })
                }
            }
        }
    
        Scope (\_SB.PCI0.NPE2.SLT2)  /* SLT2 코드의 제로 어드레스를 비워 냅니다 */
        {
            Name (_STA, Zero)
        }
    
        Scope (\_SB.PCI0.NPE2)  /* NPE2 코드에 GFX1으로 GPU정보를 로드합니다  */
        {
            Device (GFX1) /* 저도 MacPro6,1로 사용중이라 GPU이름을  GFX1으로 합니다 */
            {
                Name (_ADR, Zero)
                Name (_SUN, 0x05)
                Method (_DSM, 4, NotSerialized)
                {
                    If (LEqual (Arg2, Zero))
                    {
                        Return (Buffer (One)
                        {
                            0x03
                        })
                    }
    
                    Return (Package (0x0C)
                    {
                        "@0,connector-type", 
                        Buffer (0x04)
                        {
                            0x00, 0x04, 0x00, 0x00
                        }, 
    
                        "@1,connector-type", 
                        Buffer (0x04)
                        {
                            0x00, 0x08, 0x00, 0x00
                        }, 
    
                        "@2,connector-type", 
                        Buffer (0x04)
                        {
                            0x00, 0x02, 0x00, 0x00
                        }, 
    
                        "@3,AAPL,boot-display", 
                        Buffer (Zero) {}, 
                        "@3,connector-type", 
                        Buffer (0x04)
                        {
                            0x04, 0x00, 0x00, 0x00
                        }, 
    
                        "hda-gfx", 
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        }
                    })
                }
            }
    
            Device (HDAU)  /* Scope 구문안에 있으므로 HDAU를 패치할 패스를 기재 안합니다  */
            {
                Name (_ADR, One)
                Method (_DSM, 4, NotSerialized)
                {
                    If (LEqual (Arg2, Zero))
                    {
                        Return (Buffer (One)
                        {
                            0x03
                        })
                    }
    
                    Return (Package (0x02)
                    {
                        "hda-gfx", 
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        }
                    })
                }
            }
        }
    }
    
    
    

     

    멀티 GPU

    GPU가 장착된 슬롯 번호는 DSDT의 _SUN 함수의 주소를 확인하시면 됩니다

    _SUN, One : 1번 슬롯
    _SUN, 0x02 :  2번 슬롯
    _SUN, 0x03 :  3번 슬롯
    _SUN, 0x04 :  4번 슬롯
    _SUN, 0x05 :  5번 슬롯... 등등..

     

    일반 데스크탑 메인보드라면 CPU에서 가까운 곳이 One에 해당하고 서버 보드들은 CPU에서 먼 곳이 One입니다만, 꼭 _SUN 함수가 중요하진 않습니다. 그 이유중 하나가 EFI String을 할 경우 간혹 _SUN함수로 인해 슬롯 정보가 제대로 인식을 하지 않는 경우가 있기 때문입니다. 

    만약 멀티플 GPU를 설정하려면 아래처럼 진행 하시면 됩니다.

    가) 첫 번째 GPU는 SSDT-1.aml이며 onboard-1입니다. SSDT Table은  Device1
    나) 두 번째 GPU는 SSDT-2.aml이며 onboard-2입니다. SSDT Table은  Device2

    이렇게 해주시면 되는데 SSDT Table은 여러분이 인식하기 편한 것으로 하시고, Config.plist에서는 모두 Table Drop되어야 합니다.

     

     

    동작 확인
    만약 IOResistryExplorer에서 Display 키워드를 입력하고 3차경로가 여러분의 SMBIOS에 맞는 GFX1@0또는 GFX0@0 표시 된다면  이미 블랙 아웃없이 부팅이 되었다는 뜻이겠죠? AGPDFix가 필요 없어지는 시점인 것입니다. 아래 스샷이 정상적으로 동작하는 예제입니다

    스크린샷 2016-10-08 오후 9.05.08.png

     

     HP Z420, 620, 820 시리즈 유저는 Recovery mode 진입시  npci=0x3000 부트 플래그를 주고, AsusAICPUPM만 활성화 시킨다음 진입해보세요. 매번 nv_disable=1을 지정했던 옵션을 더이상 하지 않아도 되는 장점이 있습니다. 


    #인젝션, #Nvidia, #GPU, #SSDT-1, #SSDT, #그래픽포트, #ZISQO

    • ↩ 씨에라용 Nvidia 드라이버
    • 앱스토어 다운로드 이슈 - 캐시삭제 ↪



    ✨ X86스마트글쓰기 ✨
    📦 본문에 파일을 드래그하여 간단파일첨부
    📡 #해시태그 @유저소환 기능
  • No 섬네일 제목 추천 조회 등록일
    공지
    팁 게시판 접근 제한 (30일간 미활동유저)및 다운로드 권한 : 꾸준회원 등업 필요 10 - 0 865 06.01
    785 OSX사용| MAC을 처음 사용하시나요?

    1. macOS 기초of기초 2. apple 제품 기종 별 설명서 정보

    0 - 0 518 10.23
    784 OSX사용| 시리 호출 단축키 변경방법 1

    간단하쥬~

    0 - 0 306 10.22
    783 OSX사용| Cosmetic) SSDT EFI String Injection 6

    커스텀 맥을 꾸려놓고 서서히 안정화가 되어갈 무렵에 제 시선은 이제 코스메틱을 향해 갑니다. 일전에 @아...

    1 - 0 986 10.18
    782 OSX사용| 아이메시지 문자전달 코드 안될 때 해결 방법 8

    (대장님께서 보시고 게시물의 위치가 합당치 않다면 저에게 고지 없이 이동하셔도 무방합니다) 한 몇일을 개...

    2 - 0 1216 10.14
    781 커맥공통| HOT| 간편하게 Trim을 활성화 하는 방법 (클로버 부트로더) 7

    HP Z 시리즈 웍스테이션에서 엘캐피탄 까지는 큰 문제없이 잘 돌아가지만, 이번 시에라 업데이트에서 가장 ...

    3 - 0 1568 10.14
    780 메인보드| HOT| 시에라 USB3.0 관련 SSDT INJECTION+클로버 패치

    SSDT 생성을 위해 첨부파일 다운로드 받으시고 몇가지 관련 질문에 답하신 다음 생성된 SSDT를 /EFI/CLOVER/...

    4 - 0 2230 10.13
    779 커맥공통| HOT| config.plist를 clover configurator어플 이용방법 8

    개념 및 기본이해 config.plist를. clover configurator어플를 통한 간단한 이용방법 이 글은 입문자 위주로...

    10 - 0 4805 10.12
    778 이슈별팁| (NSRangeException) 디스플레이 환경설정 패널을 로드할 수 없습니다 문제 해결하기 4

    시에라로 업그레이드하고나서부터 재설치를 몇번이고 했지만 디스플레이 설정을 조금만 바꿔도 이와같은 문...

    1 - 0 888 10.11
    777 OSX사용| 시에라 - 모든곳에서 다운로드한 앱 허용 1

    다시 가능하게 sudo spctl --master-disable 원복 sudo spctl --master-enable

    2 - 0 946 10.11
    776 그래픽| rx480 시에라에서 기본 잡기 입니다. 28

    rx480 시에라에서 기본 잡기 입니다. 현재 @Siri님의 견해 사용된 캑스트는 10.12.1 베타(16B2338c)를 이용...

    2 - 0 2347 10.11
    775 OSX사용| 맥 OS 바탕화면 사이트

    http://www.allmacwallpaper.com/

    0 - 0 440 10.10
    774 커맥공통| 2016 ~ 2017 맥북시리즈 예상 라인업 6

    [맥쓰사 카페에 올려둔 글을 그대로 복사해다가 올립니다 ^^;] 안녕하세요! 예전 2016 맥북 라인업으로 찾아...

    1 - 0 1257 10.10
    773 OSX사용| 앱스토어 다운로드 이슈 - 캐시삭제

    맥 앱스토어 완전 종료 터미널 을 열고 /Applications/Utilities/ 이동후 아래와 같이 입력 open $TMPDIR../...

    0 - 0 501 10.09
    » 그래픽| HOT| Nvidia GPU를 SSDT-1.aml에 인젝션하는 글타래입니다. 63

    Original Link @아이뱅크 님께서 링크를 남겨주신 게시물을 따라.. 야밤에 토니맥을 마실 갔다가- 잠도 안오...

    10 - 0 3771 10.08
    771 OSX사용| 씨에라용 Nvidia 드라이버 4

    http://www.nvidia.com/download/driverResults.aspx/107807/en-us 씨에라용 GTX1060/70/80 드라이버인거 같...

    1 - 0 1363 10.08
    770 메인보드| HOT| HP Z420/620 GPU inject를 통해 nv_disable=1을 벗어나 봅니다 3

    Original Link @아이뱅크 님께서 링크를 남겨주신 게시물을 따라.. 야밤에 토니맥을 마실 갔다가- 잠도 안오...

    4 - 0 1160 10.08
    769 메인보드| HOT| HP Z420 / Z620 디스플레이 블랙아웃 회피 방법입니다. 7

    https://www.x86.co.kr/tip/1331441에서 SSDT GPU injection으로 해결하는 방법도 있습니다. 우선 가장 많이...

    3 - 0 1345 10.08
    768 OSX사용| HOT| 106키 한국어키보드에서 한영키 인식시키기 11

    음, 전에 포스팅했던 내용인데, 썩여두기 아까워서 공유하고자합니다. 추가 프로그램 설치 없이 트리거 형식...

    10 - 0 2641 10.07
    767 커맥공통| HOT| 퓨리온님의 시에라&엘캐피탄 16GB 용량초과문제 & dd명령 더 빠르게 2

    새로 구입한 해킨 전용으로 사용할 16GB USB! 퓨리온님의 시에라&엘캐피탄 16GB이미지가 용량 초과로 새 USB...

    4 - 0 737 10.07
    766 OSX사용| 키보드 언어변경 1

    키보드 한/영 자동변환을 처음에는 커스텀맥마다 달라서 바꾸어 볼까 하다가 윈도우와도 통일 시키는게 좋겠...

    0 - 0 461 10.05
    765 커맥공통| HOT| 디스플레이 EDID 정보 편집 방법입니다. 6

    안녕하세요. 해킨을 설치하면 디스플레이 EDID 정보가 올바르지 않은 경우, 컴퓨터 정보 확인에서 "인치/모...

    4 - 0 1536 10.04
    764 그래픽| HOT| rx480 관련 글타래 6

    https://www.theitsage.com/install-radeon-rx-480-gpu-macos-sierra/ 간단한 글타래여서 링크로 대체합니다...

    4 - 0 1215 10.04
    763 CPU| 스피드스텝 이후 잠자기에서 깨어나지 않을 때 조치 방법중 하나입니다. 2

    앨 캐피탄에서 잠자기 이후 깨어나지 않는 경우라면 아래의 케이스를 확인해 주세요 1. 스피드스텝 적용 전...

    1 - 0 1178 10.04
    762 OSX사용| HOT| 맥의 키보드 및 디스플레이 설정 초기화 5

    몇 년간 기존의 설정을 유지하면서 이런 저런 팁들을 적용하고 복구하다 보면, 안의 설정들이 꼬여서 이상 ...

    4 - 0 1026 10.04
    761 사운드| 베플| [시에라 성공]b150-ds3h 사운드 잡기 alc887 3

    * 정확하지 않기 때문에 설치를 하면서 삽질을 했던 모든 과정에 대해서 쓰겠습니다. 고수님들께서 제게 오...

    1 - 0 1906 10.04
  • 서버에 요청 중입니다. 잠시만 기다려 주십시오...