질문용 시스템 사양 | 1번 |
---|---|
추가사양 및 설치(할)OS | 소노마 |
공지숙지/증상설명 | 숙지 |
ACPI 부분에 rename 패치했구요
64비트 빼고 8bit로 세분화했는데요 잔량이 안뜨네요.
고수님들 도와주세요. 도무지 문서를 여러번 봐도 잘 안되네요
dsdttime으로 dsdt.aml 덤프뜬것과 제가 패치 하던 파일입니다.
아카이브.zip
혹시, SSDT 를 사용한 Hot Patch 방식 말고,
직접 배터리 패치를 적용한 DSDT.aml 을 적용하였을 때에는
배터리 잔량 표시가 정상적으로 잘 작동하는지 확인해 주실 수 있을까요?
추가로, 혹시 배터리 패치 대신에 ECEnabler.kext 를 사용해보는 것도 시도해 보셨나요?
네 해보고 알려 드리겠습니다.
smcbatterymanager.kext와 EcEnabler.kext 해봤는데 안되네요
혹시, SMCBatteryManager.kext 를 잠시 비활성화하고
ACPIBatteryManager.kext 를 사용해보세요.
https://bitbucket.org/RehabMan/os-x-acpi-battery-driver/downloads/
또한, 혹시 IORegistryExplorer 앱으로 IOReg 를 덤프하여 댓글로 보내주실 수 있을가요?
jcher의 MacBook Pro.zip
ioreg 덤프 입니다 .켁스트 교체하고 부팅해보고 오겠습니다
DSDT 에서 ECON 변수를 강제로 One 으로 할당되도록 수정해 보았습니다.
아래에 첨부한 DSDT 로 교체하고 다시 부팅해서 확인해보세요.
혹시, 그래도 안 된다면 SSDT-XOSI.aml 패치와 Rename _OSI to XOSI 패치를 활성화하고 다시 부팅해보세요.
만약, 그래도 안 된다면, 죄송하지만 저도 잘 모르겠습니다... ㅜㅅㅠ
도와주셔서 감사합니다^^ 좀더 검색해봐야겠습니다
embeddedcontrol 관련 에러가 뜨긴하는데 안되네요.
xosi패치하고 rename 패치 활성화해도 안되네요 ㅎㅎ
리눅스에서 배터리 인식은 잘되어서 배터리 불량은 아닌거같은데 이상하네요
배터리 잔량 SMCBattaryMAnager.kext와 ECEnabler.kext로 잡았습니다.
감사합니다 덕분에 많은 공부가 되었네요
github를 뒤지던중 제노트북(미국판매 버전)의 EFI를 발견해서 AMD바닐라 패치 먹이고 부팅되게 만들었더니
배터리가 잡혔습니다. 저의EFI는 왜 아무리해도 안될까 봤더니 문제가 다른곳에 있었습니다.
SSDTTIME으로 생성 할때 fake ec를laptop으로 잡았어야했는데
desktop으로 잡혀 있었습니다..
그리고 SMCBatteryManager.kext속 SSDT-BATC.dsl 파일에서 경로가 잘못잡혀 있었습니다.
경로를 수정하니 제대로 배터리가 잡혔습니다 ㅎㅎ
해결되었다니 다행입니다. :)
EC 관련 SSDT 가 원인이었던 것으로 보입니다.
데스크탑은 거의 대부분 ACPI 상에서 EC 계열 장치(H_EC, EC0, ECDV 등)가 필요하지 않기 때문에 비활성화되어 있습니다.
하지만, 노트북은 배터리와 Fn 키의 EC Query 등을 처리하고 관리하기 위해 필요하므로 활성화되어 있습니다.
데스크탑용 EC 관련 SSDT 를 사용해서 노트북의 배터리 작동에 필요한 EC0 Device 가 비활성화되어 배터리가 작동하지 않은 것으로 보입니다.
추가로, SMCBatteryManager.kext 안에 있는 SSDT-BATC.dsl 은 그냥 샘플 파일이며 듀얼 배터리 노트북에서 사용하는 SSDT 입니다.
즉, SSDT-BATC.dsl 파일은 삭제하거나 무시해도 됩니다.
또한, 확장자가 .dsl 인 파일은 운영 체제를 부팅할 때 로드되지 않으며, .aml 로 컴파일하고 ACPI 폴더에 넣어야 로드되어 적용됩니다.
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
모니터(오류화면) 사진 찍을 때 팁(소소함) +270 | 11만 | 17.07.3020:49 | 달쇠 |
빠르고 정확한 답변을 받는 팁 및 질답자의 매너, EFI폴더 압축법 +90 | 12만 | 17.02.1014:21 | Mactopia |
Hot 오픈코어로 단일 ssd로 듀얼부팅 설정시 윈도우 블루스크린문제 해결방... +11 | 22 | 24.10.2318:25 | 헷인토시 |
Hot 새로운 os 설치, 벤츄라가 좋을까요? 세콰이어가 좋을까요? +10 | 78 | 24.10.2308:19 | 미찌콘 |
Hot 해킨토시 하이시에라 설치시 컴퓨터에 펌웨어 파티션이 없기 때문에 이... +5 | 24 | 24.10.2317:01 | 활주로임 |
0 | 24.10.2322:21 | 활주로임 | |
22 | 24.10.2318:25 | 헷인토시 | |
24 | 24.10.2317:01 | 활주로임 | |
35 | 24.10.2315:51 | 배고픈사람 | |
28 | 24.10.2315:18 | 희밍현수님 | |
78 | 24.10.2308:19 | 미찌콘 | |
84 | 24.10.2213:48 | 아킬리오 | |
74 | 24.10.2210:36 | MCMC | |
43 | 24.10.2200:57 | 헷인토시 | |
122 | 24.10.2123:22 | 마요네즈 | |
134 | 24.10.1914:54 | 활주로임 | |
157 | 24.10.2017:21 | RTings | |
172 | 24.10.2000:14 | Kylee | |
115 | 24.10.1921:50 | 루이코아낭 | |
183 | 24.10.1918:03 | Gastone | |
78 | 24.10.1721:28 | Oscar | |
197 | 24.10.1712:11 | 희밍현수님 | |
68 | 24.10.1612:42 | SystemShock | |
301 | 24.10.1517:37 | Gastone | |
913 | 24.10.1517:20 | 물만두 | |
1622 | 24.10.1317:18 | 물만두 | |
1258 | 24.10.1315:07 | Steer | |
864 | 24.10.1004:51 | Steer | |
183 | 24.10.0920:24 | KImET | |
926 | 24.10.0915:49 | lesmi | |
178 | 24.10.0911:23 | LumOS | |
73 | 24.10.0902:16 | lesmi | |
909 | 24.10.0822:09 | 애플맨 | |
1296 | 24.10.0810:58 | soullees | |
110 | 24.10.0723:26 | 오십견 | |
1232 | 24.10.0723:14 | Steer | |
114 | 24.10.0721:40 | 서재희 | |
68 | 24.10.0704:04 | g2030h61 | |
88 | 24.10.0704:00 | g2030h61 | |
91 | 24.10.0620:14 | SystemShock | |
112 | 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 | 매치포인트 | |
145 | 24.10.0311:30 | KAKU | |
261 | 24.10.0207:44 | 데스맥 | |
252 | 24.09.3014:22 | 민준송 | |
171 | 24.09.2922:21 | oreo | |
132 | 24.09.2917:58 | 수박 | |
109 | 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 | |
210 | 24.09.2602:42 | Caper | |
288 | 24.09.2301:36 | 낡은기계 | |
164 | 24.09.2122:38 | Door | |
225 | 24.09.2108:35 | 루베콘 | |
496 | 24.09.2022:16 | 에잉 | |
223 | 24.09.1910:03 | 밤가시 | |
305 | 24.09.1822:20 | SUNWAYFOTO | |
729 | 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 | 그냥인간 | |
329 | 24.09.1620:36 | dlraud | |
217 | 24.09.1618:45 | Nelson | |
99 | 24.09.1612:07 | 아스타틴 | |
200 | 24.09.1522:02 | lesmi | |
265 | 24.09.1323:56 | 윤수꾸하하 | |
639 | 24.09.1319:18 | 뚜비 | |
1550 | 24.09.1200:33 | Steer | |
255 | 24.09.0918:08 | 상큼버터 | |
1442 | 24.09.0717:13 | 인터찹 | |
1552 | 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 | 김덕뱀 | |
326 | 24.08.2517:14 | 그냥구름 | |
264 | 24.08.2218:42 | Panictosh |
배터리 관련 FieldUnitObject 가 사용된 ECBE Method 와 _BST Method 만 패치하면 되는 것으로 보입니다.
_BIF Method 를 패치할 필요는 없을 것 같습니다.
Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
{
If (ECON)
{
ECBE ()
}
Else
{
PAK0 [One] = 0xFFFFFFFF
PAK0 [0x02] = 0xFFFFFFFF
PAK0 [0x04] = 0xFFFFFFFF
PAK0 [0x09] = "Error"
PAK0 [0x0A] = "00000"
PAK0 [0x0B] = "Error"
PAK0 [0x0C] = "Error"
}
Return (PAK0) /* \_SB_.BAT0.PAK0 */
}
_BIF Method 에서 ECON 의 값이 0이 아닌 값, 즉 True (참)일 경우에는 ECBE Method 를 Call (호출)하도록 되어 있어서
SSDT-BATT.aml 에서 _BIF Method 의 내용을 ECBE Method 의 내용으로 수행되도록 재정의하신 것 같습니다.
Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
{
If (_OSI ("Darwin"))
{
Acquire (MUEX, 0xFFFF)
PAK0 [One] = B1B2 (^^PCI0.SBRG.EC0.F100, ^^PCI0.SBRG.EC0.F101)
If ((B1B2 (^^PCI0.SBRG.EC0.CYN0, ^^PCI0.SBRG.EC0.CYN1) >= 0x32))
{
PAK0 [0x02] = B1B2 (^^PCI0.SBRG.EC0.F200, ^^PCI0.SBRG.EC0.F201)
}
Else
{
PAK0 [0x02] = B1B2 (^^PCI0.SBRG.EC0.F100, ^^PCI0.SBRG.EC0.F101)
}
PAK0 [0x03] = B1B2 (^^PCI0.SBRG.EC0.F300, ^^PCI0.SBRG.EC0.F301)
PAK0 [0x04] = B1B2 (^^PCI0.SBRG.EC0.F400, ^^PCI0.SBRG.EC0.F401)
PAK0 [0x07] = B1B2 (^^PCI0.SBRG.EC0.F700, ^^PCI0.SBRG.EC0.F701)
Release (MUEX)
Return (PAK0) /* External reference */
}
Else
{
Local0 = \_SB.BAT0.XBIF ()
Return (Local0)
}
}
하지만, 위의 내용으로 패치하게 된다면 macOS 로 부팅하였을 때,
무조건 ECON 의 값이 True (참)이라는 가정하에 패치한 내용인데,
이러한 패치가 배터리가 정상적으로 작동하지 않는 것일 수도 있습니다.
즉, If (ECON) 구문과 이의 Else 구문에서 ECON 이라는 변수의 값에 따른 조건문 판단이
배터리 잔량 표시가 정상적으로 작동하는 것과 관련이 있는 로직일 수도 있다는 의미입니다.
_BIF Method 패치 부분을 제거하고 ECBE, _BST Method 만 패치하도록 다시 수정해보세요.
또한, 배터리 관련 FieldUnitObject 중에서
XIF1, XIF2, XIF3, XIF4, XIF7, XST0, XST1, XST2, XST3, CYCN 10개의 변수만 세분화하면 됩니다.
나머지 변수는 배터리와 관련된 부분에서 사용되지 않습니다.