XHCI, EHCI 관련 iMac 14, 2를 위한 충전 DSDT 패치.
- KsJ
- 2321
- 11
KsJ님의 기기정보
제가 사용하고 있는 smbios는 아이맥 14, 2로 되어있어서
구글링을 하던 도중 해킨이 아닌 리얼 아이맥 14, 2의 dsdt등을 추출해둔 곳을 발견하여
그곳의 코드로 usb 관련 차징 dsdt를 설정하여 사용하고 있는 중입니다.
무조건? 적용이 되거나 하지는 않는 것 같지만,
요모조모 리얼맥의 dsdt코드여서 혹시라도 패치가 적용 가능하신 분들을 위하여 글을 올립니다.
Method (_DSM, 4, NotSerialized)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? If (LEqual (Arg2, Zero))
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? Return (Buffer (One)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? 0x03
? ? ? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? Return (Package (0x09)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "AAPL,current-available",?
? ? ? ? ? ? ? ? ? ? 0x0834,?
? ? ? ? ? ? ? ? ? ? "AAPL,current-extra",?
? ? ? ? ? ? ? ? ? ? 0x0A8C,?
? ? ? ? ? ? ? ? ? ? "AAPL,current-extra-in-sleep",?
? ? ? ? ? ? ? ? ? ? 0x0A8C,?
? ? ? ? ? ? ? ? ? ? "AAPL,max-port-current-in-sleep",?
? ? ? ? ? ? ? ? ? ? 0x0834,?
? ? ? ? ? ? ? ? ? ? Buffer (One)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? 0x00
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? })
? ? ? ? ? ? }
위 코드를 EHC, XHC쪽에 추가해주시면 됩니다.
원래 DTGP코드로 되어있었는데 제 욕심?으로 DTGP를 사용하지 않고 패치가능하게끔 해두었습니다.
아래는 좀더 리얼에 가까워질까하여 적용해본 부분인데,
혹시라도 적용하실 분들께서는 적용하시면 될 것 같습니다.
Method (_PRW, 0, NotSerialized)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? If (OSDW ())
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? Return (Package (0x02)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? 0x0D,?
? ? ? ? ? ? ? ? ? ? ? ? 0x04
? ? ? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? Else
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? Return (Package (0x02)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? 0x0D,?
? ? ? ? ? ? ? ? ? ? ? ? 0x03
? ? ? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
EHC, XHC의 _PRW부분을 위로 교체해주시면됩니다.
참고로 OSDW관련 코드가 없으신 분들은 아래의 코드도 같이 넣어주시면 오류가 해결되니 같이 패치해주시면 감사하겠습니다!
Method (OSDW, 0, NotSerialized)
? ? {
? ? ? ? If (LEqual (OSYS, 0x2710))
? ? ? ? {
? ? ? ? ? ? Return (One)
? ? ? ? }
? ? ? ? Else
? ? ? ? {
? ? ? ? ? ? Return (Zero)
? ? ? ? }
? ? }
그리고 Darwin을 검색하셔서 만약 검색이 되지 않으신다면
아래의 코드를 Linux를 검색하셔 나오는 _INI이라는 메소드 안에 넣어주시면 됩니다.
If (_OSI ("Darwin"))
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? Store (0x2710, OSYS)
? ? ? ? ? ? ? ? }
위 패치를 마치고 나니 현재 QuickTime에 아이패드 미니를 연결하는 것도 잘 되고
충전모드도 잘 동작하고, usb3.0에 2.0연장선을 연결하여 미니를 연결하고도 무한 인식 오류가 나지 않는 상태로 잘 사용하고 있습니다 :)
필요하신 분들을 위하여 제가 현재 사용중인 DSDT (for GA-H87M-D3H F10_OZmosis)를 첨부파일로 올립니다.
KsJ
댓글 11
얼마전에 아이패드 충전이 안되는거 관련해서 질문을 올렸다가 불가능하다는 말에 포기했었는데;;;;;
현재 클로버 쓰고, dsdt를 사용하지 않는데, 본문의 DTGP가 언급되어 있길래.. 혹시나 싶어서 config.plist에 AddDTGP랑 FixUSB 옵션을 줬더니
usb3.0 포트에서 아이패드 충전이 됩니다!!!!
거기에 HighCurrent 체크해 놓으면 퀵타임 미러링까지 잘 되네요!!!!!!
아.. 정말 감사합니다ㅠㅠ
인텔 8시리즈 usb관련 차징 fix dsdt 원문 코드들은 구글링하면 나오는데, 실제로 리얼맥에서 적용된 코드들은
아무리 검색해도 잘 안뜨더라구요; 그래서 어찌어찌 검색하다가 알게돼서 적용했더니 잘 되갖고 올려본거였어요 ㅎㅎ
그런데 제 아이폰을 해킨에 연결할 경우 해당 픽스를 적용해도 잠자기후 휴면전류가 1000ma로 표시될뿐 추가 동작 전류수치는 변화가 없는것으로 보입니다.
KsJ님 시스템의 경우 아이폰을 연결하셔도 추가 동작전류의 수치의 변화가 있는지 궁금합니다.
답변 주시면 감사하겠습니다.
참고로 현재 저의 시스템의 경우 추가 동작 전류 및 필요한 전류 수치는 500ma으로 고정되어 있는 것 같습니다.
제가 사용하는 시스템에서는 다음과 같이 동작합니다.
위는 일반 블루투스 동글 모듈이 꼳혀있을 때에 시스템 정보 -> usb에 표기가 되는 부분을 찍은 것인데,
필요한 전류량은 0으로나오고 사용가능한 전류량은 500미리암페어로 나오는것을 확인할 수 있습니다.
이 부분은 저도 항시 500으로 고정되어있는 상태입니다.
이렇게 사용을 하다가 아이패드가 꼳히면 다음과 같이 정보가 추가되어 나타나게됩니다.
필요한 전류량이 500미리암페어로늘어나며 추가 동작 전류가 1600미리로 더 추가되어 동작합니다.
제 시스템에서는 위와같은 방식으로 동작하여 아이패드 연결시 정상적으로 충전된다고 나옵니다.
도움이 되는 답변을 드린것이 맞는지 확신이 서질 않네요...;
감사합니다!
아이폰을 연결하셨을때도 추가 동작전류가 뜨는지 문의드렸던 것입니다.
다만 아이패드 외로 아이팟과 셔플을 사용하고 있는데, 이것들도 연결시에 추가동작전류가 값은 다르지만 모두 나온다고 말씀드릴 수는 있을 것 같습니다.
답변 감사합니다.
그렇다면 아이폰에 근접한 아이팟은 추가전류가 얼마정도 나오는지 궁금합니다.
그리고 일전에 요세미티에서 저절로 잠이 깨는 증상을 해결하는 쉘스크립트를 올리신것으로 알고 있습니다. 그런데 어떻게 적용하셨는지요?
저는 올리신 파일로는 스크립트 실행이 안되어서 다른 방법으로 했습니다만 이게 문제가 멀티캐스트를 비활성화 시키니 무선랜이 잠자기후 항상 끊어져서 수동으로 다시 연결해줘야 하는 문제점이 있더군요 KsJ님은 요세미티에서 저절로 잠이깨는 증상을 해결하기 위해 별도 스크립트를 적용하셨는지요? 아니면 해당 증상이 없으셔서 그냥 그대로 두신 상태이신지요?
저는 현재 멀티캐스트 비활성화를 무선랜 자동연결 문제때문에 다시 원복한 상태입니다.
오즈모시스를 안정화 시키려니 기존에 클로버에서 제공하던 요소들을 일일이 사용자가 해결해야 하니 이런 부분이 좀 힘든것 같습니다.
아무래도 오래된 기종이라 그래서 적게 붙는게 아닌가란 생각이 들더군요.
제가 올린 쉘 스크립트파일은 그냥 더블클릭으로는 실행이 되지 않는것으로 압니다.
반드시 터미널에서 해당 스크립트를 드래그앤 드랍으로 갖다놓고 sudo 권한으로 실행시켜야 정상동작하며,
패치 완료시 리붓을 요청하는 메시지가 나오게됩니다.
현재 패치를 적용한 상태이긴 한데, 잠에서 깨지는 않으나 간헐적 먹통 증상이 다시 나타나더군요 ㅡㅡ;
아무래도 예전에 패치해뒀다가 다시 클린인스톨하면서 설정이 풀려버려서 일어나는것 같은데, 그냥 잠자기쪽은 속편하게 포기하고 갈까 생각중입니다.
해당 로그가 발생하시지는 않으신지요?
적용을하고 싶은데 어떻게 해야할지 모르겠습니다
???? 를 제외하고 뒤에 붙은 코드만 추가 작성하면 되는건가요..ㅠㅠ
도움 좀 주시면 감사하겠습니다