linux內核的耗電問題,算是原滿解決了吧XD(在最新版linux內核上完美運行)
发表于 : 2011-12-24 15:30
超級簡單可行的方法在2樓!
這是之前鄙人寫的帖子,關於linux內核耗電問題的:
viewtopic.php?f=126&t=349201
=============================辭舊迎新的分割綫==============================
大概是在十一月初吧,美帝的某個redhat的工程師寫了一個修補這個漏洞的patch(補丁)。
同樣是phoronix,第一時間寫了簡介跟測評。
http://www.phoronix.com/scan.php?page=a ... tion&num=1
測試的結果看起來相當牛的樣子。具體補丁的下載地址在這裏:
https://lkml.org/lkml/2011/11/10/467
點擊左邊「Patch in this Massage」下方的get diff 1
點開是一堆類似於亂碼的東西——其實這是補丁的源代碼。全選之,粘貼到gedit上。爲了方便操作,暫且保存到主目錄,隨便取個名字,就叫pwd吧。
然後到linux內核的官方網站把最新的穩定版內核下載下來,同樣放到主目錄。(截止到12月24號,最新版是3.1.6)
http://www.kernel.org/pub/linux/kernel/ ... .6.tar.bz2
開幹啦!!!以下以文本文件pwd、源碼包linux-3.1.6.tar.bz2爲例子操作。
按住Ctrl+Alt+T打開終端(Terminal)
安裝編譯必須用的包:
解壓縮源碼包。輸入:
進入源代碼所在目錄:
把剛剛下載的補丁打上去:
輸出如下:
意思是說這個補丁修改了原內核代碼的其中四個文件,但是在修改最後一個文件的時候,遇到了一點「意外」。當時看到這個提示,鄙人的心都涼了。難道悲劇了麼?不管了,死馬當活馬醫(事實上最後成果也相當顯著,所以大家不要怕!)
這步以後的操作,大概就跟上一個帖子說得一樣,不再重複敘述了。
ps:如果各位懶得精簡內核或是怕出意外的話,可以省略make localmodconfig跟make menuconfig兩步,直接make -j<數字>。如果跳出很多問題,問(Y/N/M)的話,一律選N,沒有問題的,因爲選項絕大多數都是關於新加入的驅動,奇怪的新功能,對一般用戶的影響可以忽略不計。
現在我剛剛邊完內核,設置完驅動,還沒來得及測試。
第一印象:進入桌面的速度、系統響應的速度比2.6.34的內核快了很多。
僅僅是剛剛完成啓動,gnome-power-statistics給出的功耗數據已經相當驚人了。
正常運行的續航時間跟之前2.6.34的差不多,三小時四十多分;
也就是說,剛剛那個補丁即便是在「出了意外」的情況下,依然帶傷作戰,並完美解決了linux內核耗電的bug!!!!!
而且目測的結果貌似,新內核在打上補丁之後,功耗控制比沒出bug的2.6.34還要優秀。
好,鄙人先去耍一會兒,回來再補上具體的功耗測試跟簡單的理論分析~[/size]
這是之前鄙人寫的帖子,關於linux內核耗電問題的:
viewtopic.php?f=126&t=349201
=============================辭舊迎新的分割綫==============================
大概是在十一月初吧,美帝的某個redhat的工程師寫了一個修補這個漏洞的patch(補丁)。
同樣是phoronix,第一時間寫了簡介跟測評。
http://www.phoronix.com/scan.php?page=a ... tion&num=1
測試的結果看起來相當牛的樣子。具體補丁的下載地址在這裏:
https://lkml.org/lkml/2011/11/10/467
點擊左邊「Patch in this Massage」下方的get diff 1
點開是一堆類似於亂碼的東西——其實這是補丁的源代碼。全選之,粘貼到gedit上。爲了方便操作,暫且保存到主目錄,隨便取個名字,就叫pwd吧。
然後到linux內核的官方網站把最新的穩定版內核下載下來,同樣放到主目錄。(截止到12月24號,最新版是3.1.6)
http://www.kernel.org/pub/linux/kernel/ ... .6.tar.bz2
開幹啦!!!以下以文本文件pwd、源碼包linux-3.1.6.tar.bz2爲例子操作。
按住Ctrl+Alt+T打開終端(Terminal)
安裝編譯必須用的包:
代码: 全选
sudo apt-get install libncurses5-dev build-essential
代码: 全选
tar -jxvf linux-3.1.6.tar.bz2
代码: 全选
cd linux-3.1.6
代码: 全选
patch -p1 < ../pwd
代码: 全选
patching file drivers/acpi/pci_root.c
patching file drivers/pci/pci-acpi.c
Hunk #1 succeeded at 393 (offset -2 lines).
patching file drivers/pci/pcie/aspm.c
patching file include/linux/pci-aspm.h
patch unexpectedly ends in middle of line

這步以後的操作,大概就跟上一個帖子說得一樣,不再重複敘述了。
ps:如果各位懶得精簡內核或是怕出意外的話,可以省略make localmodconfig跟make menuconfig兩步,直接make -j<數字>。如果跳出很多問題,問(Y/N/M)的話,一律選N,沒有問題的,因爲選項絕大多數都是關於新加入的驅動,奇怪的新功能,對一般用戶的影響可以忽略不計。
現在我剛剛邊完內核,設置完驅動,還沒來得及測試。
第一印象:進入桌面的速度、系統響應的速度比2.6.34的內核快了很多。
僅僅是剛剛完成啓動,gnome-power-statistics給出的功耗數據已經相當驚人了。
正常運行的續航時間跟之前2.6.34的差不多,三小時四十多分;
也就是說,剛剛那個補丁即便是在「出了意外」的情況下,依然帶傷作戰,並完美解決了linux內核耗電的bug!!!!!

而且目測的結果貌似,新內核在打上補丁之後,功耗控制比沒出bug的2.6.34還要優秀。
好,鄙人先去耍一會兒,回來再補上具體的功耗測試跟簡單的理論分析~[/size]