Contribute
Register

[GUIDE] Lenovo Yoga 920

Status
Not open for further replies.
Joined
Jul 4, 2018
Messages
52
Motherboard
Yoga 920-13IKB
CPU
i7-8550u
Graphics
UHD620
1566494634735.png

Hardware
CPU: I7-8550u
GPU: UHD620
RAM: 16GB 2400MHz DDR4
SSD: I don't remember which Samsung SSD is in here but it is fully compatible with no extra work
Wi-Fi/Bluetooth Card: Has an incompatible Qualcomm card. I replaced it with the Lenovo BCM94352Z. Either this laptop has no whitelist, or that specific card is in the whitelist; however, the service manual does not say that this card is compatible so I am assuming there is no whitelist.
Audio: ALC298
4k screen



What Doesn't Work
Fingerprint Sensor
Many of the function buttons (paper display, refresh, airplane mode, lock, switch display, disable camera only sometimes works)
Graphical glitches in games if you pull the mouse to the top or bottom and pull up the dock or menu bar
The USB3 on the USB-C ports is on the ThunderBolt controller, so you will only get hot plug if whatever adapter you plug in only gets USB2, or something else (HDMI, DVI)
I haven't tested it with this version, but on an older version USB-C Displayport/HDMI wouldn't get audio
Sleep doesn't actually put the computer to sleep. The screen turns off and it goes into a lower power mode but the indicator light shows that it is still on
Trackpad never works after an update and requires one or two reboots
Maybe other things I haven't tested
What Works
Pretty much everything else I've tested



INSTALL
Follow RehabMan's guide for installation, you will need a usb mouse.
Pre-Catalina Beta 5 (including Mojave and High Sierra), a different config was needed to boot the installer (config - updates.plist). For Beta 5 and 6 the regular config file has worked better.
ApfsDriverLoader
AppleImageCodec
AppleKeyAggregator
AppleKeyFeeder
AppleUITheme
AudioDxe
DataHubDxe
EmuVariableUefi
EnglishDxe
Fat
FirmwareVolume
FSInject
HashServiceFix
NvmExpressDxe
OsxAptioFixDrv
PartitionDxe
SMCHelper
UsbKbDxe
UsbMouseDxe
VBoxHfs
ACPIBatteryManager
AppleAlc
BrcmBluetoothInjector (Get the three Broadcom kexts from: https://insanelymac.com/forum/topic/339175-brcmpatchram2-for-1015-catalina-broadcom-bluetooth-firmware-upload/)
BrcmFirmwareData
BrcmPatchRAM2
FakeSMC (and all the other kexts that come with it)
Lilu
USBInjectAll
VoodooI2C
VoodooI2CHID
VoodooPS2Controller
WhateverGreen



POST-INSTALL
Follow this guide for extracting your DSDT

Apply the following patches to your DSDT:
GPIO Controller Enable and Windows 10 Patch from VoodooI2C source
OS Check Fix (Windows 10), _WAK Arg0 v2 from RehabMan's source
into method label B1B2 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B2, 2, NotSerialized) { Return(Or(Arg0, ShiftLeft(Arg1, 8))) }\n
end;
into method label B1B4 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B4, 4, NotSerialized)\n
{\n
Store(Arg3, Local0)\n
Or(Arg2, ShiftLeft(Local0, 8), Local0)\n
Or(Arg1, ShiftLeft(Local0, 8), Local0)\n
Or(Arg0, ShiftLeft(Local0, 8), Local0)\n
Return(Local0)\n
}\n
end;
into method label RE1B parent_label H_EC remove_entry;
into method label RECB parent_label H_EC remove_entry;
into device label H_EC insert
begin
Method (RE1B, 1, NotSerialized)\n
{\n
OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
Return(BYTE)\n
}\n
Method (RECB, 2, Serialized)\n
// Arg0 - offset in bytes from zero-based EC\n
// Arg1 - size of buffer in bits\n
{\n
ShiftRight(Add(Arg1,7), 3, Arg1)\n
Name(TEMP, Buffer(Arg1) { })\n
Add(Arg0, Arg1, Arg1)\n
Store(0, Local0)\n
While (LLess(Arg0, Arg1))\n
{\n
Store(RE1B(Arg0), Index(TEMP, Local0))\n
Increment(Arg0)\n
Increment(Local0)\n
}\n
Return(TEMP)\n
}\n
end;
into device label H_EC code_regex B1TM,\s+16, replace_matched begin TM10,8,TM11,8, end;
into device label H_EC code_regex B1VT,\s+16, replace_matched begin VT10,8,VT11,8, end;
into device label H_EC code_regex B1CR,\s+16, replace_matched begin CR10,8,CR11,8, end;
into device label H_EC code_regex B1RC,\s+16, replace_matched begin RC10,8,RC11,8, end;
into device label H_EC code_regex B1FC,\s+16, replace_matched begin FC10,8,FC11,8, end;
into device label H_EC code_regex B1DC,\s+16, replace_matched begin DC10,8,DC11,8, end;
into device label H_EC code_regex B1DV,\s+16, replace_matched begin DV10,8,DV11,8, end;
into device label H_EC code_regex BDCW,\s+16, replace_matched begin DCW0,8,DCW1,8, end;
into device label H_EC code_regex BDCL,\s+16, replace_matched begin DCL0,8,DCL1,8, end;
into device label H_EC code_regex B1DT,\s+16, replace_matched begin DT10,8,DT11,8, end;
into device label H_EC code_regex B2DT,\s+16, replace_matched begin DT20,8,DT21,8, end;
into device label H_EC code_regex B1CY,\s+16, replace_matched begin CY10,8,CY11,8, end;
into device label H_EC code_regex BCRT,\s+16, replace_matched begin CRT0,8,CRT1,8, end;
into device label H_EC code_regex B1CH,\s+32 replace_matched begin CH10,8,CH11,8,CH12,8,CH13,8 end;
into device label H_EC code_regex (BARL,)\s+(64) replace_matched begin BARZ,%2,//0x06 end;
into device label H_EC code_regex (BARH,)\s+(64) replace_matched begin BARY,%2,//0x0E end;
into device label H_EC code_regex (B1MA,)\s+(64) replace_matched begin B1MX,%2,//0x80 end;
into device label H_EC code_regex (B1DN,)\s+(64) replace_matched begin B1DX,%2,//0x88 end;
into device label H_EC code_regex (SMD0,)\s+(256) replace_matched begin SMDY,%2,//0x1C end;
into method label GSBI code_regex \(B1TM, replaceall_matched begin (B1B2(TM10,TM11), end;
into method label GSBI code_regex \(B1VT, replaceall_matched begin (B1B2(VT10,VT11), end;
into method label _BST code_regex ECRD\s\(RefOf\s\(B1VT\)\) replaceall_matched begin B1B2(VT10,VT11) end;
into method label GSBI code_regex \(B1CR, replaceall_matched begin (B1B2(CR10,CR11), end;
into method label _BST code_regex ECRD\s\(RefOf\s\(B1CR\)\) replaceall_matched begin B1B2(CR10,CR11) end;
into method label GSBI code_regex \(B1RC, replaceall_matched begin (B1B2(RC10,RC11), end;
into method label _BST code_regex ECRD\s\(RefOf\s\(B1RC\)\) replaceall_matched begin B1B2(RC10,RC11) end;
into method label GSBI code_regex \(B1FC, replaceall_matched begin (B1B2(FC10,FC11), end;
into method label _BIF code_regex ECRD\s\(RefOf\s\(B1FC\)\) replaceall_matched begin B1B2(FC10,FC11) end;
into method label GSBI code_regex \(B1DC, replaceall_matched begin (B1B2(DC10,DC11), end;
into method label _BIF code_regex ECRD\s\(RefOf\s\(B1DC\)\) replaceall_matched begin B1B2(DC10,DC11) end;
into method label GSBI code_regex \(B1DV, replaceall_matched begin (B1B2(DV10,DV11), end;
into method label _BIF code_regex ECRD\s\(RefOf\s\(B1DV\)\) replaceall_matched begin B1B2(DV10,DV11) end;
into method label GSBI code_regex \(BDCW, replaceall_matched begin (B1B2(DCW0,DCW1), end;
into method label GSBI code_regex \(BDCL, replaceall_matched begin (B1B2(DCL0,DCL1), end;
into method label GSBI code_regex \(B1DT, replaceall_matched begin (B1B2(DT10,DT11), end;
into method label GSBI code_regex \(B2DT, replaceall_matched begin (B1B2(DT20,DT21), end;
into method label GBID code_regex \(B1CY, replaceall_matched begin (B1B2(CY10,CY11), end;
into method label SMTF code_regex \(BCRT, replaceall_matched begin (B1B2(CRT0,CRT1), end;
into method label GSBI code_regex \(B1CH, replaceall_matched begin (B1B4(CH10,CH11,CH12,CH13), end;
into method label GSBI code_regex \(B1DN, replaceall_matched begin (RECB(0x88,64), end;
into method label GSBI code_regex \(B1MA, replaceall_matched begin (RECB(0x80,64), end;
into method label _BIF code_regex \(B1MA, replaceall_matched begin (RECB(0x80,64), end;
into method label GSBI code_regex \(BARL, replaceall_matched begin (RECB(0x06,64), end;
into method label GSBI code_regex \(BARH, replaceall_matched begin (RECB(0x0E,64), end;
into method label BATD code_regex ECRD\s\(RefOf\s\(\^\^PCI0\.LPCB\.H\_EC\.BARN\)\) replaceall_matched begin RECB(0x1C,256) end;
into method label _Q38 replace_content
begin
Notify (PS2K, 0x0406)
end;
into method label _Q39 replace_content
begin
Notify (PS2K, 0x0405)
end;
After you're done compile it as aml and place in Clover/ACPI/Patched

Compile SSDT-PNLF.dsl from the WhateverGreen download as aml and place in Clover/ACPI/Patched for brightness

Add the SSDT-EC and SSDT-UIAC in Clover/ACPI/Patched for USB



Open terminal and run these commands for sleep
Code:
sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
sudo mkdir /var/vm/sleepimage
sudo pmset -a standby 0
sudo pmset -a autopoweroff 0
 

Attachments

  • config.plist
    9.7 KB · Views: 406
  • config - updates.plist
    12.3 KB · Views: 308
  • SSDT-EC.aml
    91 bytes · Views: 357
  • SSDT-UIAC.aml
    348 bytes · Views: 313
I found the behavior you describe just the same as mine Yoga C930's. Exactly the same spec, no real S3 sleep, and the new sound bar even makes it worser with non functional internal mic. However, I think you can also get the USB3 ports working with a common TB3 hotplug SSDT. (Like any SSDT from this one but remember to match the correct RP0X: https://www.tonymacx86.com/threads/in-progress-ssdt-for-thunderbolt-3-hotplug.248784/)
 
There are Clover patches for your DSDT afaik, why extracting? I'll check out Catalina with my "new" Yoga 910, looking forward to it! Should be a bliss...
 
There are Clover patches for your DSDT afaik, why extracting? I'll check out Catalina with my "new" Yoga 910, looking forward to it! Should be a bliss...
The 910 and 920 are different. The 910 patches don’t work for the 920.
 
Lenovo Yoga 920 running 10.15.1 with only two question marks left. Thanks for this tutorial that got me started.

There is actually no need to prevent the Yoga 920 from going to sleep, as it goes to sleep and wakes up without an issue. However, if VoodooI2C.kext (ver. 2.2) is loaded (regardless of whether it's injected or put into /Library/Extensions), sleep is broken.

The second problem I'm having is that audio over USB-C (LG 38UC99) ins't working reliably.
 
I actually don’t have this laptop anymore. I also never tried to use any sort of audio device through the USBC port so I can’t offer any insight there.
 
I managed to set up my Yoga 910 almost perfect. Only the position and the fingerprint sensor are not working, other than that everything is just as smooth as on my Air. That is a perfect laptop as a Hackintosh, clearly never had any better user experience on a hack.
 
I managed to set up my Yoga 910 almost perfect. Only the position and the fingerprint sensor are not working, other than that everything is just as smooth as on my Air. That is a perfect laptop as a Hackintosh, clearly never had any better user experience on a hack.

So you're saying that also sleep is working faultlessly?
 
Absolutely! Just like real Mac.

Thank you for answering. Sleep works for me on my 920 as well as long as I don't use VoodooI2C. Do you also use VoodooI2C and, if so, which version?
 
Status
Not open for further replies.
Back
Top