[OC 101] 오픈코어 시작전에 준비 사항 #11 - ACPI
- Mactopia
- 1129
- 0
Mactopia님의 기기정보
이들은 USB 컨트롤러, CPU 스레드, 임베디드 컨트롤러, 시스템 시계 등과 같은 하드웨어 장치를 설명하는 펌웨어에있는 표입니다. DSDT (Differentiated System Description Table)는 SSDT (Secondary System Description Table)에 의해 전달되는 작은 비트의 정보로 대부분의 정보를 보유하는 본문으로 볼 수 있습니다. DSDT는 프로젝트에 대한 추가 세부 정보를 간략하게 설명하는 건물 청사진이고 SSDT는 해당 프로젝트의 세부 메모라고 생각할 수 있습니다.
아래 각 항목의 정의에 대한 내용은 번역이 필요 없을정도로 익숙할테니 패스합니다~
- Embedded controllers(EC)
- All semi-modern intel machines have an EC (usually called H_EC, ECDV, EC0, etc...) exposed in their DSDT, with many AMD systems also having it exposed. These controllers are generally not compatible with macOS and can cause panics, so then need to be hidden from macOS. macOS Catalina requires a device named
EC
to be present though, so a dummy EC is created. - With laptops, the actual embedded controller still needs to be enabled for battery and hotkeys to work, and renaming the EC can additionally cause issues with windows, so creating a fake EC without disabling the real embedded controller is preferable.
- All semi-modern intel machines have an EC (usually called H_EC, ECDV, EC0, etc...) exposed in their DSDT, with many AMD systems also having it exposed. These controllers are generally not compatible with macOS and can cause panics, so then need to be hidden from macOS. macOS Catalina requires a device named
- Plugin type
- This allows the use of XCPM providing native CPU power management on Intel Haswell and newer CPUs, the SSDT will connect to the first thread of the CPU. Not meant for AMD
- AWAC system clock.
- This applies to all 300 series motherboards including many Z370 boards, the specific issue is that newer boards ship with AWAC clock enabled. This is a problem because macOS cannot communicate with AWAC clocks, so this requires us to either force on the legacy RTC clock or if unavailable create a fake one for macOS to play with
- NVRAM SSDT
- True 300 series motherboards(non-Z370) don't declare the FW chip as MMIO in ACPI and so the kernel ignores the MMIO region declared by the UEFI memory map. This SSDT brings back NVRAM support
- Backlight SSDT
- Used for fixing backlight control support on laptops
- GPIO SSDT
- Used for creating a stub to allow VoodooI2C to connect onto, for laptops only
- XOSI SSDT
- Used for rerouting OSI calls to this SSDT, mainly used for tricking our hardware into thinking its booting Windows so we get better trackpad support. This is a very hacky solution known for breaking Windows boot, use the GPIO SSDT instead. Usage of XOSI will not be covered in this guide
- IRQ SSDT and ACPI patches
- Needed for fixing IRQ conflicts within the DSDT, for laptops mainly. SSDTTime exclusive
- Note Skylake and newer systems rarely have IRQ conflicts, this is mainly prevalent on Broadwell and older
What SSDTs do each platform need
SSDTs: The easy way
https://x86.co.kr/kext/4130668
HEDT SSDTs:
아래 다운로드 후 extra-files 폴더에서 각 파일들을 복사해서 사용
Getting-Started-With-ACPI-master.zip
데스크탑
- SSDT-EC-USBX-DESKTOP
- For Skylake and newer and all AMD systems
- SSDT-EC-DESKTOP
- For Broadwell and older
Laptop EC fix:
- SSDT-EC-USBX-LAPTOP.aml
- For Skylake and newer
- SSDT-EC-LAPTOP.aml
- For Broadwell and older
- SSDT-PNLF
개별 생성 필요
- SSDT-GPI0
개별 생성 필요
- AWAC and RTC0 SSDTs:
- 300 시리즈 인텔 보드도 개별 생성 필요 Z390 시스템이 가장 일반적이지만 일부 기가 바이트 Z370도 필요함)
SSDT-PMC.aml
: For fixing 300 series Intel NVRAM
- USBX SSDT: SSDTTime only makes the SSDT-EC part, Skylake and newer users : SSDT-USBX.aml 을 사용
Running SSDTTime
이 모든 옵션은 무엇입니까? :
1. FixHPET : IRQ 충돌 패치
주로 X79, X99 및 랩톱 사용자에게 필요한 IRQ 패치 (옵션 C를 사용하여 충돌하는 기존 IRQ 생략)
2. FakeEC : OS 인식 Fake EC
이것은 Catalina 사용자에게 필요한 SSDT-EC입니다.
3. PluginType. : CPU0 / PR00에서 plugin-type = 1로 설정
이것은 SSDT-PLUG이며 인텔 전용입니다.
4. DSDT 덤프 : 시스템 DSDT 자동 덤프
펌웨어에서 DSDT를 덤프합니다
우리가 원하는 것은 옵션 4를 선택하는 것입니다. 먼저 DSDT를 덤프 한 다음 시스템에 적합한 옵션을 선택하십시오.
USBX는 어떻습니까?
Skylake 및 최신 플러스 AMD의 경우 미리 만들어 놓은 SSDT-USBX.aml을 사용할수 있습니다만
Broadwell 및 이전 버전에서는 사용하지 마십시오.
Adding to OpenCore
Add only the .aml file
- EFI/OC/ACPI
- config.plist -> ACPI -> Add