시스템 사양 선택 | 3번 |
---|
안녕하세요. :)
LG Ultra PC 15U480 - KA56K 노트북의 macOS Big Sur 11.2.1 설치 후기입니다.
저번에 OpenCore r0.5.9 로 macOS Catalina 10.15.x 를 설치 후기를 작성한 후로 한동안 업데이트를 하지 않다가
오랜만에 OpenCore r0.6.6 으로 업데이트하고 macOS Big Sur 11.2.1 버전으로 클린 설치를 하였습니다.
OpenCore r0.6.6 버전의 새로운 EFI 폴더로 다시 구축하고
기존에 사용했었던 일부 ACPI 설정 및 SSDT 패치와 Device Properties, SMBIOS 등의 설정만 가져왔습니다.
저번 macOS Catalina 10.15.x 설치 후기와 변경된 점만 설명하고 마치겠습니다.
그리고, 저도 GitHub 사이트를 만들었습니다. ^-^
저의 GitHub 사이트를 만들고 프로필도 조금 꾸며봤습니다. ✨
이제, GitHub 저장소에 EFI 폴더를 업로드하고 OpenCore 가 업데이트되거나
EFI 폴더에서 수정된 부분이 있을 경우 수시로 Commit 하여 반영할 예정입니다. :)
❄️ 안정화 작업을 모두 완료한 Config.plist 의 ACPI 설정 모습
❄️ ACPI 패치에 사용되는 각각의 SSDT 에 대한 개요표
번호 | SSDT 이름 | ACPI Rename 필요 여부 | ACPI 패치 유형 | OEM DSDT Override 여부 |
1 | SSDT-ALS0.aml | X | Injection | X |
2 | SSDT-BATT.aml | O | Hot Patch & Override | O |
3 | SSDT-DMAC.aml | X | Injection | X |
4 | SSDT-EC-USBX.aml | X | X | |
5 | SSDT-FNBL.aml | O | Hot Patch & Override | O |
6 | SSDT-HBTN_STA.aml | O | O | |
7 | SSDT-HPET.aml | X | Preset Variable Method | O |
8 | SSDT-MATHLDR2_STA.aml | O | Hot Patch & Override | O |
9 | SSDT-MCHC.aml | X | Injection | X |
10 | SSDT-MEM2.aml | X | X | |
11 | SSDT-NVOF.aml | X | X | |
12 | SSDT-OSYS.aml | X | Assign & Injection | O |
13 | SSDT-PLUG.aml | X | Injection | X |
14 | SSDT-PMCR.aml | X | X | |
15 | SSDT-PNLF.aml | X | X |
저번 macOS Catalina 10.15.x 설치 후기글의 내용에서 외장 그래픽 장치를 비활성화하는 SSDT-NVOF.aml 이 추가되었습니다.
그리고, SSDT-BrightFn_Q6E.aml 은 이름이 조금 길어서 SSDT-FNBL.aml 로 수정하였습니다.
또한, SSDT-HPET.aml 은 Preset Variable Method 방식으로 패치하도록 수정하였습니다.
그 외 나머지 SSDT 의 안정화 작업들에 대한 자세한 내용은
아래의 LG Ultra PC 15U480 - KA56K 노트북의 설치 후기에서 안정화 부분을 참고해주세요.
https://x86.co.kr/mymac/5003460
🌸 안정화 작업 수정 내역
1. SSDT-BATT.aml 에서 IVBI Method 의 일부 내용을 수정하였습니다.
2. SMBus 방식의 Synaptics 터치패드에 대하여 VoodooPS2 에서 VoodooRMI 로 교체하였습니다.
3. SSDT 를 사용하여 NVidia GeForce MX150 외장 그래픽 장치를 비활성화하였습니다.
4. CPUFriendFriend 를 사용하여 CPUFriendDataProvider.kext 를 다시 생성하였습니다.
🌼 그 외 나머지 소소한 수정 내역
- MAT 를 지원하므로 Config.plist 에서 Booter 의 일부 Quirks 옵션을 수정하였습니다.
- Qualcomm Atheros QCA6174 의 Bluetooth 는 작동하지 않으므로 Bluetooth 와 연결된 USB 포트를 비활성화하였습니다.
- Qualcomm Atheros QCA6174 의 Wi-Fi 는 작동하지 않으므로 SSDT 를 사용하여 RP12 의 PXSX 장치를 비활성화하였습니다.
- 잠자기에서 깨어난 후에 HDMI 외부 디스플레이 출력이 작동하지 않는 문제가 발견되어 force-online 속성을 추가하였습니다.
- 화면 밝기 조절 Fn 키에 대한 SSDT-FNBL.aml 에서 PS2K 의 Notify 값을 0x0405 / 0x0406 으로 수정하였습니다.
- LGWMI 를 추가하여 시스템 환경설정의 배터리 설정에서 배터리 성능 상태를 확인하고 배터리 수명을 관리할 수 있도록 하였습니다.
1. SSDT-BATT.aml 에서 패치된 IVBI Method 의 논리적 오류 수정
저번 설치 후기글에서 만들었던 SSDT-BATT.aml 에서 IVBI Method 의 일부 내용을 수정하였습니다.
물론, 배터리 잔량 표시는 잘 됐었지만 ACPI Source Language 코드를 해석해보면 논리적으로 잘못된 오류가 있습니다.
OEM DSDT 를 보면 IVBI Method 에서 EmbeddedControl Region 에 선언된 BANA 라는 FieldUnitObject 가 사용됩니다.
Method (IVBI, 0, NotSerialized)
{
Store (0xFFFFFFFF, Index (PBIF, One))
Store (0xFFFFFFFF, Index (PBIF, 0x02))
Store (0xFFFFFFFF, Index (PBIF, 0x04))
Store ("Bad", Index (PBIF, 0x09))
Store ("Bad", Index (PBIF, 0x0A))
Store ("Bad", Index (PBIF, 0x0B))
Store ("Bad", Index (PBIF, 0x0C))
Store (Zero, ^^PCI0.LPCB.EC0.BANA)
}
저번 설치 후기글에서는 64 Bit 의 BANA 변수를 직접 8 Bit 로 세분화하고 ANAX 라는 Method 에 담았는데
ANAX Method 의 코드 내용을 보면 변수의 값을 읽는 Method 라는 것을 알 수 있습니다.
하지만, 위의 IVBI Method 에서는 Store (Zero, ^^PCI0.LPCB.EC0.BANA) 라는 구문이 있습니다.
이 코드를 해석해보면 Zero 라는 값을 BANA 라는 변수에 쓰겠다는 의미입니다.
그런데, Store (Zero, ^^PCI0.LPCB.EC0.ANAX ()) 로 수정하면 이는 논리적으로 옳지 않게 됩니다.
직접 8 Bit 로 나눈 변수에 쓰는 경우에는 아래와 같이 ANAW Method 의 내용이 되어야 합니다.
Method (ANAW, 1, Serialized)
{
Name (TEMP, Buffer (0x10){})
Store (Arg0, TEMP)
Store (DerefOf (Index (TEMP, Zero)), ANA0)
Store (DerefOf (Index (TEMP, One)), ANA1)
Store (DerefOf (Index (TEMP, 0x02)), ANA2)
Store (DerefOf (Index (TEMP, 0x03)), ANA3)
Store (DerefOf (Index (TEMP, 0x04)), ANA4)
Store (DerefOf (Index (TEMP, 0x05)), ANA5)
Store (DerefOf (Index (TEMP, 0x06)), ANA6)
Store (DerefOf (Index (TEMP, 0x07)), ANA7)
}
하지만, 저는 위의 ANAW Method 를 사용하는 것 대신에
SSDT-BATT.aml 에 Buffer 를 8 Bit 씩 쓰는 WE1B & WECB Method 를 추가하고
아래와 같이 WECB Method 를 사용하여 다시 수정하였습니다.
Method (IVBI, 0, NotSerialized)
{
If (_OSI ("Darwin"))
{
Store (0xFFFFFFFF, Index (PBIF, One))
Store (0xFFFFFFFF, Index (PBIF, 0x02))
Store (0xFFFFFFFF, Index (PBIF, 0x04))
Store ("Bad", Index (PBIF, 0x09))
Store ("Bad", Index (PBIF, 0x0A))
Store ("Bad", Index (PBIF, 0x0B))
Store ("Bad", Index (PBIF, 0x0C))
^^PCI0.LPCB.EC0.WECB (0x77, 0x40, Zero)
}
Else
{
XVBI ()
}
}
64 Bit 보다 더 큰 128 Bit 나 256 Bit 의 FieldUnitObject 인 경우에는 직접 8 Bit 로 모두 세분화하기 조금 힘들 수 있기 때문에
RE1B & RECB Method 또는 WE1B & WECB Method 를 사용하는 것이 더 편리합니다.
또한, WECB Method 는 Buffer 를 읽는 Method 가 아닌 쓰는 Method 이므로
RECB Method 와 달리 WECB Method 를 Call 할 때 어떤 값을 쓸 지에 대한 인수 1개를 필요로 합니다.
그리고, 기존에 배터리 패치를 할 때 주로 사용되기도 하고 다른 분들도 많이 알고 계시는
B1B2 / B1B3 / B1B4 / L1L4 등의 Method 는 모두 변수의 값을 읽는 Method 입니다.
그래서, EmbeddedControl Region 에 선언된 16 Bit 의 FieldUnitObject 에 값을 쓰는 경우에는
ShiftRight 연산자를 사용하여 직접 패치를 했었는데, 요즘에는 W16B 라는 Method 를 사용하는 것 같아요.
자세한 내용은 아래의 사이트를 참고해보세요.
https://xstar-dev.github.io/hackintosh_advanced/Guide_For_Battery_Hotpatch.html
즉, 위의 내용에서 핵심은 EmbeddedControl Region 에 선언된 FieldUnitObj 를 사용하는 구문에서
B1B2 와 W16B 또는 RECB 와 WECB 둘 중 어떤 Method 를 사용해야 하는 지를 구분하는 것입니다. ^-^
2. VoodooRMI 를 사용한 SMBus 방식의 Synaptics 터치패드 및 제스처 안정화
LG Ultra PC 15U480 - KA56K 노트북은 SMBus 방식의 Synaptics 터치패드를 사용하며 ACPI 상에서 모델명은 SYN105A 입니다.
기존에는 Acidanthera 님의 최신 버전의 VoodooPS2Controller 를 사용했었는데
VoodooRMI 로 교체하고 난 후에 터치패드의 터치감이 매우 좋아지고 제스처도 부드럽게 작동합니다. :)
네 손가락 제스처까지 모두 부드럽게 작동하며 5점 터치도 정상적으로 인식합니다.
VoodooRMI 를 사용하여 SMBus 방식의 Synaptics 터치패드 및 제스처를 안정화하는 과정에 대한 내용은 아래의 Tip 글을 참고해주세요.
3. SSDT 를 사용하여 NVidia GeForce MX150 외장 그래픽 장치 비활성화
WhateverGreen 의 -wegnoegpu 부트 옵션을 사용하여 Mac OS 에서 외장 그래픽 장치를 숨길 수 있지만
외장 그래픽 장치가 여전히 배터리를 조금 미세하게 소모한다고 합니다.
SSDT 에서 Mac OS 로 부팅하는 경우에만 활성화되는 Device 를 추가하고
_INI Method 에서 외장 그래픽 장치를 비활성화하는 _OFF Method 를 Call 하면 됩니다.
DefinitionBlock ("", "SSDT", 2, "DRTNIA", "DGOF", 0x00000000)
{
External (_SB_.PCI0.RP01.PEGP._OFF, MethodObj) // 0 Arguments (from opcode)
Device (RMD1)
{
Name (_HID, "RMD10000") // _HID: Hardware ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (_OSI ("Darwin"))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
Method (_INI, 0, NotSerialized) // _INI: Initialize
{
If (_OSI ("Darwin"))
{
If (CondRefOf (\_SB.PCI0.RP01.PEGP._OFF))
{
\_SB.PCI0.RP01.PEGP._OFF ()
}
}
}
}
}
그리고, 외장 그래픽 장치를 비활성화하는 _OFF Method 는 주로 특정 OEM SSDT Table 에 존재할 거예요.
또한, 외장 그래픽 장치를 비활성화하는 SSDT 를 적용한 후에는 -wegnoegpu 부트 옵션을 사용하지 않아도 됩니다.
자세한 내용은 아래의 사이트를 참고해주세요.
https://dortania.github.io/Getting-Started-With-ACPI/Laptops/laptop-disable.html
4. CPUFriendFriend 를 사용하여 CPUFriendDataProvider.kext 생성
CPUFriendFriend 를 사용하여 CPUFriendDataProvider.kext 를 다시 생성하였습니다.
그리고, CPUFriendDataProvider.kext 를 생성하는 과정에서 전력 절전을 중심으로 설정하였으며
Intel Speed Shift (HWP) 기능도 정상적으로 활성화되었습니다.
CPUFriend.kext 와 CPUFriendDataProvider.kext 의 사용 방법은 아래의 사이트를 참고해주세요.
https://github.com/acidanthera/CPUFriend/blob/master/Instructions.md
CPUFriendFriend 는 아래의 사이트를 참고해주세요.
https://github.com/corpnewt/CPUFriendFriend
✨ 마무리
집에 남는 SSD 로 외장 SSD 케이스에 연결하고 macOS Big Sur 11.2.1 을 설치해서
macOS SSD 아이콘이 노란색 외장 디스크로 표시되네요.
OpenCore 의 EFI 폴더를 업로드하고 마치겠습니다. :)
SMBIOS 에서 Serial Number 등의 항목은 직접 생성한 후에 사용해주세요.
그리고, 저의 GitHub 저장소 사이트입니다. ^-^
https://github.com/lshbluesky/LG-Ultra-PC-15U480-KA56K-Hackintosh
+ OpenCore r0.6.7 버전의 EFI 폴더부터는 위의 GitHub 저장소 사이트를 참고해주세요.
✅ 작동하는 것
- Intel UHD Graphics 620 QE/CI
- Intel UHD Graphics 620 AGPM
- Realtek ALC 255 ( 내장 사운드 출력 & 마이크 입력 )
- Speed Step ( Speed Shift 활성화 & XCPM 방식 )
- X86Platform~ Kext 로드
- Realtek 유선 네트워크
- USB 3.x & 추가 전력
- USB HD 내장 웹캠
- Night Shift
- 배터리 잔량 표시
- SMBus 방식의 Synaptics 터치패드
- 노트북 HDMI 외부 디스플레이 영상 & 사운드 출력
- 노트북 내장 디스플레이 밝기 조절
- Fn 키 디스플레이 밝기 조절
- Fn 키 사운드 음량 조절
- Realtek 내장 SD Card Reader ( Sinetek-rtsx.kext 를 추가하면 사용 가능 )
- 잠자기 & 깨우기
- 노트북의 덮개를 덮어서 잠자기 모드 진입
❌ 작동하지 않는 것
- Qualcomm Atheros QCA6174 의 무선 네트워크 및 블루투스
shl628님의 새글 알림을 받으실려면 구독
*적용중인 도장
이분은.. 정말 전설이시군요.. SSDT 수정/제작에 지식이 없어서 제대로 이해하는 부분은 하나도 없지만, 엄청나다는게 느껴집니다.
역시 엑팔대박사.. 존경합니다.
감사합니다. :)
저 말고 뽀로로님도 ACPI 와 DSDT & SSDT 를 굉장히 잘 다루시는 분입니다.
저는 뽀로로님의 SSDT 패치와 관련된 Tip 글을 공부하면서 ACPI 에 대한 지식을 쌓았습니다. :)
커스텀 노트북 에 밝은 등대 가 지어진것 같은 느낌. 너무 멋진 x86인 . ^^ 역시 랩탑은 정말 어려운것 같네요.
네이버 그라폴리오 사이트를 구경하다가 너무 마음에 들어서 배경화면으로 사용하고 있습니다. :)
해당 배경화면 사이트입니다. ✨
https://grafolio.naver.com/wallpaper/202414
저와 비슷한 사양이셔서 평소에 도움 많이 받았습니다~ 역시 SSDT관련은 아직 보아도 머리가 어질어질 하네요ㅎㅎ
항상 지식의 귀중한 나눔 감사드립니다! 정말 멋지십니다~
LGWMI.kext 를 적용하면 시스템 환경설정의 배터리 설정에서
배터리 성능 상태를 확인하고 배터리 수명을 관리할 수 있습니다.
https://x86.co.kr/kext/5353636
ACPI 에서 WMI 계열의 Device 를 보조해주는 Kext 라고 생각하면 될 것 같아요.
ASUS 를 예시로 들면 AsusSMC.kext 가 있고 ASUS 노트북에는 OEM DSDT 를 보면 WMI 계열의 Device 이름이 ATK Device 입니다.
Lenovo 의 경우에는 YogaSMC.kext 등이 있습니다.
그런데, 요즘 LGWMI.kext 가 잘 업데이트되지 않고 있습니다.
AsusSMC 의 개발자인 hieplpvip 가 만들었는데 요즘 소식이 없네요...
LGWMI.kext 가 굳이 필요하지 않다면 추가하지 않아도 됩니다.
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|
macOS Ventura 13.7 22H123 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체 공개 +3 | 좌절금지 | 24.09.1917:09 | 71 |
macOS Sonoma 14.7 23H124 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체공개 +15 | 좌절금지 | 24.09.1723:58 | 182 |
[중급편] 노트북 해킨 +8 | Stultus | 24.07.1219:19 | 755 |
[초급편] 문제 스스로 해결하기 +17 | Stultus | 24.03.2920:07 | 3532 |
[입문편] 첫 해킨 길라잡이 +32 | Stultus | 24.01.1218:54 | 4296 |
[필독 - 안정화] 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 | 196 |
2020 그램 sonoma efi 15Z90N +1 | 맥가즈아 | 24.09.1717:13 | 90 |
macOS Sequoia 15 설치 후기 + Bcm94360NG WiFi 작동함 | 좌절금지 | 24.09.1919:17 | 197 |
좌절금지 | 24.09.1919:17 | 197 | |
좌절금지 | 24.09.1917:09 | 71 | |
Stultus | 24.09.1813:37 | 151 | |
좌절금지 | 24.09.1723:58 | 182 | |
좌절금지 | 24.09.1722:40 | 196 | |
맥가즈아 | 24.09.1717:13 | 90 | |
김경석 | 24.09.1708:13 | 220 | |
Panictosh | 24.09.1617:47 | 99 | |
Tamy | 24.09.1504:35 | 467 | |
Stultus | 24.09.1319:18 | 436 | |
치토 | 24.09.1019:44 | 470 | |
머핀X | 24.09.0118:13 | 394 | |
해킨도전자 | 24.09.0112:54 | 295 | |
머핀X | 24.08.3115:34 | 373 | |
화정큐삼 | 24.08.2601:42 | 239 | |
하나브 | 24.08.2422:59 | 208 | |
화정큐삼 | 24.08.2316:25 | 248 | |
CanBe | 24.08.1810:56 | 329 | |
화정큐삼 | 24.08.1800:04 | 205 | |
화정큐삼 | 24.08.1722:03 | 189 | |
jbhlyk | 24.08.1710:14 | 167 | |
Stultus | 24.08.1622:06 | 251 | |
hackillious | 24.08.1511:16 | 159 | |
세유니 | 24.08.1421:30 | 124 | |
Stultus | 24.08.1419:58 | 345 | |
오디세이 | 24.08.1311:26 | 271 | |
좌절금지 | 24.08.1115:46 | 194 | |
티타보르 | 24.08.1111:21 | 141 | |
Stultus | 24.08.1022:46 | 183 | |
오디세이 | 24.08.1022:10 | 391 | |
jbhlyk | 24.08.1019:05 | 127 | |
RogerT | 24.08.0923:20 | 145 | |
좌절금지 | 24.08.0717:18 | 286 | |
RogerT | 24.08.0609:17 | 115 | |
줌바이퍼 | 24.08.0606:14 | 459 | |
jbhlyk | 24.08.0523:34 | 81 | |
수인과윤슈 | 24.08.0521:10 | 185 | |
좌절금지 | 24.08.0521:08 | 838 | |
Stultus | 24.08.0221:07 | 427 | |
Tamy | 24.07.3019:12 | 343 | |
해킨도전자 | 24.07.2915:37 | 262 | |
june119 | 24.07.2813:52 | 206 | |
Stultus | 24.07.2112:43 | 245 | |
BlueGuerrilla | 23.05.0502:19 | 3993 | |
Stultus | 24.07.1219:19 | 755 | |
김태국 | 21.08.0213:10 | 3679 | |
Stultus | 24.07.1122:47 | 215 | |
Stultus | 24.07.1020:44 | 138 | |
Stultus | 24.07.0921:44 | 137 | |
Stultus | 24.07.0820:57 | 223 | |
의정이 | 24.07.0811:28 | 171 | |
Stultus | 24.07.0721:25 | 264 | |
bsiugr | 24.07.0604:41 | 288 | |
애플브리크 | 24.07.0509:56 | 492 | |
광호 | 24.02.1715:21 | 2185 | |
치토 | 24.06.2723:24 | 398 | |
talas | 24.06.2617:24 | 193 | |
블루사탕 | 24.06.2120:58 | 116 | |
gtrfxdsp | 24.06.1609:01 | 511 | |
Mactopia | 24.06.1401:04 | 345 | |
Stultus | 24.06.1120:40 | 726 | |
새콤칠리 | 24.06.1115:07 | 672 | |
좌절금지 | 23.02.2118:35 | 118만 | |
Steer | 24.06.1001:11 | 275 | |
Door | 24.06.0810:09 | 155 | |
Tamy | 24.06.0107:41 | 416 | |
ssdwe346 | 24.05.2923:53 | 299 | |
joy | 24.05.2809:58 | 264 | |
거니 | 24.05.2601:07 | 243 | |
RogerT | 24.05.2520:14 | 247 | |
좌절금지 | 24.05.1812:40 | 913 | |
wjdgkdus | 24.05.1615:02 | 211 | |
Tamy | 24.05.1417:36 | 797 | |
줌바이퍼 | 24.05.1002:04 | 1008 | |
의정이 | 24.05.0821:05 | 144 | |
ryzen | 23.10.0921:28 | 2405 | |
챠니앤차니 | 24.05.0319:15 | 146 | |
챠니앤차니 | 24.05.0220:17 | 174 | |
고맹이 | 24.05.0210:00 | 635 | |
shl628 | 24.04.3013:54 | 1067 |
이분은.. 정말 전설이시군요.. SSDT 수정/제작에 지식이 없어서 제대로 이해하는 부분은 하나도 없지만, 엄청나다는게 느껴집니다.
역시 엑팔대박사.. 존경합니다.