질문용 시스템 사양 | 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
좋은 밤 보내세요. :) ✨
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
모니터(오류화면) 사진 찍을 때 팁(소소함) +270 | 11만 | 17.07.3020:49 | 달쇠 |
빠르고 정확한 답변을 받는 팁 및 질답자의 매너, EFI폴더 압축법 +90 | 12만 | 17.02.1014:21 | Mactopia |
Hot 오픈코어로 단일 ssd로 듀얼부팅 설정시 윈도우 블루스크린문제 해결방... +12 | 43 | 24.10.2318:25 | 헷인토시 |
Hot 새로운 os 설치, 벤츄라가 좋을까요? 세콰이어가 좋을까요? +10 | 98 | 24.10.2308:19 | 미찌콘 |
Hot 맥프로를 들여왔는데 질문이 있습니다. +5 | 56 | 24.10.2315:51 | 배고픈사람 |
33 | 24.10.2322:21 | 활주로임 | |
43 | 24.10.2318:25 | 헷인토시 | |
41 | 24.10.2317:01 | 활주로임 | |
56 | 24.10.2315:51 | 배고픈사람 | |
39 | 24.10.2315:18 | 희밍현수님 | |
98 | 24.10.2308:19 | 미찌콘 | |
93 | 24.10.2213:48 | 아킬리오 | |
80 | 24.10.2210:36 | MCMC | |
55 | 24.10.2200:57 | 헷인토시 | |
139 | 24.10.2123:22 | 마요네즈 | |
155 | 24.10.1914:54 | 활주로임 | |
178 | 24.10.2017:21 | RTings | |
193 | 24.10.2000:14 | Kylee | |
117 | 24.10.1921:50 | 루이코아낭 | |
198 | 24.10.1918:03 | Gastone | |
80 | 24.10.1721:28 | Oscar | |
198 | 24.10.1712:11 | 희밍현수님 | |
70 | 24.10.1612:42 | SystemShock | |
307 | 24.10.1517:37 | Gastone | |
1185 | 24.10.1517:20 | 물만두 | |
1622 | 24.10.1317:18 | 물만두 | |
1273 | 24.10.1315:07 | Steer | |
872 | 24.10.1004:51 | Steer | |
187 | 24.10.0920:24 | KImET | |
927 | 24.10.0915:49 | lesmi | |
179 | 24.10.0911:23 | LumOS | |
73 | 24.10.0902:16 | lesmi | |
909 | 24.10.0822:09 | 애플맨 | |
1313 | 24.10.0810:58 | soullees | |
112 | 24.10.0723:26 | 오십견 | |
1232 | 24.10.0723:14 | Steer | |
115 | 24.10.0721:40 | 서재희 | |
69 | 24.10.0704:04 | g2030h61 | |
88 | 24.10.0704:00 | g2030h61 | |
92 | 24.10.0620:14 | SystemShock | |
113 | 24.10.0617:57 | 늘심심 | |
1372 | 24.10.0601:48 | 아스타틴 | |
1271 | 24.10.0515:04 | lesmi | |
129 | 24.10.0422:58 | 낡은기계 | |
544 | 24.10.0315:33 | oreo | |
117 | 24.10.0315:26 | 매치포인트 | |
175 | 24.10.0313:01 | 매치포인트 | |
149 | 24.10.0311:30 | KAKU | |
343 | 24.10.0207:44 | 데스맥 | |
255 | 24.09.3014:22 | 민준송 | |
172 | 24.09.2922:21 | oreo | |
133 | 24.09.2917:58 | 수박 | |
111 | 24.09.2913:21 | 루마루 | |
206 | 24.09.2910:19 | 루마루 | |
140 | 24.09.2723:18 | 머트 | |
146 | 24.09.2720:41 | ashly | |
230 | 24.09.2716:50 | loopers | |
212 | 24.09.2602:42 | Caper | |
288 | 24.09.2301:36 | 낡은기계 | |
164 | 24.09.2122:38 | Door | |
225 | 24.09.2108:35 | 루베콘 | |
503 | 24.09.2022:16 | 에잉 | |
223 | 24.09.1910:03 | 밤가시 | |
306 | 24.09.1822:20 | SUNWAYFOTO | |
732 | 24.09.1815:34 | Nelson | |
444 | 24.09.1814:34 | sebali | |
236 | 24.09.1813:37 | Panictosh | |
338 | 24.09.1801:27 | SUNWAYFOTO | |
155 | 24.09.1719:17 | 그냥인간 | |
331 | 24.09.1620:36 | dlraud | |
217 | 24.09.1618:45 | Nelson | |
100 | 24.09.1612:07 | 아스타틴 | |
200 | 24.09.1522:02 | lesmi | |
265 | 24.09.1323:56 | 윤수꾸하하 | |
640 | 24.09.1319:18 | 뚜비 | |
1550 | 24.09.1200:33 | Steer | |
255 | 24.09.0918:08 | 상큼버터 | |
1446 | 24.09.0717:13 | 인터찹 | |
1554 | 24.09.0711:07 | 서재희 | |
1464 | 24.09.0113:39 | 시습이 | |
495 | 24.08.3022:44 | 블루 | |
435 | 24.08.2911:20 | lesmi | |
449 | 24.08.2823:04 | 김덕뱀 | |
327 | 24.08.2517:14 | 그냥구름 | |
264 | 24.08.2218:42 | Panictosh |
우선, 질문글의 로그 사진을 보면 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번째 순서가 되도록 이동해주세요.