Administrators MaLd0n Posted 5 hours ago Administrators Posted 5 hours ago This tutorial is not only for IdeaPad. It covers the Lenovo laptop classes supported by this YogaSMC project and explains which kexts, apps, plist files and SSDTs should be used depending on the ACPI devices found in the machine. Do not choose by marketing name alone. Choose by ACPI device IDs. The same commercial family name can expose different ACPI devices depending on generation and BIOS. Download HERE Quote Updated YogaSMC with build fixes for modern macOS/Xcode SDKs, VirtualSMCSDK path support, Lenovo VPC/WMI/DYTC fixes, working Quiet/Balance/Performance DYTC handling, corrected userland app deployment targets, improved YogaSMCNC menu visibility, prepared Lenovo ACPI SSDTs, OpenCore installation files, a userland .pkg installer and an English installation guide covering supported Lenovo laptop classes with proper upstream credits to zhen-zen/YogaSMC. Supported Lenovo laptop classes in this project 1. Lenovo IdeaPad / Lenovo consumer VPC class Use this class when ACPI contains: _HID VPC2004 Project driver path: IdeaVPC IdeaSMC YogaWMI / IdeaWMI when matching WMI devices are present Typical machines that may fall into this class when they expose VPC2004: IdeaPad consumer Yoga / Yoga Slim / Slim Flex Legion / LOQ, when the firmware exposes Lenovo VPC/WMI methods some ThinkBook or Lenovo consumer/business hybrids, only if ACPI exposes VPC2004 Possible features, depending on firmware capability bits: Conservation Mode Rapid Charge, only if GBMD reports the Rapid Charge capability bit Always On USB, only if HALS reports the Always On USB capability bit Keyboard backlight Fn Lock DYTC Quiet / Balance / Performance thermal profiles Lenovo WMI battery data, Game Zone, Yoga Mode or related features when present SSDT rule: If VPC2004 already exists, do not use SSDT-YVPC. Use an EC read SSDT only when EC field reading is needed by sensors or battery data. 2. Lenovo ThinkPad class Use this class when ACPI contains one of these device names/properties: LEN0268 LEN0068 Project driver path: ThinkVPC ThinkSMC YogaWMI when matching WMI devices are present Typical machines: ThinkPad models exposing the classic ThinkPad ACPI hotkey/VPC interface. Possible features, depending on firmware support: Hotkey events Conservation Mode Battery thresholds DYTC thermal profiles on supported firmware Fan reading Fan control on supported machines Keyboard backlight LED support on supported machines ThinkPad-specific event handling SSDT rule: Use ThinkPad-specific SSDTs only when the ACPI dump confirms that the required EC fields or methods are missing/need exposure. Do not use IdeaPad/VPC2004 SSDTs on ThinkPad machines unless the ACPI really exposes that path and the patch is explicitly adapted. 3. Lenovo / generic Intel HID event class Use this as supplemental event support when ACPI contains one of: INT33D5 INTC1051 INTC1054 Project driver path: YogaHIDD This is not a full replacement for IdeaVPC or ThinkVPC. It is an event/hotkey path for systems exposing Intel HID or 5-button array devices. Possible features: Hotkey/event handling depending on firmware and event routing. SSDT rule: Do not add a fake Intel HID device. Use this only when the ACPI device already exists. 4. Lenovo WMI / DYWMI class Use this when ACPI contains WMI devices: PNP0C14 Project driver path: YogaWMI DYWMI IdeaWMI, when Lenovo Idea WMI methods/GUIDs are present Possible functions, depending on the WMI GUIDs/methods: WMI event driver extra battery information Game Zone / GZFD control center on supported models Yoga Mode detection through WMIY/AMW1 WMIS / Fn+S or super-resolution related functions on supported models SSDT rule: Use SSDT-WMIS only for the specific WMIS case where the ACPI dump/logs prove it is needed. Do not install SSDT-WMIS by default. 5. Experimental non-Lenovo support in the project The upstream project also contains experimental support for generic Intel HID and HP WMI / DYSMC paths. This tutorial is focused on Lenovo. Do not install HP-oriented SSDTs or use HP-specific assumptions on Lenovo systems. Required kexts For normal daily use: Lilu.kext VirtualSMC.kext YogaSMC.kext Recommended OpenCore order: 1. Lilu.kext 2. VirtualSMC.kext 3. YogaSMC.kext Required apps Install the userland package: YogaSMC_Userland_2.0.7.pkg It installs: /Applications/YogaSMCNC.app /Applications/YogaSMCNC.app/Contents/Library/LoginItems/YogaSMCNCHelper.app /Library/PreferencePanes/YogaSMCPane.prefPane YogaSMCNC.app: menu bar app OSD/event handling hotkey actions status menu YogaSMCNCHelper.app: embedded helper/login item inside YogaSMCNC.app YogaSMCPane.prefPane: settings UI for battery, DYTC, keyboard backlight and supported platform options The package does not modify EFI, OpenCore, NVRAM, boot-args, DeviceProperties, ACPI or config.plist. Preference plist YogaSMCNC configuration is stored at: ~/Library/Preferences/org.zhen.YogaSMC.plist Do not copy a ThinkPad preference plist to an IdeaPad/VPC2004 machine without checking the options. ThinkPad-only options such as SecondThinkFan should not be used on non-ThinkPad machines unless the machine actually exposes the matching ThinkVPC support. SSDT selection Use only the SSDTs proven by the ACPI dump. Common SSDTs: 1. SSDT-ECRW-*.aml Purpose: EC read access for YogaSMC sensor/battery support. Use when: YogaSMC needs EC field reads and the EC path has been adapted to the actual ACPI path. Example for the tested IdeaPad dump: EC path: \_SB.PCI0.LPCB.EC0_ SSDT: SSDT-ECRW-IdeaPad-RO.aml Recommended mode: read-only first: RE1B, RECB, NBAT do not enable WE1B/WECB initially unless you need controlled EC write testing. 2. SSDT-YVPC.aml Purpose: creates or exposes a VPC0000/YogaVPC-style device on systems that need it. Do not use when: the machine already has native VPC2004. 3. SSDT-THINK.aml Purpose: ThinkPad/HKEY/ThinkVPC-specific support or EC exposure, depending on the sample. Use only when: the ACPI dump confirms ThinkPad-style devices such as LEN0268/LEN0068 and the SSDT is adapted to the real EC path. 4. SSDT-WMIS.aml Purpose: specific WMIS/WMI sensor support. Use only when: ACPI/logs prove the WMIS path is required. 5. SSDT-RCSM.aml Purpose: clamshell/lid behavior patch. Use only when: you specifically need clamshell mode support and the lid method/path has been verified. Generic installation steps 1. Back up EFI Back up the whole EFI/OC folder before changing anything. 2. Install ACPI files Copy only the required SSDT files to: EFI/OC/ACPI/ Add them under: ACPI -> Add Example entry: Path: SSDT-ECRW-IdeaPad-RO.aml Enabled: True Comment: YogaSMC EC read support 3. Install kexts Copy to: EFI/OC/Kexts/ Required: Lilu.kext VirtualSMC.kext YogaSMC.kext Add them under: Kernel -> Add Recommended order: Lilu.kext VirtualSMC.kext YogaSMC.kext 4. Install apps Run: YogaSMC_Userland_2.0.7.pkg It installs the app, helper and preference pane in the correct macOS locations. 5. Reset NVRAM and reboot Save config.plist. Reset NVRAM from OpenCore. Reboot. Validation commands Check loaded kexts: kmutil showloaded | grep -iE "Lilu|VirtualSMC|YogaSMC" Check matched YogaSMC class: ioreg -l | grep -iE "IdeaVPC|ThinkVPC|YogaHIDD|YogaWMI|VPC2004|LEN0268|LEN0068|INT33D5|INTC1051|INTC1054" Check DYTC: ioreg -l | grep -A30 -B5 '"DYTC"' Expected examples: FuncMode = Desk PerfMode = Quiet / Balance / Performance Check battery options: ioreg -l | grep -iE "ConservationMode|RapidChargeMode|AlwaysOnUSBMode" Status meaning: Boolean Yes/No feature is supported and exposed "unsupported" firmware did not report the capability through the expected method/bit Troubleshooting If YogaSMC does not load: verify Lilu and VirtualSMC load first verify YogaSMC.kext is enabled in Kernel -> Add verify executable path is Contents/MacOS/YogaSMC verify Info.plist path is Contents/Info.plist If the app opens but options are greyed out: check IORegistry for the property value unsupported means firmware did not expose that capability do not force Rapid Charge or Always On USB without raw GBMD/HALS testing If Quiet / Balance / Performance does not change: check DYTC in IORegistry confirm FuncMode and PerfMode after clicking not every BIOS accepts all DYTC modes If hotkeys/OSD do not work: confirm YogaSMCNC.app is running confirm the correct provider class is loaded: IdeaVPC, ThinkVPC or YogaHIDD collect logs with YogaSMC_Fast_Log_Collector.command Credits, links and references Primary project: YogaSMC https://github.com/zhen-zen/YogaSMC Original YogaSMC project scope: YogaSMC is the upstream Lenovo/SMC project used here. It includes YogaSMC, YogaVPC, YogaWMI, YogaSMCPane and YogaSMCNC, with support paths for ThinkPad, IdeaPad/consumer Lenovo VPC systems, generic Intel HID event devices and some experimental non-Lenovo paths. Credits: All YogaSMC project credits belong to zhen-zen and the YogaSMC upstream contributors. Main upstream repository: https://github.com/zhen-zen/YogaSMC This guide is only an installation and configuration guide for using the upstream YogaSMC project on supported Lenovo laptops. It does not replace, rename, rebrand or override the upstream project credits or license. Required dependency links: Lilu.kext https://github.com/acidanthera/Lilu Latest releases: https://github.com/acidanthera/Lilu/releases/latest VirtualSMC.kext https://github.com/acidanthera/VirtualSMC Latest releases: https://github.com/acidanthera/VirtualSMC/releases/latest MacKernelSDK https://github.com/acidanthera/MacKernelSDK License notes YogaSMC is distributed under the GNU General Public License v2 as included in its source tree. When redistributing modified YogaSMC binaries or source, preserve the upstream license, notices and source availability requirements. Included third-party projects keep their own licenses and credits. Do not remove upstream license files from YogaSMC, Lilu, VirtualSMC or MacKernelSDK source or binary packages. Final per-machine rule Use the ACPI dump as the authority: VPC2004-> IdeaVPC / IdeaSMC path LEN0268 or LEN0068-> ThinkVPC / ThinkSMC path INT33D5/INTC1051/INTC1054-> YogaHIDD supplemental event path PNP0C14 Lenovo WMI-> YogaWMI / IdeaWMI / DYWMI path when matching methods/GUIDs exist -Guides and Tutorials HERE -Hackintosh Tutorial Database - HERE -The largest EFI folder collection for Hackintosh HERE -Support Olarila Vanilla Hackintosh by making a donation HERE -Professional Hackintosh Support since 2006 HERE
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now