-
Notifications
You must be signed in to change notification settings - Fork 71
How to patch your DSDT
Although there are pre-patched DSDTs available as downloads from the tonymacx86.com forums and in installer packages such as tegezee's HP ProBook Installer, there can be differences in individual DSDTs that can cause delays in booting and perhaps other problems. It is best, therefore, to patch your own DSDT and install it into /Extra/dsdt.aml.
In order to use the patches provided in this repository, you first have to acquire your native/clean DSDT. The easiest way to do that is in Linux. You can also use AIDA64 (trial version available) under Windows, but the method I'll be describing here will use Linux acpidump.
First of all, you need the ability to run Linux. For that I recommend creating a USB stick with Ubuntu. Read and follow these complete instructions: http://www.ubuntu.com/download/help/create-a-usb-stick-on-windows. After you get your Ubuntu USB stick made, boot from it. On the HP ProBook, you tap the F9 key during BIOS startup and you will get the opportunity to boot from devices other than the hard disk. Select your USB stick with Ubuntu on it. When the Ubuntu menu appears, choose the first one, where you are just running (not installing) Ubuntu. If you decide to use Ubuntu on a regular basis, you can install it. For that I suggest you see my guide at http://racerrehabman.wordpress.com/2012/07/06/guide-to-installing-windows-7-windows-8-mac-os-x-lion-and-ubuntu-multi-boot/ which has complete instructions for multi-booting Win7, Win8, Lion, and Ubuntu.
Now you should be running Ubuntu. To get 'acpidump' you first need to enable the 'universe' software repository. To do so, it is easiest to follow this guide: https://help.ubuntu.com/community/Repositories/Ubuntu#Adding_Repositories_in_Ubuntu
After adding 'universe' to the Ubuntu Software Center's software sources, you are ready to install acpidump and run it. You will need internet access to get the acpidump software, so if you are using a wireless connection, now is a good time to connect to it. After that, open Terminal (Ctrl+Alt+T), and type the following commands:
sudo apt-get update
sudo apt-get install acpidump
Now you have acpidump installed so, we can run it:
sudo acpidump -b -t DSDT -o dsdt.aml
Now copy the dsdt.aml file somewhere that you can access from your installation of Mac OS (a USB key perhaps). The dsdt.aml file you have now is a raw DSDT from your BIOS that you can use to apply the patches in this repository to create your patched DSDT.
I didn't know this, but evidently the ACPI tables are directly available and mounted in the file system. This is much simpler than using acpidump, especially if running from the Ubuntu Live USB.
All you have to do is run the following command in Terminal:
sudo cat /sys/firmware/acpi/tables/DSDT >dsdt.aml
Then copy resulting dsdt.aml somewhere convenient to bring with you to your OS X install for patching.
I haven't used this method personally, but have used this application for other things and it seems that it also has the capability to extract ACPI tables. The program is "Read-Write Everything" and it is available at the following website: http://rweverything.phpnet.us/index.htm
Once you have installed RW-Everything, run it and from the "Access" menu, choose "ACPI Tables". From the "ACPI Table" window that opens, choose the "Save as Binary" button on toolbar (or Shift+F2). Save that file to a place easy to transfer to your MAC OS installation.
First of all, you need to download the patches I provide in this github repository. Go here: https://github.com/RehabMan/HP-ProBook-4x30s-DSDT-Patch, then download the ZIP (see the ZIP button there?), then extract the ZIP.
The whole suite of patches is broken down by function, and you can apply each patch individually with either the Auto-Patcher or with the DSDT Editor. But if you are certain the patches are going to work on your DSDT (ie. you have a Sandy Bridge series ProBook 4x30s laptop), then it is easiest and fastest to combine all the patches into one, and apply them all at once.
I have provided a 'Makefile' to create both all-in-one patches, all.txt and all1080p.txt. To create those files, just run 'make' at terminal and they will be created. If you don't have make (maybe only part of Xcode tools), then you can run the command manually.
Command for all.txt:
cat 01_Compilation.txt 02_DSDTPatch.txt 04_FanPatch.txt 05_OSCheck.txt 06_BatteryPart0.txt 07_BatteryPart1.txt 03a_HDMI.txt >all.txt
Command for all1080p.txt:
cat 01_Compilation.txt 02_DSDTPatch.txt 04_FanPatch.txt 05_OSCheck.txt 06_BatteryPart0.txt 07_BatteryPart1.txt 03b_1080p+HDMI.txt >all1080p.txt
For this step you will be running DSDT Auto Patcher under OS X. So first, you have to download the auto patcher. To download, visit this link: http://www.insanelymac.com/forum/index.php?showtopic=275658&st=0&p=1794303&#entry1794303
After downloading the auto patcher, extract it. This version of Auto Patcher uses an old version of the Intel 'iasl' compiler. You will run into problems if you use that compiler. To update it, visit this post (http://www.tonymacx86.com/hp-probook/70490-hp-probook-4x30s-4330-4430-4530-4730-patches-updated-9.html#post442794), download the .ZIP, extract the iasl binary within it, and replace the Auto Patcher iasl with this one.
Then double click on the DSDTParser.jar file contained there. You will need Java to successfully run this .jar. When the "DSDT Auto-Patcher" window appears, fill in the path to your DSDT, and the patch file created in the step above. When you are ready, hit Apply. The Auto-Patcher will disassemble your binary DSDT, apply all the patches in the text file, then recompile it to a new AML file. When it is done, it will ask where to store the result.
After it is done, you can copy your new DSDT into /Extra/dsdt.aml.
cp path-of-patched-dsdt.aml /Extra/dsdt.aml
And that's all. Enjoy your custom patched DSDT...