Contribute
Register

[Guide] Lenovo ThinkPad T430 (Clover)

Joined
Jul 22, 2017
Messages
26
Mobile Phone
Android
The T430 is a very capable laptop with its very own shortcomings. One of the biggest being Digital Rights Management (DRM).

You see, the folks at Lenovo don't want you, the user, to replace some existing hardware with non-whitelisted ones. And you've guessed it already: the half miniPCI card used to host a supported WiFi card is among the hardware being regulated. So unless you want to buy a USB WiFi card, you'll have to patch the BIOS.

Since this guide is not about patching the BIOS, you can head over to bios-mods to learn more.

Anyway, after I patched the BIOS and installed an Atheros card instead of the Intel one, the laptop was ready for Sierra. So let's start.

My laptop's configuration:
  • i5-3320M (QM77), 8GB
  • Intel HD 4000, 1600x900
  • Ethernet: Intel 1Gb card (that came with the laptop, it works)
  • WiFi: Atheros AR5B195 (AR9285+AR3011 combo)
  • Audio: Realtec ACL3202 (ALC269)
Your laptop may have a different setup, so be aware of that while you read on.

What you'll need:

- A ready, Clover-based USB installation stick
- Another Hackintosh to patch the DSDT
- Few kexts that aren't part of Clover (post Installer)

So, let's start!

1) Prepare and patch the DSDT:

The easiest way by far is Clover itself. Boot the USB and when you see the list of drives, hit F4. This will cause Clover to save DSDT/SSDT files on the USB. During a period of 10-15 seconds, your keyboard/mouse/screen will freeze while Clover dumps the files. Be patient... Once it's done, you can turn off the laptop and disconnect the USB. Now, it's time to patch it.

I used MaciASL to patch the DSDT, so I can recommend that. Also, don't use the regular version -- use RehabMan's. It usually has the latest iasl compiler and a lot of bug fixes. You can download yours here. Next, you will need to decompile the files, so go here for a proper guide (if you didn't read the part about refs.txt, you're not ready yet. Keep reading...)

The patches are from RehabMan's repository, and they are:
  • system_SMBUS
  • system_IRQ
  • system_PN0T
  • system_OSYS_win8
  • graphics_PNLF_ivy_sandy
  • graphics_Rename-PCI0_VID
  • usb_7-series
  • usb_prw_0x0d_xhc (and followed immediately by another one, attached)
  • audio_HDEF-layout12a (with 28 instead of 12)
  • battery_Lenovo-X220 (including uncommenting the last patch, and changing 0x0A to 0x07)
Compile and save the patched DSDT, then copy the compiled DSDT to EFI/CLOVER/ACPI/patched (if you don't see an EFI partition, use Clover Configurator or EFI Mounter to mount it first.)

The config.plist I used is this one (attached); I didn't change it.

You will also need to make sure that the drivers64UEFI and kexts directories under EFI partition include the following:

drivers64UEFI/
FSInject-64.efi
HFSPlus_x64.efi
OsxAptioFix2Drv-64.efi
OsxFatBinaryDrv-64.efi

kexts/10.12/
FakeSMC.kext
NullCPUPowerManagement.kext
USBInjectAll.kext
VoodooPS2Controller.kext
AppleIntelE1000e.kext

These files are also attached to this post.

2) Booting the system:

Note: You will need the USB to boot the system at all phases. We still don't have Clover installed separately on the HD.

If all was done correctly, Clover should be able to load correctly and the Installer will load without a hitch. Proceed normally to install macOS Sierra on your HD. The setup is a 2-phase process requiring a reboot, so be sure to boot the HD on the 2nd phase.

NOW COMES THE IMPORTANT PART, SO PAY ATTENTION!

In my case, after installation finished and I booted for the third time, the system didn't start. Thanks to RehabMan's help, it was caused by FakeSMC.kext not loading at boot (although it existed on the EFI partition). So, this means that you'll have to copy the 5 kexts from the EFI partition to the installation HD's S/L/E. I did it simply by booting into the Installer again and using the command shell to do that.

# mkdir /Volumes/EFI && mount -t msdos /dev/disk1s1 /Volumes/EFI
# cd /Volumes/macOS/System/Library/Extensions
# cp -avf /Volumes/EFI/EFI/CLOVER/kexts/10.12/* .
# chown -Rf 0:0 .
# chmod -Rf 0755 FakeSMC.kext/ NullCPUPowerManagement.kext/ USBInjectAll.kext/ VoodooPS2Controller.kext/ AppleIntelE1000e.kext/
# cd ..
# rm -fr Caches/com.apple.kext.caches/
# touch Extensions
# kextcache -u /Volumes/macOS

Note: macOS is the label I chose for this installation, yours may be different.

Now you're ready to reboot for the last time from the USB. So go ahead and restart.

3) Post installation:

Naturally, you will need to install Clover on the HD so you don't have to boot off the USB every time. So it's time to do that. I put mine on UEFI / ESP. After that, you should reboot to make sure you can boot without the USB (don't forget to remove the USB stick, hehe).

Right off, your audio and battery won't work. So you'll need a couple of kexts to do that, and you can grab them from here:

- Audio
- Battery

I didn't mind not being able to change the screen brightness so you'll have to figure that one yourself. Also, the laptop did a "restart after shutdown" phenomena which I suspect isn't related to macOS but to the patched BIOS this laptop has.

4) Final words:

Although it's not 100% perfect, the system works brilliantly smooth and quick so I was very satisfied with it. The following are still not working:

- Shutdown: laptop performs a shutdown correctly (I can see all light go off for 1 second) and then it turns back on.
- Brightness: Fn keys do not work

In addition to the usual hardware, the following are surprisingly working well:

- Camera: it was identified as Ricoh USB device, vendor=0x5986, product=0x02d5.
- Sleep/wakeup: seems like ACPI is fully supported, so this is working nicely
- Mousepad: identified as a Trackpad and fully functions as such (multi-touch, etc.)
- External VGA: works perfectly

If you manage to find solutions to the above problems, share them so the rest of us can enjoy your help :)
 

Attachments

Last edited:
Joined
Jan 5, 2020
Messages
1
Code:
audio_HDEF-layout12a (with 28 instead of 12)
Does this mean I should replace:
Code:
        "layout-id", Buffer() { 12, 0x00, 0x00, 0x00 },\n
With
Code:
        "layout-id", Buffer() { 28, 0x00, 0x00, 0x00 },\n
and the same for the next block?
 
Top