ubuntu 双显卡关闭独显
我机器的显卡是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
都建立好以后,执行如下命令:
sudo
chmod
+x
/usr/local/sbin/vgaswitcher
/etc/init
.d
/vgaswitch
&&
sudo
update-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
温度确实下降了不少
不经历风雨,怎么见彩虹!