Jump to content

YogaSMC for Lenovo - IdeaPad / Yoga / ThinkPad Support, ACPI SSDT, App Fixes


Recommended Posts

  • Administrators
Posted

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

4jArCAz.png

U1EvZFD.png

I2yR8dE.png

-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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...