Contribute
Register

[Guide] Thinkpad X1 Yoga (3rd Gen) 20LD with Mojave

Status
Not open for further replies.
Thanks for the update shockingpants. I've been following the Lenovo forums as well and am dismayed by their lack of acknowledgment of the power issues.

Just wanted to chime in on a couple of things.

1) I would perhaps try to find the most recent Dell drivers for your wi-fi card. I swapped in a DW1830 instead of the DW1560 (added an antenna) and with the latest bios update and wifi drivers, I'm getting better battery life on Windows (~6-7 hours at 40% screen brightness.) Still testing, but will update as I learn more. I can't recall exactly how I found the most recent 1830 drivers, but it took some digging through the dell support page (i.e. not just a google search).

2) In case anyone is curious, I tried implementing the linux sleep patch for the X1Y3 (https://gist.github.com/rickybrent/1dabaf78ad03c290aa97489bef7d36fb) by going through the DSDT post-patches and deleting / adding the requisite sections. Doesn't seem to have much if any impact. System sleeps, but battery drain is still significant.

I'm holding out hope that the next major update of the Bios (1.30) contains the sleep fix like it did on v 1.30 the X1C6. Seems like this "modern sleep" is not quite the advantage that Lenovo thought it would be ....
 
So update. I seem to have gotten S3 Sleep working. See attached screenshot of my pmset log. I put the computer to sleep at 10:47 last night at 50% battery and woke it up this morning at 5:21 at 48%. I then tried sleep again from 5:22 to at 48% to 8:11 at 47%.

I'll need to reverse engineer everything over the next couple of days to make it repeatable, but the process involved three key changes.

1. I implemented the linux sleep patch for the X1Y3: https://gist.github.com/rickybrent/1dabaf78ad03c290aa97489bef7d36fb. The manner in which I did it was to follow the linux bios configuration instructions (mostly enable thunderbolt 3) and then individually go through the DSDT to delete the lines that are to be deleted and then added the S3 section at the bottom of the patch. I did this after I implemented all the other patches indicated in shockingpants guide.

2. I debugged pmset -g log to determine what assertions were keeping the computer awake. Often I would close the lid and the computer would try to sleep but it would keep waking and then sleeping such that there was significant battery drain. I in particular had an issue with the USB 3.0 card reader. After using FakePCIID_XHCImux.kext and editing the SSDT-UIAC to change the connector type on port SS03 from connector-type 3 to connector-type 255 (or FF in hex), the card reader shows up as built-in and not external and there are no more kernel assertions from USB in pmset.

3. I changed hibernatemode from 0 to 3 using pmset -a hibernatemode 3.

Will try and figure out what else I did, but those were the three big things.
 
Hi op, I have been following your post in these two days and finally got it working, thank you so much. Now I have a problem to connect the laptop to external monitor. I was able to connect it to a 2k monitor with usb type c while charging with the same port in Windows 10, which is fantastic as I only need one cable all the time. But now as soon as I connect the monitor to x1 y3 with usb type c, the os reboots and loops, and then I try use usb type c to dp connection, and HDMI to HDMI, none of them works. Any suggestion to get it work?
Also any idea how to get the screen auto rotate while in the tent mode?
 
Thanks for the update on S3 sleep @bigredarthur. Glad to hear that it is working. I'll update the repo once I get it to work too!
 
Hi op, I have been following your post in these two days and finally got it working, thank you so much. Now I have a problem to connect the laptop to external monitor. I was able to connect it to a 2k monitor with usb type c while charging with the same port in Windows 10, which is fantastic as I only need one cable all the time. But now as soon as I connect the monitor to x1 y3 with usb type c, the os reboots and loops, and then I try use usb type c to dp connection, and HDMI to HDMI, none of them works. Any suggestion to get it work?
Also any idea how to get the screen auto rotate while in the tent mode?

I encountered a similar problem, and I managed to somewhat solve it by fixing EDID. Have you checked out - Fixing EDID (Black screen on boot, or connected to external display)
 
thanks for sharing...
But don't you need USB power management SSDT-USBX?
https://www.tonymacx86.com/threads/guide-usb-power-property-injection-for-sierra-and-later.222266/

Do you have any issue for Bluetooth after sleep?

Does thunderbolt show anything in System Report?

How about your Geekbench score?

Well, in the past, I had no problem with bluetooth working after 'sleep' because sleep wasn't working. With the update from @bigredarthur, I am now encountering the same issue with bluetooth.

For thunderbolt, nothing appears except for "no drivers are loaded"

For Geekbench score
Single - 4631 Multi - 12287
 
Last edited:
FWIW, I don’t have the Bluetooth missing after sleep problem but I’m also using a dw1830 instead of the dw1560 card so that could be the cause.

In order to get BT to run trouble free I had to change the port to internal using @headkaze hackintool and remove the unused ports (HS05/HS06/USR1/USR2) and create the usbports Kext.

Don’t know if this is helpful, but I do lose Bluetooth when I boot into OSX after I’ve been on windows. The issue seems to be a SMC Key (bluetoothactivecontrollerinfo if I recall correctly). If I delete it with nvram -d and reboot it comes back.

@Cabriolet I can confirm thunderbolt is working. It only shows up when you have a thunderbolt device plugged in at boot and there’s obviously no hot plug. But had no problem with the Lenovo TB3 docks at work.

@shockingpants can you watch iTunes drm content? I get full hw encoding (confirmed with videoproc) but no shikiflags or combination of settings I can find can fix the issue.
 
@nlife7 I had that problem but fixed it by using a different platform-id and changing the port type. FWIW, I use 0x00001659 and changed the connector type on con-1 to HDMI from DP. See post on Intel FB patching using Whatevergreen.
 
Status
Not open for further replies.
Back
Top