Following the previous post, here are the steps that worked on my Vista SP1 x64 notebook. Please note this is for reference only, this could damage your machine.
- Download the Microsoft ASL Compiler v3.0.1 and install it on your notebook.
- Start a command prompt using "Run as administrator" to make sure you have the correction permissions.
- Create a working directory, I used C:\DsdtPatch.
- Copy asl.exe from C:\Program Files (x86)\Microsoft ASL Compiler v3.0 to your working directory.
- Extract your current AML data from your registry. It is located at HKEY_LOCAL_MACHINE\HARDWARE\ACPI\DSDT\HP____\8510x\00010000. You need to extract the binary data in the key 00000000 to the file system. I've written a quick and dirty .Net program to do that.
- Unzip ExtractDsdt.exe into your working directory.
- run ExtractDsdt, a file 8510x.orig will be created. Make a backup of this file.
- copy 8510x.orig 8510x.aml
- asl /u 8510x.aml, the file 8510x.asl will be created.
- Open 8510x.asl in notebook. Now we begin our patching.
- Search for the following (note the pattern could be different for your machine).
For my F.0F BIOS the original values are
Name(C357, Package(0x6)
{
0x64,
0x4b,
0x3c,
0x32,
0x1e,
0x0
})
I found it easiest to search for "Package(0x6)" from notepad, that should take you to the right section, check that there are 6 hex values within the braces and within the _TZ_ scope.
Each value should represents the % fan speed at each temperature trip point in hex. I changed mine to.
Name(C357, Package(0x6)
{
0x64,
0x4b,
0x32,
0x1e,
0x14,
0x0
})
Save your file after your changes. - Now we can compile our updated 8510x.asl back to 8510x.aml. Execute asl 8510x.asl, I ignored the warnings, but if you get errors, go back and check your syntax. If you get "error: expecting Symbol '('" the number in the brackets is the line number, go to that line in 8510x.asl and add a pair of bracket () to the end of the previous line, I had to repeat this a few times before it will compile.
For example, change
If(LEqual(Arg0, 0x0))
{
C375
}
to
If(LEqual(Arg0, 0x0))
{
C375()
} - When you've compiled successfully, the file 8510x.aml will be updated. Check the timestamp.
Load this file to your system asl /loadtable 8510x.aml. - Now reboot, if everything works, your notebook fan should be slower after a few minutes after things settled down after reboot. WARNING: if it doesn't work and you get a blue screen during reboot. Press F8 and choose the "use last known good" option.
Hope this works for you if you're like me and was annoyed by the fan noise.