Bootstrap

centos打显卡驱动命令_CentOS安装nvidia显卡驱动的正确方法

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

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

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

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

从ELRepo源安装显卡驱动(以下操作均以root权限运行)

1. 添加ELRepo源

首先导入公共密钥

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org然后安装ELRepo

对于CentOS-7

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm对于CentOS-

6

rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm对于CentOS-

5

rpm -Uvh http://www.elrepo.org/elrepo-release-5-5.el5.elrepo.noarch.rpmelrepo-release会不断更新,具体操作时请到

ELRepo主页查看。

2. 查找合适的驱动

安装显卡检查程序

yum install nvidia-detect运行nvidia-detect,在我电脑上的输出如下:

kmod-nvidia-340xx

即我适用的显卡驱动为kmod-nvidia-340xx

3. 安装显卡驱动

看看软件源中的驱动程序

yum search kmod-nvidia-340xx结果为

kmod-nvidia-340xx.i686 : nvidia-340xx kernel module(s)

既然确认有驱动,那么直接安装即可

yum -y install kmod-nvidia-340xx.i686重启后新驱动就生效了,会发现整体显示效果都好了不少,仿佛有一层薄薄的马赛克被去掉一样的清爽!虽然爽是爽了,但工作还没结束,尚有一些问题要处理。

4. 善后工作

启用新驱动后一般会有几个问题:

(1) 系统文字都变大了,这个问题到设置里把字号改小一点就行;

(2) 无法用笔记本fn键调节亮度,开机时会有一个大大的nvidia图标一闪而过,这个是设置的问题,然而nvidia的图形设置界面不提供这两项的修改,需要修改文本配置文件,具体参看我另一篇文章——解决linux安装nvidia驱动后无法调节亮度的问题;

(3) 启动时原来那个漂亮的CentOS图标不见了,变成了一个简陋的进度条。

这个是因为启动系统时nvidia驱动还没启动,所以没法显示,虽然不是不能恢复,但总之是不能解决的很完美就是了

编辑引导文件

vi /etc/grub.conf在启动选项里,kernel那一条的后面追加

vga=792

792的意思是以1024x768分辨率、24bit颜色显示开机时的CentOS图案,这个参数的意义如下:

Colours | 640x480 800x600 1024x768 1280x1024 1600x1200

--------+---------------------------------------------

256 | 769 771 773 775 796

32,768 | 784 787 790 793 797

65,536 | 785 788 791 794 798

16.8M | 786 789 792 795 799(上表来自于ELRepo:

http://elrepo.org/tiki/kmod-nvidia)

我的笔记本是1366*768的,然而选项里没有这个分辨率,所以无论选什么都会有所拉伸,这也是没办法的事啦。

当然如果对自己定制开机图案有兴趣的话,可以参看这篇文章 Custom GRUB splash image

至此nvidia驱动的安装就完成啦,have fun!

;