" X错误" IntelSandyBridge上的BadAlloc GLX BadContext(Intel HD Graphics 3000)

时间:2012-03-19 11:49:33

标签: xorg bad-alloc glx backport mesa

我正在运行debian stable ThinkPad X1(1294-3QG),其中只包含了来自GraphicsModi所需的squeeze-backports的三个软件包:

initramfs-tools 0.99~bpo60+1
linux-base 3.4~bpo60+1
linux-image-3.2.0-0.bpo.2-amd64 3.2.9-1~bpo60

在运行该内核时,从示例paraview开始会导致这些错误:

Unrecognized deviceID 126
X Error: BadAlloc (insufficient resources for operation) 11
  Extension:    154 (Uknown extension)
  Minor opcode: 3 (Unknown request)
  Resource id:  0x3200273
X Error: GLXBadContext 169
  Extension:    154 (Uknown extension)
  Minor opcode: 5 (Unknown request)
  Resource id:  0x32002b0
paraview: ../../src/xcb_io.c:183: process_responses: Zusicherung »!(req && current_request && !(((long) (req->sequence) - (long) (current_request)) <= 0))« nicht erfüllt.

在网上的某个地方,我发现提示在xorg.conf中提供内存设置,但这并没有解决我的问题。
从当前稳定的内核开始工作正常。

运行glxgears结果类似:

Unrecognized deviceID 126
X Error of failed request:  BadAlloc (insufficient resources for operation)
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Serial number of failed request:  27
  Current serial number in output stream:  29

我进一步尝试通过将xserver-xorg-video-intel(以及所有依赖项libdrm-intel1 libxfont1, xserver-common, xserver-xorg, xserver-xorg-core, xserver-xorg-input-evdev, xserver-xorg-video-fbdevxserver-xorg-video-vesa)更新为backport来解决问题,但这并不繁荣。

另外,我找到了条目

[drm] MTRR allocation failed.  Graphics performance may suffer.

dmesg的输出中。

2 个答案:

答案 0 :(得分:2)

我在使用Intel i7 2700k(有Intel HD 3000)运行Debian Stable 6.0.4(squeeze)x64的自制服务器站上遇到了同样的问题。基本上我知道这个平台有很多unix系统的问题(就像intel GPU一样),但它的目的是服务器,因此板载图形对此非常公平。无论如何,我想有一天只需要一次移动(通过HDMI * / VGA连接电视),所以我安装了gnome-core和gdm3手动运行。

使用内核2.6.32-5-amd64一切都很好,除了很少的东西,这迫使我升级内核:

  • SSD支持(从linux-image-2.6.33添加和改进)
  • HDMI - 未识别任何设备,无法添加&amp;改变决议(cvt xrandr)。

所以我在sources.list中添加了squeeze-backports并且只升级了内核(与你所做的相同)。

之后HDMI连接工作得很好,但我注意到刷新速度慢 - 在加载gdm3登录屏幕和之后撕裂。我检查了一些信息的dmesg和内核消息

  • cat dmesg | grep失败&amp;&amp; cat dmesg | grep drm&amp;&amp; cat / var / log / messages | grep失败&amp;&amp; cat / var / log / messages | grep drm - 发现一样。比我运行glxgears并发现相同的错误。

在一些解决方案和想法之后,我正在挖网几天。 找到了许多关于分配RAM(enable_mtrr_cleanup)等无用的东西。 基本上对于我几乎没有电影的需求它并不是悲剧,但我喜欢当一切都很完美时,所以我仍然在努力修复它。

最后!得到了解决!问题不在于RAM或新内核本身。

我必须在这里提一下,我自己编译了Debian内核 - 3.2基于之前安装的设置。

  • 我删除了所有不需要的lib用于我的架构(即libdrm用于nvidia radeon和其他人 - 甚至是VESA !!!)

我刚刚添加了一些喘息(测试)存储库,升级并安装了以root身份依赖的新软件包(只有这些):

  • echo deb http://ftp.pl.debian.org/debian/测试主要贡献非免费&gt;&gt;的/etc/apt/sources.list
  • apt-get update
  • apt-get install --reinstall -t testing libdrm2 libdrm-intel1 xserver-xorg-video-intel xserver-xorg-core libgl1-mesa-glx libgl1-mesa-dri mesa-utils
  • dpkg-reconfigure xserver-xorg

解决了在英特尔GPU上渲染和分配的所有问题:)

认为它适用于您和拥有Intel GPU的所有人。完成后,不要忘记从sources.list中删除wheeze(测试)。

问候,T_Send。

答案 1 :(得分:1)

我现在通过更新一些mesa相关包来解决它。我正在使用来自backports的以下软件包运行debian stable:

  

initramfs-tools,libdrm-intel1,libgl1-mesa-dev,libgl1-mesa-dri,   libgl1-mesa-glx,linux-base,linux-headers-3.2.0-0.bpo.1-all-amd64,   linux-headers-3.2.0-0.bpo.1-amd64,linux-headers-3.2.0-0.bpo.1-common,   Linux的头,3.2.0-0.bpo.1常见-RT,   Linux的头,3.2.0-0.bpo.1-RT-AMD64,   Linux的头,3.2.0-0.bpo.2-ALL-AMD64,   linux-headers-3.2.0-0.bpo.2-amd64,linux-headers-3.2.0-0.bpo.2-common,   Linux的头,3.2.0-0.bpo.2常见-RT,   linux-headers-3.2.0-0.bpo.2-rt-amd64,linux-image-3.2.0-0.bpo.2-amd64,   linux-kbuild-3.2,mesa-common-dev

希望这些信息对其他人也有帮助。