질문용 시스템 사양 | 1번 |
---|---|
추가사양 및 설치(할)OS | Monterey 12.5.1 |
공지숙지/증상설명 | 숙지 |
사용중인 노트북을 몬테레이로 업뎃 이후, 안정화 진행중입니다.
Clover -> OpenCore 0.8.4 로 변환하였는데요.
배터리가 안잡히고 있습니다. 제 배터리는 ssdt로 빼놓지 않고 dsdt 안에서 8비트 세분화를 한 상태이구요.
dsdt내의 EmbeddedControl 항목에는 이미 8비트 세분화 되어 있어서
OperationRegion (RAM, SystemMemory, 0xFE700100, 0x0100)
항목의 배터리 부분을 작업한 상태로 clover 카탈리나까지 잘 사용중이었습니다.
아무래도 많은 쓰레드를 보니, ssdt-bat.aml 형식으로 배터리를 따로 빼놓은것 같은데요(?)
어떻게 진행을 시키고 배터리를 인식시킬지 잘 모르겠습니다. (ECEnabler.kext 로 표기안됨)
아래는 OC 폴더입니다.
도움을 부탁드려요~
네 이걸 보는데 못하겠더라구요 ㅎㅎ;
DSDT_org.dsl (추출원본), DSDT.dsl (사용중인 배터리 패치 dsdt) 를 diffmerge로 비교 후 수정부분만 따로 뺀다는건 이해하겠는데요.
이렇게 빼는게 맞는질 모르겠네요. (ssdt-bat 으로Archive.zip 작성중)
If (_OSI ("Darwin")) 구문이 Method 의 바로 하위에 들어가야 합니다.
macOS 에서만 필요로 하여 단순히 추가하기만 하면 되는 Method (B1B2, B1B4 등) 와
Region Field 를 가져오는 경우에는 Scope 하위에 If (_OSI ("Darwin")) 가 오고 그 하위에 해당 Object 가 오는 것이 적합하지만
Rename 패치를 적용하는 Method 의 경우에는 Scope 하위에 바로 Method 가 오고
Method 내용 부분에서 If (_OSI ("Darwin")) 구문을 넣는 것이 적합합니다.
만약, _Q35 Method 를 기존의 OEM DSDT 에서 XQ35 로 Rename 패치를 적용하고
Hot Patch 방식의 SSDT 를 만든다면 다음과 같이 작성해야 합니다.
Scope (_SB.PCI0.LPCB)
{
Method (_Q35, 0, NotSerialized)
{
If (_OSI ("Darwin"))
{
배터리 패치된 ACPI 코드 내용...
}
Else
{
\_SB.PCI0.LPCB.EC.XQ35 () // OEM DSDT 에서 기존 코드 내용의 이름만 바뀐 Method 호출
}
}
}
또한, OEM DSDT 에서 _Q35 Method 의 절대 경로는 Scope (\_SB.PCI0.LPCB.EC._Q35) 인데
SSDT-Bat.dsl 을 확인해보면 Scope (_SB.PCI0.LPCB) 에서 SystemMemory Region 과 _Q35 Method 를
하나의 If (_OSI ("Darwin")) 구문으로 묶으셨는데 이렇게 되면
SSDT-Bat.dsl 에서 _Q35 Method 의 절대 경로는 Scope (\_SB.PCI0.LPCB._Q35) 로
중간에 EC Device 경로가 누락되어 DSDT 와 SSDT 의 절대 경로가 서로 일치하지 않아서 ACPI Error 가 발생할 수 있습니다.
그런데, OpenCore 에서 배터리 패치된 DSDT 를 적용해 보았는데 배터리 잔량 표시가 안 된다면
배터리 패치를 SSDT Hot Patch 방식으로 SSDT 를 만들어서 적용해도 배터리 잔량 표시가 안 될 확률이 높습니다.
OpenCore 로 넘어오면서 기존에 사용하지 않거나 불필요한 ACPI 관련 패치와 SSDT 가 있는지 확인이 필요할 것 같습니다.
SSDT-SPTP.aml 은 삼성 노트북의 I2C 터치패드 장치와 관련된 SSDT 이므로 필요하지 않습니다.
SSDT-SPTP.aml 을 삭제해주세요.
Config.plist 의 ACPI - Patch 에서 아래의 항목을 삭제해주세요.
- Increase OGNS length
- TPD0 _CRS to XCRS, pair with SSDT-GPIO
- Rename HECI to IMEI (PAVP)
- Rename GFX0 to IGPU (Graphics)
- Rename HDAS to HDEF (Audio)
dsdt를 분리하지 못한상태로, 8bit 패치를 안하고 ECOK만 1로 주면 ECEnabler로 배터리가 잡힙니다. 일단 배터리는 해결한것 같은데..
사용중에 갑자기 노트북이 재부팅이 되네용.. 재부팅후 로그를 보면 iopcifamily 커널 패닉인데.. 난감합니다 --;
SystemMemory Region 의 FieldUnitObject 는 8 Bit 로 세분화하지 않아도 됩니다.
EmbeddedControl Region 의 FieldUnitObject 에서 배터리와 관련된 부분에서 사용되는 16 Bit 이상의 것만 8 Bit 로 세분화하면 됩니다.
동일한 CPU 의 다른 노트북의 EFI 폴더를 사용하신 것 같아요.
EFI 폴더에서 불필요한 ACPI 패치와 SSDT, Kext 를 수정할 필요가 있을 것 같아요.
넵 말씀하신대로 ACPI & SSDT & KEXT를 제대로 정비하였습니다. 사용중 커널패닉이 나타나지도 않고 모든 기능이 잘 작동하네요.
클로버에 익숙하던 제가 오픈코어로 넘어오게되니 상당히 많은 시간을 투자하게 되었습니다.
오픈코어의 모든 항목, cpu 세대별 필요 ssdt 등을 제대로 습득한것 같습니다 -_-;;
아쉽게 dsdt hotpatch는 진행하지 못했지만, 추후 답글 내용토대로 재시도 해보겠습니다.
이번에도 도와주셔서 감사합니다 ^_^
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
모니터(오류화면) 사진 찍을 때 팁(소소함) +270 | 11만 | 17.07.3020:49 | 달쇠 |
빠르고 정확한 답변을 받는 팁 및 질답자의 매너, EFI폴더 압축법 +90 | 12만 | 17.02.1014:21 | Mactopia |
Hot 오픈코어로 단일 ssd로 듀얼부팅 설정시 윈도우 블루스크린문제 해결방... +13 | 64 | 24.10.2318:25 | 헷인토시 |
Hot 새로운 os 설치, 벤츄라가 좋을까요? 세콰이어가 좋을까요? +10 | 126 | 24.10.2308:19 | 미찌콘 |
Hot 램 증설.. 그리고 자꾸 재부팅되는 PC.. +8 | 52 | 24.10.2513:02 | 김밉상 |
39 | 24.10.2513:28 | 희밍현수님 | |
52 | 24.10.2513:02 | 김밉상 | |
38 | 24.10.2421:15 | 활주로임 | |
49 | 24.10.2322:21 | 활주로임 | |
64 | 24.10.2318:25 | 헷인토시 | |
58 | 24.10.2317:01 | 활주로임 | |
95 | 24.10.2315:51 | 배고픈사람 | |
126 | 24.10.2308:19 | 미찌콘 | |
106 | 24.10.2213:48 | 아킬리오 | |
89 | 24.10.2210:36 | MCMC | |
63 | 24.10.2200:57 | 헷인토시 | |
165 | 24.10.2123:22 | 마요네즈 | |
1055 | 24.10.1914:54 | 활주로임 | |
191 | 24.10.2017:21 | RTings | |
967 | 24.10.2000:14 | Kylee | |
119 | 24.10.1921:50 | 루이코아낭 | |
207 | 24.10.1918:03 | Gastone | |
82 | 24.10.1721:28 | Oscar | |
205 | 24.10.1712:11 | 희밍현수님 | |
71 | 24.10.1612:42 | SystemShock | |
309 | 24.10.1517:37 | Gastone | |
1318 | 24.10.1517:20 | 물만두 | |
1624 | 24.10.1317:18 | 물만두 | |
1276 | 24.10.1315:07 | Steer | |
877 | 24.10.1004:51 | Steer | |
192 | 24.10.0920:24 | KImET | |
933 | 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 | 오십견 | |
1235 | 24.10.0723:14 | Steer | |
117 | 24.10.0721:40 | 서재희 | |
74 | 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 | 매치포인트 | |
152 | 24.10.0311:30 | KAKU | |
393 | 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 | 루마루 |
배터리 패치 작업을 SSDT 를 사용하여 Hot Patch & Override 방식으로 진행하는 방법은 아래의 글에서 배터리 부분을 참고해보세요.
DSDT 를 직접 수정하는 Static 방식의 패치보다 조금 복잡할 수 있으며 약간의 노가다 작업이 있습니다.
https://x86.co.kr/info/3629426
해외 사이트의 배터리 Hot Patch 관련 자료도 링크를 남깁니다.
Post #2 부분을 참고해보세요.
https://www.tonymacx86.com/threads/guide-using-clover-to-hotpatch-acpi.200137/#post-1308261