Contribute
Register

[GUIDE] Lenovo 510s 14-ISK using OpenCore UEFI

Status
Not open for further replies.
Hey Uchika,

Thanks for this guide :) - I have been following your guide and have got my Lenovo 510s-14isk up and running and it feels quite stable.

There are a few issues I am working through like the sleep wake up time, currently about 10 seconds and also a HDMI port issue, where the screen won’t turn on if the system boots with a monitor attached.

I think I can solve these 2 issues, but the big problem I am having is that my geek bench score appears really low.

My single core is 750 and my multi core is 1450!

I noticed yours were about 4x higher - Would it be possible to have a copy of your EFI to see if I have messed something up!

Thanks, David
 
Hello everyone,
these are just some useful notes I took during the process if I have to do it again.
You can use them at your advantage during the installation if you are new to hackintosh ;).
My laptop specs
Mobo: Lenovo 510s 14-ISK (Clover UEFI)
CPU: i5-6267u
Graphics: Iris 550, 1920x1080
BIOS model: 0VCN26WW(V1.10)
Notes
  • To access the BIOS use an eject sim tool or something similar and hit the reset button for 3 or more seconds on the left side of your computer where ports are located.
  • WiFi Card needs to be replaced (BCM94352Z works great, another user reported bcm94350zae also works after Shielding pins), refer to "Hardware maintenance manual - Page 38".
  • Hardware maintenance manual
  • Installing on /System/Library/Extensions or /Library/Extensions is the same. Catalina only: Use Hackintool to install kexts
  • Don’t worry about warning when rebuilding kexts (just make sure it’s accepted), signature warnings are OK.
  • If updating (clean install) you need to update kexts in clover and create a bootable USB from step 1). It can be done without installing clover to USB.
  • If updating via MacOS you need to update clover and kexts.
  • To update clover you only need to download the newer version and proceed with install (check if everything is correct via customize button).
  • Use https://www.tonymacx86.com/threads/tool-generate-proper-problem-reporting-files.235953/page-3 for error reporting.
  • If you have multiple OS in dual booting and you want to change your hard drive (HDD, SDD) use clonezilla (it copies all volumes including EFI, make sure to shrink and restore the partitions after cloning so that free space is visible).
Guides followed
1) Installation process
https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/
2) Patching process
https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/
3) Brightness slider fix
https://www.tonymacx86.com/threads/...rol-using-applebacklightinjector-kext.218222/
4) Brightness keys fix (acpi patch needed)
https://www.tonymacx86.com/threads/guide-patching-dsdt-ssdt-for-laptop-backlight-control.152659/
5) Power management patch
https://www.tonymacx86.com/threads/guide-native-power-management-for-laptops.175801/
https://www.tonymacx86.com/threads/skylake-hwp-enable.214915/
6) WiFi Card software implementation (Read FAQs "BCM94352 requirements")
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
7) Fix battery icon - The DSDT.dsl already has 8-bit fields so there is no need to patch it, just install ACPIBatteryManager.kext
https://github.com/RehabMan/OS-X-ACPI-Battery-Driver
8) Enable HiPDI at the resolution you like (i.e. I suggest 1600x900 and 1280x720, notice that the official guide from tonymacx didn't work for me)
https://github.com/xzhih/one-key-hidpi
9) USBInjectAll custom SSDT
https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/

Highlighted steps
1) Installation process
1).1
Configure the BIOS to let it read the USB drive we will create next step.
Configuration Tab
  • USB Legacy [Disabled]
  • Wireless LAN [Enabled]
  • Power Beep [Disabled]
  • Intel Virtual Technology [Disabled]
  • BIOS Back Flash [Disabled]
  • HotKey Mode [Enabled]
  • Always On USB [Enabled]
Security Boot
  • Intel Platform Trust Technology [Disabled]
Boot
  • Boot Mode [Legacy Support]
  • Boot Priority [UEFI First]
  • Fast Boot [Disabled]
  • USB Boot [Enabled]
  • PXE Boot to LAN [Disabled]
1).2 (if you have macOS installed on another PC)
-Format USB (min 8GB) in terminal typing:
Code:
diskutil list
    diskutil partitionDisk /dev/diskX 1 GPT HFS+J "install_osx" R
    (e.g     diskutil partitionDisk /dev/disk3 1 GPT HFS+J "install_osx" R)
-Use UniBeast to create a bootable UEFI usb after having downloaded macOS form the App Store

1).3 (if you have macOS installed on another PC)
Add to /Volumes/EFI/EFI/Clover/drivers64UEFI manually, or select via CLOVER installer:
  • ApfsDriverLoader.efi. If you're installing High Sierra or later (10.13+) to an SSD, keep in mind that the file system will be APFS. APFS support is automatic with ApfsDriverLoader.efi. It should be a default selection.
  • AptioMemoryFix.efi
  • AudioDxe.efi
  • DataHubDxe.efi
  • FSInject.efi
  • HFSPlus.efi (“Note: Please, DO NOT forget HFSPlus.efi. Without it, you won't see any HFS+ partitions, including the HFS+ partition that the OS X installer is on.”)
  • SMCHelper.efi
  • VirtualSmc.efi (MUST HAVE IF YOU USE VirtualSMC.kext)
Delete folders in /Volumes/EFI/EFI/CLOVER/kexts except Other
Install basic kexts by copying them in /Volumes/EFI/EFI/CLOVER/kexts/Other (make sure to find the latest version compatible with your OS):
  • FakeSMC.kext or VirtualSMC.kext (consider using this)
  • VoodooPS2Controller.kext
  • USBInjectAll.kext
To have a bootable MacOS installer you need a "SSDT-EC.aml" in EFI/CLOVER/ACPI/Patched. All you need to do is to compile the SSDT as aml: https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl. It is also necessary to "Remove all patch about renaming acpi of EC or H_EC" in config.plist or disable them by adding a Disabled YES entry (reference: https://www.insanelymac.com/forum/topic/339035-pre-release-macos-catalina/?page=52).
I suggest using my config.plist (which is a modified version of Rehabman's).

Boot macOS Installer from USB by using the boot menu (hit the reset button for it to show up) and configure your mac.
Format your volumes with diskutil in terminal to configure your mac or use Disk Utility:
Code:
diskutil eraseDisk JHFS+ DiskName /dev/DiskNodeID
    (e.g. diskutil eraseDisk JHFS+ MacOS /dev/disk1)
Create a new partition from Disk Utility.

1).4
To boot the OS without USB you need to install Clover on your volume.

1).5
-Follow the same steps above to get a properly configured CLOVER.
-Change Volumes/EFI/Clover/config.plist to the one I provide.
-It’s time to install kexts (install in both /Library/Extensions and /CLOVER/kexts), always search for the most updated version:

  • ACPIBatteryManager (only on /Library/Extentions - DO NOT USE THIS IF USING VirtualSMC.kext)
    AirportBrcmFixup.kext
    RealtekRTL8111.kext
    BrcmPatchRAM2.kext (catalina: https://www.insanelymac.com/forum/t...-catalina-broadcom-bluetooth-firmware-upload/)
    BrcmFirmwareData.kext
    BrcmBluetoothInjector.kext
    BT4LEContinuityFixup.kext
    FakePCIID.kext
    FakePCIID_Broadcom_WiFi.kext
    FakePCIID_Intel_HD_Graphics.kext
    VoodooPS2Controller.kext
    USBInjectAll.kext
    AppleALC.kext (see #8)
    Lilu.kext
    WhateverGreen.kext
    Sinetek-rtsx.kext
You also need

  • FakeSMC.kext
    FakeSMC_ACPISensors.kext
    FakeSMC_CPUSensors.kext
    FakeSMC_GPUSensors.kext
    FakeSMC_LPCSensors.kext
    FakeSMC_SMMSensors.kext
or VirtualSMC.kext (DO NOT USE ACPIBatteryManager.kext, place VirtualSmc.efi in drivers folder!)

  • VirtualSMC.kext
    SMCBatteryManager.kext (DO NOT USE ACPIBatteryManager.kext)
    SMCLightSensor.kext
    SMCProcessor.kext
    SMCSuperIO.kext

2) Patching process
Generate aml with fn+f2 fn+f4 in clover.
Remove duplicates if there are.
Patches I applied:
  • "instant wake" 0x6D Skylake
  • brightness keys fix (see below)
  • "Fix _WAK Arg0 v2"
  • "HPET Fix"
  • "SMBUS Fix"
  • "IRQ Fix"
  • "RTC Fix"
  • "OS Check Fix"
  • "Fix Mutex with non-zero SyncLevel"
  • "Fix PNOT/PPNT" (use only if you're dropping CPU related SSDTs)
  • "6-series USB"
  • "7-series/8-series USB"
  • "Rename _DSM methods to XDSM"
Use RehabMan's patch:
  • config.plist (for sorded-order)
  • /acpi/patched/DSDT.aml
  • /acpi/patched/SSDT-PNLF.aml
  • /acpi/patched/SSDT-EC.aml (necessary to boot the installer when updating)
  • /acpi/patched/SSDT-XCPM.aml or /acpi/patched/SSDT.aml (see power management)
4) Brightness keys fix (acpi patch needed)
Refer to Disassembly with refs.txt
Adding sources is in app preferences
Copy-paste and patch
Code:
into method label _Q11 replace_content

begin

// Brightness Down\n

    Notify(\_SB.PCI0.LPCB.PS2K, 0x0405)\n

end;

into method label _Q12 replace_content

begin

// Brightness Up\n

    Notify(\_SB.PCI0.LPCB.PS2K, 0x0406)\n

end;

5) Power management patch
Choose ONLY one between: Experimental technique: XCPM only , Custom SSDT.aml using ssdtPRGen.sh - install the beta version (for Skylake CPU and be sure https://github.com/Piker-Alpha/ssdtPRGen.sh/blob/Beta/Data/Skylake.cfg is included in ~/Library/ssdtPRGen/Data/), HPWEnable with config.plist.
Note: I suggest to use Custom SSDT.aml using ssdtPRGen.sh as the CPU is supported.
Related Geekbench 4 test: https://browser.geekbench.com/v4/cpu/14431751, https://browser.geekbench.com/v4/cpu/14432806

6) WiFi Card software implementation (Read FAQs "BCM94352 requirements")
Install FakePCIID.kext and FakePCIID_Broadcom_WiFi.kext, BrcmPatchRAM2 and
BrcmFirmwareRepo.kext.
5Ghz patch not necessary.
For bluetooth add to KextsToPatch in clover.config (https://github.com/RehabMan/OS-X-BrcmPatchRAM, see my config.plist):
Code:
<dict>
   <key>Comment</key>
   <string>10.11.dp1+ BT4LE-Handoff-Hotspot, credit RehabMan based on Dokterdok original</string>
   <key>Find</key>
   <data>SIX/dEdIiwc=</data>
   <key>Name</key>
   <string>IOBluetoothFamily</string>
   <key>Replace</key>
   <data>Qb4PAAAA60Q=</data>
</dict>

9) My custom SSDT for USBInjectAll.kext is the following (NO USB3 devices were injected, even if two ports of the 3 are USB3):
Code:
// SSDT-UIAC-ALL.dsl
//
// This SSDT can be used as a template to build your own
// customization for USBInjectAll.kext.
//
// This SSDT contains all ports, so using it is the same as without
// a custom SSDT.  Delete ports that are not connected or ports you
// do not need.
//
// Change the UsbConnector or portType as needed to match your
// actual USB configuration.
//
// Note:
// portType=0 seems to indicate normal external USB2 port (as seen in MacBookPro8,1)
// portType=2 seems to indicate "internal device" (as seen in MacBookPro8,1)
// portType=4 is used by MacBookPro8,3 (reason/purpose unknown)
//
// NO USB3 PORTS ARE INJECTED
//

DefinitionBlock ("", "SSDT", 2, "hack", "_UIAC", 0)
{
    Device(UIAC)
    {
        Name(_HID, "UIA00000")

        Name(RMCF, Package()
        {
            "8086_9dxx", Package()  // examples: 0x9d2f, 0x9ded
            {
                "port-count", Buffer() { 18, 0, 0, 0 },
                "ports", Package()
                {
                    "HS02", Package() // HS USB right up
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HS03", Package() // HS USB right down
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 3, 0, 0, 0 },
                    },
                    "HS04", Package() // HS USB left
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                    "HS05", Package() // camera
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 5, 0, 0, 0 },
                    },
                    "HS07", Package() // bluetooth
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 7, 0, 0, 0 },
                    },
                },
            },
        })
    }
}
//EOF

Working features
  • if videos are not working install flash player and reboot.
  • sleep (acpi "instant wake" patch is necessary).
  • keyboard backlight enable/disable -> fn (control) + space
  • Bluetooth and WiFi after card replacement
  • Gestures: 2 finger scroll, 3 finger swipe (L and R), PinchToZoom, rotate, go back or forward with 2 fingers (see most updated VoodooPS2Controller.kext)
Not working features
  • SDcard reader (a user reported it can be fixed with Sinetek-rtsx.kext)
Installing Windows 10 after MacOS is installed
Make sure the BIOS is configured properly.
For dual boot make sure you add inf drivers to install.wim, using DISM gui, for ssd to be read during Windows 10 setup. Format (as NTFS, within the Windows installer) the placeholder HFS+J partition created with diskutil in MacOS (I get an error during setup but somehow after creating a new bootable usb it got solved: https://www.tonymacx86.com/threads/...next-to-macos-high-sierra-on-same-ssd.239403/).

Format USB with terminal:
Code:
 diskutil eraseDisk FAT32 USB GPT /dev/disk2

After installation is completed you won't be able to see clover bootloader at start. Using cmd.exe with administrator priviledges:
Code:
mountvol P: /S
mount the EFI partition,
Code:
P:
Code:
cd EFI\Microsoft\Boot
access the partition
Code:
move bootmgfw.efi bootmgfw-orig.efi
rename the Windows bootloader file.

Personal notes
  • system_profiler
  • fans control -> intel app
  • For sleep (start+alt+insert = alt option+cmd+eject)
Keyboard:
  • eject = insert
  • cmd = Alt = AltGr
  • Alt Option = Start
  • Fn = Fn
  • Control = Ctrl
Key logs:
Code:
default    23:06:41.903320 +0100    kernel    ACPIDebug: "EC _Q11 enter"

default    23:06:41.905924 +0100    kernel    ACPIDebug: "EC _Q11 exit"

F11



default    23:06:46.545831 +0100    kernel    ACPIDebug: "EC _Q12 enter"

default    23:06:46.547385 +0100    kernel    ACPIDebug: "EC _Q12 exit"

F12



default    23:06:55.884069 +0100    kernel    ACPIDebug: "EC _Q44 enter"

default    23:06:55.884294 +0100    kernel    ACPIDebug: "EC _Q44 exit"

F4



default    22:08:19.706744 +0100    kernel    ApplePS2Keyboard: sending key 3f=60 down

default    22:08:19.839885 +0100    kernel    ApplePS2Keyboard: sending key 3f=60 up

F5



default    22:08:34.386758 +0100    kernel    ApplePS2Keyboard: sending key e05b=3a down

default    22:08:34.389130 +0100    kernel    ApplePS2Keyboard: sending key 26=25 down

default    22:08:34.611671 +0100    kernel    ApplePS2Keyboard: sending key e05b=3a up

default    22:08:34.615547 +0100    kernel    ApplePS2Keyboard: sending key 26=25 up

F9



default    22:08:39.417449 +0100    kernel    ApplePS2Keyboard: sending key e05b=3a down

default    22:08:39.420193 +0100    kernel    ApplePS2Keyboard: sending key 19=23 down

default    22:08:39.424453 +0100    kernel    ApplePS2Keyboard: sending key 19=23 up

default    22:08:39.431010 +0100    kernel    ApplePS2Keyboard: sending key e05b=3a up

F10



default    22:08:55.437706 +0100    kernel    ApplePS2Keyboard: sending key e037=0, 0=80 down

default    22:08:55.652938 +0100    kernel    ApplePS2Keyboard: sending key e037=0, 0=80 up

PRTSC



default    22:08:59.427663 +0100    kernel    ApplePS2Keyboard: sending key e052=92 down

default    22:08:59.668309 +0100    kernel    ApplePS2Keyboard: sending key e052=92 up

INSERT

Installing linux
Remember to change boot order after installation if clover doesn't show up.
Do that using
Code:
sudo efibootmgr
sudo efibootmgr -o XXX,XXX,XXX

Special thanks to
RehabMan
without whom my machine wouldn't work.

Hey Uchika

I have got the trackpad to work properly using the ApplePS2SmartTouchPad.kext - It now appears as proper touchpad in system prefs :)

I am still having issues with my Geekbench score, the laptop feels stable but it's appearing very low in comparison to your score you posted - if you have a chance could I grab a copy of your .EFI just to see if I have messed something up :)

-

For anyone reading remove the VoodooPS2Controller Kext using

sudo rm -rf /Library/Extensions/VoodooPS2Controller.kext

And install the ApplePS2SmartTouchPad.kext using Hackintool
 
Last edited:
... the screen won’t turn on if the system boots with a monitor attached ...
Hi, you mean that the screen on your PC won't turn off? Can you try different SMBIOS? I have some problems when connecting to HDMI too, I think that you need properly patched backlight control (as suggested by Rehabman in some answers) and kexts installed in the correct way.

I will attach a copy of my EFI soon.
 
too lazy to read, but does audio work stable on HDMI?
I can check this when I can connect to an HDMI monitor, stay tuned :D
 
Hey Uchika

I have got the trackpad to work properly using the ApplePS2SmartTouchPad.kext - It now appears as proper touchpad in system prefs :)

I am still having issues with my Geekbench score, the laptop feels stable but it's appearing very low in comparison to your score you posted - if you have a chance could I grab a copy of your .EFI just to see if I have messed something up :)

-

For anyone reading remove the VoodooPS2Controller Kext using

sudo rm -rf /Library/Extensions/VoodooPS2Controller.kext

And install the ApplePS2SmartTouchPad.kext using Hackintool

I have uploaded a bug report on post #1 that should contain everything you need ;)
 
too lazy to read, but does audio work stable on HDMI?
See point 11), I have fixed audio and HDMI problems following that guide if you are still interested.
 
I've created a custom voodoops2controller with modifying resolution and scrollresolution so it feels better to use, still need to set tracking speed to max though in system preferences.
In case for anyone who uses custom precision touchpad when using windows like me, and it feels weird with default setting of the kext.

Edit: Also forgot that the best layout-id for applealc is so far 15. But the only working internal mic is the right one.
 

Attachments

  • VoodooPS2Controller.kext
    4 KB · Views: 125
Last edited:
I've created a custom voodoops2controller with modifying resolution and scrollresolution so it feels better to use, still need to set tracking speed to max though in system preferences.
In case for anyone who uses custom precision touchpad when using windows like me, and it feels weird with default setting of the kext.

Edit: Also forgot that the best layout-id for applealc is so far 15. But the only working internal mic is the right one.
Thanks for sharing. I have just updated my bootloader to OpenCore. I will share my configuration in a new post.
 
Thanks for sharing. I have just updated my bootloader to OpenCore. I will share my configuration in a new post.

Is it stable or nah?
 
Status
Not open for further replies.
Back
Top