显示器的亮度控制

ACPI中还有控制亮度的规格,如果DSDT中有控制亮度的定义块,就可以进行亮度控制。亮度控制所需的主要是ACPI的定义块中定义的_BCL、_BCM、_BQC方法。要确认ACPI的定义块请参考Hack#40。

还准备了从键盘的功能键等通知更改显示器亮度的结构。

_BCL(Query List of Brightness Control Levels Supported)

通过这个方法,操作系统可获取内置显示器设备所支持的亮度水平的列表。另外还显示LCD是否支持更改亮度水平。将亮度水平分别用0~100的数字来表示百分比。

显示器的亮度控制 - 图1


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获取的值。

显示器的亮度控制 - 图2

_BQC(Brightness Query Current level)

这个方法返回当前的亮度水平。

显示器的亮度控制 - 图3

除ACPI以外,也有厂商固有的视频控制,但Linux中有控制背光灯的子系统,可以经由/sys来进行。

显示器的亮度控制 - 图4

现在已经出现了一些用于显示器省电控制的便捷的应用程序。Fedora 13等中可以使用名为gnome-preference的应用程序来设置显示器的亮度等(见图6-9)。

使用xbacklight命令还可以调节显示器的亮度。

根据需要可以安装xbacklight工具包。

yum install xbacklight

显示器的亮度控制 - 图5

图 6-9 gnome-power-preference的设置界面

显示器的亮度控制 - 图6

下面是使用xbacklight命令的例子。

xbacklight-steps 10-time 1000-dec 50