CentOS安装nvidia显卡驱动

最近折腾了CentOS的显卡驱动,踩了不少坑,最后终于装成功了,不得不感慨CentOS真是与众不同啊。


常用的驱动安装方法有2种:手动编译和从ELRepo源安装,一般来说搜索的时候看到的都是前者,即“安装编译环境, 到nvidia官网下载驱动文件,把nouveau加入blacklist, 进入命令行模式重启安装……”这样的,不过这种方法适用于Ubuntu系的操作系统,CentOS的话,从网上一些文章看,应该是有按照这方法装成功的,但过程很麻烦,而且会出现各种意料之外的情况而导致安装失败,所以从ELRepo源安装才是王道。

(题外话:即使是Ubuntu系一般也是想用最新驱动才手动编译,平时的话用驱动管理里提供的nvidia驱动就行,个人感觉和最新的没什么区别)

ELRepo源提供了nvidia-detect命令,会自动帮你寻找合适的驱动,然后根据显示的结果,用yum就能完成安装,重启之后不会有任何问题,省时省力。


1、先进行内核升级,上一篇博文《CentOS6.9 内核升级(2.6.32-696.16.1升级到4.4.135-1.el6)》记录很详细

     添加ELRepo源:首先导入公共密钥;然后安装ELRepo(对应CentOS6.9的版本)

      (1)查看内核

           # uname -r

     (2)添加ELRepo源导入public key,导入公共密钥

       # rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

       (3)安装ELRepo

        # rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm

        (4)内核版本更新

#yum --enablerepo=elrepo-kernel install kernel-lt -y

yum --enablerepo=elrepo-kernel install kernel-ml

(5)#vim /etc/grub.conf

(6)#reboot

# uname -r  #查看内核是否升级及重启生效。

2、安装显卡检查程序:

[root@ca206 ~]# yum install nvidia-detect

3、检测显卡型号,并选择对应的驱动:

[root@ca206 ~]# nvidia-detect -v

Probing for supported NVIDIA devices...
[10de:1024] NVIDIA Corporation GK110BGL [Tesla K40c]
This device requires the current 390.59 NVIDIA driver kmod-nvidia

[102b:0533] Matrox Electronics Systems Ltd. MGA G200EH

根据 nvidia-detect 的输出信息,可以知道显卡的型号,以及要使用的驱动版本390.59 

$ nvidia-detect -v

Probing  for  supported NVIDIA devices...
[10de:06dd] NVIDIA Corporation GF100GL [Quadro 4000]
This device requires the current 346.47 NVIDIA driver kmod-nvidia
根据 nvidia-detect 的输出信息,可以知道显卡的型号,以及要使用的驱动版本 346.47 。

4、yum install nvidia-x11-drv-390.59 nvidia-x11-drv-390.59-64bit

安装显卡驱动

若驱动版本为 304.xx,则安装 304xx 版本:
 
sudo  yum  install  nvidia-x11-drv-304xx nvidia-x11-drv-304xx-32bit
若驱动版本为 340.xx,则安装 340xx 版本:
 
sudo  yum  install  nvidia-x11-drv-340xx nvidia-x11-drv-340xx-32bit
对于大多数比较新的显卡来说,直接安装最新版的驱动即可:
 
sudo  yum  install  nvidia-x11-drv nvidia-x11-drv-32bit
安装过程中可能会给出软件冲突的警告,需要卸载以下软件包及其依赖:
 
sudo  yum remove xorg-x11-glamor
5、 安装过程中可能会给出软件冲突的警告,需要卸载以下软件包及其依赖:
 
yum remove xorg-x11-glamor

6、重启 reboot



手动编译显卡驱动 (还未尝试,在此记录一下)

准备工作

 
查看显卡型号

$ lspci | grep VGA

[root@ca206 ~]# lspci | grep VGA

01:00.1 VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200EH (rev 01)

结合上面3我的显卡型号为Tesla K40c

$ lspci | grep VGA

03:00.0 VGA compatible controller: NVIDIA Corporation GF100GL [Quadro 4000] (rev a1)
从这里可以得出显卡型号为 Quadro 4000。

手动编译显卡驱动
 
准备工作
 
查看显卡型号
 
$ lspci |  grep  VGA
03:00.0 VGA compatible controller: NVIDIA Corporation GF100GL [Quadro 4000] (rev a1)
从这里可以得出显卡型号为 Quadro 4000。
 
驱动下载
 
下载地址为: http: //www .nvidia.com /Download/index .aspx?lang=en-us
 
安装显卡驱动
 
安装 kernel-devel
 
sudo  yum  install  kernel-devel
将 nouveau 驱动加入黑名单,在  /etc/modprobe .d /blacklist .conf (CentOS 7 下为  /usr/lib/modprobe .d /dist-blacklist .conf )中加入 blacklist nouveau
 
备份 initramfs 文件
 
sudo  mv  /boot/initramfs- $( uname  -r).img  /boot/initramfs- $( uname  -r).img.bak
重建 initramfs 文件
 
sudo  dracut - v  /boot/initramfs- $( uname  -r).img $( uname  -r)
关机重启。由于此时 nouveau 驱动已经被禁用,桌面的显示效果非常差。
进入文本界面
 
sudo  init 3
会直接进入文本界面。
 
在文本界面登录后直接安装
 
sh NVIDIAxxx --kernel- source -path= /usr/src/kernels/x .xx.x-xxxxx
其中 NVIDIAxxx 为 nvidia 驱动脚本文件, x.xx.x-xxxx 为 kernel 版本号。
 
更新 kernel 后重装驱动
 
手动编译显卡驱动的一个麻烦之处在于,每次更新 kernel 之后,都会出现无法进入图形界面的情况,此时需要重新安装显卡驱动。
 
更新 kernel,重启,发现无法进入图形界面;
按下 Alt+F2 ,进入文本界面,以 root 身份登陆;
备份 initramfs 文件
重建 initramfs 文件
重启,按下 Alt+F2 ,进入文本界面,以 root 身份登陆;
执行第七步;再重启;
卸载显卡驱动
 
sh . /NVIDIA-Linux-xxxxx  --uninstall
 
 
本文转自 http: //seisman .info /install-nvidia-drivers-under-linux .html
 
实验使用第一种方法yum安装驱动 成功
 
 
实验使用下列编译安装方法 成功
 
编译安装
1.安装 gcc ,(显卡驱动安装时需要)最好同时安装g++,后边会用到. 具体命令:yum  install  gcc -c++     #自己实验安装过程中没有装gcc-c++也能成功安装驱动,可能是安装的图形桌面自带?未验证。
2.禁用The Nouveau kernel driver. 
blacklist.conf的位置是在  /usr/lib/modprobe .d /dist-blacklist .conf,并且在加上blacklist nouveau之后还要加上一行options nouveau modeset=0
3.安装kernel-devel包
      linux系统,未安装该包时会提示: 
      error:unable to  find  the kernel  source  tree  for  the currently running kernel. please  make  sure you have installed the kernel  source  files  for  your kernel and that htey are properly configured; on red hat linux system,  for  example, be sure you have the  'kernel-source'  or  'kernel-devel'  RPM installed.  if  you know the correct kernel  source  files are installed ,you may specify the kernel  source  path with the  '--kernel-source-path'  command  line option.
      安装kernel-devel包:yum  install  kernel-devel-内核版本号,(内核版本号通过 uname  -r查看),(我的是yum  install  kernel-devel-3.10.0-123.el7.x86_64
,然后在安装显卡驱动:. /NVIDIA-Linux-x86_64-340 .58.run
或者  . /NVIDIA-XXXX .run --kernel- source -path= /usr/src/kernels/ 内核号  -k $( uname  -r)

你可能感兴趣的:(GPU)