這幾天灌好ubuntu,發現使用一段時間後,螢幕會有閃爍的情況,一整個很不爽
查了一查,好像對於n牌顯卡特別情有獨鍾
此種情形會發生在n牌7系列以上獨立顯卡、又想玩桌面特效(compiz)的筆電
筆電為:vaio sz436
顯卡:nVidia geforce go 7400
有時後會在螢幕下方出現閃爍、或是整片螢幕閃爍。
網路上的相關文獻都只有解決舊版的資訊
說啥在
/etc/modprobe.d/options 和 /etc/modprobe.d/nvidia-kernel-nkc
這兩個檔案中插入這段code
- options nvidia_new NVreg_Mobile=1 NVreg_RegistryDwords="PerfLevelSrc=0×2222″
這些在ubuntu 9.04版中已經不適用了。(找無此檔)
google了一堆關鍵字之後才找到國外論壇的>這篇 、 這篇
有兩種解決方式,目前我也還在測試有啥問題,如果有,這篇又要在改寫過一次了
ps:不用意外,絕對不會有中文…但我真的好意外這問題居然只有英文解答..
方法一
不負責任翻譯如下:
NVidia laptop cards come with a feature called PowerMizer that dynamically underclocks the GPU when it’s not being used much. This is great for battery power but horrible for performance when using Desktop Effects (compiz). Unfortunately, NVidia does not provide a way to configure PowerMizer on Linux however, it’s not difficult to create a script that will give you maximum speed while on AC power and maximum power savings while on battery.
n牌筆電顯卡配備有一個叫PowerMizer的技術,當使用資源少時,對於電池供電的筆電是好的,但在使用桌面特效(compiz)時卻是糟糕的,不幸的是n廠牌並未提供linux下的PowerMizer設定,但linux下寫腳本來設定並非難事(在交流電源提供下會輸出最大功率,在電池下會是最大能源儲存)
This HOWTO is aimed primarily at users of NVidia 8 and 9 series laptop graphics cards (though, it may be useful for 7 series users as well). This HOWTO assumes you are running compiz and have already properly configured the NVidia proprietary drivers. If you are not using compiz, this guide will not be useful for you.
這教學主要適用在8,9系列顯卡(或許7系列也ok),並假定你使用正確的驅動並運行compiz!如果沒有使用compiz,這指南可能就對你沒用了。
總結:反正都是nVidia電源管理的毛…
以下步驟會使用到"應用程式">"附屬應用程式">"終端機"
第一步(如果你已經去官網安裝過驅動可省略此步驟) >>>我省略了!
- sudo apt-get install nvidia-settings
第二步 建立腳本控制
- mkdir -p ~/bin #建立bin資料夾
使用gedit編輯器將下列code存檔為nvidia-power.sh (注意副檔名是.sh喔!),並存在剛剛建立的資料夾下(家目錄/bin/這裡)
#!/bin/bash
while true; do
if on_ac_power; then
nice /usr/bin/nvidia-settings -q all > /dev/null
fi
sleep 25;
done
依序輸入以下指令
- chmod +x ~/bin/nvidia-power.sh
- ~/bin/nvidia-power.sh &
- disown
- exit
為了讓腳本在一登入就啟動,所以在以上步驟完成後打開"系統">"偏好設定">"啟動應用程式"
點選"加入"->
名稱:隨你填
指令:填入你剛剛存腳本的位置>"/home/*你的使用者名稱*/bin/nvidia-power.sh" (或是使用瀏覽的方式找到檔案)
最後點確定(加入)。
測試方法:在使用電源模式重開機後去看nVidia-settings的設定,在左方找到PowerMizer的選項,並觀察1分鐘,看看他的輸出是否有減弱(沒有才是正常)。然後再拔除電源使用電池再觀察1分鐘看看是否會降低輸出(會降低才是正常),最後再把電源接上觀察是否會在提升!
以上是第一篇的中文說明。
方法二
第二篇文章大致上跟第一篇是一樣的,只是方式不同。
改法如下:
使用終端機輸入以下指令
- sudo gedit /etc/X11/xorg.conf
輸入管理員密碼後在該文件的"Section "Device"與"EndSection"之間填入以下code
- Option "RegistryDwords" "PowerMizerEnable=0×1; PerfLevelSrc=0×3322; PowerMizerDefaultAC=0×1″
存檔後重新開機就ok了!
至於此方法還有其他設定選項可以參考,依照每組設定皆有不同表現。
* on battery – max power saving, on AC – max performance(電池使用中,最大電力儲存,交流電源使用中,最大效能表現)
- Option "RegistryDwords" "PowerMizerEnable=0×1; PerfLevelSrc=0×2222; PowerMizerDefault=0×3; PowerMizerDefaultAC=0×1″
* on battery – max power saving, on AC – adaptive strategy (my favorite)(電池使用中,最大電力儲存,交流電源使用中,adaptive strategy)(文中作者的喜好設定)
ps:不知道怎麼翻,誰來指點一下 Orz
- Option "RegistryDwords" "PowerMizerEnable=0×1; PerfLevelSrc=0×2233; PowerMizerDefault=0×3″
* on battery – adaptive strategy, on AC – max performance (電池使用中,adaptive strategy,交流電源使用中,最大效能表現)
- Option "RegistryDwords" "PowerMizerEnable=0×1; PerfLevelSrc=0×3322; PowerMizerDefaultAC=0×1″
* adaptive strategy for any power source (在任何供電情況皆是adaptive strategy)
- Option "RegistryDwords" "PowerMizerEnable=0×1; PerfLevelSrc=0×3333″
兩種改法皆可嘗試,對於方法二會動到xorg.conf系統檔,所以修改前別忘記存一份備用,要是真的改錯出意外(應該是不會),如果真的好死不死有問題,請重開機使用recovery模式並選擇xfix修復。
修復後可能需要重新安裝顯卡驅動,並再繼續嘗試~XD
要越挫越勇阿!!
兩個方法就算一起使用也不會怎樣,經過我的測試對於效能的運用真的很不錯!
補上成果圖
這張截圖是在交流電源使用的狀況下。
這張是使用電源的情況。馬上就可以看出效能輸出有減弱了,不錯不錯。
過一會後,功率降至最低,達到最低資源使用。
有時候突然需要用到資源時還會升高一點XD
但是基本上只要電腦一下子沒啥動作,都是最低輸出減少電源消耗~也沒造成螢幕閃爍,效果很好!
最後最後,文章內容如有錯誤還希望能不吝指正~
本文章同步刊載於:莫小屁 的部落格。




Comments
Leave a comment Trackback