网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月05日漏签0天
cosplus吧 关注:28贴子:391
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 2回复贴,共1页
<<返回cosplus吧
>0< 加载中...

用 vga_switcheroo 在 Linux 下(开启 KMS)彻底关闭某一可切换显…

  • 只看楼主
  • 收藏

  • 回复
  • lew_me
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

私在早先时记载过自己一直为一个问题所扰,就是私配备双显卡的 Ideapad Y460 在 BIOS 中仅支持“可切换”(switchable)和“独立”(原文为 discrete graphic)两种模式。而当使用可切换模式进入 Linux 后,虽然只有集成显卡在使用,但两个显卡都会同时耗电,导致温度很高。虽然用独立显卡+催化剂(Ati 的商业驱动)可以获得不错的效果,但会有诸多麻烦事情,更何况这样一来集显的节能优势就消失了。
我曾在谷歌上粗略查找过很多彻底关闭独立显卡的方案,然而就目前我看到的中文解答来说,除了那个 ubuntu 关闭独显的脚本还靠谱外,基本都是不靠谱的答案。直到我最近从 Arch 的 Wiki 辗转到了 ubuntu documentation 才找到一个使用内核自带的 vga_switcheroo关闭显卡的方案。在此记述一下。
声明:本文只是记述了最主要的内容,详细内容可以从这个页面中找到。
下面进入正题:
首先,vgaswitcheroo 是内核提供的组件,但有这一组件(或者说有下文提到的文件)并不代表其在您的机器上能够正常使用。此外根据某些用户提供的信息,vgaswitcheroo 仅当在 KMS 开启状态下才用,所以请首先装好显卡的开源驱动并保持 KMS 开启。
查看当前双显卡使用状态:
终端中输入:
cat /sys/kernel/debug/vgaswitcheroo/switch
这步是要读出 /sys/kernel/debug/vgaswitcheroo/switch 这一文件的信息。不出意外您可能会看到类似下面(但不完全相同)的内容: 0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Off:0000:01:00.0
其中“IGD”表示集成显卡,“DIS”表示独立显卡;加号(“+”)表示当前用作输出(或称“连接上”(connected))的显卡;“Pwr”代表正在供电,“Off”代表已关闭。如果看到两个显卡都显示“Pwr”,则说明都在消耗着电能。
暂时性的关闭某一显卡
注意:下面和内核的交互操作是通过操作 /sys/kernel/debug/vgaswitcheroo/switch 这个“虚拟文件”实现的,而这一文件每次开机会重新创建,所以您对其所做的修改都是暂时的,重启后会失效。
首先切换到root用户:<code>su</code>
这步通常是必要的,不可用 sudo 取代(似乎是因为 sudo 如果不经设置,是没有“>”操作符权限的)。
打开所有的显卡:
echo ON > /sys/kernel/debug/vgaswitcheroo/switch
这步是给所有显卡加电,使其运行,但不改变当前输出的状态。
切换到集成显卡:
echo IGD > /sys/kernel/debug/vgaswitcheroo/switch
这步表示使用集成显卡作为输出(即“连接上”集成显卡)。同理,将其中的 “IGD”换成“DIS” 可使用独立显卡。
关闭未使用的显卡:
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
最后可以再运行一下 cat /sys/kernel/debug/vgaswitcheroo/switch,看一看自己的显卡状态。
永久性的关闭某一显卡
解决重启后失效的办法就是每次开机时都让它执行一遍,而且越早启动越好。对于这个问题,不同的发行版有不同的解决方案。例如在我所用的 Arch Linux 中有一个 /etc/rc.local 文件,把需要开机执行的命令写进去即可。对于 ubuntu,可以参考 ubuntu documentation 上的一个启动脚本。我没有尝试过加环境变量是否有用,但似乎也应该是可以的。
后记:3月12日帝都(室温约20度),开启 acpi 节能的情况下,我的 Ideapad Y460 使用集显,打字、浏览网页等操作,CPU 温度不到37度,电池续航4小时以上,真是太舒爽了……
作者博客原文地址


  • lew_me
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
intel+nvidia
Tips:
1.现在i系列的一般都是双显卡配置,请勿自行安装nvidia驱动。
2.bumblebee的作用是禁用nvidia独立显卡,然后使用optirun进行手动开启nvidia来运行需要加速的程序.
3.不装这个N卡除了在那里发热是没有正常工作输出的。
4.bios里如果可以关掉独显,那么最好关掉吧。
5.桌面渲染3D等,i卡能够胜任。
6.这个不会影响到windows
7,那个该死的图形显示:未知无视掉,要解决安装mesa
8,acer4750/4752/5750绝对是完美兼容的,搞不出来是自己的问题
9.不要问我为什么
教程:
12.04 Nvidia双显卡Bumblebee攻略
Lenovo Ideapad Y470/Y570的双显卡问题


2026-01-05 19:38:10
广告
不感兴趣
开通SVIP免广告
  • lew_me
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
两条路。
一是bios禁用集显,装官方闭源驱动。当然了,对于intel + amd mux ,不能切换显卡。(HD6000以上的能否正常切换,请有经验者跟帖)
二嘛,就是开源驱动了,通过vgaswitch进行切换。(个人感觉这种方法主要是用来禁用独显的,感觉独显开源驱动游戏性能太差)
安装方法论坛一大堆了
安装好之后
代码:cat /sys/kernel/debug/vgaswitcheroo/switch #查看显卡开启状态
echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch #重启X后使用集成显卡进行输出
echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch #重启X后使用独立显卡进行输出
重启X后,关闭不在使用的显卡
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch。
注:下面三条命令需要先su输入密码获取root,sudo似乎不行,有人说是因为sudo不具有使用 '>' 的权限
所以,在这里提点建议:
1.如果你的笔记本厂商提供既能关闭集显、又能关闭独显的BIOS,恭喜,你可以装官方闭源驱动,然后通过BIOS开关显卡进行切换。(暂时没见过这么幸福的)
2.如果不满足(1),对游戏要求非常强烈,如我,需要wine 魔兽,玩Trine2、HON等,直接到BIOS中禁用集显,使用官方闭源驱动。(不禁用集显会无法启动X,黑屏)
3.如果你不需要独显。直接
完全卸载之前安装的闭源驱动
代码:sudo sh /usr/share/ati/fglrx-uninstall.sh
sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev*
然后
代码:sudo gedit /etc/rc.local
在exit 0之前添加
echo IGD > /sys/kernel/debug/vgaswitcheroo/switch
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
开机自动关闭独显,以此获得最大续航。
4.如果你确实需要独显,有对续航有强烈要求。只能按照第二条路的说明了。可以自己写个脚本方便切换。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回cosplus吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示