實在了不起,Linux愈作愈好,慢慢貼近使用者,不過我沒膽子試驗Orz
為了保險起見,我把文章複製過來~自己備份一下
==================================================================
目前以中高階notebook而言,搭載雙核心處理器早已不足為奇,但是『雙』核心也意味謂著運作時將產生更多的廢熱,尤其當兩個核心工作滿載,更可以達到 80幾,將近90度的高溫(左圖有真相),其散熱鰭片孔所排出來的熱風,足以媲美寒冬裡溫暖妳手心的7-11關東煮,如果你願意拿它來烘手的話!
如果再加上 ThinkPad X61右手掌底下動輒50幾度的無線網卡,這下雙手真的可以不用畏懼冬夜裡的寒風了,但是,這麼貼心的設計可只有『冬日限定』,問題是臺灣的冬天,只有短短三個月阿!
高溫是所有電子元件壽命的殺手,特別是小巧的Notebook,不過當電話那頭的老闆十萬火急的要著上次meeting的結果,而實驗室裡卻 只有一臺老古桌機可以用,這時候逼不得已讓筆電也站上火線!而為了筆電的壽命著想,需降低CPU全速運作時所產生的高熱,只好修改過於保守的CPU電壓 (voltage )預設值,不過網路上有關Linux系統上調整CPU電壓的資訊並不多( for XP 多到不行),辛好Linux-PHC 提供了非常完整的修改方法,過程也不難,只要到Linux-PHC Files下載適用的Patch,並且按照Howto的步驟就能輕鬆的降低CPU溫度。
以下節錄自Linux-PHC官方文件『Howto undervolt a Core 2 Duo (and maybe Core Duo and Core processors)』,並加入簡單的註解。
主要步驟如下:
- 下載 kernel-sources
- Patching kernel-sources
- 重新編譯部份modules
- 覆寫舊modules
- 更改cpu預設電壓
- 使用Ubuntu 7.10版本,可以從apt下載 2.6.22-kernel source
- 在apt執行安裝完畢後,以下動作皆需要登錄為root身份。
- 進入目錄 /usr/src/ 下,解壓縮檔案 "linux-source-2.6.22.tar.bz2"。
- 進入新的子目錄"linux-source-2.6.22"下。
command:【Patching the kernel】
$ sudo apt-get install linux-source-2.6.22
$ sudo bash
# cd /usr/src
/usr/src# tar -xjf linux-source-2.6.22.tar.bz2
/usr/src# cd linux-source-2.6.22
- 執行patch前,需先安裝名為patch的程式。
- 將下載到桌面的phc-patch複製到kernel的子目錄底下( 記得將fallen改為你的使用者名稱 )。
- Patch 所下載的kernel-source。
- 複製ubuntu下的設定檔(kernel configuration)到目前的目錄底下。
- prepare kernel(準備kernel?)。
command:官方wiki提到,接下來系統『應該』會詢問有關cpu頻率和電壓的問題,如果有的話也只能答yes囉!不過,在我安裝的過程中並沒有看到任何對話框!
/usr/src# sudo apt-get install patch
/usr/src/linux-source-2.6.22# cp /home/fallen/Desktop/linux-phc-0.3.0-pre1/kernel-patch/linux-phc-0.3.0-pre1-kernel-vanilla-2.6.22.patch .
/usr/src/linux-source-2.6.22# patch -p1 <>
【重新編譯cpufreq modules】
- 輸入make prepare
- 輸入make scripts
- 重新建利modules(wiki說,要我們不用怕!)
command:接下來會有一個 module.symvers 遺失的警告,不過 Linux-PHC Wiki 告訴我們"nothing in this world is perfect",這應該是無關緊要的意思吧,囧rz。
/usr/src/linux-source-2.6.22# make prepare
/usr/src/linux-source-2.6.22# make scripts
/usr/src/linux-source-2.6.22# make M=./arch/i386/kernel/cpu/cpufreq
【安裝 patched module】
- 置換新module
- 移除程序裡的舊cpufreq module
- 下次啟動時系載入新的cpufreq module
command
/usr/src/linux-source-2.6.22# cp arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.ko /lib/modules/$(uname -r)/kernel/arch/i386/kernel/cpu/cpufreq
/usr/src/linux-source-2.6.22# rmmod acpi-cpufreq
/usr/src/linux-source-2.6.22# modprobe acpi-cpufreq
Linux-PHC Wiki 並未提到接下來需不需要重新啟動,但是安裝時發現如果這個步驟沒有重新開機,會找不到部份的設定。【變更電壓設定】
如果過程中沒出錯的話,到這邊應當可以修改對應頻率(FIDs)的電壓值(VIDs)。不過kenel所提供的頻率與電壓單位,並非常用的GHz與Vlot. (伏特)而是採用相對應的整數。
先進入cpufreq目錄底下,列出相關設定檔案;
command:可以發現phc-patch新增了下列六個檔案:
/usr/src/linux-source-2.6.22# cd /sys/devices/system/cpu/cpu0/cpufreq/
/sys/devices/system/cpu/cpu0/cpufreq# ls
- phc_controls
- phc_default_controls
- phc_default_vids
- phc_vids
- phc_fids
command:以Core 2 Duo T7100為例,顯示"45 37 18 11",這4 個數字代表cpu有4個step可以變換,每一個step會對應一個電壓值,其中數字愈小表示電壓電壓愈低,Linux-PHC Wiki 也給了一個intel的網址 (http://developer.intel.com/design/mobile/datashts/314078.htm),可以查詢這些數字代表的意義,不過,有看沒有懂。
/sys/devices/system/cpu/cpu0/cpufreq# cat phc_vids
更改電壓只需要下echo,例如將4個 step 的電壓更改為"18 18 11 11":
command:若要檢視是否更改成功,用cat再去讀一次phc_vids 就行了,如何找出適用於CPU的電壓設定,請參考下一篇(還沒寫完 XD)
/sys/devices/system/cpu/cpu0/cpufreq# echo "18 18 11 11" > phc_vids
『注意』:調整cpu工作電壓具有硬體損壞之風險,且需由個人所承擔,即使同為 Core 2 Duo T7100 也不一定適用同一組cpu電壓。
沒有留言:
張貼留言