Arch不完全降溫筆記

| Comments

主要目標是解決我的X200在Archlinux(本文內容均基于此發行版)下CPU溫度長期居高不下的問題,基本原理是使用cpufrequtils根據CPU負載狀況自動變頻,和使用laptop-mode-tools實現其它硬件設備的自動節能。最直接的效果是省電,從而延長電池的使用時間,產生的附加影響就是CPU及筆記本整體的溫度下降。我幾乎不用電池,所以節能不是我的關注點,但降溫卻是我所欲也。

首先安裝cpufrequtils,并將acpi-cpufreqcpufreq_ondemandcpufreq_powersave加入rc.confMODULES中,使系統在啟動時加載這些模塊。

默認情況下,內核采用cpufreq的performance模式,以獲得最高性能,現在用ondemand模式使CPU根據負載狀況自動變頻。修改/etc/conf.d/cpufreq文件,將governor項設為ondemand

cpufreq加入rc.confDAEMONS中,此守護進程會在系統啟動時讀取配置文件/etc/conf.d/cpufreq中的設置項,故上面設置的ondemand模式會在系統啟動時得以自動生效。

然後安裝laptop-mode-tools,并修改/etc/laptop-mode/laptop-mode.conf,打開所有的三個以ENABLE開頭的選項,和所有以CONTROL開頭的選項。

laptop-mode加入rc.confDAEMONS中,使其隨系統自動啟動。

修改/etc/laptop-mode/conf.d/usb-autosuspend.conf,此配置文件用來配置laptop-mode如何管理USB設備的電源使用。我希望在任何時候都啟用USB設備自動節能,但需要把我的無線鼠標排除在外,故作如下配置:

1
2
3
4
5
6
7
8
9
10
# 启用USB设备自动挂起
CONTROL_USB_AUTOSUSPEND="auto"

# 将不使用自动挂起的USB设备的ID填在下面,使用lsusb命令查看ID
AUTOSUSPEND_USBID_BLACKLIST="04fc:05dc"

# 总是启用USB自动挂起
BATT_SUSPEND_USB=1
LM_AC_SUSPEND_USB=1
NOLM_AC_SUSPEND_USB=1

類似地,修改intel-hda-powersave.conf,此配置文件用于配置laptop-mode如何管理Intel HDA音頻芯片的電源使用。我希望一直啟用聲卡自動節能,并適當地將自動進入節電模式的空閑時間增加到30秒,故配置如下:

1
2
3
4
5
6
7
8
9
10
# 啟用Intel音頻芯片電源管理
CONTROL_INTEL_HDA_POWER="auto"

# 總是啟用
BATT_INTEL_HDA_POWERSAVE=1
LM_AC_INTEL_HDA_POWERSAVE=1
NOLM_AC_INTEL_HDA_POWERSAVE=1

# 適當地設置聲卡進入節電模式的超時時間
INTEL_HDA_DEVICE_TIMEOUT=30

類似地,修改intel-sata-powermgmt.conf,啟用sata硬盤接口的電源管理。由于我用Blueman控制藍牙設備,一般不用時都將其關閉,同時經常使用wifi,故藍牙和無線網卡均未作配置。

最後,关闭conky,Firefox和Chromium,powertop显示conky是个很吵闹的东西,关掉它可以使Wakeups-from-idle per second的值下降很多,另外Chromium和Firefox也是耗电大户。

在此之前,系統空閑時CPU溫度一般是50多度,普通使用時一般在60多度,如果開了kvm虛擬機會達到60至90度間。經過以上設置,系统空闲时CPU温度一度下降到39度,即使開了虛擬機,一般也可維持在50到80度間。

另外,對于以上內容,我還有些沒搞明白的地方和要補充說明的東西:

  1. 雖然將laptop-mode加入rc.conf且已隨系統啟動,但使用命令“cat /proc/sys/vm/laptop_mode”查詢得到的結果仍然是0,也就是說沒有自動啟用laptop-mode,必須使用命令“sudo /etc/rc.d/laptop-mode restart”手動重啟才行。目前沒有找到解決辦法。
  2. 雖然啟用laptop-mode接管聲卡電源管理,但沒找到查看是否生效的方法,于是在/etc/rc.local中加入命令“echo 1 > /sys/module/sndhdaintel/parameters/power_save”以強制聲卡節電。
  3. Intel的powertop是個好東西,用它可以查看哪些進程最影響CPU節能。我們優化的標准之一就是使powertop中顯示的“Wakeups-from-idle per second”盡可能地減少。powertop的另一個特點就是通過自動檢查當前系統中電源使用的配置情況給出優化的建議,這是個很貼心的功能。

鑒于目前存疑較多并將繼續嘗試,所以在標題中特別注明“不完全”三個字……

參考

  1. http://itgen.blogspot.com/2009/03/energy-management-in-linux.html
  2. http://www.ibm.com/developerworks/cn/linux/l-cpufreq-1/index.html
  3. http://www.lesswatts.org/

Comments