更新至 3.5.019 后,nvidia 驱动程序彻底失败

更新至 3.5.019 后,nvidia 驱动程序彻底失败

我正在运行双屏设置并且需要专有驱动程序,因为标准驱动程序无法以全分辨率驱动第二个屏幕。

更新至 3.5.019 后,下载最新的 linux 头文件并重新安装“nvidia-current-updates”以触发重新编译 xserver/gdm 根本无法加载。

非常感谢您的帮助。

编辑:额外信息

测试版

[     5.102] (II) LoadModule: "glx"
[     5.102] (II) Loading /usr/lib/x86_64-linux-gnu/xorg/extra-modules/libglx.so
[     5.222] (II) Module glx: vendor="NVIDIA Corporation"
[     5.222]    compiled for 4.0.2, module version = 1.0.0
[     5.222]    Module class: X.Org Server Extension
[     5.222] (II) NVIDIA GLX Module  304.51  Tue Sep 18 17:38:06 PDT 2012
[     5.222] Loading extension GLX
[     5.222] (II) LoadModule: "nvidia"
[     5.222] (II) Loading /usr/lib/x86_64-linux-gnu/xorg/extra-modules/nvidia_drv.so
[     5.223] (II) Module nvidia: vendor="NVIDIA Corporation"
[     5.223]    compiled for 4.0.2, module version = 1.0.0
[     5.223]    Module class: X.Org Video Driver
[     5.223] (II) NVIDIA dlloader X Driver  304.51  Tue Sep 18 17:18:40 PDT 2012
[     5.223] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[     5.223] (++) using VT number 7

[     5.225] (II) Loading sub module "fb"
[     5.225] (II) LoadModule: "fb"
[     5.225] (II) Loading /usr/lib/xorg/modules/libfb.so
[     5.225] (II) Module fb: vendor="X.Org Foundation"
[     5.225]    compiled for 1.13.0, module version = 1.0.0
[     5.225]    ABI class: X.Org ANSI C Emulation, version 0.4
[     5.225] (II) Loading sub module "wfb"
[     5.225] (II) LoadModule: "wfb"
[     5.225] (II) Loading /usr/lib/xorg/modules/libwfb.so
[     5.225] (II) Module wfb: vendor="X.Org Foundation"
[     5.225]    compiled for 1.13.0, module version = 1.0.0
[     5.225]    ABI class: X.Org ANSI C Emulation, version 0.4
[     5.225] (II) Loading sub module "ramdac"
[     5.225] (II) LoadModule: "ramdac"
[     5.225] (II) Module "ramdac" already built-in
[     5.225] (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
[     5.225] (==) NVIDIA(0): RGB weight 888
[     5.225] (==) NVIDIA(0): Default visual is TrueColor
[     5.225] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[     5.226] (**) NVIDIA(0): Enabling 2D acceleration
[     5.228] (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module. Please see the
[     5.228] (EE) NVIDIA(0):     system's kernel log for additional error messages and
[     5.228] (EE) NVIDIA(0):     consult the NVIDIA README for details.
[     5.228] (EE) NVIDIA(0):  *** Aborting ***
[     5.228] (EE) NVIDIA(0): Failing initialization of X screen 0
[     5.228] (II) UnloadModule: "nvidia"
[     5.228] (II) UnloadSubModule: "wfb"
[     5.228] (II) UnloadSubModule: "fb"
[     5.228] (EE) Screen(s) found, but none have a usable configuration.
[     5.228] 
Fatal server error:
[     5.228] no screens found
[     5.228] (EE) 
Please consult the The X.Org Foundation support 
     at http://wiki.x.org
 for help. 
[     5.228] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[     5.228] (EE) 
[     5.229] Server terminated with error (1). Closing log file.

dkms 状态:

nvidia, 304.64, 3.5.0-18-generic, x86_64: installed
nvidia, 304.64, 3.5.0-19-generic, x86_64: installed
nvidia-current-updates, 304.51, 3.5.0-19-generic, x86_64: installed

内核日志的相应部分:

Dec  5 13:37:06 ursus kernel: [    5.374507] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  304.64  Tue Oct 30 10:58:20 PDT 2012
Dec  5 13:37:06 ursus kernel: [    5.624054] NVRM: API mismatch: the client has the version 304.51, but
Dec  5 13:37:06 ursus kernel: [    5.624054] NVRM: this kernel module has the version 304.64.  Please
Dec  5 13:37:06 ursus kernel: [    5.624054] NVRM: make sure that this kernel module and all NVIDIA driver
Dec  5 13:37:06 ursus kernel: [    5.624054] NVRM: components have the same version.

答案1

看起来你已经通过安装上游 Nvidia 驱动程序以及来自 Ubuntu 存储库的驱动程序搞乱了你的内核模块配置。

现在“用户空间”Xorg 库与内核模块的版本不匹配,这就是您在 Xorg 错误日志中看到的内容。我建议您采取以下步骤以恢复到 Ubuntu 提供的步骤。

  1. 卸载手动安装的 Nvidia 驱动程序。请参阅关于此问题的众多问题之一,例如

    如何卸载手动安装的 Nvidia 驱动程序?

  2. 卸载所有可能的 Ubuntu Nvidia 软件包:

    sudo apt-get purge 'nvidia-*'
    
  3. 列出并删除此时仍然安装的 Nvidia 内核模块(如果有):

    dkms status
    dkms remove nvidia -k your-kernel-version-here
    

    重复此操作,直到不再看到 Nvidia 模块dkms status

  4. 从存储库安装:

    sudo apt-get install nvidia-current nvidia-settings
    

    或者如果您需要更新/最近的版本:

    sudo apt-get install nvidia-current-updates nvidia-settings-updates
    
  5. 验证 Nvidia 内核驱动程序是否为您正在运行的内核构建:

    dkms status | grep `uname -r`
    

    应该生产例如nvidia-current, 313.09, 3.8.3-030803-generic, x86_64: installed

  6. 重启。

相关内容