이 DSDT에서 usb 패치가 어느 부분일까요...
- 한결류1
- 912
- 25
한결류1님의 기기정보
추가사양 및 설치(할)OS | 10.12.5 |
---|---|
공지숙지/증상설명 | 숙지 |
한번만 도와주세요..
2일째 집 밖에 안나가고 이것만 붙들고 있습니다.
USBinjectAll로 하면 컴터 포트는 잡히는데 유선 키보드 포트가 먹통이 됩니다. 인식을 안하네요.
연결해도 전류 부족이라 뜨고..
그러다가 우연히 같은 칩셋의 다른 메인보드 dsdt를 발견했는데요.
시험삼아 부팅하니까 엄~~~청 느리게 부팅이 되더니 usb가 잡혀 있습니다..
심지어 HDMI도 잡혀있습니다 ㅜ
이 사람이 패치 목록 적어놨는데.. 미친맥의 MaLd0n 라는 사람입니다. Patches
-FIX ERRORS AND WARNINGS -HPET -SATA -DMAC -SLPB -DARWIN -LPC -XHCI -PLUGIN TYPE -HDAS to HDEF -HDEF -RTC -IRQs -SBUS -BUS1 -MCHC -ALS0 -SHUTDOWN -LAN -USBX -PMCR -IMEI -EC -PNLF -HDMI NVIDIA / ATI 이렇게 패치했다고 합니다. 문제는 XHCI, USBX 등등.. dsdt를 복사해봤는데도 저는 적용이 안되고.. 아 진짜 미치겠습니다.. 좀 자야하는데.. 이걸 꼭 완성해야 일을 할 수 있어서..ㅜㅜ dsdt 첨부합니다. 혹시 무슨 패치가 usb 관련된건지 봐주실 수 있나요? ㅠ
한결류1
댓글 25
방금 올려드린 파일에선 usbx 설치를 안하고
뉴해킨님 답변 기다리는 사이에
https://www.tonymacx86.com/threads/guide-usb-power-property-injection-for-sierra.222266/
이걸 보고 ssdt로 usbx 적용을 하니까 일단은 인식을 하는데요.
더불어서 아이패드 충전도 되고 있긴한데..
제가 올려드린 방금 재수정한 dsdt와 이 ssdt들도 한번 봐주실 수 있나요?
(이번엔 윈도우에서 추출한 원본으로 재수정 해봤습니다. 윈도우 원본도 함께 첨부합니다..)
1. H_EC -> EC로 변경한 후 KsJ님 EC패치 추가
2. ALS0 패치도 추가..
3. KsJ님 스피드스텝 추가..
이렇게만 작업하고 오류만 컴파일해봤습니다..
부탁드립니다 T.T
제가 완전히 잘못 알고 있었나보네요..
dsdt가 있는게 더 리얼맥과 가까워지는 완벽한 해킨이라 들어서
계속 dsdt에 목메고 있었거든요.
저는 단순하게..
dsdt는 메인보드 & 시스템영역
ssdt는 씨피유 영역
이렇게만 알고 있어서 ssdt는 전혀 안건드리고 있었거든요.
제가 오늘 처음으로 ssdt로 usb 영역을 잡은 것 같은데
이따 업로드해보겠습니다! ㅋㅋ
그럼 예를들어 KsJ님 패치에서
ALS0 패치하는 것.. dsdt에 입력하라고 하시면
이 부분만 그냥 ssdt에 입력해서 만들고 적용하면 되는건가요?
저같은경우는 저 항목이 없어서 새로 dsdt에 입력했거든요. ^^;
올려주신 수정한dsdt.aml의 워닝을 Return (Zero)를 넣어서 문법에만 맞추어서 수정한것입니다. 정상 작동에는 문제가 없겠으나 너무 문법만 수정하면 정상작동 하지 않는 경우도 생길수 있습니다.
일단 config.plist에 보니까 Device->usb가 inject되어 있던데 이는 이미 ssdt-uiac.aml에 해 주었기 때문에 하지 않으셔도 될것 같아 보입니다.
그리고 smbios에 macpro 6,1로 하셨던데 Z270을 사용하시려면 imac 에서 적당한 smbios를 적용하셔야 할것 같습니다.
그리고 ACPI->PatchAPic을 enable하셨던데 이는 필요한 부분인가요?
ioreg를 제 이메일로 보내 주십시오. fft2d@naver.com
https://drive.google.com/file/d/0B3uF1IyP2S79ZVZjeWNKV1hQNU0/view?usp=sharing
제가 알기로 Patch ACPI는 카비레이크 시스템에서 필수라고 해서 넣었습니다!
Z270 시스템은 아이맥으로 해야하는... 상황인가요? 맥프로엔 안풀려서..? ㅠ_ㅠ.
아, 그리고 dsdt를 없애고 ssdt로 하려고 제작중인데, 그냥 MaciASL 켜서 ALS0을 패치한다고 하면..
Device (ALS0)
{
Name (_HID, "ACPI0008")
Name (_CID, "smc-als")
Name (BUFF, Buffer (0x02) {})
CreateByteField (BUFF, Zero, OB0)
CreateByteField (BUFF, One, OB1)
CreateWordField (BUFF, Zero, ALSI)
Method (_STA, 0, NotSerialized)
{
If (LGreaterEqual (OSYS, 0x07D9))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
Method (_ALI, 0, NotSerialized)
{
Store (^^EC.ALB0, OB0)
Store (^^EC.ALB1, OB1)
Store (ALSI, Local0)
Return (Local0)
}
Name (_ALR, Package (0x05)
{
Package (0x02)
{
0x0A,
Zero
},
Package (0x02)
{
0x14,
0x0A
},
Package (0x02)
{
0x32,
0x50
},
Package (0x02)
{
0x5A,
0x012C
},
Package (0x02)
{
0x64,
0x03E8
}
})
}
이걸 붙여넣기 하고 저장하니까 저장이 안되더라구요...
혹시 이 전에 다른 구문을 넣어줘야하는지..
아니면 SSDT-UIAC 혹은 SSDT-CPU (ssdtgen으로 생성한거) 아래에다가 구문을 붙여넣기 해도 되는 것인지.. 궁금합니다!
1. 패치가 되어있는 dsdt가 있어 사용할수 있으면 그냥 사용하시면 됩니다. 그런데 패치의 많은 부분이 device name을 바꾸어준 수준이고 xhc의 _DSM과 cpu의 plugin-type정도의 몇가지만 넣어져 있습니다. 이는 clover에서 만들어 놓은 dsdt->patches를 이용하여 디바이스 이름을 바꾸어 줄수 있고 _DSM 이나 plugin-type같은 정보도 ssdt.aml로 넣어 줄수 있습니다.
2. 패치한 의도가 무엇인지를 이해 해야 합니다. _PR.cpu0에 패치한 plugin-type은 스피드 스텝에 필요한 정보가 없는것으로 보아 아이맥에서 지원하는 frequency vector와 HWP를 이용하여 스피드 스텝을 하려고 하는 의도처럼 보입니다. 보통 그렇게 하니까요.
3. ssdt를 만드는것은 쉬운일은 아니나 그렇다고 결코 어려운 일이 아닙니다. 심지어 initialization method인 Method (_INI,,,,)도 만들수 있습니다. 물론 config.plist의 dsdt patches의 도움을 받아야 합니다..
4. 예를 들어 패치된 dsdt에서 Device (XHC)의 factory oem _DSM method가 없고 user _DSM이 삽입되어 있는것으로 보아 어제 우리가 해본 _DSM을 XDSM으로 바꾸어 disable 시키고 _DSM을 넣은것과 같은 작용을 하는것입니다. XDSM이 disable되는 이유는 asl에서 사용하는 reserved word가 아니기 때문입니다. 이는 직접 dsdt를 패치 하지 않고 두가지 방법으로 구현될수 있습니다.
If you look over untouched dsdt.aml, you find Device (ALSD) which _HID is ACPI0008. This _HID loads AppleLMUController driver. Injected Device (ALS0) uses same _HID, ACPI0008. So in case you want to inject new device for that, you need to disable the device which use same _HID or just add information needed.
In this case, Device (ALSD) use method _ALI, _ALR, _STA and new code also has same method. _STA is not that important method so that change _ALI,_ALR and add additional information. Device name doesn't affect driver performance. Leave as it is.
1) to disable _ALI,_ALR
open text to hex editor from web. find hex code for it.
_ALI -> 5f414c49 to XALI -> 58414c49
_ALR -> 5f414c52 to XALR -> 58414c52
2) config.plist patches.. 3) making ssdt.aml 4) put the ssdt-LMUC.aml to ACPI/patched and reboot.
Keep your fingers crossed and wait.
Once system booted, open ioreg and check the driver loaded like you sent me.
code : SSDT-LMUC.aml.zip
Remember! Customzation of system should be done step by step.
일단은 Device (XHC)에서 기존의 _DSM을 XDSM으로 dsable 시키고 작동하는 dsdt에서 _DSM을 넣어 보았습니다. Device (USBX)는 Scope (_SB)로 만들어 바로 아래에 넣었습니다. 제가 270 칩셋은 처음 해보는것이기는 한데 Device (XHC)는 usb 3.0 Devcie (USBX)는 usb 2.0처럼 보이는군요. 결과를 알려주십시요
Clover를 부트로더로 사용하신다면 dsdt를 그냥 두시고 config.plist의 dsdt patch와 ssdt.aml 을 사용하셔서 드라이버를 로드해도 됩니다.