질문용 시스템 사양 | 1번 |
---|---|
추가사양 및 설치(할)OS | 카탈리나 |
공지숙지/증상설명 | 숙지 |
터치패드 잡기위해 글 2개를 참고 했습니다.
여기서 말씀하신데로
1. S/L/E에서 AppleIntelpssI2C 관련 켁스트 삭제
2.kext위자드를 사용하여 S/L/E 에 권한수정으로 설치(VoodooPS2Controller.kext,VoodooI2CHID, VoodooI2CAtmelMXT,VoodooI2CSynaptics)
3.클로버에도 똑같이 같은 kext 넣기
4.dsdt 패치 ([GPIO] Controller Enable [SKL+], windows 10 patch)
5.클로버에 넣기
똑같이 따라 했지만 터치패드가 잡히지 않습니다. 과정중에 제가 안한게 있나요??
+ 배터리 패치 되어 있습니다.
감사합니다..
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
모니터(오류화면) 사진 찍을 때 팁(소소함) +270 | 11만 | 17.07.3020:49 | 달쇠 |
빠르고 정확한 답변을 받는 팁 및 질답자의 매너, EFI폴더 압축법 +90 | 12만 | 17.02.1014:21 | Mactopia |
Hot 오픈코어로 단일 ssd로 듀얼부팅 설정시 윈도우 블루스크린문제 해결방... +13 | 59 | 24.10.2318:25 | 헷인토시 |
Hot 새로운 os 설치, 벤츄라가 좋을까요? 세콰이어가 좋을까요? +10 | 117 | 24.10.2308:19 | 미찌콘 |
Hot 맥프로를 들여왔는데 질문이 있습니다. +7 | 87 | 24.10.2315:51 | 배고픈사람 |
12 | 24.10.2513:02 | 김밉상 | |
31 | 24.10.2421:15 | 활주로임 | |
48 | 24.10.2322:21 | 활주로임 | |
59 | 24.10.2318:25 | 헷인토시 | |
54 | 24.10.2317:01 | 활주로임 | |
87 | 24.10.2315:51 | 배고픈사람 | |
117 | 24.10.2308:19 | 미찌콘 | |
102 | 24.10.2213:48 | 아킬리오 | |
86 | 24.10.2210:36 | MCMC | |
61 | 24.10.2200:57 | 헷인토시 | |
157 | 24.10.2123:22 | 마요네즈 | |
739 | 24.10.1914:54 | 활주로임 | |
189 | 24.10.2017:21 | RTings | |
697 | 24.10.2000:14 | Kylee | |
118 | 24.10.1921:50 | 루이코아낭 | |
206 | 24.10.1918:03 | Gastone | |
82 | 24.10.1721:28 | Oscar | |
204 | 24.10.1712:11 | 희밍현수님 | |
70 | 24.10.1612:42 | SystemShock | |
308 | 24.10.1517:37 | Gastone | |
1318 | 24.10.1517:20 | 물만두 | |
1624 | 24.10.1317:18 | 물만두 | |
1275 | 24.10.1315:07 | Steer | |
875 | 24.10.1004:51 | Steer | |
192 | 24.10.0920:24 | KImET | |
931 | 24.10.0915:49 | lesmi | |
182 | 24.10.0911:23 | LumOS | |
73 | 24.10.0902:16 | lesmi | |
909 | 24.10.0822:09 | 애플맨 | |
1315 | 24.10.0810:58 | soullees | |
115 | 24.10.0723:26 | 오십견 | |
1234 | 24.10.0723:14 | Steer | |
117 | 24.10.0721:40 | 서재희 | |
73 | 24.10.0704:04 | g2030h61 | |
89 | 24.10.0704:00 | g2030h61 | |
95 | 24.10.0620:14 | SystemShock | |
113 | 24.10.0617:57 | 늘심심 | |
1372 | 24.10.0601:48 | 아스타틴 | |
1272 | 24.10.0515:04 | lesmi | |
131 | 24.10.0422:58 | 낡은기계 | |
547 | 24.10.0315:33 | oreo | |
118 | 24.10.0315:26 | 매치포인트 | |
177 | 24.10.0313:01 | 매치포인트 | |
151 | 24.10.0311:30 | KAKU | |
382 | 24.10.0207:44 | 데스맥 | |
255 | 24.09.3014:22 | 민준송 | |
174 | 24.09.2922:21 | oreo | |
133 | 24.09.2917:58 | 수박 | |
111 | 24.09.2913:21 | 루마루 | |
206 | 24.09.2910:19 | 루마루 |
EFI 폴더와 DSDT 뿐만 아니라 VoodooI2C 의 로그를 확인하여 어떤 오류가 발생하고 있는지를 확인해야 도움을 정확하게 드릴 수 있습니다.
그리고, IOReg 도 추출하여 보내주세요.
https://voodooi2c.github.io/#Troubleshooting/Troubleshooting
그런데, 질문글에 링크하신 저 Tip 글의 내용에서 조금 잘못된 내용과 보충해야 하는 부분이 있습니다.
물론, 저 글의 내용대로 진행하여도 작동하는 경우가 있겠지만
VoodooPS2Controller 의 Plugin 으로 포함되는 VoodooPS2Keyboard.kext 만 남기고 나머지 Plugin 은 모두 삭제하는 것을 권장하며
VoodooI2CHID.kext 와 VoodooI2CAtmelMXT.kext 는 필수가 아니고 VoodooI2C.kext 가 필수이며
일반적으로 대부분의 경우에는 I2C 방식의 터치패드가 VoodooI2CHID.kext 로 정상적으로 작동되기 때문에 주로 사용되는 것일 뿐입니다.
또한, OEM DSDT 에서 I2C 버스 속도 상수에 해당하는 SSCN 과 FMCN 이 누락되어 있어서
Mac OS 에서 I2C 방식의 터치패드가 정상적으로 작동하지 않는 경우도 있으며 이것 또한 노트북마다 다릅니다.
자세한 내용은 아래에서 자세히 설명하도록 하겠습니다.
I2C 방식의 터치패드가 정상적으로 작동할 수 있도록 패치해줘야 하는 내용들에 대하여 공부해보세요.
DSDT 를 직접 수정하는 Static 방식으로 패치하는 방법과
터치패드와 관련된 SSDT 로 OEM DSDT 를 Override 하는 Hot Patch 방식으로 패치하는 방법이 있습니다.
그리고, VoodooI2C 의 작동 방식인 Interrupt ( GPIO 또는 APIC ) 모드와 Polling 모드가 무엇인지 공부해보세요.
또한, I2C 방식의 터치패드 장치에 해당하는 Device 의 _CRS Method 를 다루게 될 것입니다.
_CRS Method 에서 ConcatenateResTemplate 문이 사용됩니다.
사진 출처 - ACPI Specification 기술 문서
https://uefi.org/sites/default/files/resources/ACPI_6_3_May16.pdf
즉, _CRS 에서 ConcatenateResTemplate 의 인수에 어떤 Object 가 들어가서 Return 되는지에 따라서
다음과 같은 VoodooI2C 의 작동 방식이 달라지게 됩니다.
- Interrupt (GPIO) 모드
- Interrupt (APIC) 모드
- Polling 모드
Mac OS 에서 I2C 방식의 터치패드가 GPIO Controller 에 의하여 Interrupt 모드로 작동하려면
Return (ConcatenateResTemplate (SBFB, SBFG))
APIC Controller 에 의하여 Interrupt 모드로 작동하려면
Return (ConcatenateResTemplate (SBFB, SBFI))
Polling 모드로 작동하려면
Return (ConcatenateResTemplate (SBFB, SBFI))
또는 Return (SBFB)
여기에서, SBFB 는 I2cSerialBusV2 에 해당하는 Object 이며
SBFG 는 GPIO Pin 이고 SBFI 는 APIC Pin 에 해당하는 IntObj 입니다.
그런데, VoodooI2C 의 작동 방식인 Interrupt ( GPIO 또는 APIC ) 모드와 Polling 모드도 각각 지원 조건이 있습니다.
아래의 사진은 DSDT 에 따른 VoodooI2C 의 작동 방식인 Interrupt ( GPIO 또는 APIC ) 모드와 Polling 모드의 지원 여부에 대한 개요표입니다.
" = " 는 위와 같다는 의미입니다.
더불어, GPIO Controller 에 의하여 Interrupt 모드로 작동하려면
OEM DSDT 에서 GPIO Controller 에 해당하는 GPI0 Device 의 _STA 에서 Return (0x0F) 를 반환하도록 하여
GPIO Controller 도 활성화해야 Interrupt (GPIO) 모드로 작동할 수 있습니다.
참고로, Interrupt (APIC) 모드와 Polling 모드는 GPIO Controller 를 활성화할 필요가 없습니다.
또한, Mac OS 에서 I2C 방식의 터치패드가 APIC Controller 에 의하여 Interrupt 모드로 작동하려면
APIC Pin 에 해당하는 값이 0x2F 보다 작거나 같아야 합니다.
만약, APIC Pin 에 해당하는 값이 0x2F 보다 크면 Interrupt (APIC) 모드는 사용이 불가능하며
GPIO Controller 에 의해서만 Interrupt 모드로 작동시킬 수 밖에 없습니다.
그 외에도, 위에서 말씀을 드렸듯이 Mac OS 에서 I2C 버스 속도 상수인 SSCN 과 FMCN 이 누락되어서 I2C 방식의 터치패드가 작동하지 않는 경우에는
VoodooI2C 의 Log 에서 해당 부분에 대하여 오류가 표시될 것이며 SSCN 및 FMCN 도 추가로 인젝션해야 합니다.
Intel 8th Gen Coffee Lake / Whiskey Lake 계열의 경우에는
SSCN 및 FMCN 을 PKG3 Method 와 연관하여 인젝션하는 방식을 주로 사용하는 것 같아요.
위의 사진은 예시일 뿐이며 질문자님의 경우에는 DSDT 에 \_SB.PCI0.I2C1 이라는 Scope 경로에 잘 맞추어서 입력하면 되겠죠.
단, DSDT 를 직접 수정하는 방식이 아닌 SSDT 를 사용하여 인젝션하는 방식으로 진행하여도 괜찮습니다.
Method (PKG3, 3, Serialized)
{
Name (PKG, Package (0x03)
{
Zero,
Zero,
Zero
})
PKG [Zero] = Arg0
PKG [One] = Arg1
PKG [0x02] = Arg2
Return (PKG)
}
Method (SSCN, 0, NotSerialized)
{
Return (PKG3 (SSH1, SSL1, SSD1))
}
Method (FMCN, 0, NotSerialized)
{
Name (PKG, Package (0x03)
{
0x0101,
0x012C,
0x62
})
Return (PKG)
}
다음 글을 참고하여 직접 DSDT 를 수정하는 방법으로 시도해보세요.
단, 난이도가 높은 작업입니다.
https://www.penghubingzhou.cn/2019/01/06/VoodooI2C%20DSDT%20Edit/
https://www.penghubingzhou.cn/2019/07/24/VoodooI2C%20DSDT%20Edit%20FAQ/
https://blog.gzxiaobai.cn/2020/05/17/用热补丁修理你的触摸板(TouchPad-Hotpatch)/
DSDT 를 직접 수정하여 VoodooI2C 를 설치하는 전체적인 과정은 다음 사이트를 참고해주세요.
https://voodooi2c.github.io/#Installation/Installation
다음 글은 GPIO Pinning 에 대한 내용입니다.
https://voodooi2c.github.io/#GPIO%20Pinning/GPIO%20Pinning
그 외에, VoodooI2C 에 대한 자세한 설명은 다음 사이트를 참고해주세요.
https://voodooi2c.github.io/
https://voodooi2c.github.io/#Introduction/Introduction
https://voodooi2c.github.io/#Polling%20Mode/Polling%20Mode
https://voodooi2c.github.io/#Satellite%20Kexts/Satellite%20Kexts
그리고, 터치패드 관련 Kext 는 VoodooI2C.kext 와 VoodooI2CHID.kext 만 사용하면 될 거예요.
만약, /S/L/E 또는 /L/E 경로에 터치패드 관련 Kext 를 추가하였다면 모두 삭제하고 다시 권한 복구 & Kernel Cache 재생성 작업을 해주세요.
그런데, EFI 폴더를 확인해보니 정작 I2C 방식의 터치패드의 Core 라고 할 수 있는 중요한 VoodooI2C.kext 가 없고
VoodooI2C 의 Satellite 에 해당하는 Kext 만 너무 많이 넣어져 있습니다.
VoodooI2CHID.kext 만 남기고 나머지 VoodooI2C 의 Satellite 는 모두 삭제해주세요.
또한, Kexts 폴더에 넣어져 있는 일부 Kext 가 오래된 구버전으로 보입니다.
공식 Github 사이트에서 최신 버전의 Kext 로 모두 교체하는 것을 권장합니다.
그리고, AppleIntelLpssI2C.kext & AppleIntelLpssI2CController.kext 와 충돌하지 않도록 삭제해도 되지만
나중에 Mac OS 업데이트를 설치하면서 /S/L/E 경로에 다시 생성되는 경우가 있을 수도 있기 때문에
KextToPatch AppleIntelLpssI2C.kext & AppleIntelLpssI2CController.kext 가 로드되는 것을 방지하는 것을 권장합니다.
AppleIntelLpssI2C.kext & AppleIntelLpssI2CController.kext 의 로드를 방지하는
KextsToPatch 는 다음과 같습니다.
<dict>
<key>Comment</key>
<string>Prevent Apple I2C kexts from attaching to I2C controllers, credit CoolStar</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>SU9LaXQ=</data>
<key>InfoPlistPatch</key>
<true/>
<key>Name</key>
<string>com.apple.driver.AppleIntelLpssI2C</string>
<key>Replace</key>
<data>SU9LaXM=</data>
</dict>
<dict>
<key>Comment</key>
<string>Prevent Apple I2C kexts from attaching to I2C controllers, credit CoolStar</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>SU9LaXQ=</data>
<key>InfoPlistPatch</key>
<true/>
<key>Name</key>
<string>com.apple.driver.AppleIntelLpssI2CController</string>
<key>Replace</key>
<data>SU9LaXM=</data>
</dict>
I2C 방식의 터치패드 제스처 안정화 작업이 조금 어려운 편에 속합니다.
천천히 공부해보면서 시도해보세요. :)