시스템 사양 선택 | 3번 |
---|
안녕하세요.
여기에서는 배터리(Battery)와 관련된 내용을 다룹니다.
※ 본문에 들어가기 전에
- 이 글은 개념의 이해 같은 원론적인 얘기는 다루지 않고, 방법론적인 측면에서 진행합니다.
- 오픈코어(Opencore) 사용을 전제로 합니다.
- 사진은 클릭하면 커집니다.
* 필수 프로그램(파일)
- ACPI 파일('*.aml', 'dsl')을 편집 및 컴파일 할 수 있는 앱 예) MaciASL, Xiasl 등
- MaciASL : Releases · acidanthera/MaciASL (github.com) (좌절금지님의 고스트 파일 사용 시 USB의 'UTIL' 폴더 내에 있음)
- Xiasl : Releases · ic005k/Xiasl (github.com) (macOS뿐만 아니라 윈도우와 리눅스용도 있음)
배터리 관련 설정(켁스트 등)을 설치 전 미리 활성화하는 경우 패닉이 발생할 수 있으니, macOS 설치 후 안정화 단계에서 진행하시길 바랍니다.
1. 범용 켁스트 사용 - 'ECEnabler.kext' & 'SMCBatteryManager.kext'
배터리 패치는 디스플레이 상단 메뉴바에 '충전 여부 및 잔량(%)'이 표시되도록 하는 것으로, Dortania Guide에 나온 내용은 다음과 같습니다.
Battery Status | OpenCore Post-Install (dortania.github.io)
위 내용과 같이 범용(Prebuilt) 켁스트인 'ECEnabler.kext'와 'SMCBatteryManager.kext'를 'config.plist - Kernel - Add'에 다음과 같이 주입합니다.
Releases · 1Revenger1/ECEnabler (github.com)
Releases · acidanthera/VirtualSMC (github.com)
이렇게 설정 후 잘 동작하면 배터리 패치가 완료된 것입니다. 이후의 내용은 범용 켁스트로 해결되지 않을 때 적용하는 방법에 대한 것입니다.
2. ACPI 패치
위 '1'에서와 같이 범용 켁스트 사용 시 'SMCBatteryManager.kext'를 통해 배터리 아이콘이 뜨고, 잔량도 표시되어 별 다른 문제가 없어 보일 수 있습니다. 그러나 충전 여부 인식과 잔량 변화가 제대로 표시되지 않는 경우 'ECEnabler.kext'가 해당 노트북의 배터리 관련 변수와 맞지 않는다는 것이고, 이는 배터리 관련 ACPI 패치를 별도로 해야 한다는 뜻입니다.
ACPI 패치는 'ECEnabler.kext'를 대체하는 것으로, 'SMCBatteryManager.kext'는 그대로 사용하고 'ECEnabler.kext'만 삭제합니다.
2-1. ACPI 파일 추출
macOS에서 추출하는 경우 구글링을 통해 진행하시고, 윈도우에서 추출하는 경우 아래 SSDTTime 사용법을 참고 바랍니다.
초급편 - SSDTTime으로 DSDT, SSDT 직접 생성하기 (x86.co.kr)
배터리 패치를 위한 ACPI 파일을 추출하기 위해 SSDTTime을 실행, 'P. Dump DSDT'로 노트북의 DSDT를 추출합니다.
'DSDT.dsl'을 컴파일(Compile)하면 오류없이 'DSDT.aml'이 추출되기도 하지만, 아래 사진과 같이 가끔 알 수 없는 이유로 인한 구문 오류(Syntax Error)로 컴파일이 안 되는 경우가 있습니다.
이 때에는 수정 후 다시 컴파일을 하면 되는데, 대부분 위의 상황과 같이 오류가 발생한 줄 근처에 단독으로 있는 'Arg0', 'Local0' 등의 매개 변수(사진에는 13934행에 위치)를 삭제하면 됩니다. (ASL 문법 상 매개 변수가 단독으로 있을 수 없으므로 구문 오류 발생)
컴파일 시 오류(Error)가 아닌 노란 삼각형의 경고(Warning)가 뜰 수 있는데 무시하면 되고, 그 외 오류가 발생하는 경우 해킨질답 게시판 또는 구글 검색으로 해결하면 됩니다.
이렇게 오류없는(수정한) 'DSDT.dsl' 파일을 바탕으로 배터리 패치를 진행합니다. (일부 노트북의 경우 DSDT가 아니라 특정 SSDT를 사용해야 할 수도 있습니다.)
2-2. ACPI 패치
ACPI 패치에 관한 배경 지식과 방법에 대한 설명은 shl628님의 게시글 링크로 갈음합니다.
[ACPI 패치 강좌] 배터리 패치 관련 Method 문법과 구문 별 패치 강좌 + RECB / WECB Method 구별하기! (x86.co.kr)
[필독 - 안정화] macOS 해킨토시 설치 후 안정화 작업 목록 및 글타래 모음 총정리 📋 (x86.co.kr)
2-3. 사례
이 사례는 제 노트북 해킨 자료로, (제조사 또는 제품에 따라 설정이 달라지므로) '이런 식으로 패치를 하는구나.' 정도로 보시기 바랍니다. (모든 코드를 직접 작성하는 게 아니라 이미 갖춰져 있는 틀(Template) 또는 표본(Sample)을 노트북에 맞게 수정하는 게 많으니, 미리 걱정하지 않으셔도 됩니다.)
OC-Little-Translated/README.md at main · 5T33Z0/OC-Little-Translated · GitHub
아래 두 방식은 같은 내용으로 패치 방식의 차이를 보여줍니다.
2-3-1. Static Patch 방식
DSDT에서 배터리 관련 변수를 찾고 8비트(Bit) 단위로 쪼갭니다.
쪼개진 변수에 맞는 Method(B1B2, B1B4, W16B)를 새로 정의합니다.
호출된 기존 배터리 관련 변수를 새로운 Method로 치환합니다.
이렇게 패치한 DSDT 파일을 'config.plist - ACPI - Add'에 주입하면 됩니다.
2-3-2. Hot Patch 방식
DSDT를 직접 수정하는 Static Patch와 달리 배터리 관련 SSDT를 별도로 생성, 패치합니다. (아래 사진은 내용 중 일부입니다.)
새로 만든 SSDT 파일을 'config.plist - ACPI - Add'에 주입하면 됩니다.
3. Why is macOS called 'Darwin'?
ACPI 수정과 관련하여 자료를 찾다보면 'If (_OSI ("Darwin"))'이라는 구문이 자주 보이는데, 여기에 나오는 'Darwin'은 macOS를 뜻합니다.
왜 macOS를 Darwin이라고 칭하는지 공식 자료는 없으나 애플의 역사와 함께 스티브 잡스와 macOS에 대한 이야기가 있으니, 관심 있는 분은 찾아보는 것도 좋을 것 같습니다.
내용은 여기까지입니다.
동일 주제로 해킨정보 게시판이나 해킨질답 게시판에 위에 언급한 것 이외에 추가 설명 등이 나와 있는 글(댓글)들이 있으니 관련 단어로 검색해보시면 많은 도움이 될 것 같습니다.
(누락 또는 잘못된 내용이나 오탈자 등 오류가 있는 경우 댓글로 말씀해주시면 수정하겠습니다.)
Stultus님의 새글 알림을 받으실려면 구독
Darwin는 NextStep의 커널을 지칭합니다. NextStep의 커널을 기반으로 macOS X이 새로 만들어졌고 그게 이어온다고 보시면 됩니다.
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|
macOS Ventura 13.7 22H123 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체 공개 +2 | 좌절금지 | 24.09.1917:09 | 61 |
macOS Sonoma 14.7 23H124 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체공개 +13 | 좌절금지 | 24.09.1723:58 | 170 |
[중급편] 노트북 해킨 +8 | Stultus | 24.07.1219:19 | 747 |
[초급편] 문제 스스로 해결하기 +17 | Stultus | 24.03.2920:07 | 3526 |
[입문편] 첫 해킨 길라잡이 +32 | Stultus | 24.01.1218:54 | 4293 |
[필독 - 안정화] macOS 해킨토시 설치 후 안정화 작업 목록 및 글타래 모음 총정리 📋 +63 | shl628 | 23.01.0913:39 | 5만 |
Sonoma 14.7(23H124) i9-12900, GA-Z690 Proart Creator + BCM WiFi Support +2 | 좌절금지 | 24.09.1722:40 | 190 |
2020 그램 sonoma efi 15Z90N +1 | 맥가즈아 | 24.09.1717:13 | 85 |
macOS Sequoia 15 설치 후기 + Bcm94360NG WiFi 작동함 | 좌절금지 | 24.09.1919:17 | 140 |
좌절금지 | 24.09.1919:17 | 140 | |
좌절금지 | 24.09.1917:09 | 61 | |
좌절금지 | 24.09.1723:58 | 170 | |
좌절금지 | 24.09.1722:40 | 190 | |
김경석 | 24.09.1708:13 | 214 | |
Tamy | 24.09.1504:35 | 463 | |
Stultus | 24.09.1319:18 | 432 | |
치토 | 24.09.1019:44 | 466 | |
해킨도전자 | 24.09.0112:54 | 293 | |
머핀X | 24.08.3115:34 | 369 | |
화정큐삼 | 24.08.2601:42 | 238 | |
하나브 | 24.08.2422:59 | 206 | |
화정큐삼 | 24.08.2316:25 | 247 | |
CanBe | 24.08.1810:56 | 328 | |
화정큐삼 | 24.08.1800:04 | 205 | |
화정큐삼 | 24.08.1722:03 | 189 | |
Stultus | 24.08.1419:58 | 345 | |
오디세이 | 24.08.1311:26 | 270 | |
좌절금지 | 24.08.1115:46 | 194 | |
Stultus | 24.08.1022:46 | 183 | |
RogerT | 24.08.0609:17 | 115 | |
jbhlyk | 24.08.0523:34 | 81 | |
수인과윤슈 | 24.08.0521:10 | 185 | |
Stultus | 24.08.0221:07 | 421 | |
Tamy | 24.07.3019:12 | 328 | |
Stultus | 24.07.2112:43 | 231 | |
Stultus | 24.07.1219:19 | 747 | |
Stultus | 24.07.1122:47 | 215 | |
Stultus | 24.07.1020:44 | 137 | |
Stultus | 24.07.0921:44 | 137 | |
Stultus | 24.07.0820:57 | 223 | |
Stultus | 24.07.0721:25 | 264 | |
bsiugr | 24.07.0604:41 | 287 | |
애플브리크 | 24.07.0509:56 | 491 | |
치토 | 24.06.2723:24 | 397 | |
Stultus | 24.06.1120:40 | 725 | |
Stultus | 24.04.3022:28 | 1097 | |
Stultus | 24.04.2718:46 | 1007 | |
Stultus | 24.04.1312:15 | 3048 | |
Stultus | 24.04.0712:49 | 2900 | |
Stultus | 24.04.0619:59 | 1530 | |
Stultus | 24.04.0613:43 | 1468 | |
Stultus | 24.04.0521:57 | 2555 | |
Stultus | 24.03.2920:07 | 3526 | |
Stultus | 24.03.2823:08 | 1410 | |
Stultus | 24.03.2322:35 | 1120 | |
Stultus | 24.03.2123:12 | 769 | |
Stultus | 24.03.0818:26 | 645 | |
Stultus | 24.02.1621:54 | 1090 | |
Stultus | 24.01.2321:47 | 941 | |
Stultus | 24.01.1218:54 | 4293 | |
Stultus | 24.01.1121:20 | 845 | |
Stultus | 24.01.0921:31 | 902 | |
Stultus | 24.01.0822:35 | 1330 | |
Stultus | 23.11.0920:54 | 4554 | |
Stultus | 23.10.2723:10 | 6430 | |
Stultus | 23.10.2722:40 | 6432 | |
Stultus | 23.10.2100:08 | 6965 | |
Stultus | 23.10.1700:57 | 3490 | |
Stultus | 23.09.2707:11 | 4705 | |
Stultus | 23.09.1022:47 | 8858 | |
Stultus | 23.08.2521:36 | 9224 | |
Stultus | 23.08.2313:42 | 9507 | |
Stultus | 23.08.2216:27 | 3863 | |
Stultus | 23.08.2115:14 | 9666 | |
Stultus | 23.08.2114:43 | 1만 | |
Stultus | 23.07.1318:42 | 1.6만 | |
Stultus | 23.07.0619:38 | 1.2만 | |
Stultus | 23.05.2512:02 | 1.7만 | |
Stultus | 23.04.0517:11 | 2.3만 | |
Stultus | 23.03.2800:39 | 5734 | |
Stultus | 23.03.2313:35 | 1.4만 | |
Stultus | 23.03.1211:40 | 3.2만 | |
Stultus | 23.03.0621:32 | 4.1만 | |
shl628 | 23.01.0913:39 | 5만 | |
곰비 | 21.02.1223:08 | 1311 | |
JGP | 21.02.1115:54 | 1985 | |
닉네임이당 | 21.02.1001:47 | 1344 | |
HKDavid | 21.02.0822:41 | 2076 | |
자유로이 | 21.02.0819:08 | 1264 |
감사합니다.