| Title: | Install Hackintosh on Thinkpad T450 20BV-A00YCD |
|---|---|
| Author: | Shmilee |
| Date: | 2015-11-02 |
This guide is for the Thinkpad T450 20BV-A00YCD (Lenovo Reference Doc).
CPU: Intel(R) Core(TM) i5-5200U @ 2.20GHz
RAM: 4GB x 2 DDR3L
Graphics: HD5500 + GeForce 940M, 1366x768 LED Non-Touchscreen
Audio: ALC3232
Ethernet: Intel I218-V
WLAN: Intel 7265
Specifically, this is only the history and notes of my Hackintosh installation. Here is my gpt disk partition table:
| Device | Start | End | Sectors | Size | Type |
|---|---|---|---|---|---|
| /dev/sda1 | 2048 | 1050623 | 1048576 | 512M | EFI System |
| /dev/sda2 | 1050624 | 42993663 | 41943040 | 20G | Linux filesystem |
| /dev/sda3 | 42993664 | 105908223 | 62914560 | 30G | Apple HFS/HFS+ |
| /dev/sda4 | 105908224 | 189794303 | 83886080 | 40G | Microsoft basic data |
| /dev/sda5 | 189794304 | 441452543 | 251658240 | 120G | Microsoft basic data |
| /dev/sda6 | 441452544 | 902825983 | 461373440 | 220G | Linux filesystem |
| /dev/sda7 | 902825984 | 959449087 | 56623104 | 27G | Microsoft basic data |
| /dev/sda8 | 959449088 | 976773134 | 17324047 | 8.3G | Apple boot |
I have upgraded the BIOS version to 1.18,
and installed Archlinux on /dev/sda2, Windows 8.1 on /dev/sda4.
/dev/sda7 is used to share data between linux osx and win.
Device /dev/sda3 is reserved for Hackintosh, and /dev/sda8 is used to restore Hackintosh Install dmg.
Hackintosh, OS version: Yosemite(10.10.5) or El Capitan(10.11.1)
Download Clover Bootable ISO, extract archive and find the Clover-*-X64.iso file.
- Note:
- 10.11.1 requires Clover v3292 or later.
Download driver HFSPlus.efi.
Download themes: MavericksLogin and minimal.
In Archlinux, mount Clover-*-X64.iso, and mount ESP on /boot, then copy files that I need.
cd <Clover-ISO mount dir>/EFI/CLOVER/
find drivers64UEFI \
drivers-Off/drivers64UEFI \
kexts/Other \
tools/{bdmesg.efi,Shell64U.efi}\
CLOVERX64.efi \
config.plist \
-exec install -D {} /boot/EFI/Clover/{} \;
# drivers
cd <Download dir>/
install HFSPlus.efi /boot/EFI/Clover/drivers64UEFI/HFSPlus.efi
rm /boot/EFI/Clover/drivers64UEFI/VBoxHfs-64.efi
mv /boot/EFI/Clover/{drivers-Off/,}drivers64UEFI/OsxAptioFix2Drv-64.efi
# themes
mkdir /boot/EFI/Clover/themes
cd clover-minimal
find . -exec install -D {} /boot/EFI/Clover/themes/minimal/{} \;
cd MavericksLogin
find . -exec install -D {} /boot/EFI/Clover/themes/MavericksLogin/{} \;
# remove .DS_Store
find /boot/EFI/Clover/ -name '.DS_Store' -exec rm -vi {} \;
# chainloader in grub2
install /boot/EFI/Clover/CLOVERX64.efi /boot/EFI/boot/bootx64.efi
# add efi bootolder
efibootmgr -c -L 'Mac OS X' -d /dev/sda -p 1 -l \\EFI\\Clover\\CLOVERX64.efiMake El Capitan icon for clover theme. First, Get the ProductPageIcon from BaseSystem.dmg.
$ cp /Volumes/OS\ X\ Base\ System/Install\ OS\ X\ El\ Capitan.app/\
> Contents/Resources/ProductPageIcon_512x512.tiff ./According to the logo icns of theme MavericksLogin, make a new png os_cap.png from ProductPageIcon.
Upload os_cap.png to http://www.easyicon.net/language.en/covert/, and save as os_cap.icns.
Copy it to the themes directory.
See jcsnider's guide.
Some difference here:
- USB 3.0 Mode, Enabled, because I will restore the install image to disk partition
/dev/sda8. - Security > Virtualization, Both Enabled, because the config.plist below will include
dart=0in boot arguments. - Startup > CSM Support Yes, reduce boot screen garble.
Download config.plist for HD5500 from RehabMan's github repository OS-X-Clover-Laptop-Config.
Then copy it to /boot/EFI/Clover/config.plist, change the ScreenResolution, Theme, Timeout,
add CPU Frequency, and set GUI -> Scan -> Legacy to false.
Enable KextsToPatch: Disable minStolenSize for 10.10.x and 10.11.x, Boot graphics glitch.
Change SMBIOS, MacBookAir7,2 and add SerialNumber C1D[XXXXX(replace 5X)]G942.
Save the changed config.plist as config-mba72.plist.
Download kexts.
VoodooHDA.kext-287.zip, modified as jcsnider's guide Part 13 (Audio) said. I made the following changes to its info.plist and got a patched version named
VoodooHDA-287-TP15-Info.plistInput Gain = 0
Half Volume Fix = Yes
Nodes to Patch:
<key>NodesToPatch</key> <array> <dict> <key>Codec</key> <integer>0</integer> <key>Config</key> <string>0x0321101f</string> <key>Node</key> <integer>21</integer> </dict> </array>
VoodooPS2Controller, which has some jumping/skipping issues as jcsnider's hints thread said. Download jcsnider's custom VoodooPS2Controller_X1Carbon.kext.zip
AppleIntelE1000e.kext.zip or IntelMausiEthernet, for Ethernet controller.
# add config.plist
cp /boot/EFI/Clover/{config.plist,config.plist.default}
install config-mba72.plist /boot/EFI/Clover/config.plist
# Install the kexts to Other for 10.10.x and 10.11.1
cd /boot/EFI/Clover/kexts/Other/
# add VoodooHDA.kext
# add VoodooPS2Controller_X1Carbon.kext
# add AppleIntelE1000e.kext or IntelMausiEthernet.kextDownload Yosemite 10.10.5 (14F27) InstallESD.dmg (MD5:ff4850735fa0a0a1d706edd21f133ef2) or El Capitan 10.11.1 (15B42) InstallESD.dmg (MD5:3332a4e05713366343e03ee6777c3374).
And, OSInstall MBR patch should be used too, according to the partition tables.
- Restore BaseSystem.dmg to HFS partition.
- Copy InstallESD.dmg/BaseSystem.dmg to (HFS partition) BaseSystem.dmg/
- Copy InstallESD.dmg/BaseSystem.chunklist to (HFS partition) BaseSystem.dmg/
- Copy InstallESD.dmg/AppleDiagnostics.dmg to (HFS partition) BaseSystem.dmg/
- Copy InstallESD.dmg/AppleDiagnostics.chunklist to (HFS partition) BaseSystem.dmg/
- Remove (HFS partition) BaseSystem.dmg/System/Installation/Packages
- Copy InstallESD.dmg/Packages to (HFS partition) BaseSystem.dmg/System/Installation/Packages
- OSInstall.mpkg replace to /System/Installation/Packages/OSInstall.mpkg
- OSInstaller replace to /System/Library/PrivateFrameworks/OSInstaller.framework/Versions/A/OSInstaller
Reboot, enter clover, install Yosemite or El Capitan to /dev/sda3.
If an kernel error about AppleIntelBDWGraphicsFramebuffer occurs to you, please set graphics fakeid = 0x16160002.
- Hint:
- In clover screen, Options -> Graphics Injector menu -> FakeID.
Default value is
0x00000000, change it to0x16160002or0x16160004.
As the AppleIntelBDWGraphicsFramebuffer error is still there, we should make HD5500 work first.
Here is a guide for Intel HD Graphics 5500 on OS X Yosemite.
There are 2 ways to deal with DVMT pre-allocated memory in BIOS.
But as guide page 20 and guide page 28 said, STEP 2.2 (grub shell and setup_var) is not working here.
The "Security: <guid>" things may lock these options to keep people from changing them.
Here is what I get from BIOS 1.18 rom.
Result:
0x2685E Grayout If: {19 82}
0x26860 Security: 85B75607-F7CE-471E-B7E4-2AEA5F7232EE {60 92 07 56 B7 85 CE F7 1E ...
0x26872 Not {17 02}
0x26874 End {29 02}
0x26876 Setting: DVMT Pre-Allocated, Variable: 0x37 {05 A6 61 04 62 04 1D 27 0A 00 ...
0x2689C Default: 8 Bit, Value: 0x1 {5B 1B 00 00 00 01 00 00 00 00 00 00 00 00 0...
0x268B7 Default: 8 Bit, Value: 0x1 {5B 1B 01 00 00 01 00 00 00 00 00 00 00 00 0...
0x268D2 Option: 32MB, Value: 0x1 {09 1C 63 04 00 00 01 00 00 00 00 00 00 00 00 ...
0x268EE Option: 64MB, Value: 0x2 {09 1C 64 04 00 00 02 00 00 00 00 00 00 00 00 ...
0x2690A Option: 128MB, Value: 0x4 {09 1C 65 04 00 00 04 00 00 00 00 00 00 00 00...
0x26926 End of Options {29 02}
0x26928 End If {29 02}
So, we have to patch the AppleIntelBDWGraphicsFramebuffer binary file in /S/L/E/AppleIntelBDWGraphicsFramebuffer.kext/Contents/MacOS/.
Use app:HexFiend, find 39CF763C and replace it with 39CFEB3C for 10.10.x, replace 4139c4763e with 4139c4eb3e for 10.11.x.
- Note:
- The hexadecimal digits are get by
echo -n Oc92PA== | base64 -d | hexdump -C, string Oc92PA== read from config_HD5300_5500_6000.plist.
Do not forget to fix the kext's permissions. Othewise, you may get an error said:
Graphics driver failed to load: could not register with Framebuffer driver!
The recommended and easier way is just to modify EFI/Clover/config.plist, which is already done by config-mba72.plist.
Enable KextsToPatch Boot graphics glitch, which is already done by config-mba72.plist.
Use Piker-Alpha's ssdtPRGen.sh which is a script to generate a SSDT for Power Management. We'd better download the latest Beta branch.
Run ./ssdtPRGen.sh, copy ~/Library/ssdtPRGen/SSDT.aml to EFI/Clover/ACPI/Patched/.
Download AppleIntelCPUPowerManagementInfo.kext from PikeRAlpha's thread. Install it to EFI/Clover/kexts/Other/.
Reboot, and use this terminal command to show the data:
sudo grep "AICPUPMI:" /var/log/system.log
Download MaciASL from Rehabman's Bitbucket repository os-x-maciasl-patchmatic. Download patches from Rehabman's github repository Laptop-DSDT-Patch.
Download IORegistryExplorer from toleda's thread
Dump DSDT and SSDT tables in Archlinux:
mkdir ./ACPI-Tables/
find /sys/firmware/acpi/tables \( -name "*SSDT*" -o -name '*DSDT*' \) -exec sudo cp {} ./ACPI-Tables/ \;
sudo chmod 644 ./ACPI-Tables/*