## 23.3 显卡驱动程序安装范例
虽然你的 X 窗口系统已经顺利的启动了,也调整到你想要的分辨率了,不过在某些场合下面,你想要使用显卡提供的 3D 加速功能时,却发现 X 提供的默认的驱动程序并不支持!此时真是欲哭无泪啊~那该如何是好?没关系,安装官方网站提供的驱动程序即可! 目前 (2015) 世界上针对 x86 提供显卡的厂商最大的应该是 Nvidia / AMD (ATI) / Intel 这三家 (没有照市占率排列), 所以下面鸟哥就针对这三家的显卡驱动程序安装,作个简单的介绍吧!
由于硬件驱动程序与核心有关,因此你想要安装这个驱动程序之前,请务必先参考[第二十一章](../Text/index.html)与[第二十二章](../Text/index.html)的介绍,才能够顺利的编译出显卡驱动程序喔! 建议可以直接使用 yum 去安装“ Development Tools ”这个软件群组以及 kernel-devel 这个软件即可。
![鸟哥的图示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鸟哥的图示")
**Tips** 因为你得要有实际的硬件才办法安装这些驱动程序,因此下面鸟哥使用的则是实体机器上面装有个别的显卡的设备,就不是使用虚拟机了喔!
### 23.3.1 NVidia
虽然 Xorg 已经针对 NVidia 公司的显卡驱动程序提供了 "nouveau" 这个模块,不过这个模块无法提供很多额外的功能。 因此,如果你想要使用新的显卡功能时,就得要额外安装 NVidia 提供的给 Linux 的驱动程序才行。
至于 NVidai 虽然有提供驱动程序给大家使用,不过他们并没有完全释出,因此自由软件圈不能直接拿人家的东西来重新开发! 不过还是有很多好心人士有提供相关的软件库给大家使用啦!你可以自行 google 查阅相关的软件库 (比较可惜的是,EPEL 里面并没有 NVidia 官网释出的驱动程序就是了!)所以,下面我们还是使用传统的从 NVidia 官网上面下载相关的软件来安装的方式喔!
* 查询硬件与下载驱动程序
你得要先确认你的硬件为何才可以下载到正确的驱动程序啊!简单查询的方法可以使用 lspci 喔!还不需要拆主机机箱啦!
```
[root@study ~]# lspci | grep -Ei '(vga|display)'
00:02.0 Display controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated
Graphics Controller (rev 06)
01:00.0 VGA compatible controller: NVIDIA Corporation GF119 [GeForce GT 610] (rev a1)
# 鸟哥选的这部实体机器测试中,其实有内置 Intel 显卡以及 NVidia GeForece GT610 这两张卡!
# 屏幕则是接在 NVidia 显卡上面喔!
```
建议你可以到 NVidia 的官网 ([http://www.nvidia.com.tw](http://www.nvidia.com.tw/)) 自行去下载最新的驱动程序,你也可以到下面的链接直接查阅给 Linux 用的驱动程序:
* [http://www.nvidia.com.tw/object/unix_tw.html](http://www.nvidia.com.tw/object/unix_tw.html)
请自行选择与你的系统相关的环境。现在 CentOS 7 都仅有 64 位啊!所以不要怀疑,就是选择 Linux x86_64/AMD64/EM64T 的版本就对了! 不过还是得要注意你的 GPU 是旧的还是新的喔~像鸟哥刚刚查到上面使用的是 GT610 的显卡,那使用最新长期稳定版就可以了! 鸟哥下载的版本文件名有点像: NVIDIA-Linux-x86_64-352.41.run,我将这文件名放置在 /root 下面喔!接下来就是这样作:
* 系统升级与取消 nouveau 模块的载入
因为这部系统是新安装的,所以没有我们虚拟机里面已经安装好所有需要的环境了。因此,我们建议你最好是做好系统升级的动作, 然后安装所需要的编译环境,最后还得要将 nouveau 模块排除使用!因为强迫系统不要使用 nouveau 这个驱动,这样才能够完整的让 nvidia 的驱动程序运行! 那就来瞧瞧怎么作啰!
```
# 1\. 先来全系统升级与安装所需要的编译程序与环境;
[root@study ~]# yum update
[root@study ~]# yum groupinstall "Development Tools"
[root@study ~]# yum install kernel-devel kernel-headers
# 2\. 开始处理不许载入 nouveau 模块的动作!
[root@study ~]# vim /etc/modprobe.d/blacklist.conf # 这文件默认应该不存在
blacklist nouveau
options nouveau modeset=0
[root@study ~]# vim /etc/default/grub
GRUB_CMDLINE_LINUX="vconsole.keymap=us crashkernel=auto vconsole.font=latarcyrheb-sun16
rhgb quiet rd.driver.blacklist=nouveau nouveau.modeset=0"
# 在 GRUB_CMDLINE_LINUX 设置里面加上 rd.driver.blacklist=nouveau nouveau.modeset=0 的意思!
[root@study ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root@study ~]# reboot
[root@study ~]# lsmod | grep nouveau
# 最后要没有出现任何模块才是对的!
```
* 安装驱动程序
要完成上述的动作之后才能够处理下面的行为喔!(文件名依照你的环境去下载与执行):
```
[root@study ~]# systemctl isolate multi-user.target
[root@study ~]# sh NVIDIA-Linux-x86_64-352.41.run
# 接下来会出现下面的数据,请自行参阅图示内容处理啰!
```
![Nvidia 官网驱动程序相关设置画面示意](https://box.kancloud.cn/2016-05-13_57357380d91a5.jpg)图23.3.1-1、Nvidia 官网驱动程序相关设置画面示意
上面说的是授权,你必须要接受 (Accept) 才能继续。
![Nvidia 官网驱动程序相关设置画面示意](https://box.kancloud.cn/2016-05-13_5735738106f3f.jpg)图23.3.1-2、Nvidia 官网驱动程序相关设置画面示意
要不要安装 32 位相容的函数库,鸟哥个人是认为还是装一下比较好啦!
![Nvidia 官网驱动程序相关设置画面示意](https://box.kancloud.cn/2016-05-13_5735738119558.jpg)图23.3.1-3、Nvidia 官网驱动程序相关设置画面示意
让这支安装程序主动的去修改 xorg.conf 吧!比较轻松愉快!就按下 Yes 即可。
最后按下 OK 就结束安装啰!这个时候如果你去查阅一下 /etc/X11/xorg.conf 的内容,会发现 Device 的 Driver 设置会成为 nvidia 喔!这样就搞定啰!很简单吧! 而且这个时候你的 /usr/lib64/xorg/modules/drivers 目录内,会多出一个 nvidia_drv.so 的驱动程序文件啰! 同时这个软件还提供了一支很有用的程序来帮助我们进行驱动程序升级喔!
```
[root@study ~]# nvidia-installer --update
# 可以进行驱动程序的升级检查喔!
```
好啰,那你就赶紧试看看新的显卡芯片的功能吧。而如果有什么疑问的话,查阅一下 /var/log/nvidia* 开头的登录文件看看吧! ^_^
### 23.3.2 AMD (ATI)
AMD 的显卡 (ATI) 型号也很多,不过因为 AMD 的显卡有提供成为 Open Source ,目前有个名为 ELrepo 的网站有主动提供 AMD 的显卡驱动喔! 而且是针对我们 CentOS 7 耶~好像还不赖~其实 ELrepo 也提供了 NVidia 的驱动程序啦!只是型号太多,所以鸟哥还是使用 NVidia 官网的数据来教学而已。
那如何取得 ELrepo 呢?这个网站主文件夹在下面,你可以自己瞧一瞧,至于安装 ELrepo 的 yum 配置文件方式如下:
* [http://elrepo.org](http://elrepo.org/)
```
[root@study ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@study ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
[root@study ~]# yum clean all
[root@study ~]# yum --enablerepo elrepo-testing search fglrx
kmod-fglrx.x86_64 : fglrx kernel module(s)
fglrx-x11-drv.x86_64 : AMD's proprietary driver for ATI graphic cards # 这就对了!
fglrx-x11-drv-32bit.x86_64 : Compatibility 32-bit files for the 64-bit Proprietary AMD driver
fglrx-x11-drv-devel.x86_64 : Development files for AMD OpenGL X11 display driver.
[root@study ~]# yum --enablerepo elrepo-testing install fglrx-x11-drv
# 很快的!这样就安装好了 AMD 的显卡驱动程序了耶!超开心的吧!
```
安装完毕后,系统就会在 /usr/lib64/xorg/modules/drivers/ 里面出现 fglrx_drv.so 这个新的驱动程序啦! 与 Nvidia 相同的, ATI 也提供一支名为 aticonfig 的指令来帮忙设置 xorg.conf ,你可以直接输入“ aticonfig -v ”来看看处理的方式即可。然后你就可以重新启动 X 来看看新的驱动程序功能啰!非常简单吧!
### 23.3.3 Intel
老实说,由于 Intel 针对 Linux 的图形接口驱动程序已经开放成为 Open source 了,所以理论上你不需要重新安装 Intel 的显卡驱动程序的。除非你想要使用比默认的更新的驱动程序,那么才需要重新安装下面的驱动程序。 Intel 对 Linux 的显卡驱动程序已经有独立的网站在运行,如下的链接就是安装的说明网页:
* [https://01.org/zh/linuxgraphics](https://01.org/zh/linuxgraphics)
其实 Intel 的显卡用的地方非常的多喔!因为只要是整合型主板芯片组,用的是 Intel 的芯片时, 通常都整合了 Intel 的显卡啰~鸟哥使用的一组 cluster 用的就是 Intel 的芯片,所以啰~ 这家伙也是用的到的啦!
一般来说, Intel 的显卡都常常会使用 i910 等驱动程序,而不是这个较新的 intel 驱动程序! 你可以察看一下你系统是否有存在这些文件:
```
[root@study ~]# locate libdrm
/usr/lib64/libdrm.so.2
/usr/lib64/libdrm.so.2.4.0
/usr/lib64/libdrm_intel.so.1 # 就是这几个怪东西!
/usr/lib64/libdrm_intel.so.1.0.0
.....(下面省略).....
[root@study ~]# locate intel | grep xorg
/usr/lib64/xorg/modules/drivers/intel_drv.so
# 上面这个就是 Intel 的显卡驱动程序了!
```
呼呼!我们的 CentOS 有提供新的 Intel 显卡驱动程序啦!所以不需要重新安装说~ 只是可能需要修改 xorg.conf 这个配置文件的内容。基本上,要修改的地方有:
```
[root@study ~]# vi /etc/X11/xorg.conf
Section "Device"
Identifier "Videocard0"
Driver "intel" <==原本可能会是使用 i91x 喔
EndSection
Section "Module"
....(中间省略)....
Load "glx" <==这两个很重要!务必要载入!
Load "dri"
....(中间省略)....
EndSection
Section "DRI" <==这三行是新增的!让大家都能使用 DRI
Mode 0666 <==基本上,就是权限的设置
EndSection
```
如果一切顺利的话,接下来就是重新启动 X 啰~使用新的 Intel 驱动程序吧!加油啰!
![鸟哥的图示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鸟哥的图示")
**Tips** 老实说,CentOS 7 的 Xorg 自动侦测程序作的其实还不错,在鸟哥这次测试实体机器的系统上面安装的图形界面时,几乎 Xorg 都可以正确的抓到驱动程序, 连双屏幕功能也都可以顺利的启用没问题。所以除非必要,否则您应该不需要重新设置 xorg.conf 喔! ^_^
- 鸟哥的Linux私房菜:基础学习篇 第四版
- 目录及概述
- 第零章、计算机概论
- 0.1 电脑:辅助人脑的好工具
- 0.2 个人电脑架构与相关设备元件
- 0.3 数据表示方式
- 0.4 软件程序运行
- 0.5 重点回顾
- 0.6 本章习题
- 0.7 参考资料与延伸阅读
- 第一章、Linux是什么与如何学习
- 1.1 Linux是什么
- 1.2 Torvalds的Linux发展
- 1.3 Linux当前应用的角色
- 1.4 Linux 该如何学习
- 1.5 重点回顾
- 1.6 本章习题
- 1.7 参考资料与延伸阅读
- 第二章、主机规划与磁盘分区
- 2.1 Linux与硬件的搭配
- 2.2 磁盘分区
- 2.3 安装Linux前的规划
- 2.4 重点回顾
- 2.5 本章习题
- 2.6 参考资料与延伸阅读
- 第三章、安装 CentOS7.x
- 3.1 本练习机的规划--尤其是分区参数
- 3.2 开始安装CentOS 7
- 3.3 多重开机安装流程与管理(Option)
- 3.4 重点回顾
- 3.5 本章习题
- 3.6 参考资料与延伸阅读
- 第四章、首次登陆与线上求助
- 4.1 首次登陆系统
- 4.2 文字模式下指令的下达
- 4.3 Linux系统的线上求助man page与info page
- 4.4 超简单文书编辑器: nano
- 4.5 正确的关机方法
- 4.6 重点回顾
- 4.7 本章习题
- 4.8 参考资料与延伸阅读
- 第五章、Linux 的文件权限与目录配置
- 5.1 使用者与群组
- 5.2 Linux 文件权限概念
- 5.3 Linux目录配置
- 5.4 重点回顾
- 5.5 本章练习
- 5.6 参考资料与延伸阅读
- 第六章、Linux 文件与目录管理
- 6.1 目录与路径
- 6.2 文件与目录管理
- 6.3 文件内容查阅
- 6.4 文件与目录的默认权限与隐藏权限
- 6.5 指令与文件的搜寻
- 6.6 极重要的复习!权限与指令间的关系
- 6.7 重点回顾
- 6.8 本章习题:
- 6.9 参考资料与延伸阅读
- 第七章、Linux 磁盘与文件系统管理
- 7.1 认识 Linux 文件系统
- 7.2 文件系统的简单操作
- 7.3 磁盘的分区、格式化、检验与挂载
- 7.4 设置开机挂载
- 7.5 内存交换空间(swap)之创建
- 7.6 文件系统的特殊观察与操作
- 7.7 重点回顾
- 7.8 本章习题 - 第一题一定要做
- 7.9 参考资料与延伸阅读
- 第八章、文件与文件系统的压缩,打包与备份
- 8.1 压缩文件的用途与技术
- 8.2 Linux 系统常见的压缩指令
- 8.3 打包指令: tar
- 8.4 XFS 文件系统的备份与还原
- 8.5 光盘写入工具
- 8.6 其他常见的压缩与备份工具
- 8.7 重点回顾
- 8.8 本章习题
- 8.9 参考资料与延伸阅读
- 第九章、vim 程序编辑器
- 9.1 vi 与 vim
- 9.2 vi 的使用
- 9.3 vim 的额外功能
- 9.4 其他 vim 使用注意事项
- 9.5 重点回顾
- 9.6 本章练习
- 9.7 参考资料与延伸阅读
- 第十章、认识与学习BASH
- 10.1 认识 BASH 这个 Shell
- 10.2 Shell 的变量功能
- 10.3 命令别名与历史命令
- 10.4 Bash Shell 的操作环境:
- 10.5 数据流重导向
- 10.6 管线命令 (pipe)
- 10.7 重点回顾
- 10.8 本章习题
- 10.9 参考资料与延伸阅读
- 第十一章、正则表达式与文件格式化处理
- 11.1 开始之前:什么是正则表达式
- 11.2 基础正则表达式
- 11.3 延伸正则表达式
- 11.4 文件的格式化与相关处理
- 11.5 重点回顾
- 11.6 本章习题
- 11.7 参考资料与延伸阅读
- 第十二章、学习 Shell Scripts
- 12.1 什么是 Shell scripts
- 12.2 简单的 shell script 练习
- 12.3 善用判断式
- 12.4 条件判断式
- 12.5 循环 (loop)
- 12.6 shell script 的追踪与 debug
- 12.7 重点回顾
- 12.8 本章习题
- 第十三章、Linux 帐号管理与 ACL 权限设置
- 13.1 Linux 的帐号与群组
- 13.2 帐号管理
- 13.3 主机的细部权限规划:ACL 的使用
- 13.4 使用者身份切换
- 13.5 使用者的特殊 shell 与 PAM 模块
- 13.6 Linux 主机上的使用者讯息传递
- 13.7 CentOS 7 环境下大量创建帐号的方法
- 13.8 重点回顾
- 13.9 本章习题
- 13.10 参考资料与延伸阅读
- 第十四章、磁盘配额(Quota)与进阶文件系统管理
- 14.1 磁盘配额 (Quota) 的应用与实作
- 14.2 软件磁盘阵列 (Software RAID)
- 14.3 逻辑卷轴管理员 (Logical Volume Manager)
- 14.4 重点回顾
- 14.5 本章习题
- 14.6 参考资料与延伸阅读
- 第十五章、例行性工作调度(crontab)
- 15.1 什么是例行性工作调度
- 15.2 仅执行一次的工作调度
- 15.3 循环执行的例行性工作调度
- 15.4 可唤醒停机期间的工作任务
- 15.5 重点回顾
- 15.6 本章习题
- 第十六章、程序管理与 SELinux 初探
- 16.1 什么是程序 (process)
- 16.2 工作管理 (job control)
- 16.3 程序管理
- 16.4 特殊文件与程序
- 16.5 SELinux 初探
- 16.6 重点回顾
- 16.7 本章习题
- 16.8 参考资料与延伸阅读
- 第十七章、认识系统服务 (daemons)
- 17.1 什么是 daemon 与服务 (service)
- 17.2 通过 systemctl 管理服务
- 17.3 systemctl 针对 service 类型的配置文件
- 17.4 systemctl 针对 timer 的配置文件
- 17.5 CentOS 7.x 默认启动的服务简易说明
- 17.6 重点回顾
- 17.7 本章习题
- 17.8 参考资料与延伸阅读
- 第十八章、认识与分析登录文件
- 18.1 什么是登录文件
- 18.2 rsyslog.service :记录登录文件的服务
- 18.3 登录文件的轮替(logrotate)
- 18.4 systemd-journald.service 简介
- 18.5 分析登录文件
- 18.6 重点回顾
- 18.7 本章习题
- 18.8 参考资料与延伸阅读
- 第十九章、开机流程、模块管理与 Loader
- 19.1 Linux 的开机流程分析
- 19.2 核心与核心模块
- 19.3 Boot Loader: Grub2
- 19.4 开机过程的问题解决
- 19.5 重点回顾
- 19.6 本章习题
- 19.7 参考资料与延伸阅读
- 第二十章、基础系统设置与备份策略
- 20.1 系统基本设置
- 20.2 服务器硬件数据的收集
- 20.3 备份要点
- 20.4 备份的种类、频率与工具的选择
- 20.5 鸟哥的备份策略
- 20.6 灾难复原的考虑
- 20.7 重点回顾
- 20.8 本章习题
- 20.9 参考资料与延伸阅读
- 第二十一章、软件安装:源代码与 Tarball
- 20.1 开放源码的软件安装与升级简介
- 21.2 使用传统程序语言进行编译的简单范例
- 21.3 用 make 进行宏编译
- 21.4 Tarball 的管理与建议
- 21.5 函数库管理
- 21.6 检验软件正确性
- 21.7 重点回顾
- 21.8 本章习题
- 21.9 参考资料与延伸阅读
- 第二十二章、软件安装 RPM, SRPM 与 YUM
- 22.1 软件管理员简介
- 22.2 RPM 软件管理程序: rpm
- 22.3 YUM 线上升级机制
- 22.4 SRPM 的使用 : rpmbuild (Optional)
- 22.5 重点回顾
- 22.6 本章习题
- 22.7 参考资料与延伸阅读
- 第二十三章、X Window 设置介绍
- 23.1 什么是 X Window System
- 23.2 X Server 配置文件解析与设置
- 23.3 显卡驱动程序安装范例
- 23.4 重点回顾
- 23.5 本章习题
- 23.6 参考资料与延伸阅读
- 第二十四章、Linux 核心编译与管理
- 24.1 编译前的任务:认识核心与取得核心源代码
- 24.2 核心编译的前处理与核心功能选择
- 24.3 核心的编译与安装
- 24.4 额外(单一)核心模块编译
- 24.5 以最新核心版本编译 CentOS 7.x 的核心
- 24.6 重点回顾
- 24.7 本章习题
- 24.8 参考资料与延伸阅读