我的系统具有混合(并且我相信是无混合的,即只有集成卡实际上已连接到显示器)图形。第一张卡是Intel HD 4400
,第二张卡是AMD Radeon HD 8670M
(太阳能系统系列,不是OLAND)。因此,当前开放源代码radeon
驱动程序不支持该卡,因此我不得不使用专有fglrx
驱动程序。
为什么不没有fglrx就关闭dGPU卡呢?
我不需要精美的图形,只要将分立的ATI卡正确关闭并且不会使电池过热/进食,我很乐意将其关闭。选项做到不fglrx
和pxpress
似乎仅限于我:我没有vgaswitcheroo
开关(甚至之前fglrx
被安装过),我只能推断,这是因为radeon
驱动程序还不支持我的卡/不正确加载它,但看到我的问题这里有更多关于我尝试过的东西。acpi_call
据报道,其他类似方法充其量只能是“概念验证”,而最危险则是危险,因此,我宁愿冒险使用它们。像更可靠的项目bumbleebee
仅是nvidia。
只需让AMD卡无人驾驶
仅仅依靠i915
intel驱动程序就可以正常工作,没有错误,没有问题,但是AMD卡随后被弃置并可能导致过热/电池耗尽,因此我对此并不满意。
带有fglrx的Ubuntu 12.04 LTS
我从这里开始,iGPU
在选择时遇到了一个错误。每当屏幕锁定,笔记本电脑盖关闭或什至在计算机因xscreensaver
安装类似功能而不启用锁屏功能而处于非活动状态时,此错误就会显现出来。它会导致黑屏仅带有可移动的光标;切换tty和back不会恢复,因此需要从tty重新启动。它并非每次都发生,而是相当规律地发生,至少一天一次或两次。所有保存的工作都将丢失。
我fglrx
在回购中尝试了这两个功能,并在AMD网站上尝试了最新的13.10。没变化。
当改为选择dGPU时(从AMD Catalyst控制中心,或最终由pxpress选择),则不会发生此错误,但是我遇到了另一个错误,这里不再赘述。
带有fglrx的Ubuntu 13.10
这里有一个非常相似的错误,但不那么严重。完全相同的条件,即锁屏,盖子关闭,不活动(如果正在使用xscreensaver)。这次冻结的屏幕不是黑色的,而是冻结时桌面的图片,同样带有可移动的光标。在这里,我只尝试了最新的fglrx AMD驱动程序13.10。
同样,仅i915
驱动程序没有问题(no fglrx
),而dGPU
选定驱动程序也没有问题。
我尝试过的一些事情:
1)禁用vsync
。我在compiz设置管理器中都尝试过此操作,aticonfig --sync-vsync=off
然后重新启动。没有变化。
2)关闭DPMS。Option "DPMS" "false"
在xorg.conf
监视器节中。(当然,我也更改了电池和AC的gnome设置“什么也不做/不挂起”)。没有变化。
3)Option "AIGLX" "off"
在的服务器标志中xorg.conf
。没有变化。
4)修改atieventsd
使其在Ubuntu上可以正常使用,请在此处查看我的文章。而且,没有它就可以运行。没有变化。
5)用选项启动
Option "Capabilities" "0x00000800"
Option "KernelModuleParm" "locked-userpages=0"
Option "NoAccel" "True"
在xorg.conf
设备节中。没有变化。
6)使用nomodeset
作为内核参数启动。没有变化。
7)acpi
从中关闭交互aticonfig
:
--acpi-services=off
--acpi-display-switch=off
没有变化。
为什么只与Intel一起使用?
我不明白的一件事是为什么它只能与inteli915
驱动程序一起使用。我以为pxpress
可以在启动时将控制权交给该驱动程序,因此,如果i915
单独使用它,我希望它可以与pxpress selection一起使用igpu
。
我知道fglrx
安装其自带libGL还实行,但它切换回时,英特尔卡选择了老股票MESA libGL函数实现(CF /usr/lib/fglrx/switchlibGL
python脚本)。
因此,在igpu
选择后,它应该完全等同于fglrx
重新启动后的寿命?
经过长时间的研究,我开始发布关键点:当fglrx / pxpress加载Intel驱动程序时,它使用UXA
加速方法加载,而默认情况下(在运行13.10的Haswell系统上,在fglrx之前安装)英特尔驱动程序将使用SNA
加速方法加载。
我通过启动时进行了测试xorg.conf
,如下所示:
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "AccelMethod" "UXA" # (fglrx uses this) I can see the bug
#Option "AccelMethod" "SNA" #(default) no bug!
EndSection
Section "Monitor"
Identifier "Configured Monitor"
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
EndSection
现在,即使是这个英特尔xorg.conf
,在盖上一两个盖子后也给出了冻结错误。但是使用完全相同的配置文件进行引导,仅使用
Option "AccelMethod" "SNA"
无论有多少盖关闭/屏幕锁定,我都没有错误(无论如何,这是驱动程序的默认方法,这就是为什么我感到困惑,因为它使我误以为英特尔驱动程序和fglrx都很好污染的东西)。
现在,我意识到这是一个英特尔驱动程序问题,通过谷歌搜索我找到了解决方法。创建一个文件~/.drirc
以配置DRI设置,其中包含
<device screen="0" driver="dri2">
<application name="Default">
<option name="vblank_mode" value="0"/>
</application>
</device>
这将关闭vsync
(该设置使您的GFX卡与屏幕刷新速率同步,而不是以其固有帧速率加速,以避免撕裂)。注意:没有必要vsync
在我的OP中使用aticonfig关闭它,因为这只会关闭dGPU而不是Intel卡。我不确定为什么用Compiz Settings Manager关闭它的尝试为什么没有奏效。
即使使用该UXA
方法,关闭vsync
这种方式也可以停止崩溃,即使对于fglrx
xorg.conf
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句