[ 已解决 ] 升级 13.1 后,显卡驱动挂啦

哎,好郁闷啊,显卡驱动被我折腾坏了,还是没弄好,只好来求救啦!

升级到 13.1 后,我把原来源 ftp://download.nvidia.com/opensuse/12.3/ 里针对 12.3 的驱动卸载了之后,想尝试下 nouveau 驱动 。
重启后,能进入桌面,但是分辨率没法调节,于是我又下载 nvidia 的官方驱动,进入 level 3 安装后,重启进入桌面,可是估计不到一分钟整个桌面就 hang 住了,于是我怀疑这个驱动有问题,重启后进入 level 3 卸载掉驱动,删除 /etc/X11/xorg* 后想再次尝试 nouveau 驱动。

可是,就从下开始就再也没见到过 KDM 的登录界面,现在只能进入 console 了。之后反复尝试过手动安装 Nvidia 官方驱动都是一样的效果了。
我实在不知道怎么回事了。

现在切到 Ctrl+Alt+F7 就是一张小蜥蜴的图片,按 ESC 后,显示的最后几行如下:

  OK  ] Started LSB: Samba SMB/CIFS file and print server.
           Starting CUPS Printing Service ..
  OK  ] Started CUPS Printing Service. 

我的显卡是

02:00.0 VGA compatible controller: NVIDIA Corporation C77 [GeForce 9100M G] (rev a2)

:joy:

现在系统里是手动装的 Nvidia 驱动,从系统日志里看,启动时有以下信息:

Nov 23 16:03:23 linux-mengz.site kernel: [drm] Initialized drm 1.1.0 20060810
Nov 23 16:03:23 linux-mengz.site kernel: nvidia 0000:02:00.0: setting latency timer to 64
Nov 23 16:03:23 linux-mengz.site kernel: vgaarb: device changed decodes: PCI:0000:02:00.0,olddecodes=none,decodes=none:owns=io+mem
Nov 23 16:03:23 linux-mengz.site kernel: [drm] Initialized nvidia-drm 0.0.0 20130102 for 0000:02:00.0 on minor 0
Nov 23 16:03:23 linux-mengz.site kernel: NVRM: loading NVIDIA UNIX x86_64 Kernel Module  319.72  Wed Oct 30 17:26:49 PDT 2013
Nov 23 16:03:49 linux-mengz.site systemd[1]: Starting LSB: X Display Manager...
Nov 23 16:03:49 linux-mengz.site xdm[10977]: Starting service kdm..unused
Nov 23 16:03:49 linux-mengz.site systemd[1]: Started LSB: X Display Manager.
...
...
Nov 23 16:04:28 linux-mengz kernel: [drm] Initialized drm 1.1.0 20060810
Nov 23 16:04:28 linux-mengz kernel: nvidia: module license 'NVIDIA' taints kernel.
Nov 23 16:04:28 linux-mengz kernel: Disabling lock debugging due to kernel taint
Nov 23 16:04:28 linux-mengz kernel: ACPI: PCI Interrupt Link [LGPU] enabled at IRQ 23
Nov 23 16:04:28 linux-mengz kernel: nvidia 0000:02:00.0: setting latency timer to 64
Nov 23 16:04:28 linux-mengz kernel: vgaarb: device changed decodes: PCI:0000:02:00.0,olddecodes=io+mem,decodes=none:owns=io+mem
Nov 23 16:04:28 linux-mengz kernel: [drm] Initialized nvidia-drm 0.0.0 20130102 for 0000:02:00.0 on minor 0
Nov 23 16:04:28 linux-mengz kernel: NVRM: loading NVIDIA UNIX x86_64 Kernel Module  319.72  Wed Oct 30 17:26:49 PDT 2013




# lsmod | grep nvidia
nvidia               9481847  0 
drm                   313440  1 nvidia




# modinfo nvidia
filename:       /lib/modules/3.11.6-4-desktop/kernel/drivers/video/nvidia.ko
alias:          char-major-195-*
version:        319.72
supported:      external
license:        NVIDIA
alias:          pci:v000010DEd00000E00sv*sd*bc04sc80i00*
alias:          pci:v000010DEd00000AA3sv*sd*bc0Bsc40i00*
alias:          pci:v000010DEd*sv*sd*bc03sc02i00*
alias:          pci:v000010DEd*sv*sd*bc03sc00i00*
depends:        drm
vermagic:       3.11.6-4-desktop SMP preempt mod_unload modversions 
parm:           NVreg_Mobile:int
parm:           NVreg_ResmanDebugLevel:int
parm:           NVreg_RmLogonRC:int
parm:           NVreg_ModifyDeviceFiles:int
parm:           NVreg_DeviceFileUID:int
parm:           NVreg_DeviceFileGID:int
parm:           NVreg_DeviceFileMode:int
parm:           NVreg_RemapLimit:int
parm:           NVreg_UpdateMemoryTypes:int
parm:           NVreg_InitializeSystemMemoryAllocations:int
parm:           NVreg_RMEdgeIntrCheck:int
parm:           NVreg_UsePageAttributeTable:int
parm:           NVreg_MapRegistersEarly:int
parm:           NVreg_RegisterForACPIEvents:int
parm:           NVreg_CheckPCIConfigSpace:int
parm:           NVreg_EnablePCIeGen3:int
parm:           NVreg_EnableMSI:int
parm:           NVreg_MemoryPoolSize:int
parm:           NVreg_RegistryDwords:charp
parm:           NVreg_RmMsg:charp

nvidia-xconfig 生成的配置文件 XF86Config :

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 319.72  (buildmeister@swio-display-x64-rhel04-15)  Wed Oct 30 18:32:13 PDT 2013

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

Section "Files"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

Section "InputDevice"
    # generated from data in "/etc/sysconfig/mouse"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "IMPS/2"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "yes"
    Option         "ZAxisMapping" "4 5"
EndSection

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

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

我刚刚把 Nvidia 的闭源驱动卸载了,添加了 XOrg 的源,更新了 nouveau 的驱动,终于可以进桌面了,但是分辨率是 640 x 480 ,桌面调节分辨率?

Ok, 了,去掉 nomodeset 分辨率就对了,但是 consloe 似乎还看到 “FATAL: module nvidia not found” 的信息,不明白,为什么 内核还要去找 nvidia 的模块呢?

不是内核是 Xorg 找的,它发现你是 N 卡,找驱动的顺序就是 nvidia → nouveau → nv → vesa。看那个没用,你得看你最终哪个 success 了。

来自 Galaxy Note 2 上的 Tapatalk 4

嗯,现在应该是用上 nouveau 驱动了!