Modprobe 加载 nvidia 驱动程序但 xorg.conf 有错误

Modprobe 加载 nvidia 驱动程序但 xorg.conf 有错误

我最近升级到了 12.10。在此过程中,我的笔记本电脑(底座上的 W520)连接到 2 个外接显示器(相同的显示器...戴尔 U2400)。我终于让 nvidia-experimental-310 驱动程序与两个显示器一起工作。几周来一切都很顺利,然后它决定升级内核,当我要求它执行 apt-get upgrade 时,我没有意识到它这样做了。

意识到自己的错误后,我回去尝试重新安装 nvidia 驱动程序,因为我认为它需要再次针对当前内核进行构建。我无法让 nvidia-current 或 nvidia-experimental-310 驱动程序正常工作(它们启动时出现黑屏,光标闪烁,或者,就 310 驱动程序而言,不允许我启用第二个屏幕)。

不过,我能够让 nvidia-experimental-304 驱动程序正常工作。因此,经过反复尝试,我更新了 xorg.conf 文件并重新启动。但是现在,我在 Xorg.0.log 文件中收到以下错误:

[    16.023] (EE) Failed to load module "nvidia-experimental-304" (module does not exist, 0)

但是,当我进入虚拟终端并运行以下命令时:

# modprobe nvidia-experimental-304
# /etc/init.d/lightdm restart

现在一切都按预期工作,除了以下内容仍然出现在我的 Xorg.0.log 文件中,即使 X 按照我预期的方式启动:

[    16.023] (EE) Failed to load module "nvidia-experimental-304" (module does not exist, 0)

有人能告诉我我做错了什么吗?我想让模块在启动时自动加载,这样我就可以直接启动 X,而不必手动 modprobe 模块。

我的 xorg.conf 文件如下。

编辑

如果我在 xorg.conf 文件中将驱动程序“nvidia-experimental-304”更改为“nvidia”,则系统在重新启动时将以低图形模式运行,并且 xorg.conf 文件中出现以下错误:

[    17.147] (**) NVIDIA(0): Enabling 2D acceleration
[    17.163] (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module. Please see the
[    17.163] (EE) NVIDIA(0):     system's kernel log for additional error messages and
[    17.163] (EE) NVIDIA(0):     consult the NVIDIA README for details.
[    17.163] (EE) NVIDIA(0):  *** Aborting ***
[    17.163] (EE) NVIDIA(0): Failing initialization of X screen 0

syslog 现在显示:

Dec  3 12:55:03 corellia kernel: [   33.405620] e1000e 0000:00:19.0: irq 50 for MSI/MSI-X
Dec  3 12:55:03 corellia kernel: [   33.431116] nvidia: module license 'NVIDIA' taints kernel.
Dec  3 12:55:03 corellia kernel: [   33.431118] Disabling lock debugging due to kernel taint

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 304.64  (buildd@papaya)  Fri Nov  9 10:49:08 UTC 2012

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DELL U2410"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia-experimental-304"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro 1000M"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-5"
    Option         "metamodes" "DFP-5: nvidia-auto-select +1920+0, DFP-6: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

答案1

你的驱动程序应该是 nvidia。

驱动程序“nvidia”

X 不加载内核模块。它加载调用设备的 X 模块。当该设备不存在时,内核会加载模块。参考这里,保护你的眼睛。

因此,通过设置驱动程序“nvidia-experimental-304”,您将加载一个不存在的 X 模块,它无法告诉它应该加载哪个内核设备,然后内核不知道要加载哪个模块。如果您先 modprobe,它就会起作用,因为模块已加载。但我怀疑“某些”nvidia 的东西不会这样工作。(即模块已加载,但 x 驱动程序未加载)

这是一个有效的设备部分,请原谅其格式。

部分“设备”
标识符“设备 1”驱动程序
“nvidia”
供应商名称“NVIDIA Corporation”
主板名称“GeForce GT 330M”
总线 ID“PCI:1:0:0”
屏幕 1
结束部分

答案2

事实证明,在完成所有重新配置后,真正需要的是重新安装 lightdm。以下命令可以解决问题(注意:我有 Linux 源代码和标头,但为了清楚起见,我在这里添加了这些步骤,以防其他人遇到同样的问题并且可能没有安装它们):

sudo apt-get remove --purge nvidia-experimental-304 nvidia-settings-experimental-304
sudo apt-get install linux-source linux-headers-($uname -r)
sudo apt-get install nvidia-experimental-304 nvidia-settings-experimental-304
sudo apt-get install --reinstall lightdm

当我启动时,这对我来说工作正常。

相关内容