|
发表于 2009-3-16 21:23:16| 字数 2,201| - 中国–北京–北京 清华大学
|
显示全部楼层
|阅读模式
朋友的机器,我帮着从SKS那买的,可能是朋友用惯了X31,觉得nc6400的风扇太吵。我就帮着弄了一下,试了好多方法,在论坛上也看了几位大牛加二极管,换热管的方法,但始终不敢尝试。
找到了一个软件notebook hardware control,结果配置文件还不对,终于找到一个对的,还不好使。就根据NHC的配置文件研究了一下ACPI,同时从网上看到一篇文章,就想到了直接修改acpi参数的方法。奋斗了一个晚上+一个白天+一个晚上的时间,终于搞定了。拿来分享一下。忘各位大牛多多指教。
参考网址:http://eddietse.blogspot.com/200 ... 510p-to-reduce.html
下面是我的操作过程。
一、得到DSDT表
1、安装intel的一个工具――iasl,下载地址
http://www.acpica.org/download/iasl-win-20090220.zip,解压即可。
2、使用管理员帐户打开命令提示行(win+R cmd), 进入iasl所在文件夹
3、使用命令 iasl -g,得到DSDT表,在iasl所在目录会生成几个文件。
dsdt_nc6400.dat 这个是dsdt的二进制文件
dsdt_nc6400.dsl 这个是dsdt的反编译,这个就能够基本看懂了,电脑的风扇控制等很多信息就在这个文件里了。
二、修改风扇控制参数
1、找到风扇转速控制参数
用UltraEdit(记事本也可以)打开dstt_nc6400.dsl,找到Scope (\_TZ)位置(ctrl+F就可以了)。
看里面的参数定义:
注:以下只针对BIOS F.0B版本,其他版本没有验证,不保证正确性、安全性。不过应该差别不大。
可以看到以下几行:
Name (C303, 0x58)
Name (C304, 0x50)
Name (C305, 0x43)
Name (C306, 0x39)
Name (C307, 0x32)
这几个数就是风扇转速的级别控制了,0x32即 50%转速,0x50即 80%转速,即用16进制表示而已。
至于为什么最高不是0x64(100%),这个还没搞清楚。
此处需要说明一下:
hp的很多型号的风扇转速级别控制是写在一个变量里(6个数的数组,共六个等级)。
对于nc6400来说,应该是:
Name (C30B, Package (0x06)
{
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
}
这里所有的参数都为0,但是后面还有几个命令
Store (C303, Index (C30B, 0x00))
Store (C304, Index (C30B, 0x01))
Store (C305, Index (C30B, 0x02))
Store (C306, Index (C30B, 0x03))
Store (C307, Index (C30B, 0x04))
Store (0x00, Index (C30B, 0x05))
这就相当于
Name (C30B, Package (0x06)
{
0x58,
0x50,
0x43,
0x39,
0x32,
0x00
}
这样就是一样的了,不知道hp为什么把nc6400弄的这么麻烦。
这些风扇转速分别对应不同的cpu温度,到相应的问题就会启动相应的级别参数。
至于对应的温度,应该是TZ0的 AC1-AC5,但本人不知如何改动。如有牛人知道,欢迎赐教。
2、找到了风扇转速参数,就可以自己修改了。
可以看出,默认一级风扇就是(C307)50%的转速,显然风扇的噪音会比较大。 我们把它改小一些就可以了,把Name (C307, 0x32),32对应改动。 个人认为应该改到噪音很小的上限值,即:在噪音能够忍受的情况下越大越好。 其他级别也可以相应改动。不同的人可能有不同的优化值,大家多试几遍就好了。
3、编译dsdt为二进制格式
首先把修改后的dsdt_nc6400.dsl编译为dsdt_nc6400.aml,这个也是二进制文件,应该与.dat
文件是一样的。
编译命令 iasl dsdt_nc6400.dsl
编译的时候可能会有一些warning,如果你确定没有改过其他地方的话,这些warning完全不用理会。
4、下面需要把改好的参数,重新写回BIOS,让他产生作用了。
这里需要另一个软件,我尝试用iasl搞定,但是没找到相应命令。
那位大牛知道,告诉我一下吧。
a、下载安装 Microsoft ASL Compiler v3.0.1
http://download.microsoft.com/do ... -Compiler_3.0.1.msi,安装的时候好像会报错,不用理它。
安装之后C盘会生成一个文件夹DsdtPath(如果没有自动生成,自己建一个也可),到安装目录,把asl.exe考出来,放到这个文件夹。
把前面的dsdt_nc6400.aml,也考到这个文件夹。
b、使用管理员帐户打开命令提示行(win+R cmd),
执行命令 asl /loadtable dsdt_nc6400.aml
load完之后重启一下就可以了。
有时候重启不管用,那就把电脑关了,再开,就可以了。
当然也可以使用asl.exe反编译dsdt_nc6400.dat得到dsdt_nc6400.asl,
修改asl文件之后,再编译为.dat文件,然后加载到bios。效果一样,这里就不再详细叙述了。
.asl文件和.dsl文件只有文件开头有些区别,其他地方区别很小。
[ Edited by 我们是害虫 on 2009-4-10 19:54 ] |
|