Pages

Sunday, 3 March 2013

RHEL/CentOS 6.x/Fedora下安装Nvidia官方显卡驱动详解


一、安装Nvidia驱动步骤:
1、到NV官网:http://www.nvidia.cn/Download/index.aspx?lang=cn 下载295.59版本Linux驱动。得到一个以.run结尾的安装文件,赋予它可执行权限。如果开启了SElinux模块,请先禁用!
# chmod +x NVIDIA-Linux-x86_64-295.59.run
2、编辑blacklist.conf文件,禁止nouveau模块的加载:
# vim /etc/modprobe.d/blacklist.conf
在文件末尾添加:
blacklist nouveau
保存退出。
3、编辑grub.conf文件,禁止nouveau KMS的加载。
# vim /etc/grub.conf
将如下:
kernel /boot/vmlinuz-2.6.39-200.24.1.el6uek.x86_64 ro root=UUID=363dd151-b0dd-4bc5-b382-79bcb5edbb98 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM quiet numa=off
修改为:
kernel /boot/vmlinuz-2.6.39-200.24.1.el6uek.x86_64 ro root=UUID=363dd151-b0dd-4bc5-b382-79bcb5edbb98 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM quiet numa=off nouveau.modeset=0
保存退出。
4、由于显卡驱动不支持在X-Windows服务运行时进行,所以需要进入运行级别3 。运行init 3进入纯字符终端模式就ok。
5、在字符终端下登录,进入驱动安装文件所在的目录,使用以下命令运行安装文件。
# ./NVIDIA-Linux-x86_64-295.59.run
按照提示一步步进行,很简单。安装完成后,reboot重启系统,在进入桌面之前会看到Nvidia的大Logo,表明Nvidia运行正常,看视频很流畅了,3D特效桌面也可以开启了。
6、安装多个内核或内核升级后编译内核模块:
使用官方驱动的一大缺点就是每次更新内核时都要重新编译内核模块。我安装了两个内核,安装第二个内核的NV驱动时步骤有点不同。简单说就是执行上文首次安装的第4和5步,只是在第5步时有些差异:
# ./NVIDIA-Linux-x86_64-295.59.run -K
在运行时添加-K参数代表只编译内核模块,而不再进行驱动程序文件的安装。执行完后重启即可。到此Nvidia官方驱动安装完成。
二、启用Plymouth图形化启动引导:
Plymouth 是在 Fedora 10之后中出现的图形引导系统,而RHEL/CentOS 6.x是基于Fedora 12的。Nvidia 官方驱动本身是不支持KMS的,所以只能在引导时指定使用MESA的驱动来达到图形化 Plymouth 的效果。
1、在品牌Logo出现后按Esc键进入GRUB界面,选择内核,按e键进行编辑,在kernel行未添加vga=ask这个参数。
例如我的kernel行是
kernel /boot/vmlinuz-2.6.39-200.24.1.el6uek.x86_64 ro root=UUID=363dd151-b0dd-4bc5-b382-79bcb5edbb98 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM quiet numa=off nouveau.modeset=0
修改成
kernel /boot/vmlinuz-2.6.39-200.24.1.el6uek.x86_64 ro root=UUID=363dd151-b0dd-4bc5-b382-79bcb5edbb98 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM quiet numa=off nouveau.modeset=0 vga=ask
完成后按Enter退出编辑模式,按b键引导。
2、此时会屏幕上会提示按Enter查看可选显示模式,Enter进入。
此时会显示一个表格,显示的是代码和分辨率色深的对应值,从中找到适合自己屏幕分辨率和色深的值,或者自己喜欢的分辨率。比如我的分辨率色深是 1024x768x32,在表上查到对应值是318。注意刚才得到的值其实是个16进制数,要在前面添加0x才行,比如我的318此时就变成0×318。 此时输入0×318,然后回车,就可以看到图形化的Plymouth引导界面了。
3、可以将这个值做为每次引导的参数。编辑/boot/grub/grub.conf文件,添加vga=0×318。
# vim /etc/grub.conf

kernel /boot/vmlinuz-2.6.39-200.24.1.el6uek.x86_64 ro root=UUID=363dd151-b0dd-4bc5-b382-79bcb5edbb98 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM quiet numa=off nouveau.modeset=0
修改成
kernel /boot/vmlinuz-2.6.39-200.24.1.el6uek.x86_64 ro root=UUID=363dd151-b0dd-4bc5-b382-79bcb5edbb98 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM quiet numa=off nouveau.modeset=0 vga=0×318
之后每次都会使用0×318对应的分辨率去启用Plymouth引导了。
Plymouth会隐藏引导信息。要查看引导信息,请在引导过程中按Esc键,或者在引导后在/var/log/boot.log中查看。也可以从 内核命令行中删除 rhgb(我一向都删了这个),plymouth就会显示所有引导信息,在登录屏幕中还有状态图标来查看引导警告.