以往大家常常會認爲筆記本電腦的節能功能在linux中不如在windows中的,但我最近在dell inspiron 700m上安裝linux之後,發現其實linux對於acpi的支持已經非常完善了,對於intel處理器的speedstep模式的支持也很好,能做到動態調整cpu的頻率。這裏介紹一下在2.6.10內核中,我用到的與電源管理和顯示系統狀態有關的幾個內核模塊:
1. AC
用法: /sbin/modprobe ac
用途:這個模塊很簡單,就是顯示外接交流電源連接的狀態。加載這個模塊後,在 /proc/acpi/中會新建 ac_adapter/ADPx/目錄,其中的state文件內容即是電源連接狀態。
2. BATTERY
用法: /sbin/modprobe battery
用途:監視電池充放電狀態、當前容量等。加載模塊後,在/proc/acpi/中建立 battery/BATx/目錄,其中的文件內容記錄了電池的信息(info文件)、狀態(state文件)等。
3. THERMAL
用法: /sbin/modprobe thermal
用途: 監視CPU和主板等的溫度。加載後,/proc/acpi/目錄中建立thermal_zone/THRx/目錄,其中的temperature文件中記錄了溫度值,還有其他的文件定義了在某個溫度值系統應該採取的行動等信息。
4. BUTTON
用法: /sbin/modprobe button
用途:定義不同按鈕對應的系統行爲,例如,可以設置按電源鍵系統關機、合上屏幕系統休眠等。可以指定在這些鍵的狀態發生變化時執行相應的系統命令,具體內容可以參照 /etc/acpi/目錄中的腳本,這裏就不展開講了。
5. PROCESSOR
用法: /sbin/modprobe processor
用途:顯示CPU的信息、狀態,並能設置對CPU限速(throttling)。在/proc/acpi/processor/CPUx/目錄中的文件有cpu 的信息,也定義了在不同電源供應情況下對應的cpu狀態以及對cpu限速的規則。假如cpu支持頻率調節,則可以通過一些軟件利用有關文件實現這一功能。
6. cpufreq
用法: 在 /lib/modules/`uname -r`/kernel/arch/i386/kernel/cpu/cpufreq/目錄中有許多針對不同移動CPU進行頻率調節的模塊,需要根據你的 CPU進行選擇,有針對intel的speedstep的,也有針對amd的powernow的,還有針對transmeta的longrun的。我的是迅馳dothan 1.6G,所以我加載 speedstep-centrino 模塊: /sbin/modprobe speedstep-centrino,加載之後 /sys/devices/system/cpu/cpu0/cpufreq/裏面的文件就是與頻率調節有關的。
加載了上述模塊之後要通過一些軟件才能更方便地監視系統狀態和使用模塊提供的功能,gkrellm有很多有關的插件,windowmaker也有很多dockapps實現同樣的功能。我就是用的dockapps。