ubuntu开机自动关闭独显,使用集成显卡

时间:2024-02-29 19:38:00

我的本子是联想y470p-ise,因为是有双显卡,而ubuntu在开机后,双显卡默认是同时工作,会产生巨大的发热,导致很不爽。而且在ubuntu下基本我也不用独显,所以有开机关闭独显的需求。

ubuntu自己就就可以驱动我的显卡,可以通过cat来查看显卡信息

elta@elta:~$ sudo cat /sys/kernel/debug/vgaswitcheroo/switch
[sudo] password for elta: 
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Off:0000:01:00.0

IGD是集显,DIS是独显。现在可以看到我集成显卡的状态是Pwr,就是开启;独显的状态是off,就是关闭。

 

以前知道关闭集显的命令,加了个脚本,每次开机要手动敲(因为要sudo权限运行,导致我之前一直都不知道怎么给它加成开机启动)。现在创建了一个系统服务,让它每次可以开机自动运行。

我就简单的贴一下代码吧。

文件路径为:elta@elta:~$ cat /etc/init.d/graphic

#!/bin/sh


PATH=/sbin:/bin:/usr/sbin:/usr/bin
NAME=graphic
DESC="config graphic to use iga only"

case "$1" in
  igd)
        echo "Turn on all graphic"
        (echo ON  > /sys/kernel/debug/vgaswitcheroo/switch && echo "done") || echo "Failed"
        echo "Use IGD"
        (echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch && echo "done ") || echo "Failed"
        sleep 0.2
        echo "Turn DIS OFF"
        (echo OFF  > /sys/kernel/debug/vgaswitcheroo/switch && echo "done") || echo "Failed"
        sleep 0.2
        cat /sys/kernel/debug/vgaswitcheroo/switch
        ;;
  both)
        echo "Turn on all graphic"
        (echo ON  > /sys/kernel/debug/vgaswitcheroo/switch && echo "done") || echo "Failed"
        echo "Use DIS"
        (echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch && echo "done ") || echo "Failed"
        sleep 0.2
        echo "Use IGD"
        (echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch && echo "done ") || echo "Failed"
        sleep 0.2
        cat /sys/kernel/debug/vgaswitcheroo/switch
        ;;
  status)
        cat /sys/kernel/debug/vgaswitcheroo/switch
        ;;
  stop)
        ;;
  *)
        echo "Usage: $NAME {igd|both|status}" >&2
        exit 1
        ;;
esac

exit 0

通过创建上面的文件,就创建了一个叫graphic的系统服务。这个名字是可以随便改的。然后我们通过运行

elta@elta:~$ sudo service graphic start
Use IGD
done
Turn DIS OFF
done
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Off:0000:01:00.0

但是现在仍然是需要手动的,为了实现自动运行,我们在文件/etc/rc.local中加入服务启动命令service graphic start ,以后每次开机系统就会自动关闭独显了。

 

下面是我的rc.local文件

elta@elta:~$ cat /etc/rc.local 
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

service graphic igd

exit 0

 

修改记录:

13.08.30:修改graphic文件和rc.local文件内容,修改了命令名称,添加了both命令,用户恢复双显卡同时使用,但这并没有实际意义,因为active的显卡仍然是集显。但是发现了一个问题,我用的内核是3.8.0-25,这个内核无法切换到只用独显,独显的active没有办法启用。