질문용 시스템 사양 | 1번 |
---|---|
추가사양 및 설치(할)OS | 모하비 |
공지숙지/증상설명 | 숙지 |
검색을 통해서 배터리 패치를 성공하고 나서 포기했었던 트랙패드에 다시 도전했습니다만 아직 만만치 않네요.
모하비에서 오픈코어 0.6.6입니다.
디바이스명은 SPTP이고 DSDT를 배터리 패치와 기본적인 것 정도 패치했습니다. 핀리스트 값을 0x0023으로 바꿔주었고요. SBFI를 SBFB로 바꿨습니다.
S/L/E 에서 에플 켁스트 2개도 삭제했습니다.
VoodooPS2Controller.kext 속에 키보드 켁스트만 남기고 VoodooI2C.kext, VoodooI2CHID.kext를 사용했습니다.
제어판에서 인식 하는 듯 보이지만
실제로는 아무 반응도 없습니다.
어디를 손봐야할지 막막하네요.
EFI 폴더를 첨부합니다. 도움 주시면 감사하겠습니다.
자유로이님의 새글 알림을 받으실려면 구독
아래에 첨부한 SSDT-I2C0_USTP.aml 을 ACPI 폴더와 Config.plist 의 ACPI - Add 에 추가하고 다시 부팅해보세요.
현재 파일 첨부 기능이 오류가 발생해서 임시 파일 업로드 사이트를 사용하였습니다.
https://tmpstorage.com/download/cqjryubh6q
Intel 8th Gen Whiskey Lake CPU 는 I2C 버스 속도 상수인 SSCN 과 FMCN 을 필요로 합니다.
그런데, SSCN 과 FMCN 이 누락되면 보통 로그에 SSCN/FMCN not implemented in ACPI tables 라고 출력되는데 그래도 한번 추가해 보겠습니다.
질문자님의 삼성 노트북의 DSDT 를 확인해보면 아래의 사진과 같이 SSCN 과 FMCN 을 활성화하는 USTP 가 존재하므로
SPTP Device 가 존재하는 \_SB.PCI0.I2C0 Scope 에 Name (USTP, One) 을 정의하였습니다.
추가로, 현재 VoodooI2C 공식 GitHub 사이트에서 2.6.4 버전 업데이트가 Release 되었습니다.
최신 버전의 VoodooI2C 로 교체해주세요.
혹시, 그래도 터치패드가 작동하지 않는다면 Config.plist 에서 NVRAM 의 boot-args 에
-vi2c-force-polling 부트 옵션을 추가하고 다시 부팅해보세요.
Polling 모드를 강제로 적용하는 옵션입니다.
그렇군요... ㅜㅅㅠ
혹시, 나중에 VoodooI2C 개발자 및 관련 분들에게 도움을 받고자 한다면
VoodooI2C 의 공식 GitHub 사이트에서 Issues 탭이나 VoodooI2C 의 Gitter 에서
Troubleshooting 에 필요한 파일을 제공하여 영어로 도움을 요청하는 방법이 있습니다.
https://gitter.im/alexandred/VoodooI2C
https://github.com/VoodooI2C/VoodooI2C/issues
사진 출처
https://github.com/VoodooI2C/VoodooI2C/blob/master/Documentation/Troubleshooting.md
좋은 밤 보내세요. :) ✨
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|
모니터(오류화면) 사진 찍을 때 팁(소소함) +269 | 달쇠 | 17.07.3020:49 | 11만 |
빠르고 정확한 답변을 받는 팁 및 질답자의 매너, EFI폴더 압축법 +90 | Mactopia | 17.02.1014:21 | 12만 |
고스트파일을 부팅 USB에 넣은후 윈도우에서 폴더 접근이 안됩니다. +11 | ashly | 24.09.2720:41 | 78 |
인텔 ax200ngw를 사용하는데 와이파이 및 블루투스 인식이 되지 않습니... +7 | loopers | 24.09.2716:50 | 81 |
커널패닉 +2 | 머트 | 24.09.2723:18 | 65 |
루마루 | 24.09.2913:21 | 13 | |
루마루 | 24.09.2910:19 | 50 | |
머트 | 24.09.2723:18 | 65 | |
ashly | 24.09.2720:41 | 78 | |
loopers | 24.09.2716:50 | 81 | |
Caper | 24.09.2602:42 | 143 | |
낡은기계 | 24.09.2301:36 | 177 | |
Door | 24.09.2122:38 | 87 | |
루베콘 | 24.09.2108:35 | 173 | |
에잉 | 24.09.2022:16 | 371 | |
밤가시 | 24.09.1910:03 | 170 | |
SUNWAYFOTO | 24.09.1822:20 | 198 | |
Nelson | 24.09.1815:34 | 360 | |
sebali | 24.09.1814:34 | 351 | |
Panictosh | 24.09.1813:37 | 177 | |
SUNWAYFOTO | 24.09.1801:27 | 222 | |
그냥인간 | 24.09.1719:17 | 112 | |
dlraud | 24.09.1620:36 | 233 | |
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 | 198 | |
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 | 1246 | |
블루 | 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 | 344 | |
hackillious | 24.08.1514:14 | 141 | |
shion | 24.08.1420:32 | 117 | |
인터찹 | 24.08.1418:19 | 103 | |
Panictosh | 24.08.1217:23 | 374 | |
오디세이 | 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 | 88 | |
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 | 208 | |
컴퓨터왕 | 24.07.2019:23 | 312 |
우선, 질문글의 로그 사진을 보면 SPTP Device 의 APIC Pin 이 0x33 으로 0x2F 보다 크다는 것을 알 수 있습니다.
즉, 질문자님의 삼성 노트북의 터치패드는 Interrupt 모드를 GPIO Controller 에 의해서만 작동시킬 수 밖에 없습니다.
_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 입니다.
더불어, 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 모드로 작동시킬 수 밖에 없습니다.
그런데, SPTP Device 의 SBFI 를 SBFB 로 이름을 수정할 필요가 없습니다.
일반적으로 SBFB 는 I2cSerialBusV2 에 해당하는 Object 인데
요즘 삼성 노트북의 I2C 방식의 터치패드에 해당하는 SPTP Device 는 SBFB 대신에 SBFS 를 사용합니다.
그리고, 수정하신 DSDT 에서 SPTP Device 의 _CRS Method 를 보면 가장 아래 부분의
Return (ConcatenateResTemplate (SBFS, SBFI)) 도 Return (ConcatenateResTemplate (SBFS, SBFB)) 로 수정하신 것 같아요.
하지만, 위의 사진에서 SBFB (수정하기 전에는 SBFI) 는 APIC Pin 입니다.
SPTP Device 의 APIC Pin 이 0x2F 보다 크기 때문에 Interrupt (APIC) 모드는 사용이 불가능합니다.
현재 질문자님의 삼성 노트북의 터치패드를 Interrupt (GPIO) 모드로 작동시키기 위하여 _CRS Method 에서 Return 되어야 하는 값은
ConcatenateResTemplate (SBFS, SBFB) 가 아닌
ConcatenateResTemplate (SBFS, SBFG) 입니다.
APIC Pin 에 해당하는 SBFI 를 SBFB 로 바꿀 이유가 없습니다.
SPTP Device 에서 I2cSerialBusV2 에 해당하는 SBFS 와 GPIO Pin 에 해당하는 SBFG 를 Concatenate 해야 합니다.
그런데, _CRS Method 의 Return 값을 직접 수정하기 보다는 Preset Variable Method 방식으로 패치하는 것을 권장합니다.
왜냐하면, _CRS Method 의 Return 값을 수정할 때 If 문의 조건이 _INI Method 에서도 사용되기 때문입니다.
SPTP Device 의 _INI Method 에서 다음과 같은 구문이 있습니다.
If (LEqual (MINT, Zero))
{
SHPO (Local0, One)
}
그리고, 위의 _CRS 에서 ConcatenateResTemplate (SBFS, SBFG) 가 Return 되기 위해서는
MINT 의 값이 Zero 여야 한다는 것을 알 수 있습니다.
즉, Interrupt (GPIO) 모드로 작동시키기 위해서는 _INI Method 에서 SHPO (Local0, One) 도 Call 해야 한다는 것입니다.
SPTP Device 에 정의되어 있는 Name (MINT, One) 을 Name (MINT, Zero) 로 수정해주세요.
또한, VoodooI2C Ver 2.5.3 부터는 GPIO Pin 의 값을 자동으로 계산합니다.
SBFG 의 Pin List 는 다시 0x0000 으로 원래대로 복원해주세요.
추가로, DSDT 에 기본적인 패치를 진행하였다고 하셨는데 Darwin OS Check Fix 패치가 중복됩니다.
DSDT 의 _OSI 에서 Windows 2015 부분에 Static 패치가 적용되어 있고 SSDT-XOSI.aml 로 Hot Patch 도 적용되어 있습니다.
두 가지의 패치 중 하나만 적용하시거나 둘 다 제거하고 Assign 방식으로 패치하는 SSDT-OSYS.aml 을 사용해보세요.
그리고, Config.plist 의 Kernel - Add 에서 VoodooI2C 와 VoodooPS2 의 로드 순서는 다음과 같이 수정해주세요.
1. VoodooI2C.kext/Contents/PlugIns/VoodooI2CServices.kext
2. VoodooI2C.kext/Contents/PlugIns/VoodooGPIO.kext
3. VoodooI2C.kext/Contents/PlugIns/VoodooInput.kext
4. VoodooI2C.kext
5. VoodooI2CHID.kext
6. VoodooPS2Controller.kext
7. VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Keyboard.kext
또한, WhateverGreen.kext 는 VirtualSMC.kext 와 AppleALC.kext 사이로 순서를 옮겨서 3번째 순서가 되도록 이동해주세요.