Related Posts Plugin for WordPress, Blogger...

[節能] Ubuntu 調整 CPU 電壓(CPU 降溫、NB 長效)

Ubuntu 調整 CPU 電壓(CPU 降溫、NB 長效)Linux 向來是沒有什麼事作不到的,尤其是最友善的 Ubuntu,但要調整 CPU 電壓,就沒有像 Windows 下用 RMClock 來的方便了,目前講求節能減碳,用功耗壓榨效能已不是趨勢,尤其是筆記型電腦(NB)更講求要輕薄長效,其實不需要遷就 CULV 的高價與低能,一般的 Mobile 版 CPU 就有很大的調降電壓能力,電壓降了溫度、功耗自然就降,雖然會耗損一點效能,但絕對不像 CULV 這麼誇張,但在 Linux 下似乎不是這麼容易。

拜 Facebook 所賜,目前最普通的電腦不只要能上網,至少還要能玩 Flash 遊戲,要拿 CULV 甚至是 Atom 等低功耗低效能 CPU 來當第二台電腦的主要零件,恐怕都還有點力不從心,更不要說是主要使用的電腦,要 Facebook 玩得毫無拘束,遊戲也不要過份狂熱,能同時開啟兩三個,這樣的需求主流筆記型電腦的 CPU 都還能勝任,但先不論功耗,光溫度就夠嚇人的了,越是輕薄短小機器的散熱就更差,CPU 八九十度是很常見的,雖然大多 CPU 能承受一百度左右,但是筆記型電腦是移動裝置,帶著可以煮開水熱便當的機器"移動"似乎…

目前在 Linux 上比較成熟的 CPU 電壓調整方案,大概就只有 Linux-PHC,跟 Windows 上免安裝且友善圖形介面的 RMClock 相比,Linux-PHC 可說是很不方便且很不友善的,但是 CULV 市場挫敗收場,要幫 NB 降溫勢必還是得從 CPU 電壓下手,用了一陣子 Linux-PHC 雖不方便,但也還能接受,以下就整理一下使用方法。

※新增軟體來源:ppa:linux-phc/ppa
sudo add-apt-repository ppa:linux-phc/ppa
sudo apt-get update

※安裝 Linux-PHC 套件:linux-generic-phc、linux-headers-generic-phc
sudo apt-get install linux-generic-phc linux-headers-generic-phc
安裝完畢重新開機,檢查是否核心已經更新為 PHC Kernel。
image

※ 下載 Linux-PHC Patches 檔:
這裡就比較麻煩了,有分 AMD 跟 Intel CPU,也有分 Linux 核心版本,一般來說在 Release 版塊都能找到適合的版本,此外 AMD K8 CPU 都支援,Intel 只支援 P、T 兩個 Mobile 系列的 CPU。
Release:http://www.linux-phc.org/forum/viewtopic.php?f=13&t=2
Ubuntu 10.10 Maverick 採用 2.6.35 版核心,並不在 Linux-PHC Release 裡,請到 phc-intel 0.3.2 with support for kernels up to 2.6.36 by SimonP 討論串下載非官方修改版本

※ 安裝 Linux-PHC Patches
解壓縮後進入目錄
tar -xf (括弧部份請換成下載檔名 或者 輸入phc-[Tab鍵])
cd (括弧部份請換成解壓縮資料夾路徑 或者 輸入phc-[Tab鍵])
使用下列指令編譯安裝
make prepare
make
sudo make install
重新開機檢查是否安裝成功(輸入指令應該會出現一組數字,CPU 頻率段數越多就會有越多個數字,如 T7300 有五個段數:45 43 31 18 11)
cat /sys/devices/system/cpu/cpu0/cpufreq/phc_default_vids

※ 逐步調降 CPU 電壓
依據上個步驟取得的預設數值逐步調降,輸入指令:
sudo echo "42 42 30 17 10" > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
直到當機為止測出 CPU 能接受的最低電壓,這個步驟很麻煩,有網友寫出一個 Script 可以自動測出最低電壓,請參考這裡的第 4.,或直接依照下方簡略說明操作。

簡略說明:直接下載本站備份 Script
解壓縮取得 Script 檔:
unzip intel-phc-undervolt.bash.zip
加執行權限給 Script 檔:
chmod +x intel-phc-undervolt.bash
安裝 CPU 燒機程式
sudo apt-get install cpuburn
執行 Script:
./intel-phc-undervolt.bash
輸入 Y 開始執行,這個步驟會當機數次,重新開機後反覆執行這個 Script。
image
當重新執行出現 All done! 字樣就表示偵測完成,結果儲存在 phc_tweaked_vids 檔案裡。
image
打開 phc_tweaked_vids 檔案
gedit phc_tweaked_vids
會有一組數字,這組數字各加 2 左右就是最低電壓(實際還是要測試看看),像這裡得到是 23 23 15 1 1,就記住 27 25 17 3 3 這組數字。
image
將這組數字寫入 /sys/devices/system/cpu/cpu*/cpufreq/phc_vids 作實際測試:
sudo echo "27 25 17 3 3" > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
sudo echo "27 25 17 3 3" > /sys/devices/system/cpu/cpu1/cpufreq/phc_vids
有個 CPU 核心就要輸入幾行,cpu0、cpu1、cpu2...(以此類推)
實際操作至少十分鐘,系統若是出現當機、不穩定情形,則需調整這組數字,像這邊最低時脈(T7300 800Mhz)時就會出現當機情形,所以將這組數字調整為 27 25 17 5 5 備用。

※ 設定開機自動調整為最低電壓:
假如每次開機後都要自己重下 Command 調整 CPU 電壓,那也太麻煩了,所以調整命令寫到 rc.local 檔。
sudo gedit /etc/rc.local
將以下程式碼加到 exit 0 之前
for CPUVIDS in /sys/devices/system/cpu/cpu*/cpufreq/phc_vids
do
	[ -f $CPUVIDS ] || continue
	echo -n "27 25 17 5 5" > $CPUVIDS
done
image

大功告成!重新開機後可安裝 sensors-applet 套件看看 CPU 溫度有沒有降低:
sudo apt-get install sensors-applet
安裝後 sensors-applet 可於上、下方工具攔按右鍵=>加入面板找到(想加在哪就在哪按右鍵)
image

也可以看看更改值有沒有自動寫入:
cat /sys/devices/system/cpu/cpu0/cpufreq/phc_vids

把 CPU 電壓降至最低後,粗略的用電錶算了一下,閒置的時候耗電量少了 8 瓦(38~30),溫度用 sensors-applet 測得降低 7℃(57~47),全負載時則是 28 瓦(105~77)與 25℃(98~73),效果可說相當的明顯,雖然過程有點繁瑣,但結果是相當值得的,若自覺是電腦白痴也不用擔心,所有檔案都放在家目錄(~),然後把 code 區塊的命令依序貼到終端機執行就可以完成(偶爾需要輸入密碼跟Y)。
張貼留言