最近折腾了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.rpm
elrepo-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!