5T33Z0 / Lenovo-T530-Hackintosh-OpenCore

OpenCore folder for running macOS High Sierra up to Sequoia on the Lenovo ThinkPad T530 Laptop.
BSD 3-Clause "New" or "Revised" License
93 stars 12 forks source link

Improving Ventura Support on the Lenovo T530 #31

Closed jozews321 closed 1 year ago

jozews321 commented 1 year ago

I have a T430 and I've been testing Ventura for around a month and these are my findings (More like OCLP findings lol)

5T33Z0 commented 1 year ago

Thanks for the feedback and the tips!

Just figured out today, that the CPU is working without turbo. Workaround as you already figured out was force-enabling XCPM and generating an SSDT with PluginType 1.

I had to disable AMFI to be able to install the HD4000 drivers in Post. But if I can set that in NVRAM instead then this is great. Will try that!

Jan-E commented 1 year ago

Merry Xmas! On a new machine would the Clover version be easier than the OpenCore version for Ventura? Which one of the 2 is more future-prooof?

5T33Z0 commented 1 year ago

Both work, but the OC version contains the booter and kernel patches for the board-id vmm spoof which allow using MacBookPro10,1 SMBIOS and get System Updates. Since I don't know how to integrate the Booter Patches into Clover, you have to use -no_compat_check, so System Update Notifications won't work.

5T33Z0 commented 1 year ago

I just noticed that you can run Ventura without all the Kernel Patches required for enabling the Board-VMM spoof in Big Sur and newer (you still need the Booter patches, though to skip the board-id check). I don't know if this works for insttalling OS and the HD4000 drivers but for booting it's working fine.

Instead of the Kernel Patches, you just use RestrictEvents.kext with boot-arg revpatch=sbvmm or the equivalent NVRAM key to enable the spoof in OpenCore:

Bildschirmfoto 2022-12-27 um 16 47 01

This way, you can also can get System Updates in Clover. Although the Booter Patches can't be applied with Clover, using RestrictEvents, revpatch=sbvmm and -no_compat_check allows booting macOS Ventura as MacBookPro10,1 AND getting system updates, which wasn't possible before.

jozews321 commented 1 year ago

Hey continuing with the PM issues. I found the cause of the kernel panic when injecting AppleIntelCPUPowerManagement.kext and AppleIntelCPUPowerManagementClient.kext like the real Macs do with OCLP. I was getting this panic: Screenshot 2023-01-01 at 4 00 07 AM Dying in _IvybridgeCStateRegInit. The AppleCpuPmCfgLock Quirk was supposed to help unlocking the 0xE2 MSR and that's why in Monterey just works. but if those kext are injected with OC to use in Ventura the AppleCpuPmCfgLock Quirk doesn't work so for now its the 0xE2 MSR or CFG lock needs to be unlocked natively before OC Loads for the kexts to work.

So I found a kinda involved way of unlocking it in my T430 modifying the bios and flashing it.

Now the CFG Lock is always disabled and the injected kexts will work just fine and the system will be more stable and with a little better performance. I ran into some very weird wake issues with XCPM. Also if you do the mod you can disable permanently the AppleCpuPmCfgLock Quirk

There might be an easier way of doing this like Fixing CFG Lock says but I think that doesn't work with 2nd and 3rd gen Thinkpads

5T33Z0 commented 1 year ago

Thanks for the guide. I probably won't do this since my primary system is Catalina and I don't won't to mess with the BIOS again. I bricked it once before and had to flash it with a programmer and a clamp to revive it (I'm already on 1vyrain).

Where did you get the 2 kexts from to re-enable ACPI Power Management?

jozews321 commented 1 year ago

I think it might be a good idea to do a PR to unlock the MSR to every supported 1vyrain model cause its the same for every model i think. You can download the kexts that OCLP uses from https://github.com/dortania/OpenCore-Legacy-Patcher/tree/main/payloads/Kexts/Misc

5T33Z0 commented 1 year ago

Thanks a lot. Hey, I just injected both kexts with OC (and disabled the kernel patch for XCPM) and my system booted right away.

The kexts are injected according to kextstat:

Line 67:   com.apple.driver.AppleIntelCPUPowerManagement (222.0.0) 20DD89B4-45CE-3E56-A484-15B74E79ACDD <9 8 7 6 3 1>
Line 96:   com.apple.driver.AppleIntelCPUPowerManagementClient (222.0.0) B3E52B58-0634-333C-9A71-E99BE79F8283 <9 8 7 6 3 1>

X86 Plugin is not loaded:

sysctl machdep.xcpm.mode          
machdep.xcpm.mode: 0

And Intel Power gadget uses the correct values:

Bildschirm­foto 2023-01-01 um 13 45 34

Because when I am using XCPM, the low frequency is significantly higher: 1.2 Ghz, istead of 800 Mhz.

So I guess having 1vyrain installed unlocks 0xE2 MSR already.

jozews321 commented 1 year ago

That's weird I had 1vyrain installed and the MSR was locked for me. Can you try running the OC tool ControlMsrE2.efi and tell me if it says locked or unlocked?

5T33Z0 commented 1 year ago

It says UNLOCKED:

20230101_183859_HDR

I just realized I can also boot without AppleCpuPmCfgLock

5T33Z0 commented 1 year ago

I did some CPU benchmarking tests in Ventura.

I've also noticed that plugin type 0 is used when injectiong the AppleIntelCPUPowerManagement kexts – even when Plugin-Type 1 is enabled. So I disabled the kexts to make sure that XCPM is used. And then single core performance was significantly worse.

jozews321 commented 1 year ago

Doing some investigation in regard to your unlocked 0xE2 MSR I found that the 1vyrain modded bios for the T530 has that mod already applied EB080FBAE80F(Unlocked) in the place of 75080FBAE80F(Locked)

Screenshot 2023-01-01 at 2 20 13 PM

but the 1vyrain modded bios for the t430 doesn't have the mod applied having the stock 75080FBAE80F(Locked)

Screenshot 2023-01-01 at 2 24 14 PM

So that's why your CFG lock is already unlocked after installing 1vyrain and you don't need AppleCpuPmCfgLock

Also I can confirm with Xcpm the single core score is slightly lower using a i7 3610qm too

and with AICPUPM:

5T33Z0 commented 1 year ago

Ah, okay. I think you have 3 Options now:

sp4 commented 1 year ago

Thank you for the Christmas edition. It got me going on my W530 with i7 3740QM CPU and Kepler K1000M. I successfully upgraded to your latest EFI, and now the Intel Power Gadget works.

VDA Decoding works.

I have a couple of annoyances, very minor:

  1. iGlance can't report fan speed.
  2. Brightness keys don't work.
  3. rfkill functionality not working on FN+F5.
  4. Mic mute LED doesn't illuminate.

Should I open PRs for Fan and FN key support, or is there a simple fix for those issues?

The attention to detail in the system level functionality is much-appreciated. w530

5T33Z0 commented 1 year ago

No PRs, since you have a W530. No support.

I am going to upload a new EFI Release later in the day which brings back Plugin-Type 0 support for Ventura.

5T33Z0 commented 1 year ago

New EFI is up with Plugin-Type 0 support.

Requires a A BIOS where CFG lock can be disabled so the MSR 0x2E are unlocked, as pointed out by jozews321 previously.

sp4 commented 1 year ago

Requires a A BIOS where CFG lock can be disabled so the MSR 0x2E are unlocked, as pointed out by jozews321 previously.

I have 1vyrain on a W530 and it's showing as unlocked.

5T33Z0 commented 1 year ago

Should I add revblock=gmux as well? According to the description on the RestrictEvents repo it blocks displaypolicyd on Big Sur+. But it seems to be only relevant for real MacBookPro9,1/10,1: https://github.com/dortania/OpenCore-Legacy-Patcher/issues/116

jozews321 commented 1 year ago

It won't do anything, it's only related to the mux switch on real macs to fix the switching of the display from the IGPU to the DGPU

5T33Z0 commented 1 year ago

OT: does someone know hpw to use the disklabel utility? I don't understand how to use it. I want to change the label of a disk which is called "Monterey" in boot picker but it has "Ventura" on it now.

5T33Z0 commented 1 year ago

I've noticed issues with Spotlight when switching from one version macOS to another. I have Big Sur and Ventura on one disk currently. And whenever I switch, Spotlight indexing restarts and I don't know why. I've noticed this behavior on my Desktop as well. So far, I haven't find any explanations for this.

aguys123 commented 1 year ago

Sorry if it's not Thinkpad Laptop related.

I have an Acer Ivy Bridge Laptop and no CFG Lock option in the firmware (already searched in bios dump and using ControlMsrE2.efi). Is there any other way to unlock MSR? Since I can't use injected AICPM.kext using AppleCpuPmCfgLock quirk in Ventura.

5T33Z0 commented 1 year ago

Not that I know of. Could you just try injecting the kexts with the AppleCpuPmCfgLock quirk just for tests, though? Just to verify and make sure that it's not working with just the quirk. But keep a backup of your working EFI folder on a FAT32 formatted USB flash drive to recover if it doesn't work.

sp4 commented 1 year ago

@5T33Z0 I also have access to a T430. No joy.

image

5T33Z0 commented 1 year ago

Again, as pointed out by jozews321:

On my T530 CFG Lock is disabled so booting works. But it crashes the first time after deploying the EFI. After that it's working fine.

Otherwise you have to force-enable XCPM instead and disable AppleIntelCPUPowerManagement.kext and AppleIntelCPUPowerManagementClient.kext.

jozews321 commented 1 year ago

@sp4 Use this T430 cfg unlocked bios And follow the guide to upload to some http only server to flash it with 1vyrain

sp4 commented 1 year ago

@jozews321 thank you. The above guides worked on a NVS 5400m-equipped T430 with a dual-core CPU (i7 3520M) using your linked T430.rom. I'm booted into Ventura 13.0.1 with the recommended AppleIntelPower kexts from OCLP (configured the same way - minus an NVRAM clean). I verified this with kextstat | grep AppleIntelPower

As mentioned I had a repeatable panic in one of these kexts without the CFG unlock ability provided by your modded BIOS.

CDG_unlocked

Note: I use tools provided by IVPrep as follows: winflash64.exe /sd /file T430.rom to downgrade my BIOS inside a Win11PE environment created by Macrium8 Home.

sp4 commented 1 year ago

No PRs, since you have a W530. No support.

Note: [for whatever reason, coincidence?] regenerating a SSDT-PM.aml for my processor appears to have fixed the brightness keys FN+UP/DOWN.

5T33Z0 commented 1 year ago

I don't see how those 2 things could possibly be related but good to hear.

5T33Z0 commented 1 year ago

I can't fix this issue where the system is supposed to enter sleep on its own. Once the system turns off the screen and tries entering sleep, the fan ramps up. I left Intel Power Gadget open one time and noticed that the CPU an iGPU ramp up instead of shutting down. I have no idea how to fix this since sending it to sleep from the Apple menu or by pressing Fn+F4 work fine.

jozews321 commented 1 year ago

Weird my hack sleeps fine. maybe something is preventing the idle sleep, use pmset -g and look for something preventing sleep When I run the command I get the processes that are preventing sleep like this

Screenshot 2023-01-10 at 10 27 59 PM

sp4 commented 1 year ago

With Optimus am I out of luck for using DisplayPorts on my docking station or via miniDP? It seems that the path to these outputs goes through the dGPU.

5T33Z0 commented 1 year ago

The MiniDP port on my T530 works. I can use it with an MiniDP to DVI adapter. If yours doesn't, then it's most likely because DP is routed via the dGPU.

sp4 commented 1 year ago

If yours doesn't, then it's most likely because DP is routed via the dGPU.

In the BIOS I can only select MiniDP or "Digital" outputs on the docking station if I have Discrete Graphics selected. I'm thinking Monterey with its dGPU Kepler support will not help because acceleration isn't "display" functionality. At best I would get dumb frame-buffer support.

5T33Z0 commented 1 year ago

My T530 has no dGPU only Intel HD4000. My docking station has DVI and DP ports. My external Monitor is connected via DVI connected to the dock. If I find a DP to DVI cable I can test if that works as well.

Anywa:y you cannot select outputs via the dGPU since it's not supported. If the DP port doesn't work on your dock you have to create a connector patch in the framebuffer. The Optimus GPU is only used for 3D Acceleration – its output is still physically connected to the iGPU. So it doesn't matter which macOS you install, the result will be the same – despite the fact that Kepler is not supported by macOS Monterey.

sp4 commented 1 year ago

@5T33Z0 Please see Chris's Kepler bits.

I had a base unit for another T430 without the dGPU.; it's looking simpler already.

5T33Z0 commented 1 year ago

Yeah, well, I know this patcher. I've used it myself on my desktop. The fact it exists proofs my point: macOS Monterey does not support Kepler Cards. The drivers have been removed after Big Sur was released. ;)

I it leaves me puzzled that you think that this could somehow be used to enable your laptop's dGPU.

sp4 commented 1 year ago

Optimus is the problem I take it.

sp4 commented 1 year ago

@sp4 Use this T430 cfg unlocked bios And follow the guide to upload to some http only server to flash it with 1vyrain

I have an issue with this T430 BIOS, @jozews321. After making changes and saving them, I have twice now encountered a 5-beep condition associated with a RTC or processor error. Ignoring the beeps one eventually gets to a prompt where one can continue or press F1. So it isn't anything fatal. But the obvious solution of booting up and resetting the time via Apple's servers did not help. I'm on the 1vyrain BIOS again, no beeps. I'd be happy to work with you on resolving this issue.

5T33Z0 commented 1 year ago

While looking into the issue with idle sleep on my system (which I haven't fixed yet), I noticed that you don't longer need the 2 ACPI patches that rename VID to IGPU – Whatevergreen handles those as well. So you can delete them.

EDIT: Actually, don't delete them! Tiurns out they are erequired for Brightnes Shortcuts to work (Fn+F8 and Fn+F9)

5T33Z0 commented 1 year ago

So, last week I saw that Khronokernel created a new repo called RSRHelper. But the repo has no description. My guess was that it's releated to the new RSR updates.

Then in the comments for OCLP, I found this: https://github.com/dortania/OpenCore-Legacy-Patcher/commit/bebbf646e17fb76b513cdde1eea502d34612779e#diff-e46a014fcfa704fc9406c94c50c8fdfcdb09dcb1c5fb67ba03a75b6a9b731a00R190-R199

I downloaded the kext from here: https://github.com/dortania/OpenCore-Legacy-Patcher/tree/main/payloads/Kexts/Acidanthera and added it.

I am currently not getting any update notifications for updates, so I can't really test it, but I think this is the last missing piece in the puzzle so far to Ventura on IvyBridge.

jozews321 commented 1 year ago

Not really RSRs are not gonna work with Ivy Bridge thanks to the requirements of AVX2 instructions. The kext CryptexFixup works because apple ships internally in the installation media a non AVX2 version of the DYLD cache that the kext forces to use. But this time with RSRs apple is not shipping a non AVX2 version of the RSR unfortunately

The kext RSRHelper just help synchronize the currently installed DYLD cache to the one on the RSRs that gets desynchronized when root patching using the Kernel Debug Kit. Thus mainly affecting Haswell+ users when using an AMD GCN 1-3 GPU

5T33Z0 commented 1 year ago

I see. It would be cool if the RSRHelper kext could also be used help to just skip these RSR updates on Ivy Bridge in the future.

5T33Z0 commented 1 year ago

Don't installl 13.3 beta… well you can install it and it will work. But once you run the OCLP 0.6.1 root patcher and the system reboots it will be stuck half way through booting. The mouse cursor will work and the 2nd display will be online (but black).

My guess is that there's an issue with the GPU drivers. I will try to see if I can boot into the gui in safe mode and unstall the root patches again.

EDIT: Booting into safe mode and reverting the root patches works. I guess we just have to wait for the newxt update of OCLP.

5T33Z0 commented 1 year ago

RestrictEvents has a new revpatch option called f16c. It resolve CoreGraphics crashing on Ivy Bridge CPUs by disabling f16c instruction set reporting in macOS 13.3 or newer.

Does someone know how to add more than one option to the NVRAM key for revpatch? Do I have to seperate it via comma, or semicolon?

Bildschirmfoto 2023-04-04 um 07 48 13

Jan-E commented 1 year ago

According to the Readme of the sources

revpatch=value to enable patching as comma separated options.

https://github.com/acidanthera/RestrictEvents

5T33Z0 commented 1 year ago

Thanks, I totally missed that info.

Jan-E commented 1 year ago

Hooray. By choosing MacBookPro14,1 I succeeded in updating a macOS Monterey (on a separate partition) to Ventura 13.3. Of course I had to generate a new SMBIOS etc, but all my Xcode settings and dependencies were retained. Updating to XCode 14.3 now, which is needed for the newer iOS versions.

System: X230T with i7, 1366x768 panel. 1vyrain BIOS for the X230T. Even the touchscreen works. HD4000 drivers not yet tested, but I do not really mind. Most of the time I am operating this machine remotely, by screen sharing or VNC. Most important is the ability to run the newer XCode. On other partitions I also have Big Sur and Monterey. And on another SSD in the same machine even Windows 10.

jozews321 commented 1 year ago

Hey @5T33Z0 can you try to boot your OC 0.9.1 config in your t530 but using a USB drive and not booting from the SSD. I'm currently chasing an issue in my T430 that only if I have the EFI in the EFI partition of the SSD I get video output from OpenCore newer than 0.8.9. if I have 0.8.9+ in a usb drive I get no video from OC just a black screen

It would be nice to see if that is an issue in the T530 too

Edit: After more investigation its an issue related to the UEFI GOP Graphics and Textmode. Usually when I want to boot OC from a USB drive I press F12 to get the BIOS boot selector. this is the moment that graphics mode gets corrupted or something and OC starting from the commit b07843f of OC 0.8.9 fails to initialize the console thus black screen

The solution that I found for now is to select the USB drive as the first boot option in BIOS and restart and then the GOP graphics should work

5T33Z0 commented 1 year ago

I noticed this yesterday. Enabling DirectGopRendering fixes the GUI not showing when booting from USB.