显示器的亮度控制
ACPI中还有控制亮度的规格,如果DSDT中有控制亮度的定义块,就可以进行亮度控制。亮度控制所需的主要是ACPI的定义块中定义的_BCL、_BCM、_BQC方法。要确认ACPI的定义块请参考Hack#40。
还准备了从键盘的功能键等通知更改显示器亮度的结构。
_BCL(Query List of Brightness Control Levels Supported)
通过这个方法,操作系统可获取内置显示器设备所支持的亮度水平的列表。另外还显示LCD是否支持更改亮度水平。将亮度水平分别用0~100的数字来表示百分比。
Method(_BCL,0){
//List of supported brightness levels
Return(Package(7){
80,//level when machine has full power
50,//level when machine is on batteries
//other supported levels:
20,40,60,80,100
}
}
_BCM(Set the Brightness Level)
通过这个方法,操作系统设置内置显示器设备的亮度。
操作系统只能设置通过BCL获取的值。
_BQC(Brightness Query Current level)
这个方法返回当前的亮度水平。
除ACPI以外,也有厂商固有的视频控制,但Linux中有控制背光灯的子系统,可以经由/sys来进行。
现在已经出现了一些用于显示器省电控制的便捷的应用程序。Fedora 13等中可以使用名为gnome-preference的应用程序来设置显示器的亮度等(见图6-9)。
使用xbacklight命令还可以调节显示器的亮度。
根据需要可以安装xbacklight工具包。
yum install xbacklight
图 6-9 gnome-power-preference的设置界面
下面是使用xbacklight命令的例子。