X86 Open로그인

추천하기 twitter 로그인 facebook 로그인 google 로그인 카카오 로그인 네이버 로그인
2

DSDT에 EFI String을 넣는 방법도 있고, SSDT-1.aml에 추가를 하는 방법도 있지만... 다소 번거롭더래도 가능한 DSDT와 SSDT-1.aml의 수정을 최소화 하는 방향으로 EFI String Cosmetic을 Clover 부트로더에서 지원하는 Properties inject를 이용해 Cosmetic 작업을 하는 방법에 대한 안내입니다.

 

** 1년전 방법을 쓰는 이유는 Cosmetic 작업을 하다보니 DSDT.aml과 SSDT-1.aml의 용량이 커지는 부분도 있고 추가 수정시 10진수를 16진수로 변경하는 귀차니즘이 발동하다보니 차라리 처음엔 손이 좀 가더래도 xml에서 hex로 간편하게 변환하여 config.plist에 인젝션하는 방법도 차후 관리 부분에서는 간편한걸 쉽게 떨쳐내기 어렵더군요. 그리고 HP Z 시리즈의 DSDT에는 GPU 정보를 곧바로 넣으면 그냥 블랙아웃입니다. 따라서 SSDT에 GPU정보를 인젝션하거나 Device Properties를 Confilg.plist에 인젝션하는 방법을 사용하면 되겠습니다.
(기초가 되는 XML 파일만 만들어두면 생각보다 간편하게 EFI String 작업이 가능합니다)

 

장점
AGPDfix 작업 없이 GPU정보를 Config.plist의 Device Properties에 인젝션 시킬 수 있다
PCI 슬롯에 장착된 디바이스 이름을 조금은 쉽게(?) 인젝션 시킬 수 있다
차후 PCI 장치 증설시 디바이스 정보를 DSDT 변경없이 할 수 있다
SSDT/DSDT injection과 마찬가지로 macOS 버전 업데이트시 마다 손 댈 부분이 줄어든다
클린 설치및 리커버리 모드 진입시 nv_disable=1없이 진입 가능하다
PCI 장치를 다른 제품으로 변경 시 DSDT/SSDT 수정없이 Config.plist/Device/Properties에서 제외 시킨 다음, 해당 슬롯 정보의 값을 변경만 해주면 된다.
(SSDT-1/DSDT의 경우 복사 붙여 넣기 과정에서 10진수 16진수 변환 과정이 매우 번거로움)
 

단점
터미널 명령의 압박
차후 PCI 장치 증설시 디바이스 정보를 리얼맥과 같이 하려면 SSDT-1.aml에서 디바이스 이름이 변경된 방식으로 선언되어야 한다
리커버리 모드 진입시 반드시 AsusAICPM를 활성화 시키고 Darkwake 옵션도 제외시켜야 한다


 

Cosmetic Preparation

GFXutil _ Hex.zip

device-properties.hex.zip

device-properties.xml.zip

 

* Z시리즈 메인보드의 슬롯 번호는 아래와 같이 표기 됩니다.
* PEX2.SLT1  (PCIe x1)
* NPE2.SLT2 (PCIe x16)
* PEX4.SLT3 (PCIe x4)
* NPE1.SLT4 (PCIe x8)
* NPE3.SLT5 (PCIe x16)
* BR20.SLT6 (PCI)

위 내용을 참고 하셔서 필요 시 SSDT-1.aml에서 System Bus를 PCI0.PEX2 / PCI0.PEX2.SLT1등으로 호출 하셔서 디바이스 이름 변경을 하시면 됩니다.


USB 3.0 PCIe 장착시 (장착 안할 경우 패스 하시면 됩니다)

1. HP Zx2x 시리즈의 USB 3.0은 Texas Instrumental 칩셋이라 커스텀 맥에선 사용할 수 없습니다.
2. CMOS단에서 Disable 시켜 주시고
3. Fresco FL1100ex 칩셋(BZ1-ultra PCIe)을 사용할 경우 USB 3.0 UASP를 4포트 사용할 수 있습니다.
4. FakeSMC에 IOUSBFamily.kext/AppleXHCIPCI.kext/Info.plist에서 HS01~04 포트를 삭제하고
5. USBInjectAll.kext에서 XHC 포트를 SSP1~4를 증설하되 포트 번호를 5~8로 맞춰 주신다음 포트 카운트는 8로 해주시면 됩니다.
6. 반드시 SSDT-1.aml에서 PCIe 카드 슬롯 번호에 맞춰 Device (XHC)로 리네임 해야 합니다
7. DSDT에서 슬롯 이름을 직접 변경할 경우 커널 패닉이 발생 합니다.

* 19핀 전면 USB 3.0 포트는 Fresco FL1100ex의 내부 19핀 포트에 연결 하시고
* 동봉된 슬롯형 USB 3.0포트는 Z의 메인보드 3.0 19핀 포트에 연결하시면 부팅시 F1 에러가 없습니다.


BCM4360CD의 와이파이 다운 현상 (장착 안할 경우 패스 하시면 됩니다)

가. PCIe USB 3.0 카드를 장착 시, FL1100ex 칩셋의 특성 상 허브가 생성되지 않음으로 인해
나. 메인보드 USB 2.0 포트와 충돌 현상으로 인해 와이파이는 다운되고 블루투스는 동작합니다.
다. 이로인해 연속성 사용은 불가하고 AirDrop도 불가 합니다.

 

그럼 EFI String을 적용하는 과정에 대해 알아 보도록 하겠습니다.

1. 다운로드 받은 gfxutil과 gfx_hex를 바탕화면에 옮긴 다음 터미널에서 아래 명령을 실행합니다.

$ sudo -s
[비밀 번호 입력]
# cp -R ~/Desktop/gfxutil /bin/
# cp -R ~/Desktop/gfx_hex /bin/
# exit

 

2.  그래픽 카드의 DevicePath를 터미널에서 검색 합니다.
스크린샷 2016-10-27 오전 3.55.16.jpg
3.  이더넷 포트의 DevicePath를 터미널에서 검색 합니다.
스크린샷 2016-10-27 오전 3.56.37.jpg
4.  EH01  장치 관리자의 DevicePath를 터미널에서 검색 합니다
스크린샷 2016-10-27 오전 3.57.59.jpg

5.  EH02  장치 관리자의 DevicePath를 터미널에서 검색 합니다
스크린샷 2016-10-27 오전 3.58.35.jpg
6.   XHC  장치 관리자의 DevicePath를 터미널에서 검색 합니다
스크린샷 2016-10-27 오전 3.58.56.jpg
7.   AHCI  장치 관리자의 DevicePath를 터미널에서 검색 합니다
스크린샷 2016-10-27 오전 3.59.36.jpg

1~7번까지의 DevicePath를 잘 기록해 놓으시고 터미널에서 아래 명령을 실행 합니다.

$ cd ~/Desktop
$ ioreg -lw0 -p IODeviceTree -n efi -r -x | grep device-properties | sed 's/.*<//;s/>.*//;' > "device-properties.hex" && gfxutil -s -n -i hex -o xml "device-properties.hex" "device-properties.xml"

 

바탕화면에 생성된 device-properties.xml 파일을 PlistEdit으로 열어 봅니다.

스크린샷 2016-10-27 오전 4.07.56.jpg

첨부된 Device-Properies.xml을 열어 보시면서 HP Z4,6,820 시리즈에서 변경하고 싶은 내용을 참고 하시면 됩니다.

우선, PciRoot(0x0)/Pci(0x19,0x0)는 GBE의 정보인데요.
Slot이름은 Built in으로 했고, Device-ID와 Vendor-ID는 윈도우에서 덤프해온 내용을 토대로 작성했습니다.
 

스크린샷 2016-10-27 오전 4.11.02.jpg

그래픽 카드쪽을 보시면 다른 부분보다 메모리 사이즈를 변경하실 때, 아래의 값으로 달라져야 합니다.

  1. 128 MB / 0x00000080
  2. 256 MB / 0x00000100
  3. 512 MB / 0x00000200
  4. 1024 MB (1 GB) / 0x00000400
  5. 2048 MB (2 GB) / 0x00000800
  6. 3072 MB (3 GB) / 0x00000C00
  7. 4096 MB (4 GB) / 0x00001000
  8. 5120 MB (5 GB) / 0x00001400
  9. 6144 MB (6 GB) / 0x00001800
  10. 7168 MB (7 GB) / 0x00001C00
  11. 8192 MB (8 GB) / 0x00002000
  12. 9216 MB (9 GB) / 0x00002400
  13. 10240 MB (10 GB) / 0x00002800
  14. 11264 MB (11 GB) / 0x00002C00
  15. 12288 MB (12 GB) / 0x00003000
  16. 13312 MB (13 GB) / 0x00003400
  17. 14336 MB (14 GB) / 0x00003800
  18. 15360 MB (15 GB) / 0x00003C00
  19. 16384 MB (16 GB) / 0x00004000

그리고 Boot screen이 요상하게 다른 화면에서 뜨고 있다면 AAPL,boot-display를 @0, @1, @2 이렇게 지정할 수 있습니다만
이 값의 변화는 IORegistryExplorer에서 GFX1 하단의 A@0, B@1, C@2, D@3....등을 보시고 어느 디스플레이를 boot-display로 사용하실건지 결정하시면 됩니다.
스크린샷 2016-10-27 오전 4.15.57.jpg

 

모든 작업이 끝났다면 터미널에서 아래 명령을 실행합니다.

스크린샷 2016-10-27 오전 4.19.07.jpg

텍스트 편집기를 이용해 device-properties.hex 파일을 열고 모든 내용을 복사 합니다.
스크린샷 2016-10-27 오전 4.19.58.jpg

 클로버 컨피큐레이터로 Config.plist 파일을 열고, Device/Properties의 공란에 Hex 코드를 붙여 넣고 Inject를 체크 합니다.
스크린샷 2016-10-27 오전 4.20.28.jpg

 

Graphics에서 Patch Vbios 항목을 체크 합니다.
스크린샷 2016-10-27 오전 4.21.36.jpg

 

모든 내용을 저장한 다음 재부팅하면 Cosmetic 작업이 끝난 것을 확인할 수 있습니다.
스크린샷 2016-10-27 오전 6.43.32.jpg

 

 

** 이 작업 이후에도 GPU 정보는 Device Properties에 기재되어 있고, SSDT-1.aml에서 그래픽이 장착된 슬롯의 이름이 SLT2에서 GFX1으로 되어 있기에
** 새로운 macOS 업데이트가 진행되거나 리커버리 모드 진입시 nv_disable=1 옵션없이 진입 가능합니다.
** 아래 파일 내용은 다음과 같습니다.

가) HP Z420/620/820용 DSDT.aml : 0 Error 0 Warning 0 Remark로 교정 완료한 파일
나) SSDT-1.aml에서 GPU 장착 슬롯인 SLT2를 GFX1으로 변경한 내용
다) SSDT-1.aml에서 USB 3.0 PCIe 장착 슬롯인 SLT3를 XHC로 변경한 내용
라) SSDT-1.aml에서 BCM4360 PCIe 장착 슬롯인 SLT1을 ARPT로 변경한 내용
마) SSDT-1.aml에서  Device Rename이외  각 디바이스별 Return (Package (Zero) {})를 통해 Config.plist의 Device Properties에서 EFI String을 변경토록 합니다.
바) 디바이스 이름을 변경하기 위해선 시스템 버스를 호출해야 하고 이는 SSDT-1.aml 최상단에 있습니다. (슬롯 이름은 본문 상단에서 확인해 주세요)

 

patched.zip ​(DSDT.aml / SSDT-1.aml)

ssdtPRGen을 이용한 SSDT.aml 파일은 CpuPm을 이용해 Config.plist에서 SSDT Droptable : CpuPm을 호출 하시면 됩니다.
만약 스피드스텝이 제대로 안될 경우에는 반드시 샌디/아이비브릿지 CPU는 AICPM패치를 먼저하고 MSR Lock을 해제한 다음, 아래의 링크를 통해 사용자 정의 값을 만들면 됩니다.

샌디/아이비브릿지 CPU 스피드스텝 설정

 

** GPU 인젝션시 SSDT-1.aml에서 Name (_SUN 함수는 슬롯의 위치에 해당합니다만, 굳이 꼭 포함시켜야 하는건 아닙니다.
 

A) One : 1번
B) 0x02 : 2번
C) 0x03 : 3번
D) 0x04 ; 4번
E) 0x05 : 5번
F) 0x06 : 6번

 

그리고 SSDT-1.aml에서 onboard-1,onboard-2는 SLI / CF를 적용시 1번, 2번 GPU를 할당하는데 사용됩니다.
 

good poor

오드리님 / Mactopia님 /
2명이 이글을 호평하셨습니다. 0명이 불평하셨습니다.

★ 글쓴이에게 고마우시면 커피한잔 후원(클릭) ★ 추천 정보가 입력되지 않았습니다.
twitter 공유 facebook 공유 googleplus 공유 카카오스토리 공유 네이버라인으로 공유

zisqo 님의 Devices

See the Unseen

★ 글쓴이에게 고마우시면 커피한잔 후원(클릭) ★ 추천 정보가 입력되지 않았습니다.
  • Profile
    2016/10/29
    0 0
    DSDT.aml 이  hp Z820 에 사용해도 되나요?
  • Profile
    2016/10/29
    1 0
    쌈닭 : DSDT.aml 이  hp Z820 에 사용해도 되나요? 에 달린 대댓글입니다.

    @쌈닭님 C602칩셋이라면 됩니다. 다만 SSDT.aml은 듀얼 소켓용으로 작업해야 합니다.

  • Profile
    2016/12/08
    0 0

    파일이 깨저서 지우고 다시 생성 할려는데 

    hex만 생성되고 xml은 생성이 안되네요 

    어덯게 해야하나요 .

     

    그리고 

    코스메틱이 너무 어려워서 그런데 현제 ssdt로 그래픽을 잡고 있습니다 . 

    그래픽을 ssdt말고 요번에 최근에 올리신글중에서( https://x86.co.kr/tip/1382028 ) 클로버 디바이스 에서 그래픽인젝션글을 보았습니다 .

    그러면gfxutil을 사용하여 클로버 디바이스안에 인젝션될 내용을 생성하고 

    클로버에 그대로 복사 해서 붙어넣기 하고 dsdt patch dp @@@change GFX1 문을 넣어주면 되는건가요??

    그리고 은 bcm94360cd를 사용하고잇습니다. 

    이거역시 코스메틱 하고 싶어서 그런데 이거역시 gfxutil 로 device-properties.xml 을 생성하고 

    hex코드 변환후 클로버에 hex코드 입력하면되는 건가요 

     

    여기 서 질문하나 더잇습니다 .

    https://x86.co.kr/tip/1382028 

    여기나오는 그래픽인젝션방식으로 bcm94360cd 를 인젝션 시킬수 없나요?? 

    설명을 잘해주셨는데 이거 저거 섞여 있는거 같아서 어렵네요 

    저는 그래픽 ssdt 삭제하고 싶습니다.

    그리고 bcm94360 을 코스메틱 하고 싶습니다 .

     

    괜찮으시다면 

    개인정보 심바이를 삭제 해주시고 클로버 config.plist을 보내주실수 있을까요 

    4번 정독해도 요번껀 많이 햇갈리네요.

    부탁드립니다.

  • Profile
    2016/12/08
    0 0

    device Properties는 말씀 하신대로 하시면 됩니다. 하지만 변환 과정의 번거로움을 줄이기위해 arbitrary 작업으로 선회하였습니다. 

    천천히 읽어 보시면 잘 해결될겁니다. ^^

일반로그인 twitter 로그인 facebook 로그인 google 로그인 카카오 로그인 네이버 로그인
서버에 요청 중입니다. 잠시만 기다려 주십시오...