/macos-thinkpad-t430

macOS on a Thinkpad T430. An almost perfect Hackbook Pro

Primary LanguageShell

January 2020: I am no longer following the T430 iGPU Hackintosh cat and mouse game, as my Hackintosh has moved on to greener pastures. I would love to open up the repository for collaborators, as it seems it has at least some traction as a T430 Hackintosh repo. Users should also still feel free to create PRs for fixes with regards to new versions of macOS.

Vanilla macOS on T430, working almost perfectly

HitCount

Initial credits goes to ThiagoSchetini & Rehabman, thanks bunches!

Also thanks to the contributors, you guys!! 🖤

  • nghminh163: maintenance, windows to macOS guide, i3360m SSDT
  • 123marvin123: fan speed fix, trackpoint fix, Mojave mic fix, high res DP/DVI out fix.

WORKING =)

  • Intel Hyperthread (4/8 cores) - I have the i5-3320M & i7-3632QM.
  • Intel TurboBoost
  • Intel SpeedStep
  • CPU HW Monitor (temps, clock and power)
  • RAM DDR3 at 1600mhz
  • Intel HD4000 1536MB
  • Brightness (FULL Range + Fn Brightness Keys)
  • Display Port Out: FullHD + Audio
  • Battery Status
  • Wi-Fi (I use an Atheros AR5BHB92 rebranded)
  • Ethernet
  • Sleep
  • Display turns on automatically on wake/instant wake
  • USB 3.0 Full Speed
  • Audio ALC269
  • Webcam + Mic
  • Keyboard + TouchPad
  • Bluetooth: bought and installed this BT daughter card worked out of the box. Sadly no Handoff - yet

NOT WORKING ...

  • VGA output
  • SD Card Reader <- never tested

Creating the installer

- You'll need thumbdrive of at least 8 GB, HFS+ formatted.

- Use Unibeast to create the installer. Select UEFI and no ATI/nVidia.

- After creating the USB Installer go to EFI/CLOVER/drivers64UEFI/
	Remove everything and put the 4 files this repository (add the apfs.efi if need be)

- Put any kexts in EFI/CLOVER/kexts/10.12 etc. into ./other/ and copy the kexts from this
  repository into ./other/ as well.
	- Thus removing all kexts folders except ./other/

Install macOS

- You'll need a mouse and external keyboard plugged in (for the install process).

- If you get stuck on boot disable 'InjectIntel' graphics.
Install on Fusion Drive (Optional)

If you have installed an SSD and a HDD in your T430, you can gain the advantages of using a fusion drive. Follow these steps to install on a fusion drive rather than a "regular" drive.

- Setup Fusion drive according to guides on the internet.

- Install macOS on external HDD.

- Restore HDD installation to Fusion Drive with Disk Utility on the install disk.

- *Alternatively* (never got this to work) do `/Volumes/"Image Volume/Install macOS High Sierra.app"
	/Contents/Resources/startosinstall --volume the_target_volume--converttoapfs NO --agreetolicense`
	from Terminal instead of regular install.

- Boot into new installation on Fusion Drive.

Show hidden files (optional, but helpful)

- After first boot, on Terminal:
	defaults write com.apple.finder AppleShowAllFiles YES
	killAll Finder

Install Clover

- Install “clover.pkg” (found in repo/tools folder)
	Check 'Install for UEFI Booting Only'
	This will automatically check 'Install Clover in the ESP'
	Check Drivers 64 UEFI (IMPORTANT! Do only check OsxAptioFix2Drv-64)

- Now you can remove your Installer Pen Drive (you have boot)

Configure EFI/Clover

- config.plist: use the one from this repository
    take from low-resolution-config.plist folder for 1366x768 display
	take from high-resolution-config.plist folder for 1600x900 or + display

- /drivers64UEFI
	use the folder from this repository (with 4 files only!)

- /kexts
	Remove everything except other (leave it empty)

- /ACPI/patched:
	(OPTION 1 Difficult - but recommended) Make your own SSDT and DSDT:
		-> First you'll need the vanilla .aml generated by your UEFI (BIOS)
			When in the clover boot menu press F4 (and Fn+F4 just in case)
			That’s it. You can find the files needed in EFI/CLOVER/ACPI/origin

		-> Then disassemble the DSDT.aml and SSDT’s.aml (0, 1, 2 etc…) only:
			never open these files directly with MacIASL, as it will actually ruin them
			instead copy the .aml's to their own directory with the refs.txt from tools/iasl
			use the iasl command in terminal (see tools/iasl/howTo.txt)

		-> patch your DSDT.dsl with all the code from file “…-dsdt-patch.txt” using MacIASL
			it includes only the necessary code to Thinkpad T430
			* choose low resolution for 1366 x 762
			* choose high resolution for 1600 x 900 or +
			
		-> patch with "fan patch/t430-fan-patch.txt" DSDT file using maciASL. 

		-> manually last patch for screen turn on after wake (Warning! It’s a manual change)
			on your .dsl find for “Return (WAKI)”
			In the method calls above "Return (WAKI)" you'll find:
				\_SB.PCI0.LPC.EC.LED(Zero, 0x80)
				\_SB.PCI0.LPC.EC.LED(0x07, 0x00)
			substitute these two lines with:
				\_SI._SST (One)
    				\_GPE._L1D ()
			(identation must be at the same depth as the substituted lines):

		-> Use MacIASL to save as ACPI Machine Language Binary (DSDT.aml)
			and copy file to ACPI/patched on the clover UEFI

		-> Generate your own SSDT (Power Management for your processor)
			https://www.tonymacx86.com/threads/quick-guide-to-generate-a-ssdt-for-cpu-power-management.177456/
		-> Put the SSDT.aml on the same folder of DSDT: ACPI/patched inside clover UEFI


	(OPTION 2 Easy One - Not recommended) take my patched files .aml:
 		->take ONLY the .aml files from “pached ACPI dsl’s” folder
			* choose only one SSDT.aml: “i5 3230M” or “i7 3632QM”
			* if you have another processor make your own SSDT or leave it empty

		-> Put the .aml files on the folder: ACPI/patched inside clover UEFI

Kexts

- Make a backup of AppleBacklight.kext (Brightness)
	Why? for future updates you need to reinstall the original and then reinstall the pached

	** Warning!, the backlight kext inside kexts folder is patched for T430 brightness full range control

- Now, install all the kexts from the folder using “Kext Utility.app” (look inside tools folder)
    - Be sure to use ACPIPoller.kext from this repo because it uses a modified Info.plist

Voodoo Extra Files (for Keyboard)

- Go to the voodoo's' folder with the terminal
	sudo cp org.rehabman.voodoo.driver.Daemon.plist /Library/LaunchDaemons
	sudo cp VoodooPS2Daemon /usr/bin

Restart at get audio working

- After restarting you need to flush the kexts:
	sudo touch /System/Library/Extensions && sudo kextcache -u /
- Restart again to hear the audio working!

- Repeat the process if nescessary
	sudo touch /System/Library/Extensions && sudo kextcache -u /
- Restart Again!

* If you keep having problems, try disabling the option 'No Cache' in config.plist and restart again.

HWMONITOR

- Put the HWMONITOR from tools folder in Applications and open it, you should read power, clock, and temps of your CPU

Disable Hibernation

-> Disable Hibernation and related options
    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

And that's it! You're done. (Hopefully.) =)

ABOUT THIS DSDT CODE

-> ThiagoSchetini modified some original patches from Rehabman:

		[modified] Lenovo X220
			-> added T430 sleep leds
			-> cleaned extra code

		[modified] Brightness fix (HD3000/HD4000)
			-> included FN brightness keys (T430 only)

		[usb] USB3_PRW 0x0D (instant wake)
			-> to have sleep working (original Rehabman code)

		[audio] Audio Layout 29
			-> to work with the ALC269 kext (original Rehabman code)

		[sys] IRQ Fix
			-> to enable audio (original Rehabman code)

		[igpu] Low Resolution (or High)
			-> to enable HDMI display port audio out

		[manual] Code change on .dsl to turn on screen automatically on wake

COMPLETE KEXT FLUSH (recomended after remove a kext)

-> repair permissions:
    sudo /usr/libexec/repair_packages --repair --standard-pkgs --volume /

-> rebuild kext cache
    sudo rm -r /System/Library/Caches/com.apple.kext.caches
    sudo touch /System/Library/Extensions
    sudo kextcache -update-volume /

-> rebuild cache short form
    sudo touch /System/Library/Extensions && sudo kextcache -u /

GENERATE VANILLA CONFIG.PLIST (if you need it)

on /usr/local/bin/clover-genconfig > config.plist
execute and take the xml

HOW TO FLASH T430 BIOS (if you want to install an 1300AC Wi-Fi …)

https://github.com/bibanon/Coreboot-ThinkPads/wiki/xx30-BIOS-Whitelist-Removal

Updates

A running log of the changes made with each released update can be found here.