1.安裝laptop-mode-tools
?
2.修改電源管理配置: laptop-mode.conf
?
修改配置文件:
?
?
#有關參數的說明請參照文件里的注釋說明
ENABLE_LAPTOP_MODE_ON_AC=1
#當筆記本使用交流電時也開啟laptop-mode
ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED=1
?
MINIMUM_BATTERY_CHARGE_PERCENT=11
DISABLE_LAPTOP_MODE_ON_CRITICAL_BATTERY_LEVEL=7
?
CONTROL_HD_IDLE_TIMEOUT=0
# ArchLinux/Debian 默認 20 ,導致硬盤經常停轉起轉,Ubuntu 默認 60 ,
用了幾天沒感覺。總之我關掉了這項功能。
LM_AC_HD_IDLE_TIMEOUT_SECONDS=20
LM_BATT_HD_IDLE_TIMEOUT_SECONDS=20
CONTROL_HD_POWERMGMT=1
# ArchLinux/Debian 默認不啟用,Ubuntu 默認啟用,我也設為啟用,但修改下面三個值。
BATT_HD_POWERMGMT=192
LM_AC_HD_POWERMGMT=192
NOLM_AC_HD_POWERMGMT=192
?
深入了解laptop_mode??
UBUNTU6.06LTS版附帶的laptop-mode-tools是 1.11(2005-10-29日發布)的版本,具最新的1.32版(2006-10-06日發布)已相差14個版本,UBUNTU的laptop- mode-tools包已經非常舊啦,一年多的時間沒有維護和升級過啦。?
為了更好的用好laptop_mode_tools帶來的便利,強列推薦用戶升級到1.32版,?
ubuntu的用戶可以到這里下載:http://www.xs4all.nl/~bsamwel/laptop_mode/tools/downloads/debian/laptop-mode-tools_1.32-1_all.deb?
新版本的功能修證和增強請參閱:http://www.xs4all.nl/~bsamwel/laptop_mode/tools/revision-history.html?
附1.32版的安裝和啟動方法:?
I、安裝:sudo dpkg -i laptop-mode-tools_1.32-1_all.deb?
注:如果你已安裝過ubuntu附帶的1.11版,安裝過程中將提示你是替換舊版的配置文件和守護腳本,按Y鍵替換,N鍵保留,D鍵查看新舊版配置文件的不同,這里請按Y鍵。?
II、配置方法1.:sudo gedit /etc/default/acpi-support,更改ENABLE_LAPTOP_MODE=true?
(注:這樣設置只為允許啟動laptop_mode,而laptop_mode_tools的配置文件默認在切挽到電池供電時啟用 laptop_mode,如果你只想在電池供電狀態下使用laptop_mode請用此設置且不用再作其它設定如配置方法2)?
配置方法2:sudo gedit /etc/laptop-mode/laptop-mode.conf更改ENABLE_LAPTOP_MODE_ON_AC=1,ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED=1?
(注:在acpi-support中設置ENABLE_LAPTOP_MODE=true后,想在電源供電狀態啟動laptop_mode,或合上LCD時啟用laptop_mode請用)?
III、啟動:新版的laptop_mode_tools,在你正確配置了相關配置文件后,會隨系統自動啟動。?
你可以重新啟動laptop,鍵入cat /proc/sys/vm/laptop_mode看看,非零則正常啟動。?
手動啟動方法如同laptop_mode_tools 1.11版,新版守護腳本增加了force-reload參數,你可以在必要情況下使用。?
下面講講sudo laptop_mode status后的信息。?
sudo laptop_mode 返回當前laptop_mode的狀態信息。?
Mounts:安裝點,形同/etc/mtab,當前系統安裝點狀態。?
和mounts相關的laptop_mode.conf設置:?
CONTROL_NOATIME=0?
控制文件系統掛起選項noatime,禁止更新文件的訪問時間,能大大提高效率。訪問時間不是一個太有用的屬性,修改/etc/fstab就可以了,?
如:/etc/fstab中:/dev/fd0 /floppy auto user,noauto,noatime 0 0?
CONTROL_MOUNT_OPTIONS=1?
Change mount options on partitions in PARTITIONS?(partitions in PARTITIONS?不知怎樣理解?知道的請跟貼。謝謝!),你最好不要改變此設置。?
Drive power status:驅動器電源狀態:?
/dev/hda:?
drive state is :active/idle?
硬盤狀態:活動或空閑狀態?
/dev/hdc:?
drive state is :standby?
光驅狀態:待命?
(NOTE: drive settings affected by Laptop Mode cannot be retrieved.)?
注意:laptop mode不能恢復受影響驅動器設置。?
注:Drive power status受laptop_mode.conf配置影響,?
CONTROL_HD_IDLE_TIMEOUT=1,值為1時,控制硬盤空閑超時。?
LM_AC_HD_IDLE_TIMEOUT_SECONDS=20:latop_mode模式電源供電時硬盤空閑超時秒數?
LM_BATT_HD_IDLE_TIMEOUT_SECONDS=20:laptop_mode模式電池供時硬盤空閑超時秒數?
NOLM_HD_IDLE_TIMEOUT_SECONDS=7200:非laptop_mode模式硬盤空閑超時秒數?
這里的硬盤空閑超時指的是設置磁盤驅動器低速運轉超時,磁盤根據此超時值決定在關閉主軸電機以節約能耗之前等待多長時間(無磁盤操作)。在這種狀態下,驅動器可能需要來響應一個接下來的磁盤訪問。?
如上述laptop_mode模式下磁盤驅動器低帶運轉超時值為20秒,非laptop_mode模式超時值為2小時。?
驅動器狀態:active/idle--活動/閑置指普通操作;standby--待命指低能耗模式,驅動器待命中;sleep--掛起指最低能耗模式,驅動器被完全關閉。?
Readahead states:(超前讀狀態)?
/dev/hda3: 3072 kB?
/dev/hda9: 3072 kB?
/dev/hda1: 3072 kB?
/dev/hda5: 3072 kB?
/dev/hda6: 3072 kB?
/dev/hda7: 3072 kB?
預備知識:所有的Linux文件系統使用一個共同的buffer cache來緩存底層的設備的數據緩沖區,這樣可以加速對于存放文件系統的物理設備的訪問,從而加快對文件系統的訪問。這個buffer cache獨立于文件系統,集成在Linux核心分配、讀和寫數據緩沖區的機制中。讓Linux文件系統獨立于底層的介質和支撐的設備驅動程序有特殊的好處。所有的塊結構的設備向Linux核心登記,并表現為一個統一的,以塊為基礎的,通常是異步的接口。甚至相對復雜的塊設備比如SCSI設備也是這樣。當真實的文件系統從底層的物理磁盤讀取數據的,引起塊設備驅動程序從它們控制的設備上讀取物理塊。在這個塊設備接口中集成了buffer cache。當文件系統讀取了塊的時候,它們被存放到了所有的文件系統和Linux核心共享的全局的buffer cache中。其中的buffer(緩沖區)用它們的塊編號和被讀取設備的一個唯一的標識符來標記。所以,如果相同的數據經常需要,它會從buffer cache中讀取,而不是從磁盤讀取(會花費更多時間)。一些設備支持超前讀(read ahead),數據塊會預先讀取,以備以后可能的讀取。?
從而看出我的laptop的readahead數據為3M.?
Laptop Mode is allowed to run: /var/run/laptop-mode-enabled exists.?
當/var/run/laptop-mode-enabled 文件存在時laptop mode充許運行。?
此文件是你在配置文件acpi-support中更改ENABLE_LAPTOP_MODE=true時,守護腳本所產生的,也是你在電腦啟動時看到“Enabling laptop mode”提示時產產生的。?
/proc/sys/vm/dirty_ratio: 60?
該文件表示如果進程產生的臟數據到達系統整體內存的百分比,此時進程自行把臟數據寫回磁盤。缺省設置:40?
/proc/sys/vm/dirty_background_ratio: 1?
該文件表示臟數據到達系統整體內存的百分比,此時觸發pdflush進程把臟數據寫回磁盤。缺省設置:10?
/proc/sys/vm/dirty_expire_centisecs: 36000?
該文件表示如果臟數據在內存中駐留時間超過該值,pdflush進程在下一次將把這些數據寫回磁盤。缺省設置:3000(1/100秒)?
/proc/sys/vm/dirty_writeback_centisecs: 36000?
該文件表示pdflush進程周期性間隔多久把臟數據寫回磁盤。缺省設置:500(1/100秒)?
有關臟數據的處理的相關設置:?
LM_DIRTY_RATIO=60:含義請見status輸出的/proc/sys/vm/dirty_ration部分,此處是指laptop_mode模式下的設置。?
NOLM_DIRTY_RATIO=40:含義請見status輸出的/proc/sys/vm/dirty_ration部分,此處是指非laptop_mode模式下的系統默認設置。?
LM_DIRTY_BACKGROUND_RATIO=1:含義請見status輸出的/proc/sys/vm/dirty_background_ratio部分,此處是指laptop_mode模式下的設置。?
NOLM_DIRTY_BACKGROUND_RATIO=10含義請見status輸出的/proc/sys/vm/dirty_background_ratio部分,此處是指laptop_mode模式下的系統默認設置。?
有關磁盤行為的其它設置:?
CONTROL_HD_WRITECACHE=0?
控制磁盤驅動器的寫緩存特性,值0為關閉,1為打開,此值直接影響到*_HD_WRITECACHE的設置。?
NOLM_AC_HD_WRITECACHE=1?
非laptop_mode模式電源適配器供電時磁盤驅動器的寫緩存行為,值0為關閉,1為打開;?
NOLM_BATT_HD_WRITECACHE=0?
非laptop_mode模式電源供電時磁盤驅動器的寫緩存行為,值0為關閉,1為打開;?
LM_HD_WRITECACHE=0?
laptop_mode模式磁盤驅動器的寫緩存行為,值0為關閉,1為打開;?
CONTROL_HD_POWERMGMT=0?
控制磁盤驅動器的高級電源管理(請先確定你的磁盤是否支持APM),值0為關閉,1為打開;此值直接影響到*_HD_POWERMGMT的設置。?
*_HD_POWERMGMT的值(1-255),低參數值獲得更好的電源管理,高參數值獲得更好的性能,值為255時關閉磁盤APM支持。?
BATT_HD_POWERMGMT=1?
電池供電時磁盤驅動器的電源管理,更省電。?
LM_AC_HD_POWERMGMT=255?
laptop_mode模式電源適配器供電時的電源管理,這里是關閉磁盤APM支持。?
NOLM_AC_HD_POWERMGMT=255?
非laptop_mode模式電源適配器供電時的電源管理,這里是關閉磁盤APM支持。?
*_MAX_LOST_WORK_SECONDS:?
當你系統崩潰或切斷電源時,將丟失內存中多少鈔內的數據。?
LM_BATT_MAX_LOST_WORK_SECONDS=600?
laptop_mode模式,電池供電時,若系統崩潰或斷電時,將丟失600秒內的數據?
LM_AC_MAX_LOST_WORK_SECONDS=360?
laptop_mode模式,電源供電時,若系統崩潰或斷電時,將丟失360秒內的數據?
LM_SECONDS_BEFORE_SYNC=2:?
laptop_mode模式,磁盤在進入空閑狀態前幾秒鐘同步數據。?
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq: 531672?
cpu變頻之當前頻率?
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq: 1528557?
cpu變頻之最大頻率?
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq:531672?
cpu變頻之最小頻率?
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor:userspace?
cpu變頻之頻率調節器?
注:有關laptop_mode的CPU變頻設定(該功能工作于2.6系統的內核),受/etc/laptop-mode/laptop-mode.conf文件的影響,?
如果你是AMD的CPU,建意用AMD的PowerNow功能,ubuntu中的powernow腳本也是建立在cpufreq的基礎上。?
AMD CPU PowerNow的用法是在/etc/fstab中增加一行代碼sysfs /sys sysfs defaults 0 0。?
起用laptop_mode模式的CPU變頻功能:更改CONTROL_CPU_FREQUENCY=1,?
BATT_CPU_*:在電池供電時CPU變頻設定,?
LM_AC_CUP_*:laptop_mode模式電源供電時CPU進行變頻設定,?
NOLM_AC_CUP_*:非laptop_mode模式電源供電時CPU進行變頻設定,?
可用的CPU頻率請見:/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies?
可以的CPU調節器請見:/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors?
CONTROL_CPU_THROTTLING=0?
如果你的CPU不支持變頻設定,只支持過熱保護時請用(此功能多用于P4cpu,amd不適用),?
CPU過熱保護降頻,可用的降頻模式請見:/proc/acpi/processor/CPU*/throttling,?
若*_CPU_THROTTLING=maximum則CPU運行非常慢!?
若*_CPU_THROTTLING=minimum則CPU運行較快!?
若*_CPU_THROTTLING=medium則是CPU一半的頻率運行!?
CPU 過熱保護降頻跟intel speed step不同。speed step的降頻是根據CPU負荷自動調整工作頻率的機制,它可以讓CPU在兩種工作模式之間隨意地切換,即接交流電時的最大性能模式和電池狀態時的節電模式,其目的在于降低發熱和功耗;而CPU過熱保護降頻(即 CPU throttle)屬于硬件過熱保護技術,當CPU內部溫度超過一定臨界值時,為保護CPU不被燒毀而進行’降頻’。?
CPU throttle降頻機制的原理是,當傳感器檢測到CPU內部溫度超過臨界值時,開始在CPU時鐘周期中插入空閑周期然后再送入ALU(算術邏輯運算單元)。ALU是CPU中是真正負責運算的部件,因為此時ALU的頻率為CPU時鐘主頻的一半,所以此時CPU性能也就降半。?
/proc/acpi/button/lid/LID/state:?
state: open?
laptop的屏幕開合鍵狀態,laptop-mode.conf的配置項ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED將會用到此狀態,若此配置項值為1,則合上屏幕時會進入laptop_mode模式。?
laptop的LCD通常是個能源消耗大戶,以至于LCD的開合,LCD的亮度調節都對laptop的能源有個重大影響,至于laptop的屏幕開合鍵狀態及相關執行動作,請見系統菜單system-preferences-power management內容。?
/proc/acpi/ac_adapter/AC/state:?
state: on-line?
laptop-mode.conf的配置項ENABLE_LAPTOP_MODE_ON_AC將會用到此狀態,若此配置項值為1,則可以在電源適配器供電時使用laptop_mode模式。?
laptop的電源適配器狀態。on-line表示在電源適配器供電模式,off-line表示在電池供電模式。?
至于laptop的電源狀態及相關執行動作,請見系統菜單system-preferences-power management內容。?
/proc/acpi/battery/CMB1/state:?
present: yes?
capacity state: ok?
charging state: discharging?
present rate: 0 mA?
remaining capacity: 4000 mAh?
present voltage: 12450 mV?
/proc/acpi/battery/CMB2/state:?
present: no?
其它status中無表示的laptop_mode.conf配置?
CONTRON_SYSLOG_CONF?
CONTRON_SYSLOG_CONF=0:是否用laptop_mode_tools來控制syslogd,值0則否,值1則是;當值1 時,laptop_mode_tools則把原始的syslogd配置文件,備份為/etc/syslog.conf.no-lm,當系統為非 laptop_mode模式時則還原為原始的syslogd配置文件。?
LM_AC_SYSLOG_CONF=/etc/syslog-on-ac-with-lm.conf?
Laptop_mode模式用電源適配器供電時syslog文件為:/etc/syslog-on-ac-with-lm.conf?
NOLM_AC_SYSLOG_CONF=/etc/syslog-on-ac-without-lm.conf?
非Laptop_mode模式用電源適配器供電時syslog文件為:/etc/syslog-on-ac-without-lm.conf?
BATT_SYSLOG_CONF=/etc/syslog-on-battery.conf?
電池供電時syslog文件為:/etc/syslog-on-battery.conf?
SYSLOG_CONF_SIGNAL_PROGRAM=syslogd?
當產生syslog的配置文件被改變或替換時信號通知的程式為syslogd?
SYSLOG_CONF=/etc/syslog.conf?
原始syslogd配置文件為/etc/syslog.conf?
CONTROL_START_STOP=1:laptop_mode_tools能自動開始和結束程序在不同的電源供電情況下。?
簡略點講:你可以放置自已編寫的腳本到/etc/laptop-mode/batt-stop, batt-start, lm-ac-stop,lm-ac-start, nolm-ac-stop,nolm-ac-start文目下,切換不同的供電情況時,將執行相關目錄下的腳本。腳本的編寫要求是可以傳遞"start" 或"stop"參數,如切換不同電源供電情況時將傳遞觸發此情況之前所執行腳本的"stop"參數,和現在將執行腳本的"start"參數。?
什么時候會用到此功能,比如,你在從桌面拿開laptop,到會議室時,可能想讓電腦作些什么例行操作,然后由會議室回到辦會桌時,又能讓電腦作些什么例行操作之類的。大家自已想吧。?
CONTROL_DPMS_STANDBY?
CONTROL_DPMS_STANDBY=0:是否控制DPMS(顯示器電源管理系統),DPMS通常支持兩種模式Standby(待機), Suspend(掛起)。值0則否,值1則控制DPMS(顯示器電電源管理信號)待命。?
顯示器工作狀態的控制既可以由BIOS來完成,也可以在OS中設定。在BIOS電源管理設置項中,如果將 “Video off method(視頻關閉方式)”交給DPMS,當在一定時間內沒有對計算機進行操作后,顯示器就會進入待機狀態,電源指示燈閃爍;如果再隔一段時間仍未對計算機進行操作,顯示器則進入節能效果更佳的掛起狀態,此時電源指示燈為黃色(正常顯示時為綠色)。?
待機狀態下,顯卡停止輸出場同步信號,顯示器中場掃描電路停止工作,但行電路繼續工作,燈絲也繼續給陰極加熱,雖然顯示器處于黑屏,但可以被瞬間喚醒;?
掛起狀態下,顯卡同時停止行、場掃描信號輸出,顯示器行、場掃描電路均停止工作,燈絲供電如果從行電路獲得,此時燈絲也不亮了。掛起狀態下只有電源維持工作,耗電量很少,但喚醒時間也較長。?
提示,更多更祥細的有關顯示器電源管理可到BIOS菜單配置。?
BATT_DPMS_STANDBY=300:電池供電下顯示器空閑超過5分種進入待機狀態。?
LM_AC_DPMS_STANDBY=1200:laptop_mode模式電源適配器供電下熒屏顯示器超過20分種進入待機狀態。?
NOLM_AC_DPMS_STANDBY=1200:非laptop_mode模式電源適配器供電下熒屏顯示器超過20分種進入待機狀態。?
CONTROL_TERMINAL=0?
laptop_mode_tools是否控制終端(顯示輸出終端)關閉。值0為否,值1則是。?
BATT_TERMINAL_BLANK_MINUTES=1?
BATT_TERMINAL_POWERDOWN_MINUTES=2?
電池供電情況下顯示輸出關閉和斷電等候時間。?
LM_AC_TERMINAL_BLANK_MINUTES=10?
LM_AC_TERMINAL_POWERDOWN_MINUTES=10?
laptop_mode模式電源適配器供電情況下顯示輸出關閉和斷電等候時間。?
NOLM_AC_TERMINAL_BLANK_MINUTES=10?
NOLM_AC_TERMINAL_POWERDOWN_MINUTES=50?
非laptop_mode模式電源適配器供電情況下顯示輸出關閉和斷電等候時間。?
上述這些設置指明了在多久時間后顯示輸出終端關閉并斷電。如BLANK_MINUTES=2 and POWERDOWN_MINUTES=5意味著顯示輸出設備將在7分鐘之后關閉并斷電。?
參數值的范圍值在1到60分鐘間,值0則表示禁止。?
ENABLE_AUTO_HIBERNATION?
ENABLE_AUTO_HIBERNATION=0:當電池將放完電時,是否允許laptop_mode_tools控制laptop自動進入睡眠,值0為否,值1則是。?
HIBERNATE_COMMAND=/usr/sbin/hibernate:當觸發電腦自動睡眠時將執行的命令為/usr/sbin/hibernate.?
AUTO_HIBERNATION_BATTERY_CHARGE_PERCENT=2:當電池剩余電量為總電池充電量的百分之幾時電腦將自動睡眠。?
AUTO_HIBERNATION_ON_CRITICAL_BATTERY_LEVEL=1:當電池報告其放電到緊急情況時將啟動電腦自動睡眠。?
下面是一些系統內核默認參數,如果你不知道你要作什么,請不要隨便改變它。?
DEF_UPDATE=5?
DEF_XFS_AGE_BUFFER=15?
DEF_XFS_SYNC_INTERVAL=30?
DEF_XFS_BUFD_INTERVAL=1?
DEF_MAX_AGE=30?
XFS_HZ=100?
總結:本文通過結合laptop_mode_tools的輸出信息來講解laptop_mode_tools的配置文件,講述了加載點控制、文件系統超前預讀緩沖設置、臟數據處理、磁碟驅動器寫緩沖、驅動器電源控制、內存數據同步時間、CPU變頻及CPU過熱保護設置、顯示輸出設備節省方案等方法相關知識。希望大家用好這個2.6內核加入的laptop_mode模式,用好你的laptop,也希望對想深入了解系統和對系統優化感興趣的朋友啟一個拋磚引玉的作用。??
來自:http://kw-gift.com/blog/index.php?entry=entry061025-180208