最近折腾了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
)
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)