关闭

linux 安装NviDIA显卡驱动

标签: nvidia
4279人阅读 评论(0) 收藏 举报
分类:

感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!
如果转载,请保留作者信息。
博客地址:http://blog.csdn.net/qq_21398167

原博文地址:http://blog.csdn.net/qq_21398167/article/details/46820119

一:首先当然是要把驱动下载下来啦。我的电脑是NVIDIA的,所以自然先要访问其官网:http://www.geforce.cn/drivers       根据你自己的显卡型号,选择相应的显卡,进行下载勒,下载下来的是一个.run 的文件。

 

二:OK,接下来就是安装编译环境:gcc、kernel-devel、kernel-headers   (当然,如果你的电脑已经安装了,自然就不用在装了)

     # yum -y install gcc kernel-devel kernel-headers

三:安装

#sh  NVIDIA-XXXX.run

 错误提示:

ERROR: The Nouveau kernel driver is currently in use by your system. This
  driver is incompatible with the NVIDIA driver, and must be disabled
  before proceeding. Please consult the NVIDIA driver README and your
  Linux distribution's documentation for details on how to correctly
  disable the Nouveau kernel driver.

修改/etc/modprobe.d/blacklist.conf 文件,以阻止 nouveau 模块的加载(centos7 下  usr/lib/modprobe.d)

        方法: 添加

blacklist nouveau

options nouveau modeset=0   (centos7 下多加这一条)

注释掉

#blacklist nvidiafb

        重新建立initramfs image文件

      # mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak

      # dracut /boot/initramfs-$(uname -r).img $(uname -r)

以上和网上步骤大差不差,接下来问题来了

 

四:在终端输入

       #init 3      

       进入文本模式。

输入root和password,进入根用户模式下,确保nouveau kernel driver没有被加载

[root@localhost ~]# lsmod | grep nouveau


cd 到下载的显卡驱动所在目录(即NVIDIA-XXXX.run目录)

在此目录下执行:

    #sh  NVIDIA-XXXX.run

 错误为:unable to find the kernel source tree for the currently running kernel.........

将上述语句换成:# ./NVIDIA-XXXX.run --kernel-source-path=/usr/src/kernels/内核号(2+Tab键  自动出现)


上述错误没了,但是新的错误产生了:unable to load the kernel module 'nvidia.ko' .........

将上述语句改成:# ./NVIDIA-XXXX.run --kernel-source-path=/usr/src/kernels/内核号  -k $(uname -r)

如果出现

ERROR: Kernel configuration is invalid.       

 include/generated/autoconf.h orinclude/config/auto.conf are missing.       
 Run 'makeoldconfig && make prepare' on kernel src to fixit.
  这种错误也是遇见了几次,频繁不能解决。今天终于知道原因了。当编译linux内核模块代码时。要确定,你所用的头文件和你所引用的代码是否存在。
由于也可能是你写的代码太老,也就是内核版本太高。比如我用的linux内核版本是:2.6.33.20
   而在2.6.33之后的版本中include/linux/autoconf.h已经被移到其它的地方了。没必要再手动指了就,内核可以自动分配。同时也没有必要再使用make menuconfig了,甚至不用修改他了,因为内内核可以自动分配了。甚至makeoldconfig也是不需要了,
在我这是种情况:
make oldconfig && makeprepare
make: *** 没有规则可以创建目标“oldconfig”。停止。

  我的主要原因就是编译的东西太老了,在sourceforge中显示所需要的东西是2.6.18之前的东西。所以不可能会编译通过。我去目录下找这个文件,也是找不到的。关键就是要版本匹配。
  要么1、更新make. 
  要么2、下一个以前的内核源码,在老版本的源码下编译(指定文件的位置),如果需要也可以将其添加到内核中,这样就可以编译成功了。这里我采用的是第二种方式。

OK!成功!

 

六:#init 5 回到界面模式

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:287432次
    • 积分:4206
    • 等级:
    • 排名:第7571名
    • 原创:146篇
    • 转载:34篇
    • 译文:0篇
    • 评论:41条
    博客专栏
    文章分类
    最新评论