主机: Dell OptiPlex 390 MT (i5) 系列;
主机原配独显,型号未知,运转三年半,常有异响,关机之后过一阵再开机,可以解决。最近,风扇的声音实在不正常,重启也无解,判定它挂了。风扇型号power logic直径38mm 孔距25mm 12V 0.05A PLA04710S12L,直径仅38mm,孔距25mm,寻遍中关村的科贸海龙等电子市场也一无可获,最接近的一只风扇也要大出2mm。好在万能的淘宝有售:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.3AYWef&id=36799742750&_u=63ep6vmf96d,快递在路上折腾了足足5天才到,无奈之下改在京东买一块低端的显卡救急。
显卡: 技嘉(GIGABYTE) GV-N730D5-2GI 902MHz/5000MHz 2GB/64bit GDDR5 显卡 (http://item.jd.com/1176469.html)。
安装过程的参考资料:
[1] http://www.ha97.com/4955.html
[2] http://www.linuxidc.com/Linux/2014-09/107133.htm
在找到这个正确的安装方法之前,尝试了不下十遍这种类似的方法(http://jingyan.baidu.com/article/9f63fb91d7e6b5c8400f0e0c.html),结果都卡在第4步之后,重启之后绿屏,只好再重新来过,痛苦到崩溃!经多次实验查明,仅执行"blacklist nouveau"&“#blacklist nvidiafb”一句,跳过第4步,直接执行第5步,也会出现同样的情况,怀疑第3步有问题。
以下仅记录我正确的操作过程。
安装Nvidia驱动步骤:
1、到Nvidia官网下载合适的驱动:http://www.nvidia.cn/Download/index.aspx?lang=cn 下载352.30版本的Linux驱动。得到一个以.run结尾的安装文件,赋予它可执行权限。如果开启了SElinux模块,请先禁用!这个文件注意不要放入中文目录中,否则终端模式无法切换到它所在目录。
[[email protected] ~]# chmod +x NVIDIA-Linux-x86_64-352.30.run
2、编辑blacklist.conf文件,禁止nouveau模块的加载:
[[email protected] ~]# vim /etc/modprobe.d/blacklist.conf
在文件末尾添加:
blacklist nouveau
保存退出。
需要注意的是,这里并没有传统安装方法中的“#blacklist nvidiafb“ 一句。不知道绿屏是否和它有关。
3、编辑grub.conf文件,禁止nouveau KMS的加载。
[[email protected] ~]# vim /etc/grub.conf
找到启动的内核参数,将如下内容:
kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=/dev/mapper/vg_she-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_she/lv_swap crashkernel=auto LANG=zh_CN.UTF-8 rd_LVM_LV=vg_she/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
修改为:
kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=/dev/mapper/vg_she-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_she/lv_swap crashkernel=auto LANG=zh_CN.UTF-8 rd_LVM_LV=vg_she/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet nouveau.modeset=0
保存退出。
至此,不再执行传统的如下步骤,不涉及重启,也就没有启动后卡在绿屏的问题了。
############# 以下步骤不再执行 ####################################################### 本人测试了不下十遍,无论是"dracut -v"的写法,gip j “dracut",又或者略掉第4步,都会在第5-6步之后卡在绿屏状态# 4 重新建立initramfs image文件 [[email protected] ~]# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak [[email protected] ~]# dracut /boot/initramfs-$(uname -r).img $(uname -r) # 5 修改/etc/inittab,使系统开机进入init 3文本模式: 将最后一行“id:5:initdefault:”修改成“id:3:initdefault:”(不包含引号) # 注释:5代表系统启动时默认进入x-window图形界面,3代表默认进入终端模式。 # 6 重启 [[email protected] ~]# reboot now
4、由于显卡驱动不支持在X-Windows服务运行时进行,所以需要进入运行级别3 的文本模式:
[[email protected] ~]# init 3
5、在字符终端下登录,进入驱动安装文件所在的目录,使用以下命令运行安装文件。
在此目录下执行:
[[email protected] ~]# ./NVIDIA-Linux-x86_64-352.30.run
问题来了,报错!! 错误为:unable to find the kernel source tree for the currently running kernel.........
驱动程序需要按内核号严格匹配,再试,具体用下面哪一句,需要视/usr/src/kernels/中内核文件的写法而定,以下两种格式都有:
[[email protected] ~]# ./NVIDIA-Linux-x86_64-352.30.run --kernel-source-path=/usr/src/kernels/内核号(2+Tab键 自动补全) [[email protected] ~]# ./NVIDIA-Linux-x86_64-352.30.run --kernel-source-path=/usr/src/kernels/$(uname -r)
按照提示一步步进行,很简单。安装完成后,回到桌面模式:
[[email protected] ~]# init 5
reboot重启系统,在进入桌面之前会看到Nvidia的大Logo,表明Nvidia运行正常,看视频很流畅了,3D特效桌面也可以开启了。
到此,一切测试顺利,一步搞定,下文还未经测试,先抄录在此,以备查看。
6、安装多个内核或内核升级后编译内核模块:
使用官方驱动的一大缺点就是每次更新内核时都要重新编译内核模块。我安装了两个内核,安装第二个内核的NV驱动时步骤有点不同。简单说就是执行上文首次安装的第4和5步,只是在第5步时有些差异:
# ./NVIDIA-Linux-x86_64-352.30.run -K
在运行时添加-K参数代表只编译内核模块,而不再进行驱动程序文件的安装。执行完后重启即可。到此Nvidia官方驱动安装完成。