
CPU為了節省電力消耗,擁有許多電源管理機制,其中之一,可依據CPU工作量,動態調整倍頻(Step),讓CPU在工作量少時,可以好好休息(降低頻率),真正忙錄時卻又可以精神百倍地快速處理所有工作(我的生理「機制」,正好相反!Orz)。
當然電壓也會隨著STEP不同而有所變換,但是通常預設電壓會「比較」保守,不過也別忘了Inte擁有的製程計術,不僅領先全球且堪稱世界工藝極致(45nm都產了,很威),所以毋需害怕降壓。
就拿ThinkPad X61 所搭載的Core 2 Duo T7100 來說,其降幅之大足以令人吃驚,有圖有真相(如下圖),最高與最低差了有20度之譜,並減少電力浪費,延長了電池續航力,不過,當然這一切的一切,都必需在CPU可以保持穩定工作,系統不當機的前提之下。
更改前
更改後
由這則『於Ubuntu系統上修改 CPU 電壓降低筆電工作溫度』,可藉由Linux-PHC 的kernel patch 修改每個CPU Step 的電壓,但光是如此並無法確認修改後系統是否穩定,所以這則『筆電、伺服器 夠穩定嗎?用mprime 燒燒看就知道 (for Linux )』,借助mprime「燒機」以提供穩定與否之參考,本文最後將說明如何將新的電壓設定寫入開機程序中(其實很簡單,不過我找了、試了很久才成功)。
以下主要參閱Linux-PHC 之Finding the lowest voltages that you can safely use on your CPU 官方wiki,並適度添酌個人安裝經驗,全部大概可簡單的分為五個部份:
《系統監測》
系統:Ubuntu 7.10
硬體:IBM ThinkPad X61
處理器:Core 2 Duo T7100
在以下動作之前,最好先關閉BIOS中的CPU Power Management。
接著安裝監測工具,監控CPU頻率、使用率及溫度:
《設定cpufreq 參數》
緊接著進入cpufreq目錄底下查詢各個step所對應的頻率以及電壓,並且記錄下來,等會兒就是要找出每一個step的頻率的最低且可穩定工作之電壓,但在這之前需簡單的設定控制cpu的幾個參數:
《mprime燒機》
進入mprime 目錄中,輸入以下命令:(還沒下載嗎?來吧!還是參考這篇『筆電、伺服器 夠穩定嗎?用mprime 燒燒看就知道 (for Linux )』,別忘了先設定好優先權。)
$su
password:
# cd /home/yours/Desktop/mprime2414
/home/yours/Desktop/mprime2414# ./mprime -t
再開啟終端機,輸入底下指令,產生任務給另一個CPU執行。
/home/yours/Desktop/mprime2414# ./mprime -a2 -t
看一下CPU 使用率,應該是100%,接下來需一段時間讓溫度升到最高。
《逐步降低電壓值》
先用cat 讀取預設值,接下來echo 較低的「對應」電壓,
/sys/devices/system/cpu/cpu0/cpufreq# cat phc_vids
45 37 18 11
/sys/devices/system/cpu/cpu0/cpufreq# echo "42 37 18 11" > phc_vids
接著再讓他跑一陣子(愈久愈好,建議最好超過半個小時),如果程式沒出現error的訊息,就繼續往下調降,若發現錯誤訊息,這時候再把電壓往上調一格,接著讓mprime 跑更長一段時間,如果都沒產生認何錯誤,那這個值就是穩定運作可容忍的最低電壓了。
例如Core 2 Duo T7100 (頻率設1801000),電壓調降到16時,mprime 馬上就出現error ,因此必須調升一格到17,之後如果mprime 跑很長一段時間後,都沒有問題,那17就是最低穩定工作電壓。
接著改找第二個step,回到《設定cpufreq 參數》的第五個步驟修改頻率,重覆之後的步驟,直到找出每個step的電壓為止。
當時脈為1200000,降壓前後的溫度,差了11度,也算下降了不少。
《設定開機載入》
進入/etc/目錄底下,打開rc.local:
$su
password:
#gedit /etc/rc.local
加入以下命令(中間的是你的電壓設定),在這之後開機就會自行載入設定值。
sudo chmod 700 /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
sudo echo "18 18 11 11" > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
sudo chmod 700 /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
最後收工前,將各個step下,更改電壓前後的溫度差異,整理如下圖:

全文同時收錄於mouse memo(有多幾張圖啦!有需要的再去看看吧!謝謝)
【Ref.】
相關連結:


由這則『於Ubuntu系統上修改 CPU 電壓降低筆電工作溫度』,可藉由Linux-PHC 的kernel patch 修改每個CPU Step 的電壓,但光是如此並無法確認修改後系統是否穩定,所以這則『筆電、伺服器 夠穩定嗎?用mprime 燒燒看就知道 (for Linux )』,借助mprime「燒機」以提供穩定與否之參考,本文最後將說明如何將新的電壓設定寫入開機程序中(其實很簡單,不過我找了、試了很久才成功)。
以下主要參閱Linux-PHC 之Finding the lowest voltages that you can safely use on your CPU 官方wiki,並適度添酌個人安裝經驗,全部大概可簡單的分為五個部份:
- 系統監測
- 設定cpufreq參數
- prime燒機
- 逐步降低電壓值
- 寫入開機程序
《系統監測》
系統:Ubuntu 7.10
硬體:IBM ThinkPad X61
處理器:Core 2 Duo T7100
在以下動作之前,最好先關閉BIOS中的CPU Power Management。
接著安裝監測工具,監控CPU頻率、使用率及溫度:
- 打開cpu頻率調整監察程式、系統監察等窗口:
在欲新增功能鈕的面板上點右鍵,選『加入面板』,找到系統及硬體那欄,新增『CPU頻率調整監察程式』與『系統監察』到該面板上,進入『系統監察』的偏好設定中勾選『處理器』為受監察的資源。 - 安裝Hardware Sensors Monitor:
$sudo apt-get install sensors-applet
接下來一樣,在面板上點右鍵選『加入面板』,找到系統及硬體那欄,新增"Hardware Sensors Monitor",接著點右鍵進入Preferennces 然後到Sensors 的分頁,勾選acpi 中需分別監測溫度的兩個核心。 - GKrellM(上面那些夠了,這個可以不裝)-功能強大的監測軟體,介面豐富(左圖),可同時監測多個項目,且具有log的功能,按以下簡單步驟即可安裝與開啟。
$sudo apt-get install gkrellm
$gkrellm
《設定cpufreq 參數》
緊接著進入cpufreq目錄底下查詢各個step所對應的頻率以及電壓,並且記錄下來,等會兒就是要找出每一個step的頻率的最低且可穩定工作之電壓,但在這之前需簡單的設定控制cpu的幾個參數:
- 登錄為root。
- 進入/sys/devices/system/cpu/cpu0/cpufreq 目錄下。
$ su
password:
# cd /sys/devices/system/cpu/cpu0/cpufreq
/sys/devices/system/cpu/cpu0/cpufreq# - 用cat列出各step所對應的頻率。(Core 2 Duo T7100 為例)
- 將自動變換頻率(step)的參數(ondemand) ,更改為手動(userspace)。(自排換手排!手自排嗎?恩,有那個fu!)
- 手動設定CPU頻率。(從最高的開始)
/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_available_frequencies
1801000 1800000 1200000 800000
/sys/devices/system/cpu/cpu0/cpufreq# echo "userspace" > scaling_governor
/sys/devices/system/cpu/cpu0/cpufreq# echo 1801000 > scaling_setspeed
《mprime燒機》
進入mprime 目錄中,輸入以下命令:(還沒下載嗎?來吧!還是參考這篇『筆電、伺服器 夠穩定嗎?用mprime 燒燒看就知道 (for Linux )』,別忘了先設定好優先權。)
$su
password:
# cd /home/yours/Desktop/mprime2414
/home/yours/Desktop/mprime2414# ./mprime -t
再開啟終端機,輸入底下指令,產生任務給另一個CPU執行。
/home/yours/Desktop/mprime2414# ./mprime -a2 -t
看一下CPU 使用率,應該是100%,接下來需一段時間讓溫度升到最高。
《逐步降低電壓值》
先用cat 讀取預設值,接下來echo 較低的「對應」電壓,
/sys/devices/system/cpu/cpu0/cpufreq# cat phc_vids
45 37 18 11
/sys/devices/system/cpu/cpu0/cpufreq# echo "42 37 18 11" > phc_vids
接著再讓他跑一陣子(愈久愈好,建議最好超過半個小時),如果程式沒出現error的訊息,就繼續往下調降,若發現錯誤訊息,這時候再把電壓往上調一格,接著讓mprime 跑更長一段時間,如果都沒產生認何錯誤,那這個值就是穩定運作可容忍的最低電壓了。
例如Core 2 Duo T7100 (頻率設1801000),電壓調降到16時,mprime 馬上就出現error ,因此必須調升一格到17,之後如果mprime 跑很長一段時間後,都沒有問題,那17就是最低穩定工作電壓。
接著改找第二個step,回到《設定cpufreq 參數》的第五個步驟修改頻率,重覆之後的步驟,直到找出每個step的電壓為止。
當時脈為1200000,降壓前後的溫度,差了11度,也算下降了不少。
《設定開機載入》
進入/etc/目錄底下,打開rc.local:
$su
password:
#gedit /etc/rc.local
加入以下命令(中間的是你的電壓設定),在這之後開機就會自行載入設定值。
sudo chmod 700 /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
sudo echo "18 18 11 11" > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
sudo chmod 700 /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
最後收工前,將各個step下,更改電壓前後的溫度差異,整理如下圖:

全文同時收錄於mouse memo(有多幾張圖啦!有需要的再去看看吧!謝謝)
【Ref.】
- Finding the lowest voltages that you can safely use on your CPU-LinuxPHC
- Ubuntu Gutsy -> Undervolting with acpi_cpufreq.ko
- 鳥哥的 Linux 私房菜
- cpufreq-set
- Linux PHC patch (CPU 코어 전압 조절) Part 3
相關連結:
- Ubuntu 讓 X61;SD、SSD,傻傻分不清楚
- 設置小紅點(Trackpoint) press to select 及開啟中鍵捲軸(middle key) on Ubuntu 7.10
- 變更3945ABG參數以降低X61腕托溫度@ Ubuntu 7.10
- 縮短Ubuntu 7.10的開機時間(X61)
- Ubuntu 7.10 on ThinkPad X61
文章關鍵字