Linux是一种性能优越的开源操作系统,随着其性能和知名度越来越高,最主要的是在价格上无与伦比的优势,许多厂家开始推出Linux笔记本电脑,并且这种趋势大有愈演愈烈之势。我们知道,笔记本受到电池续航时间的限制,所以特别注重机器的电源管理。因此,本文将讨论如何处理这些事项。
一、概述
实际上,除了利用主板上的BIOS来管理电源外,大多数Linux系统本身都自带了管理电源的实用工具软件,来处理各种电源事件,如:
1.电池电量不足--这时机器会发出警告,并显示相应图标,或者将硬件挂起。
2.闲置--如果在一段时间内机器一直处于非活动状态,那么可以让机器休眠(如关闭硬盘以及停用音频及网络等服务)从而有效延长电池供电时间。
通过检测你的笔记本使用的是交流电源还是电池,可以让机器进入相应的电源管理模式。在Fedora中,用于管理和检修电源问题的工具有:
1.高级电源管理(APM)--APM软件组成如下:一个pmd守护进程,用来监视电池的使用情况;多个实用工具软件,用来显示和响应电池事件。它们包含于apmd软件包中。
2.高级配置和电源接口(ACPI)--acpid事件守护进程一方面监视电源事件,另一方面用来设置响应这些事件的规则,这些规则用来关闭某些硬件或关掉系统电源等。ACPI是一款设计用来替代APM电源管理的更具通用性的工具软件,但是目前它还需进一步完善。
3.hdparm命令--hdparm命令可用于打开和关闭电源管理功能。另外,该命令还有许多选项,完成诸如停止硬盘启动器转动或让硬盘进入待机状态等操作。
需要说明的是,使用ACPI时,是操作系统在负责电源管理,而不是BIOS。尽管ACPI在管理电源问题方面功能更强也更灵活,但是,普通用户用起来却不是那么方便,如使用ACPI时,你必须亲自告诉它要关注哪些电源事件以及如何响应这些事件。目前,对一般用户而言,APM的功能不但丰富,并且对用户也更加友好。
下边我们将针对以上三种常见的电源管理工具分别加以讨论。
二、用APM管理电源
在Fedora中,可以配置APM,让其检测某些电源事件并做出响应。这时,它运行守护进程/usr/sbin/apmd来侦听事件,然后根据配置文件/etc/sysconfig/apmd 中的有关规定来处理这些事件。要配置运行APM,输入下列命令:
# chkconfig apmd on
# service apmd restart
注意:apmd和acpid不能同时使用,所以,如果此前系统正在使用acpid的话,应该先停用它,具体命令如下:
# chkconfig acpid off
# service acpid stop
APM成功启动后,在文件/var/log/messages中应该看到一则消息,指出该服务已启动,并列出当前电池的电量状况。默认时,pmd守护进程根据文件/etc/sysconfig/apmd 中的设置运行。我们可以列出当前运行的进程来查看运行中的apmd的使用了哪些选项:
# ps ax | grep apmd
/usr/sbin/apmd -p 10 -w 5 -W -P /etc/sysconfig/apm-scripts/apmscript
根据以上命令中列出的选项,apmd守护进程将会:
1.记录电池电量的变化--如果电量变化超过10%或更多,守护进程将向系统日志文件(默认时为/var/log/messages)发出一条消息。这一行为是由选项"-p 10"指定的。
2.记录电池电量不足--当电池电量低于5%并且仍未充电时,一条警告消息将发送到系统日志文件中。这一行为是由选项"-w 5"指定的。
3.提醒用户--如果电池电量低于"-w"选项所设定的值,将向所有登录系统的用户发送警报。此行为是由选项"-W"指定的。
4.利用apmscript响应事件--出现电源事件时,apmd将这些事件转给设定用于响应这些事件的脚本。根据上面的命令,运行的脚本应该是/etc/sysconfig/apm-scripts/apmscript。所用的文件取决于选项"- P"。
除了上述的电量不足和电量变化设置外,大多数给与响应的电源事件仅在apmscript文件中有所提及。如果想了解您机器的电源管理情况的话,看看该文件的内容便一目了然了。在FedoraCore中,要想添加你自已的要给与响应的电源事件,你必须建立自己的脚本。默认时的apmscript是文件/etc/sysconfig/apm-scripts/apmcontinue。该文件处理以下事件:
1.挂起--当你的笔记本电脑进入挂起或待机状态后,文件apmscript会停止所有音频处理程序,挂其所有硬盘驱动器操作,关闭任何NFS连接,关闭网络连接以及pcmcia卡。
2.恢复--在复原时,apmscript会还原所有在挂起时停止的事件。
3.更换电源--当机器电源发生变化时,脚本会做出反应:如果使用交流电源,就让机器运行于高性能状态;如果使用电池,则让机器运行于更加节电的状态。
4.更换电池--如果电池缺电,该事件将使apm停止所有服务,并进入极限节电模式。
5.开机--启动机器时,apmscript会首先检查apmcontinue文件,除非你在该文件中设置了启动时要做的事,否则该脚本什么也不干。
6.停机--与开机时一样,停机时apmscript会首先检查apmcontinue文件,除非你在该文件中设置了启动时要做的事,否则该脚本什么也不干。
在apmcontinue文件中还可以有其他事件(默认时并不存在),用来响应其它选定的各种事件。此外,你还可以建立/etc/sysconfig/apm-scripts/apmcontinue脚本,然后让它来响应存放在像apmscript这样的文件中的各种事件。
如果只是随便的查看一下APM服务的话,可以使用不带参数的apm命令,这样能看到电池供电状况或是否使用交流电源之类的报告:
# apm
AC on-line, battery charging: 100%
你还可以让你的笔记本电脑进入挂起模式(apm-s)或待机模式(apm-S)。当接通交流电源后,笔记本电脑会忽略所有由APM(apm-i)产生的挂起和待机事件。