Bizzaro / x230-osx

Thinkpad x230 running OS X 100% natively
GNU General Public License v3.0
141 stars 53 forks source link

Thinkpad x230 OS X - running natively with full functionality.

PLEASE NOTE THIS GUIDE MAY OR MAY NOT BE DEPRECIATED.
This repository will no longer be maintained.  

Last updated: April 25 2016

Note: This is NOT a spoonfeeding guide, other resources may be required to pull you up to speed. This page is meant to reduce the amount of googling and testing what works and what doesn't.

Specs

alt text

Working

Not working

Bugs


Summary of problems and fixes

Feature Problem Fix (tldr DSDT patches are your friend)
Sleep Instant wake, device doesn't stay asleep Apply DSDT USB3 instant wake 0x0, RTC patches
Audio No devices in sound preferences Inject patched AppleHDA, codec is ALC297VC_v3 (layout-id in DSDT is hex, LayoutID in AppleHDA is dec)
Battery and PM No battery status, no native PM Apply DSDT patch with Thinkpad x230i + Fix Mutex with non-zero synclevel
GPU Graphics not working natively Apply DSDT patches for iGPU, brightness HD4000 + Low resolution
USB Ports not working/keeps device awake Apply DSDT patches Ivy Bridge = Intel 7 series USB
Sleep/power LED LED remains in blinking state after wake # add these lines into method _WAK after NVSS:
_SB.PCI0.LPC.EC.LED (Zero, 0x80)
_SB.PCI0.LPC.EC.LED (0x0A, 0x80)
_SB.PCI0.LPC.EC.LED (0x07, Zero)
Brightness Control Brightness control keys don't respond # _Q15 (Fn+F8) brightness down key
into method label _Q15 replace_content
begin
Notify(_SB.PCI0.LPC.KBD, 0x0205)\n
Notify(_SB.PCI0.LPC.KBD, 0x0285)\n
end;

# _Q14 (Fn+F9) brightness up key
into method label _Q14 replace_content
begin
Notify(_SB.PCI0.LPC.KBD, 0x0206)\n
Notify(_SB.PCI0.LPC.KBD, 0x0286)\n
end;

AppleHDA injection methods (choose one from the list)

  1. DSDT patch HDEF + IRQ (layout-id is in hex) - preferred
  2. Clover config.plist
  3. HDAEnabler.kext

AppleHDA patching methods (choose one from the list)

  1. Modify AppleHDA.kext by itself, rewrite AppleHDA.kext in /S/L/E, injecting with any method
  2. Live patch AppleHDA.kext + injecting DummyHDA.kext with any method

Sound after sleep issues


Commands to check AppleHDA, if anything returns empty = game over, restore default AppleHDA in /S/L/E and restart process


BIOS settings

Item Setting
Config/Network/Wake On Lan Disabled
USB UEFI BIOS Support Enabled
Always On USB Disabled
USB 3.0 Mode Enabled
Power Intel Rapid Start Technology Disabled
Serial SATA Controller Mode Option AHCI
Security Predesktop Authentication Disabled
Security Chip Disabled
Memory Protection Execution Prevention Enabled
Virtualization Disabled
Fingerprint Reader Disabled
Anti Theft Disabled
Computrace Disabled
Secure Boot Disabled
Startup Network Boot PCI Lan
UEFI/Legacy Boot UEFI Only
CSM Support Disabled
Boot Mode Quick

Install

  1. Follow tonymacx86 Unibeast steps to make your USB (I don't personally use MultiBeast). http://www.tonymacx86.com/el-capitan-desktop-guides/172672-unibeast-install-os-x-el-capitan-any-supported-intel-based-pc.html
  2. Mount EFI partition of USB with EFI Mounter v3 (from tonymacx86).
  3. Copy Kexts to Kexts folder on the EFI partition.
  4. Change BIOS settings (settings key is F1).
  5. Boot USB (boot menu key is F12).

Post-install

  1. Install Clover v2.3K R3320 UEFI .pkg - different version is OK, but must be UEFI.
  2. Config.plist can be shared if you wish, personal preferences, except injections.
  3. Patch your own DSDT's using guide on tonymacx86 from RehabMan, every system needs custom DSDT, no exceptions. http://www.tonymacx86.com/el-capitan-laptop-support/152573-guide-patching-laptop-dsdt-ssdts.html (trust me, it's worth the read)
  4. Patch your own SSDT's, you could use the same if CPU models are identical. http://www.tonymacx86.com/el-capitan-laptop-support/175801-guide-native-power-management-laptops.html
  5. Put SSDT.aml and DSDT.aml inside ACPI folder, patched, in EFI partition of OS drive.
  6. TRIM Enabler (if using SSD, every system in 2016 should have one imo)
  7. Disable boot graphics glitches (http://www.tonymacx86.com/el-capitan-laptop-support/175799-fix-resolve-boot-screen-garble.html) and set custom logo to none in config.plist

Patch should be entered into config.plist/KernelAndKextPatches/KextsToPatch.

Comment: Boot graphics glitch

Name: IOGraphicsFamily

Find: <0100007517>

Replace: <010000eb17>


DSDT patches


Other resources

http://www.tonymacx86.com/el-capitan-laptop-support/

Google is your best friend.