질문용 시스템 사양 | 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.클로버에 넣기
똑같이 따라 했지만 터치패드가 잡히지 않습니다. 과정중에 제가 안한게 있나요??
+ 배터리 패치 되어 있습니다.
감사합니다..
막사는거야님의 새글 알림을 받으실려면 구독
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|
모니터(오류화면) 사진 찍을 때 팁(소소함) +269 | 달쇠 | 17.07.3020:49 | 11만 |
빠르고 정확한 답변을 받는 팁 및 질답자의 매너, EFI폴더 압축법 +90 | Mactopia | 17.02.1014:21 | 12만 |
고스트파일을 부팅 USB에 넣은후 윈도우에서 폴더 접근이 안됩니다. +11 | ashly | 24.09.2720:41 | 84 |
인텔 ax200ngw를 사용하는데 와이파이 및 블루투스 인식이 되지 않습니... +7 | loopers | 24.09.2716:50 | 85 |
커널패닉 +2 | 머트 | 24.09.2723:18 | 71 |
수박 | 24.09.2917:58 | 32 | |
루마루 | 24.09.2913:21 | 32 | |
루마루 | 24.09.2910:19 | 67 | |
머트 | 24.09.2723:18 | 71 | |
ashly | 24.09.2720:41 | 84 | |
loopers | 24.09.2716:50 | 85 | |
Caper | 24.09.2602:42 | 148 | |
낡은기계 | 24.09.2301:36 | 178 | |
Door | 24.09.2122:38 | 87 | |
루베콘 | 24.09.2108:35 | 173 | |
에잉 | 24.09.2022:16 | 376 | |
밤가시 | 24.09.1910:03 | 183 | |
SUNWAYFOTO | 24.09.1822:20 | 199 | |
Nelson | 24.09.1815:34 | 363 | |
sebali | 24.09.1814:34 | 354 | |
Panictosh | 24.09.1813:37 | 177 | |
SUNWAYFOTO | 24.09.1801:27 | 222 | |
그냥인간 | 24.09.1719:17 | 112 | |
dlraud | 24.09.1620:36 | 234 | |
Nelson | 24.09.1618:45 | 181 | |
아스타틴 | 24.09.1612:07 | 77 | |
lesmi | 24.09.1522:02 | 139 | |
윤수꾸하하 | 24.09.1323:56 | 191 | |
뚜비 | 24.09.1319:18 | 201 | |
Steer | 24.09.1200:33 | 168 | |
상큼버터 | 24.09.0918:08 | 213 | |
인터찹 | 24.09.0717:13 | 945 | |
서재희 | 24.09.0711:07 | 1437 | |
시습이 | 24.09.0113:39 | 1247 | |
블루 | 24.08.3022:44 | 475 | |
lesmi | 24.08.2911:20 | 415 | |
김덕뱀 | 24.08.2823:04 | 224 | |
그냥구름 | 24.08.2517:14 | 281 | |
Panictosh | 24.08.2218:42 | 251 | |
YouPick | 24.08.2022:45 | 125 | |
윤수꾸하하 | 24.08.2018:52 | 132 | |
HopeMan | 24.08.2012:14 | 208 | |
Panictosh | 24.08.1913:41 | 182 | |
YouPick | 24.08.1509:07 | 433 | |
Panictosh | 24.08.1518:04 | 345 | |
hackillious | 24.08.1514:14 | 141 | |
shion | 24.08.1420:32 | 117 | |
인터찹 | 24.08.1418:19 | 103 | |
Panictosh | 24.08.1217:23 | 375 | |
오디세이 | 24.08.1112:07 | 122 | |
동집 | 24.08.1105:35 | 238 | |
동집 | 24.08.1102:48 | 145 | |
유튜브 | 24.08.1019:03 | 153 | |
유튜브 | 24.08.0909:14 | 294 | |
Direct | 24.08.0901:18 | 256 | |
Panictosh | 24.08.0809:46 | 152 | |
인터찹 | 24.08.0801:41 | 124 | |
mac니망 | 24.08.0615:24 | 160 | |
페러 | 24.08.0615:10 | 144 | |
페러 | 24.08.0600:03 | 119 | |
bl | 24.08.0522:08 | 78 | |
Sequoia | 24.08.0410:04 | 257 | |
Panictosh | 24.08.0320:43 | 89 | |
yeojun | 24.08.0310:01 | 110 | |
yeojun | 24.08.0217:46 | 312 | |
oreo | 24.08.0214:44 | 112 | |
yeojun | 24.08.0214:07 | 271 | |
빅서로가 | 24.08.0118:45 | 304 | |
itstory | 24.08.0118:28 | 188 | |
oreo | 24.08.0115:38 | 81 | |
동집 | 24.07.3122:15 | 166 | |
류가파 | 24.07.3121:42 | 248 | |
마요네즈 | 24.07.3109:23 | 265 | |
동집 | 24.07.3012:52 | 99 | |
동집 | 24.07.2912:11 | 459 | |
인터찹 | 24.07.2901:06 | 309 | |
인터찹 | 24.07.2623:40 | 947 | |
찡준 | 24.07.2611:52 | 93 | |
psychyyy | 24.07.2503:18 | 591 | |
wnsks | 24.07.2502:19 | 145 | |
아키나리 | 24.07.2422:44 | 235 | |
페러 | 24.07.2313:55 | 129 | |
피아노맨 | 24.07.2216:20 | 211 | |
페러 | 24.07.2215:11 | 466 | |
인터찹 | 24.07.2113:23 | 211 |
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 방식의 터치패드 제스처 안정화 작업이 조금 어려운 편에 속합니다.
천천히 공부해보면서 시도해보세요. :)