登录循环 – “BadValue(整数参数超出操作范围)” – 16.04

我使用手动安装的NVIDIA 361驱动程序运行Ubuntu 16.04 LTS。 将驱动程序升级到v367之后,我现在被锁定在Unity之外,并且登录循环中出现以下错误.xsession-errors

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: 3 (X_GLXCreateContext) Value in failed request: 0x0 Serial number of failed request: 32 Current serial number in output stream: 33 openConnection: connect: No such file or directory cannot connect to brltty at :0 

我也在Xorg日志中发现了这个:

 [ 2312.921302] NVRM: Your system is not currently configured to drive a VGA console [ 2312.921304] NVRM: on the primary VGA device. The NVIDIA Linux graphics driver [ 2312.921305] NVRM: requires the use of a text-mode VGA console. Use of other console [ 2312.921305] NVRM: drivers including, but not limited to, vesafb, may result in NVRM: make sure that this kernel module and all NVIDIA driver 

然后这进一步下降:

 [ 2850.609] (II) NOUVEAU driver Date: Tue Dec 8 15:52:25 2015 +1000 [ 2850.609] (II) NOUVEAU driver for NVIDIA chipset families : [ 2850.706] (EE) [drm] Failed to open DRM device for (null): -22 [ 2850.706] (EE) [drm] Failed to open DRM device for (null): -22 [ 2850.706] (EE) [drm] Failed to open DRM device for pci:0000:02:00.0: -22 [ 2850.706] (EE) No devices detected. [ 2850.706] (II) Applying OutputClass "nvidia" to /dev/dri/card0 [ 2850.706] loading driver: nvidia [ 2850.706] (==) Matched nvidia as autoconfigured driver 0 [ 2850.706] (==) Matched nvidia as autoconfigured driver 1 [ 2850.706] (==) Matched nouveau as autoconfigured driver 2 [ 2850.706] (==) Matched nvidia as autoconfigured driver 3 [ 2850.706] (==) Matched nouveau as autoconfigured driver 4 [ 2850.706] (==) Matched vesa as autoconfigured driver 7 [ 2850.706] (II) LoadModule: "nvidia" [ 2850.706] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so [ 2850.708] (II) Module nvidia: vendor="NVIDIA Corporation" [ 2850.708] (II) LoadModule: "nouveau" [ 2850.708] (II) Loading /usr/lib/xorg/modules/drivers/nouveau_drv.so [ 2850.708] (II) Module nouveau: vendor="X.Org Foundation" [ 2850.708] (II) UnloadModule: "nouveau" [ 2850.708] (II) Unloading nouveau [ 2850.708] (II) Failed to load module "nouveau" (already loaded, 21886) [ 2850.709] (II) LoadModule: "vesa" [ 2850.709] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so [ 2850.709] (II) Module vesa: vendor="X.Org Foundation" [ 2850.709] (II) NOUVEAU driver Date: Tue Dec 8 15:52:25 2015 +1000 [ 2850.709] (II) NOUVEAU driver for NVIDIA chipset families : [ 2850.709] (II) NVIDIA dlloader X Driver 364.19 Tue Apr 19 13:48:55 PDT 2016 [ 2850.709] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs [ 2850.709] (II) VESA: driver for VESA chipsets: vesa [ 2850.709] (WW) xf86OpenConsole: setpgid failed: Operation not permitted [ 2850.709] (WW) xf86OpenConsole: setsid failed: Operation not permitted [ 2850.709] (EE) [drm] Failed to open DRM device for (null): -22 [ 2850.709] (EE) [drm] Failed to open DRM device for (null): -22 [ 2850.709] (EE) [drm] Failed to open DRM device for (null): -22 [ 2850.709] (EE) [drm] Failed to open DRM device for pci:0000:02:00.0: -22 [ 2850.709] (EE) [drm] Failed to open DRM device for pci:0000:02:00.0: -22 

对此错误消息的Web搜索不会产生许多相关结果。

我已经尝试降级到v364然后回到v361无济于事我试过清除xserver-xorg,xserver-xorg-core,nvidia *,lightdm无济于事我试过重新安装ubuntu-desktop无济于事

完整的重新格式化和重新安装将极具破坏性,我想不惜一切代价避免这种情况。

.xsession-errors中的错误消息始终保持不变。 如何在不重新格式化和重新安装的情况下,将我的设置和/或包和/或库清除/恢复/重置为理智状态?

/usr/share/lightdm/lightdm.conf.d/50-xserver-command.conf +iglx添加到xserver-command。

 [SeatDefaults] # Dump core xserver-command=X -core +iglx 

之后你要么重新启动,要么重新启动Ctrl-Alt-F1,登录和sudo service lightdm restart

奇迹般有效

我解决了这个问题。 虽然我尝试手动卸载手动安装的361驱动程序,但它无法清理所有共享对象,因此我遇到的本质上是库问题。

使用apt 清除所有NVIDIA软件包之后 ,我解决了以下问题:

  1. 通过运行以下命令找到所有361驱动程序共享对象文件,不包括任何垃圾文件夹,主文件夹和Steam游戏文件夹:

     locate so.361.45 | egrep -vi "trash|steam|^/home" 
  2. 删除可疑的共享对象文件(一些包含单词nvidia而其他文件只包含nv )。

  3. 运行ldconfig

  4. 运行ldd $( which glxinfo )

  5. 检查ldd的输出并确保没有任何条目指向任何陈旧的NVIDIA 361.45共享对象。

  6. 重启。

  7. 通过apt安装NVIDIA 364驱动程序。

  8. 重启。