E7250 Hackintoshing

This page is about hackintoshing the E7250/Exx50.

History about the EFI

This EFI was created because when I got my laptop, it just felt wrong.

I was using the 2006 MacBook 13" as my daily driver (as a portable device, I had an iMac 2012 which could only stay in one place). Well, since it is an old device which only runs Snow Leopard, it was time to replace my daily driver with a newer one. However, the newer MacBooks had so many issues, so I thought about buying a Windows laptop.
I got the E7250, and while using Windows, I missed my Pro Apps which I was working with outside. So, I thought about returning to the Hackintosh scene and create an EFI.

The beginning was a mess, which is visible in the 10.14 branch. Beginning with the 10.15 branch, you can see a lot of improvements that took place after learning how everything works. I initially wanted to convert to OpenCore 0.5.7, but I couldn't do it because the changes between Clover and OpenCore are massive.
The OpenCore conversion had its break as I had to learn how OpenCore works. Reading the manual and Dortania's guide, I was able to learn how OpenCore works very quickly. Then, the OpenCore conversion began.
Since OpenCore is very sensitive about the config, I decided to upload the OpenCore 0.5.7 EFI, so I had a backup for myself. And since then, I tried improving the user experience, which was easier said than done.
I pretty much fixed most of the issues, and the only issue that kept me from releasing the complete EFI was a sleep bug, which was really annoying. The issue occurred when you plugged a USB device or the AC charger in, sleep became broken. However, without any device plugged in, it worked just fine. That was really weird, as according to the logs, I had a "lid" problem. So, I thought the laptop was shorted, which caused this issue. But reading Dortania's guide on how to fix sleep, I thought I fixed it by remapping the USB ports. Well, it didn't. So, the EFI was delayed again until OpenCore 0.6.0 was released.

This time I took a different approach and read Dortania's guide once again. So, I try-and-errored through the guide, and it turns out a simple GPRW patch was needed. After fixing the annoying issue, the EFI got released the day after. The only small issue it had though was the F11 and F12 brightness keys, which had a workaround with Karabiner Elements.

So, the time went by, and I was ready for Big Sur. Four days after Big Sur got initially released, I managed to boot Big Sur on my E7250, which I was very proud of. And everything worked beside the F11/F12 issue :P. With caution and behind the scenes, I completed my OpenCore 0.6.0/0.6.1 EFI in a different branch which is now deleted and perfected the EFI for Big Sur. Again, time went by, and when OpenCore 0.6.2 was released, I made a clean EFI which has no other debugging crap on it and posted every single change I did on GitHub.

But I know myself, I knew an F11/F12 issue could not beat me. So, I tried nearly every SSDT patches to fix this damn issue. I thought finally including the ACOS_ACSE SSDT fixed the issue, since it really did fix it. On OpenCore 0.6.3 release, I updated the current EFI and the kexts which were critical for later beta and stable releases of Big Sur. And that is where the story nearly ends.

The EFI was completed, stable, and running fast. But wait, the F11/F12 brightness issue is still there. So, I added a BRT6 patch and SSDT, which was the fix I waited for so long. After fixing this issue, I completed the EFI.

Damn. The history of this EFI is really huge. But in the end, the EFI is completed, has no issues, and works very well. So, I created a repo after making a semi-successful EFI which I wanted to share. Here we are, now we are running Sonoma with our machine flawlessly. There is also a nice transition from "throw everything in and hope everything works" to "this is broken? Here is the fix". Mainly, since hackintoshing changed so much in the past few years, I even had to learn again how hackintoshing works.

Now I love my E7250 even more.

Improve the Hackintosh experience

The EFI I provide is still not complete, in my opinion. Yes, it is usable for daily use, but the EFI can be improved. The changes I made do not suit every system, so the patches have to be done by yourself. Here are some examples:

Airportitlwm

This kext will enable connecting to the internet with an Intel Wi-Fi card. The kext is very stable, but I still do not consider it "finished". The boot time could be longer, which is not ideal. Additionally, users who have another Wi-Fi card will also experience issues due to the "unfinished" kext. However, if you want to try the kext anyway, I suggest enabling it from the "config.plist". Additionally, if you want to use Intel Bluetooth, open the "config.plist" and enable BlueToolFixup, IntelBluetoothFirmware, and IntelBluetoothInjector.

SMBIOS

This EFI already includes an SMBIOS. However, since it is a pre-made EFI, I suggest changing the serial number so that people who use the EFI do not have the same serial number/board number, which can be blocked. Using GenSMBIOS will create a serial number and replace the numbers in the "config.plist", which can be found under PlatformInfo > Generic.

Language

This is a minor OCD thing, but changing the language to your preferred language is recommended. The current default language is English. This is the line you need to change. The list of languages can be found here.

Fast Boot

The EFI displays the picker at every boot, which is a waste of time if you need to get your work done quickly. You can disable the picker by changing 'ShowPicker' to false in "config.plist" (which can be found under Misc > Boot). The boot chime is still activated. Accessing the picker is hit-or-miss for me. According to the documents, you can enter the picker menu by holding the "Option" key.

Touchscreen

For those who have the touchscreen model, you can try using your touchscreen as well! You just have to enable VoodooI2C-related kexts, which are VoodooGPIO.kext, VoodooI2CServices.kext, VoodooInput.kext, VoodooI2C.kext, and VoodooI2CHID.kext.
This is a feature I did not and cannot try because I own the 768p model.