2024年3月28日发(作者:)

自己的笔记本是Y460,ati的hd5650独显和intel集显。现在是debian squeeze&&win7

双显卡问题一度让我头痛,曾经于最受不了的时候一气之下删了linux,当然后来又装上了。进入

系统会自动识别到intel显卡并使用它,但是不会关掉ati独显,并且没有驱动,导致风扇呼啦啦的转个

不停,温度很高,估计60度了吧。于是安装ati显卡驱动,版本还是10.x反正是不支持双显卡切换的。

重启,想看一下什么效果,结果迟迟未出现图形界面,没错,黑屏了。(原因是当时的内核还不支

持双显卡(2.6.32刚开始的版本),直接进不了界面了,后面的内核就不会黑屏,只会出错,并进入低画

质模式。)进bios关闭集显后,开机,能进入图形界面了,3D什么的也很好,但是实际上在linux里不需

要很高的3d效能,至少我是这样的。ati的独显耗电量明显比集显高,温度也比用集显高,而且进win7

如果不想经常调bios的话也只能用独显了,心里总是感觉有点憋屈。在2.6.34内核的时候,据说出来了

显卡切换的功能。当时立马就编译内核,换上之后,通过控制/sys/kernel/debug/vgaswitchroo/switch

文件来控制显卡的开关。打开双显卡通过

代码:

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

关闭没有使用的独显。关闭之后果然是好了,风扇不乱转了,耗电量也低了,但是又出问题了,在关机的

时候会出现一个error提示,好像是atoms什么的在1s内没响应,重复弹出,关机时要卡很久,大概十

几二十秒,无法忍受,看到一个用acpi_call来控制关闭独显的方法,同样会出现这样的现象。而且注销

或者采用别的方法重启X的时候也是会卡很久,当然不能忍受。于是又改为关集显,用独显。

终于,在ati出11.3驱动的时候,换上,打开双显卡,打开控制中心,竟然看到了显卡切换的选项,

何等的兴奋!但是改成intel显卡之后,重启,完全不能用3d,界面也很卡,fglxinfo,glxinfo都是提示

lib**.so too short,显卡切换不能用,只能看。于是等到了11.4驱动出来,想要安装,结果安装不上,在

编译的时候出错了,模块编译不出来。内核是2.6.38的,打了个补丁(catalyst-generator里的

2.6.38_),才能编译通过。也有提示kernel_lock(记不清了)函数未定义,编译不过的情

况,原来是内核编译的时候默认是取消了全局锁的,要自己重新编译内核开启全局锁才行,这个就得怪

ati更不上节奏了。总之是装上了,切换成intel集显,开机,很好,3d效果在,用起来不错,fglxinfo,

glxinfo也不会出错了,但是还没有结束,用着用着就遇到了图形界面没响应的情况,比如在看土豆网看

电影,看着看着,不知怎么的,突然真个界面卡住了,什么都动不了,但是电影的声音还在继续,

alt+ctrl+fn也没用,界面一直卡着,只好重启了事。

终终于,11.5出来了,出来的这么早,而且从linuxtoy上看到,这个版本的驱动解决了xserver僵

死的问题,改善了显卡切换,所以特意换上了此驱动,到如今为止用了一天多了,换成intel显卡,温度

低,耗电低,也没有出现小server僵死情况,十分完美,经过近一年的时间跨度,终于,我可以在linux

下舒服的用双显卡切换了,虽然切换要重启X,但是我基本就在linux下只用intel集显,3d什么的都很

好了。

上面是一些经历下面说说怎么做:

第一步、从官网上下载11.5驱动,不要上中文的amd官网,那个上面linux版的驱动竟然还是

11.3,上英文版的官网(把那个地址栏中的*/cn/*换成*/us/*),下载过来是一个ati***.run文件。下载必

要的编译环境,内核版本对应的头文件。sudo apt-get install linux-headers***,这个得自己用

代码:

uname -r

查看一下。编译环境:

代码:

sudo apt-get install build-essential automake autoconf

还要下载内核对应的头文件,因为编译的时候需要,一般是

代码:

sudo apt-get install linux-headers-****

与内核名相符即好。比如通过uname -a得到

代码:

Linux ***-1-0 2.6.32-5-amd64 #1 SMP Thu Nov 3 03:41:26 UTC 2011 x86_64

GNU/Linux

可以看出内核是2.6.32-5-amd64,那么安装头文件就是

代码:

sudo apt-get install linux-headers-2.6.32-5-amd64

有朋友没安装头文件编译不成功,我补充这条命令,希望对大家有帮助。

第二步、sudo /path2ati***.run/ati***.run,运行此文件,如果是在图形界面中运行此文件,会弹

出一个图形界面的安装窗口,自己一步步点就行了。如果是在纯console下,则会提示要要回答Y/n,都

回答Y即可。

第三步(请看后面的补充)、这是要确定驱动是否正确安装,第二步后往往有人就以为驱动已经安

装好了,结果重启却发现并没有安装好,就是因为没用这第三步。细心的人会发现,在安装完后会有个提

示安装记录文件的语句。

代码:

cat /usr/share/ati/|less

如果编译成功的话,这里面会没有错误提示,但是会让运行

代码:

/lib/modules/fglrx/make_

如果没有运行这个命令,那么很有可能fglrx并没有安装,只是编译好了,这就会导致重启后一点显卡的

管理中心就重启x的情况。还有,如果有错误,也都是通过这个文件来查看的。

注意:如果之前有安装过ati闭源驱动,应先完全删除此驱动,否则会出现意想不到的问题。

代码:

sudo /usr/share/ati/ --force

强制删除驱动。

代码:

sudo rm -r /etc/ati

这个可以不删,但是删了更洁净,不删有可能出问题,可能性很小,但是我遇到过。

希望可以帮到同样为ati&&intel双显卡纠结的人。

补充:据说此驱动对于gnome3的面板花问题任然存在,不过如果是双显卡,在驱动装好后直接改用

intel的集显可能就不会有问题了。

再补充:如果没有进行第三步就一切正常了,那就更好,实际上在安装时ait的安装程序会 自动执行

make_,但是不知道为什么,我安装的时候确实有这种情况:不进行第三步,重启后没有问题,

设为intel显卡后重启,一点控制中心就重启X,在终端运行amdccc也一样,所以如果有遇到此情况的

就做一下第三步,没什么情况的就不必了。