联想小Y,配置了i5处理器和ATI 5650的独立显卡,安装完ubuntu12.04.4以后,由于系统默认两个显卡同时开启,所以会风扇转的飞起,温度很高。所以很有必要将独立显卡关闭掉。
ubuntu12.04版本的内核已经完美支持双显卡分别的关闭和打开,通过sys文件系统与内核进行交互,分别的打开和关闭两个显卡,具体是通过文件/sys/kernel/debug/vgaswitcheroo/switch,要访问这个文件需要使用root权限,先把用户切换成su状态,然后比较好进行下面的操作:
sudo su
ls /sys/kernel/debug/vgaswitcheroo/switch,如果文件不存在,那么可能是因为你安装了ATI的闭源驱动,先要把ati的闭源驱动卸载,然后重启,就能找到这个文件。然后使用下面命令就可以把独立显卡关掉:
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
2:DIS-Audio: :Off:0000:01:00.1
则表明独立显卡已经关闭,IGD表示intel的核心显卡,DIS表示独立显卡,OFF表示已经关闭电源,Pwr表示接通电源
最后一步,我们将这两句命令添加到/etc/rc.local 中,卸载exit 0之前,这样就能确保开机以后,自动关闭独立显卡。
---------------------------------------------------------------分割线-------------------------------------------------------------------------------
将上面两句命令添加到rc.local以后,会出现开机很慢的情况,具体原因我也搞不清楚,这个留到以后再弄明白,现在的解决办法是使用开机脚本来设置这两个命令
脚本一:vgaswitcher
#!/bin/bash
if [ "$(whoami)" != "root" ]; then
echo "Use as root"
exit 1
fi
if [ -z "$1" ]; then
cmd="OFF"
else
if [ "$1" = "-i" ]; then
cmd="DIGD"
elif [ "$1" = "-d" ]; then
cmd="DDIS"
else
cmd=$1
fi
fi
if ([ "$cmd" != "OFF" ] && [ "$cmd" != "DDIS" ] && [ "$cmd" != "DIGD" ]); then
echo "Bad Command!"
exit 1
fi
echo "$cmd" > /sys/kernel/debug/vgaswitcheroo/switch
cat /sys/kernel/debug/vgaswitcheroo/switch
脚本二:vgaswitch
#!/bin/bash
if [ "$1" != "start" ]; then
exit;
fi
/usr/local/sbin/vgaswitcher
/usr/local/sbin/vgaswitcher -i
分别将vgaswitcher放入/usr/local/sbin/下,vgaswitch放入/etc/init.d/下
将两个脚本建立完成后,执行下面的命令,将脚本设置为开机启动
sudo chmod +x /usr/local/sbin/vgaswitcher /etc/init.d/vgaswitch && sudo update-rc.d vgaswitch defaults
最后重启,开机后独立显卡就被禁用掉了
可以使用命令查看显卡的状态,看是否为off状态:
sudo cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Off:0000:01:00.0
2:DIS-Audio: :Off:0000:01:00.1
参考:http://www.cnblogs.com/Jesuca/archive/2011/11/08/2241547.html