更新后 GLX 仅适用于 root (nvidia)

更新后 GLX 仅适用于 root (nvidia)

今天我更新并glx停止为非 root 用户工作:

$ glxinfo
name of display: :0
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  81
  Current serial number in output stream:  82

但当我以 root 身份运行它时,一切都很好:

$ sudo glxinfo
name of display: :0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
...
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 430/PCIe/SSE2
OpenGL core profile version string: 4.2.0 NVIDIA 304.132
OpenGL core profile shading language version string: 4.20 NVIDIA via Cg compiler
...

ubuntu 14.04。但 opensuse 也报告了同样的问题这里

$ uname -a
Linux xxx 4.4.0-45-generic #66~14.04.1-Ubuntu SMP Wed Oct 19 15:05:38 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

唯一未注释的行/etc/X11/Xwrapper.config

allowed_users=console

并且没有具有该名称的组或用户。

nvidia 设备权限:

$ ls -l /dev/nvid*
crw-rw-rw- 1 root root 195,   0 lis  5 00:24 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 lis  5 00:24 /dev/nvidiactl

答案1

这个为我解决了问题:

显然,目前唯一的解决方案是降级到以前的驱动程序版本(304.131)。

您可以通过以下方式找到 Ubuntu 的 304.131 驱动程序:

  • https://launchpad.net/ubuntu/+source/nvidia-graphics-drivers-304/+publishinghistory
  • 找到您需要的版本,然后点击版本号
  • 在下一页上,在“Builds”下查找您的 Ubuntu 版本,然后单击版本名称后面的amd64或链接i386
  • 在下一页上,在“构建文件”下查找以“nvidia-304_304.131”开头的 .deb 文件。下载该文件。
  • 打开终端并运行 sudo dpkg -i *path-to-downloaded-.deb-file* 以安装下载的版本

稍后只需锁定软件包版本:sudo apt-mark hold nvidia-304。当 nvidia 修复其驱动程序时,不要忘记解锁软件包:sudo apt-mark unhold nvidia-304

答案2

在花了几个小时解决这个问题后,我终于成功地通过将 nvidia-current (nvidia-304) 从 132 降级到 131 来使 glx 设置正常工作。

另一位来自软帽人的抱怨: https://devtalk.nvidia.com/default/topic/974456/f24-permission-problems-/?offset=3

因此,这似乎证实了“多发行版”问题,该问题与 nvidia 跟踪的 bug 1835736 有关,但在撰写本文时尚未记录。

ubuntu 的 304.131 deb 仍然可以从以下位置获取: http://ubuntu.ip-connect.vn.ua/pool/restricted/n/nvidia-graphics-drivers-304/

这将纠正您的 14.04 的问题。

然后 :

aptitude hold nvidia-opencl-icd-304 nvidia-current nvidia-304 nvidia-304-dev nvidia-304-updates nvidia-304-updates-dev libcuda1-304

要启用所有“非 nvidia 驱动程序更新”,然后:

aptitude unhold nvidia-opencl-icd-304 nvidia-current nvidia-304 nvidia-304-dev nvidia-304-updates nvidia-304-updates-dev libcuda1-304

发行版/nvidia 补丁发布后立即重新启用“nvidia 驱动程序更新”。

我的2美分。

答案3

nvidia-304.134解决了这个问题。

我取消了根据此处的其他答案降级到的较旧的 nvidia 驱动程序版本,并从 Ubuntu 14.04 的存储库安装了更新。现在看来不错。

相关内容