`
k_lb
  • 浏览: 798457 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
  • kitleer: 据我所知,国内有款ETL调度监控工具TaskCTL,支持ket ...
    kettle调度

Fedora 12 安装NVIDIA显卡驱动方法 与感受(NVIDIA最新显卡安装)

 
阅读更多

最近才发现fedora12早已出来了,于是很兴奋的去163镜像里download,由于由于我原有的fedora11总有些问题,一直没有去尝试解决它,这次便直接重装了系统,安装过程没有变化很顺利,如果你不会可以到我的CSDN资源里download(fedora11版本的),但是显卡的安装着实让我费了一些劲,网上有很多安装方法,也有很多问题,以下是我经过多次失败,最终成功的安装方案,不一定适合你,但可以作为参考


简单介绍以下Fedora12,这是别人说的,我只是借过来,Fedora 12 引入了 Nouveau 的 KMS 支持,系统启动在视觉上平滑很多,不再有闪屏或者黑白字符的出现。遗憾的是 Nouveau 目前不支持 3D 加速,想使用 Compiz 或者玩 3D 游戏的朋友只能求助于 Nvidia 的官方驱动。
不知为什么fedora12 已经出来很久了, rpmfusion 里 rpm 格式的 nvidia 驱动仍尚未就绪,本文介绍以目前 Nvidia 最新的 NVIDIA-Linux-x86-190.53-pkg1.run 驱动在 Fedora 12 32 位下的安装为例

驱动安装
1 安装前的准备,下载驱动,首先查看你的显卡驱动型号(这里以NVIDIA显卡为例),
操作指令:/sbin/lspci |grep VGA(以下以我的GeForce Go 7600为例)
01:00.0 VGA compatible controller: nVidia Corporation G70 [GeForce Go 7600] (rev a1)
然后去NVIDIA官网去下载匹配的驱动,现在最近版本为:NVIDIA-Linux-x86-190.53-pkg1.run
下载后复制到/tmp目录下, 使用根用户为其授权,操作指令为:su -c "chmod +xNVIDIA-Linux-x86-190.53-pkg1.run"
其中su -c为切换至根用户,根据提示输入根用户密码。
2 安装并检查系统编译器和内核文件,安装驱动前必须安装四个数据包
gcc (用于编译驱动)
kernel-PAE
kernel-PAE-devel
kernel-headers
一般是通过网络安装,指令yum install ***(星号表示上边列出来的名称)
然后,检查当前系统使用的内核版本,指令:uname -a,如:
Linux long.gengyun 2.6.32.9-70.fc12.i686.PAE #1 SMP Wed Mar 3 04:57:21 UTC 2010 i686 i686 i386 GNU/Linux
这是当前最新版本了
然后查看当前系统已安装好的内核版本,指令:rpm -qa |grep ^kernel|sort如:
kernel-2.6.32.9-70.fc12.i686
kernel-debug-2.6.32.9-70.fc12.i686
kernel-debug-devel-2.6.32.9-70.fc12.i686
kernel-devel-2.6.32.9-70.fc12.i686
kernel-doc-2.6.32.9-70.fc12.noarch
kernel-firmware-2.6.32.9-70.fc12.noarch
kernel-headers-2.6.32.9-70.fc12.i686 ***
kernel-PAE-2.6.31.5-127.fc12.i686
kernel-PAE-2.6.32.9-70.fc12.i686 ***
kernel-PAEdebug-2.6.32.9-70.fc12.i686
kernel-PAEdebug-devel-2.6.32.9-70.fc12.i686
kernel-PAE-devel-2.6.31.5-127.fc12.i686
kernel-PAE-devel-2.6.32.9-70.fc12.i686 ***
注意星号的地方,要求版本一致,否则安装将不成功
3 配置系统,前边说过系统是通过自带的Nouveau 模块来显示和处理图像的,他与NVIDIA驱动是不能共存的 ,相安装NVIDIA显卡驱动就必须停掉它,那我们就让它下次系统启动是不加载就好了,于是这里需要修改两给地方,

在终端下切换到根用户模式,使用vi打开两个文件/etc/grub.conf 和 /etc/modprobe.d/blacklist.conf
(1)vi/etc/grub.conf 如下,手动添加红色部分(vi的使用就不说了)
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,7)
# kernel /vmlinuz-version ro root=/dev/sda10
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=5
timeout=5
splashimage=(hd0,7)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.32.9-70.fc12.i686.PAEdebug)
root (hd0,7)
kernel /vmlinuz-2.6.32.9-70.fc12.i686.PAEdebug ro root=UUID=14992636-2ede-48d3-ab25-6d0acd100b9d LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
initrd /initramfs-2.6.32.9-70.fc12.i686.PAEdebug.img
title Fedora (2.6.32.9-70.fc12.i686)
root (hd0,7)
kernel /vmlinuz-2.6.32.9-70.fc12.i686 ro root=UUID=14992636-2ede-48d3-ab25-6d0acd100b9d LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
initrd /initramfs-2.6.32.9-70.fc12.i686.img
title Fedora (2.6.32.9-70.fc12.i686.PAE)
root (hd0,7)
kernel /vmlinuz-2.6.32.9-70.fc12.i686.PAE ro root=UUID=14992636-2ede-48d3-ab25-6d0acd100b9d LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rhgb quietrdblacklist=nouveau
initrd /initramfs-2.6.32.9-70.fc12.i686.PAE.img
title Fedora (2.6.32.9-70.fc12.i686.debug)
root (hd0,7)
kernel /vmlinuz-2.6.32.9-70.fc12.i686.debug ro root=UUID=14992636-2ede-48d3-ab25-6d0acd100b9d LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
initrd /initramfs-2.6.32.9-70.fc12.i686.debug.img
title Fedora (2.6.31.5-127.fc12.i686.PAE)
root (hd0,7)
kernel /vmlinuz-2.6.31.5-127.fc12.i686.PAE ro root=UUID=14992636-2ede-48d3-ab25-6d0acd100b9d LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
initrd /initramfs-2.6.31.5-127.fc12.i686.PAE.img
title Windows professional XP
rootnoverify (hd0,0)
"/etc/grub.conf" 36L, 1826C
保存退出
然后vi/etc/modprobe.d/blacklist.conf 如下:修改红色部分(不要汉字部分)
#
# Listing a module here prevents the hotplug scripts from loading it.
# Usually that'd be so that some other driver will bind it instead,
# no matter which driver happens to get probed first. Sometimes user
# mode tools can also control driver binding.
#
# Syntax: driver name alone (without any spaces) on a line. Other
# lines are ignored.
#

# watchdog drivers
blacklist i8xx_tco

# framebuffer drivers
blacklist aty128fb
blacklist atyfb
blacklist radeonfb
blacklist i810fb
blacklist cirrusfb
blacklist intelfb
blacklist kyrofb
blacklist i2c-matroxfb
blacklist hgafb
#blacklist nvidiafb # 添加#
blacklist rivafb
blacklist savagefb
blacklist sstfb
blacklist neofb
blacklist tridentfb
blacklist tdfxfb
blacklist virgefb
blacklist vga16fb
blacklist nouveau #添加这一行

# ISDN - see bugs 154799, 159068
blacklist hisax
blacklist hisax_fcpcipnp

# sound drivers
blacklist snd-pcsp
"/etc/modprobe.d/blacklist.conf" 40L, 864C
保存退出
4 执行操作安装前的最后一步 :
在根用户下执行以下指令:(如果不懂照做就是)
]#mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouvean.img
]#dracut /boot/initramfs-$(uname -r).img $(uname -r)
]#setsebool -P allow_execstack on (关闭SELinux阻止显卡驱动的安转)
安装前的准备工作已完毕,现在重启系统,在出现启动选项的时候,一定要选择争取的内核 ,如我的是这一项
kernel /vmlinuz-2.6.32.9-70.fc12.i686.PAE ro root=UUID=14992636-2ede-48d3-ab25-6d0acd100b9d LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
按 “e” 进入编辑模式,选择第二项再按 “e” ,然后在出现的quiet后边添加 “空格和3” ,然后回车,然后 “b” 启动给内核,系统会进入字符界面,以root登陆

切换到 /tmp 目录下,执行: ./NVIDIA-Linux-x86-190.53-pkg1.run -k $(uname -r),开始编译安装驱动,然后重启如果能看到NVIDIA Logo,恭喜你,你成功了



很遗憾的说,我失败了,重启之后就无法进入系统,出现了黑屏,不用担心以下是解决方案

启用 Plymouth 图形化引导
Nvidia 官方驱动本身是不支持 KMS 的,所以只能在引导时指定使用 MESA 的驱动来达到图形化 Plymouth 的效果。
1.在品牌 Logo 出现后按 ESC 键进入 GRUB 界面,在选择内核,按 e 键进行编辑,在 kernel 行未也就是前边添加 “3” 的地方添加 vga=ask 这个参数。
比如我的 kernel 行就是从
kernel /vmlinuz-2.6.32.9-70.fc12.i686.PAE ro root=UUID=0a86cf1f-ea02-4016-9c15-c9c537489eaf LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet rdblacklist=nouveau
修改成
kernel /vmlinuz-2.6.32.9-70.fc12.i686.PAE ro root=UUID=0a86cf1f-ea02-4016-9c15-c9c537489eaf LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
rdblacklist=nouveau vga=ask
完成后按 Enter 退出编辑模式,按 b 键引导。
2. 此时会屏幕上会提示按 ENTER 查看可选显示模式,敲击 ENTER 进入。
此时会显示一个表格,显示的是代码和分辨率色深的对应值,从中找到适合自己屏幕分辨率和色深的值。比如我的本本分辨率色深是 128080032,在表上查到对应值是 361。此时输入 361,然后敲击 ENTER,就可以看到图形化的 Plymouth 引导界面了。
3.下来需要将这个值做为每次引导的参数。编辑 /etc/grub.conf 文件,添加 vga=?????,将 ?????替换成刚才得到的值。注意刚才得到的值其实是个16进制数,要在前面添加 0x 才行,比如我的 361 此时就变成 0x361。
su -c 'vi /etc/grub.conf'
kernel /vmlinuz-2.6.32.9-70.fc12.i686.PAE ro root=UUID=0a86cf1f-ea02-4016-9c15-c9c537489eaf LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
rdblacklist=nouveau
修改成
kernel /vmlinuz-2.6.32.9-70.fc12.i686.PAE ro root=UUID=0a86cf1f-ea02-4016-9c15-c9c537489eaf LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet rdblacklist=nouveau ask=0x361
这样,每次都会使用 0x361 对应的分辨率去启用 Plymouth 了。
注意 :
内核升级后编译内核模块
使用官方驱动的一大缺陷就是每次更新内核时都要重新编译内核模块。简单的讲就是执行上文首次安装的第2和3步,只是在第3步时将运行驱动文件的方式有些差异。
su -c './NVIDIA-Linux-x86-190.42-pkg0.run -K'
在运行时添加 -K 参数代表只编译内核模块,而不再进行驱动程序文件的安装。执行完后,重新启动即可。



好了,现在你可以进入系统开3D效果了,呵呵 ,真的很炫














分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics