首先声明下,该文属于参考网络其他相关资料所撰,本人对原资料作了很多测试和实验,下列办法仅适用本人的系统环境,其他仅供参考。

============================================================


本文的原理实质上个人的理解是利用内核控制停止对设备进行供电,以达到禁用显卡功能。

注意需要linux kernel 2.6.38以上的内核才能支持双显卡切换。


  1. 查看当前使用的显卡

    lspci | grep VGA

    正常的话会显示出机器使用的两块显卡

    [root@localhost ~]# lspci | grep VGA
    00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
    01:00.0 VGA compatible controller: NVIDIA Corporation GF108M [NVS 5400M] (rev ff)


  2. 加载切换显卡模块

    mount -t debugfs debugfs /sys/kernel/debug
    \\需要root权限


  3. 确认是否支持显卡切换

    cat /sys/kernel/debug/vgaswitcheroo/switch

    查看是否可以进行显卡切换,正常的输出类似于:

    0:DIS: : Pwr:0000:01:00.0

    1:IGD:+:Pwr:0000:00:02.0


  4. 切换显卡

    echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch
    \\切换到独立显卡
    echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch
    \\切换到集成显卡


  5. 关闭不用的显卡电源

    echo OFF > /sys/kernel/debug/vgaswitcheroo/switch


  6. 用户登入自动禁用        

vim ~/.bashrc   \\在最后加入
sudo mount -t debugfs debugfs /sys/kernel/debug
sudo sh -c "echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch"
sudo sh -c "echo OFF > /sys/kernel/debug/vgaswitcheroo/switch"
su -             \\使用root登入
visudo           \\在最后加入
username  ALL=NOPASSWD:/bin/mount
username  ALL=NOPASSWD:/bin/umount
username  ALL=NOPASSWD:/bin/echo
username  ALL=NOPASSWD:/bin/sh

   说明,本人尝试了很多办法开机自动禁用,无奈网络上的很多办法均不适合本人系统环境,无奈只能使用用户登入自动禁用。