Contribute
Register

<< Solved >> Lenovo Yoga c930-13IKB

Status
Not open for further replies.
Thanks so much, I didn't know Hackintool existed! By the way, is there a list of kexts that MUST be in Clover>kexts>Other? Because I keep reading only essential kexts should be there, but I am yet to find a list of essential kexts. Currently I have three Voodoo kexts, FakeSMC, IntelGraphicsDVMTFixup, USBInjectAll in there. The rest are in /L/E.

Edit: Hackintool sadly didn't help with anything and I had to patch config.plist manually.

Below are notes for myself for when I am making a guide, in case I don't get to ever doing that, the notes will be here already.

Hardware

The installed PM981 will NOT WORK. Don't try. Replace it with 970 EVO for amazing read/write speeds.
The installed Intel 9260 wifi will NOT WORK and neither will bluetooth. Don't try. Replace it with a Broadcom card. (Mine is on its way and I am a bit scared it's not whitelisted, but I will see. For now I don't need Bluetooth and I have a USB Archer T1U dongle.)

Software needed

Other than the install stick, you need Clover (duh), Clover Configurator, iasl (RehabMan's) and MaciASL (RehabMan's). I found Kext Utility very useful as well for installing kexts and fixing the permissions. For sound I needed to get AppleHDA from 10.13.3 before they changed the inject methods, will be discussing this with its maker later. My EFI will be uploaded when I am done with it, but DSDT has to be patched manually (patches will be uploaded or described below).

Install

As per RehabMan's guide for laptops. Plist is 620_630_spoof.plist, EXCEPT before installing anything replace the piatform-id with 0x12345678 and be prepared to need either very good eyesight for the install or a magnifying glass. A USB mouse is needed as neither bluetooth nor trackpad will work. System I use is Mojave .2. Must be installed on an external drive for obvious reasons as the internal doesn't work unless it's already been replaced with another one that's macOS compatible.

I only use RehabMan's forks of everything and frankly I have no idea when he sleeps. I used to think "that copy-paste about reporting files is irritating" until I realised HOW much work RehabMan puts into everything including helping people on one-one basis. Thank you, RehabMan.

Post-install

To be honest, I couldn't get it running post-install, even though it worked previously in the same way. So I ended up cloning my test drive, then restoring everything from Time Machine copy of my Big Hac. I had to delete about two desktop-specific apps, but the laptop-specific apps were kept on the laptop. This is why I install macOS (among many other reasons).

EFI will need to be replaced by mine, which I will upload when I am done with it. Patching DSDT will be required. USB3 works with USBInjectAll. No Thunderbolt from what I see, I'll get to it later. For now I don't need it.

I was able to replace graphics platform/device ids with 5916*. I can't say I see any difference versus 1916* which I originally tried, but hey, it works.

Out of the box

Keyboard (luckily!!!), non-accelerated QE/CI, USB-C 2.0 + USB-A 3.1 – just enough to continue working. Also camera, which is cool, and fans are hardware-controlled. The laptop is much cooler than with Windows. I think with Windows it goes on charging when the cable is connected, and macOS disables that once power is up to 95% or so. With Windows to stop the fans from being loud(ish) I had to keep the laptop disconnected from power.

USB/Thunderbolt

USB-C ports work. Unfortunately, USB-C 3.0/3.1 hotplug doesn't work. Therefore in order to use a USB-C 3.0/3.1 device it must be connected *before Clover boot*, it will then appear in the registry and everywhere else, once disconnected it can't be reconnected. It looks like this is "normal". :( When connecting USB-C 2.0 hub/device hotplug works.

Touchscreen

With 5916* device/platform-id all works with full acceleration (once right kexts are installed). Fn+F11/Fn+F12 don't generate any events, probably ACPI ones, but 1) I never use those keys anyway, and 2) F11/F12 are detected, so now BetterTouchTool handles brightness for me.

Interestingly, brightness slider worked without *any* of the *Backlight*.kexts – I added AppleBacklightFixup and relevant SSDT, but I can't say I see any difference. Still, hoping it will help me resolve the no backlight on wake problem somehow.

'LOL'

Wacom Touchscreen is identified as WCOM5196, HID I2C device, under TPD0. The pen works as a mouse, possibly it does more than that, but so far I simply haven't checked.

The following DSDT patch is required:

1. Find _CRS method in TPD0

2. Replace

Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { If (LLess (OSYS, 0x07DC)) { Return (SBFI) } If (LEqual (SDM1, Zero)) { Return (ConcatenateResTemplate (SBFB, SBFG)) } Return (ConcatenateResTemplate (SBFB, SBFI)) }
with

Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Return (ConcatenateResTemplate (SBFB, SBFG)) }

Now the funny bit:

3. After the reboot the touchscreen works already, but in order to use the pen it's necessary to first touch the screen once with your finger. This activates something (possibly the screen itself). I tried poking it with a pen, because I hate fingerprints, then suddenly it was working and I was completely confused. Pen works as mouse. One button seems to disable it, the other as right-click. No pressure levels are detected despite Wacom Tablet software being installed.

Additional exciting thing (for me):

I bought this laptop partly because I needed a large tablet to read PDFs on. I thought Hackintoshing it is going to remove this possibility. Not at all. A little program called Display Rotation works perfectly. Possibly there even is a way to read the sensor in the laptop, but I really can't be bothered.

1. Turn the laptop into tablet mode, keyboard and trackpad switch off automagically.
2. Use the pen to dab Display Rotation in the menu, click on "Portrait".
3. Enjoy.
4. When you're done, switch back to "Landscape". Bear in mind this is easier to do with the pen, because once you return to laptop mode your trackpad essentially works sideways. This can be fun as a party game with a friend who had one too much, but irritating while you're actually trying it out six times in a row like me yesterday.

Touchpad

1. Pinning as reported by IOJones is perhaps correct, but doesn't work, so the whole GPIO Pinning article, while interesting, didn't help and I had to go for "other values".

2. Touchpad is the device TPL1 (SYNA2B31). In DSDT in TPL1 section replace pin with 0x55:

Name (SBFG, ResourceTemplate () { GpioInt (Level, ActiveLow, Exclusive, PullDefault, 0x0000, "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, , ) { // Pin list 0x55 // this was 0x00 } })

3. At the end, find the _CRS method in the TPL1 section and replace it with the same as above:

Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Return (ConcatenateResTemplate (SBFB, SBFG)) }

Kexts used are VoodooI2C and VoodooI2CHID. Touchpad works with gestures, multitouch, right-click in right-bottom, scrolling (isn't it interesting how macOS scrolling on a Windows laptop works so much better than Windows gestures?) works.

As an additional perk, the laptop stays much cooler under macOS than it ever really gets in Windows. The fans seem to be controlled fully by hardware, but the laptop is barely warm. In Windows I had Chrome and Device Management open and the fans went off, and the laptop was properly hot. In Windows this is caused by charging – as long as the charger is connected, and I have a habit of having it connected almost all the time, the fans will work. In macOS it just stops charging. The end.

Sound

AppleALC is now being used. Below my journey (that took many hours...)

I am using the latest AppleALC, Lilu, WhateverGreen, CodecCommander. BUT! The only way I got them to work was by replacing original Mojave AppleHDA with High Sierra 10.13.3 version! I found out about this solution through reading a very long thread at another forum. I needed to use a rather inelegant hack as well:

<dict>
<key>PciRoot(0x0)/Pci(0x1f,0x3)</key>
<dict>
<key>alc-layout-id</key>
<data>
HQAAAA==
</data>
<key>layout-id</key>
<data>
HQAAAA==
</data>
</dict>
</dict>
Without manually inserting alc-layout-id ALC refused to actually set it, either from boot parameter alcid, or from just layout-id, whether added using Hackintool or just set as "Inject Audio". The layouts that work are 29 (best), 3, 66. Layouts 3 and 66 do not detect internal microphone. Layout 29 detects it and shows it, but it doesn't actually work.

Paired with Boom 3D the speakers sound very much acceptable. Unfortunately when I connect headphones Boom 3D doesn't get the hint that it needs to switch off and I end up with, aye, booming audio.

I tried to use RehabMan's SSDT-ALC298 and SSDT-ALC298a patches, but they don't seem to change anything (compiled to .aml using RehabMan's fork of MaciASL). Listening to Spotify now and I could actually turn down the volume, because it was a bit on the deafening sound of things. Strangely enough, it's still perhaps half the loudness achieved under Windows, but then, this laptop has Dolby Atmos which I am giving up for macOS. (Fair exchange if you ask me.)

F1/F2/F3 work as volume keys once the audio works at all. F6 disables touchpad (hardware). Keyboard backlight (Fn+Space) works (hardware).

Not working

Closing the lid permanently disables backlight no matter what I do with EDID (95 = hang on open, A5 = no backlight, B5 = won't boot – black screen, 80 = hang on open). Therefore wake doesn't work in any useful way, as an external display doesn't switch on either. I wonder whether what is being disabled is the display or the UHD 620? According to IOJones EDID is correctly identified without injecting anything, but it doesn't help.

Battery is ****, to be honest, possibly because I need to work on energy management. But I use it connected to the charger most of the time.

Neither internal nor external mic work.

Hotplugging USB 3.1 to USB-C doesn't work.

Summary

Geekbench 4:
single core 4564
multicore 15330

Blackmagic Disk Test with 970 EVO:
write: 2418 MB/s
read: 2879 MB/s

I was hoping it would be possible to Hack this laptop, but never expected almost everything including touchscreen to work!

Sadly, none of this work would be necessary if MBP 2018 keyboards didn't break on me within around two weeks.
 
Last edited:
Boo. I've spent the whole day following guides, patching EDIDs, SDSTs, adding and removing various kexts and patches, yet got nowhere. Here are the problems:

1. Wake

Brief Apple>Sleep and wake before 15 seconds or so pass works as it should. So does closing the lid for 15 seconds. My WiFi dongle has a little diode showing activity, when it goes out it means the laptop is actually asleep (the socket is powered, but the app stops working) – no more waking for me. Without the WiFi dongle the situation is the same, only I have to count to 30 or so. ;)

On wake the screen is black, no backlight. Various values as replacements in EDID for DisplayVendorID-xxx resulted in:
– 95: computer hangs completely on wake (hardware-controlled keyboard light doesn't react to Fn-Space)
– A5: "best" – screen doesn't work, but the backlight works
– B5: won't boot
– 80 (CinemaHD): computer hangs on wake

Tried EDID inject via Clover, adding and removing vendor/product ID, all I achieved was losing backlight control. The only way to get out of this state is long-press on power button. The EDID inject for the display doesn't change anything other than me managing to give it a name so I can see it's being used.

When I use a hot corner to switch the screen off, there are no problems.

2. USB-C

This is a very strange situation.

I created a patched SSDT-UIAC and SSDT-USBX. The results are...interesting.
1) If I start the laptop with a USB3 device connected to USB-C, it works. Once removed, it won't work anymore. The USB-C is powered, which I see because my SSD enclosure lights up. It just doesn't do anything else.
2) Hotplug doesn't work, unless...
3) I start it with something already connected to USB-C, and then the other USB-C allows hotplug/removal/hotplug! Once I disconnect both devices, the computer seems to give up on USB-C. (USB 2.0 devices work fine.)

USB 3.0 on USB-A works all the time.

Pairings:

USB-A:

HS07, SS01@14900000

USB-C:

HS06, SS01@00300000 <- why twice?
HS03, SS02@00400000

When I connect devices both to USB-A and USB-C on boot, SS01 appears in IOReg twice, with both @00300000 and @14900000 addresses.

3. Audio

I had problems using AppleALC. As per suggestion I found on another forum, I replaced AppleHDA kext with 10.13.3 version (before layouts were removed). Layout 29 gives me audio out both in speakers and headphones. Line-in and internal microphone are correctly displayed, but they don't actually work at all. With Mojave AppleHDA I got nowhere, using Hackintool, not using it, going through every single layout with various options checked and unchecked. I'm fine with the current state of affairs with the output, but I'd quite like to be able to enable the internal microphone for obvious reasons...

I believe I attached everything needed:
– EFI/Clover (without themes)
– IOReg output with and without USB-C 3.1 devices connected
– kextcache output
– patchmatic output
– source files for the patches (except ones I downloaded already compiled)

Thanks a lot for any help!
 

Attachments

  • yoga_c930.zip
    6.4 MB · Views: 87
Last edited:
Aaaaand the debug script... It failed to dump from IOReg, but those are in the previous file.
 

Attachments

  • debug_24220.zip
    5.1 MB · Views: 56
Ah – it's in kexts/Other. I still don't know which kexts must be in Clover – I keep seeing "essential" but I don't know which ones they are. Installing in /L/E. Should I also move the FakeSMC sensors/HWMonitor to /L/E? Or just not use them? Now everything is in kexts/Other.
 
Ah – it's in kexts/Other. I still don't know which kexts must be in Clover – I keep seeing "essential" but I don't know which ones they are. Installing in /L/E.
for example, FakeSMC is an essential kext as you need that to reach the installer

sensor kexts however, are not essential as they are not needed to reach the installer

same goes with audio

VoodooPS2Controller is essential as you need to be able to use your keyboard to boot the installer

laptop guide has more info as well:
https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/
 
Sooo... installing FakeSMC in /L/E causes my internal keyboard and trackpad to stop working... Adding it to kexts/Other didn't help either, I had to delete it from /L/E to get the keyboard and trackpad back.

(Thanks, by the way!)
 
Sooo... installing FakeSMC in /L/E causes my internal keyboard and trackpad to stop working... Adding it to kexts/Other didn't help either, I had to delete it from /L/E to get the keyboard and trackpad back.

(Thanks, by the way!)
because you need to install ALL KEXTS to /Library/Extensions

re read those links above
 
I installed (correctly) all kexts to /L/E, followed with sudo kextcache -i / and deleting all the kexts from Clover/kexts/Other and needed the external keyboard again... So I'm back to where I began, with FakeSMC, Voodoo*, and USBInjectAll in EFI/Clover/kexts/Other and the rest in /L/E as it was before. I understand what RehabMan is saying, it's just that for some reason it doesn't work for me, although judging by his explanation the opposite should be true, if anything...

According to alexandred, Voodoo* must be in Other. USBInjectAll doesn't seem to mind its location. But FakeSMC wants to be injected for some reason.
 
I installed (correctly) all kexts to /L/E, followed with sudo kextcache -i / and deleting all the kexts from Clover/kexts/Other and needed the external keyboard again... So I'm back to where I began, with FakeSMC, Voodoo*, and USBInjectAll in EFI/Clover/kexts/Other and the rest in /L/E as it was before. I understand what RehabMan is saying, it's just that for some reason it doesn't work for me, although judging by his explanation the opposite should be true, if anything...
assumed you changed config.plist InjectKexts->Detect ?

you will still need to keep essential kexts in clover/kexts/other as well
 
Status
Not open for further replies.
Back
Top