我機器的顯卡是ATI5650/Intel 集顯, 如果使用12.04自帶的開源驅動,獨顯會一直運轉,不一會機器就會很熱。嘗試了ATI的閉源驅動fglrx,驅動安好后X不能使用。原因是Xorg對12.04閉源驅動的支持有問題,需要等更新。只好嘗試關閉獨顯,方法如下:
獲得root權限
sudo su
設置使用集成顯卡輸出
echo IGD > /sys/kernel/debug/vgaswitcheroo/switch
關閉沒有使用的獨立顯卡
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
查看當前顯卡狀態
cat /sys/kernel/debug/vgaswitcheroo/switch
一切正常的話顯示為:
0:IGD:+:Pwr:0000:00:02.0 1:DIS: :Off:0000:01:00.0
其中,IGD就是集成顯卡,DIS是獨立顯卡。由於雙顯卡的緣故,通常無法設置獨立顯卡單獨輸出。獨立顯卡運行的時候也需要集成顯卡。如果不玩游戲,Ubuntu基本不需要獨立顯卡。
開啟獨立顯卡
echo ON > /sys/kernel/debug/vgaswitcheroo/switch
將配置寫入開機設置
vi /etc/rc.local
在exit 0之前加入
echo IGD > /sys/kernel/debug/vgaswitcheroo/switch echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
保存退出。
從此以后機器的過熱問題就有了明顯的改善,而且並沒有發現有任何對圖形效果的影響。
上面這種方法重啟電腦后並沒有生效,上網找了其他的方法。
准備工作:安裝了ATI閉源驅動的請先卸載,在BIOS里禁用了雙顯卡切換的請先開啟
首先在終端下執行這條命令:
cat /sys/kernel/debug/vgaswitcheroo/switch
如果類似這樣(主要是兩個狀態都是Pwr):
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Pwr:0000:01:00.0
就說明你的兩塊顯卡都開着,那么就按照下面的步驟做。(需要root權限)
建立一個腳本/usr/local/sbin/vgaswitcher
1 #!/bin/bash 2 3 if [ "$(whoami)" != "root" ]; then 4 echo "Use as root" 5 exit 1 6 fi 7 8 if [ -z "$1" ]; then 9 cmd="OFF" 10 else 11 if [ "$1" = "-i" ]; then 12 cmd="DIGD" 13 elif [ "$1" = "-d" ]; then 14 cmd="DDIS" 15 else 16 cmd=$1 17 fi 18 fi 19 20 if ([ "$cmd" != "OFF" ] && [ "$cmd" != "DDIS" ] && [ "$cmd" != "DIGD" ]); then 21 echo "Bad Command!" 22 exit 1 23 fi 24 25 echo "$cmd" > /sys/kernel/debug/vgaswitcheroo/switch 26 cat /sys/kernel/debug/vgaswitcheroo/switch
然后再建立一個啟動腳本/etc/init.d/vgaswitch
1 #!/bin/bash 2 3 if [ "$1" != "start" ]; then 4 exit; 5 fi 6 7 /usr/local/sbin/vgaswitcher 8 /usr/local/sbin/vgaswitcher -i
都建立好以后,執行如下命令:
sudochmod+x/usr/local/sbin/vgaswitcher/etc/init.d/vgaswitch&&sudoupdate-rc.d vgaswitch defaults
重啟就可以禁用掉獨顯了~
可以再次執行最開始的命令來查看狀態:
cat/sys/kernel/debug/vgaswitcheroo/switch
現在應該是這樣了(一個Pwr,另一個Off):
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Off:0000:01:00.0 溫度確實下降了不少
