openSUSE 13.1显卡驱动修复笔记

折腾linux的人恐怕早晚都会遇到驱动的问题。今天升级完重启机器的时候,发现两个显示器只有一个能用,而且分辨率极低,猜测是因为nvidia的显示驱动挂掉了,于是linux使用了默认vesa驱动的缘故。

这里的nvidia驱动特指商业驱动,以下均为商业驱动版本。

下面开始排查。

首先通过以下命令搞清楚显卡的型号:

[~]$ lspci |grep -i vga
01:00.0 VGA compatible controller: NVIDIA Corporation GF119 [GeForce GT 620 OEM] (rev a1)

NVIDIA GeForce GT620。

第二步是准备重装驱动。第一步是删除掉已经安装好的所有驱动。我的办法是删除掉所有包名字中带nvidia以及nouveau的,以及xf86-video-nv。

接下来在这里找到并安装新驱动:

https://en.opensuse.org/SDB:NVIDIA_drivers

由于我是GeForce 6系列显卡,点第二个进去以后自动安装。

第三步是重启以后进一步调试,运行以下命令:

[~]$ lsmod |grep nvidia

[~]$ cat /var/log/Xorg.0.log

发现既没有载入nvidia内核模块,xorg也没能成功加载驱动,需要进一步调试。

这里需要解说一下模块这个定义,nvidia驱动包括两部分(两个rpm包),一部分是nvidia内核模块(nvidia-gfxG02-kmp-desktop包),另外一部分是xorg的驱动(x11-video-nvidiaG02 RPM包)。

xorg的驱动部分比较简单,它的文件包括了/usr/lib64/xorg/modules/updates/这个目录下的几个.so文件。(例如nvidia_drv.so和libglx.so)

下面说明内核模块驱动部分。openSUSE 13.1下,nvidia 驱动的RPM包会把内核模块源代码解压到如下位置:

/usr/src/kernel-modules/nvidia-304.121-desktop

之后在该目录下运行make install,把编译好的nvidia.ko文件放置到/lib/modules/3.11.10-21-desktop/kernel/drivers/video这个目录下面,然后运行下面两个命令:

depmod -ae

modprobe nvidia

这样我们在lsmod里面就能看到nvidia模块了,如果X的驱动安装也正确的话,显示应该没有问题(能正确驱动双显示器,分辨率正常)。

 

注:

其实只要在/usr/src/nvidia-XXXX/目录下运行make install即可自动进行安装。

posted @ 2014-10-26 09:12  Nuk9_  阅读(548)  评论(0编辑  收藏  举报