红联Linux门户
Linux帮助

Fedora升级内核后Nvidia显卡驱动问题解决[2月13日更新]

发布时间:2011-02-12 22:05:14来源:红联作者:pallana
[i=s] 本帖最后由 pallana 于 2011-2-17 00:39 编辑 [/i]

今天我升级了一下系统,[code]sudo yum update[/code],发现有新内核[code]kernel.i686 2.6.35.11-83.fc14 @updates
kernel-devel.i686 2.6.35.11-83.fc14 @updates
kernel-headers.i686 2.6.35.11-83.fc14 @updates [/code],于是我就安装了。
当我安装好新内核后重新启动机器,计算机在Nvidia蓝色进度条结束的时侯停止了,不能进入系统,没事喜欢升级系统,不过这次遇到困难了。没法,我只好重启选择进入前一个内核,前一个内核是 2.6.35.10-74.fc14 ,然后开始找解决方案。我安装了Nvidia显卡驱动,卡在了显卡这里,肯定是启动的时侯某一步出问题了,应该来说可以修复,但是我知识有限,不知道系统的详细启动过程,也不了解在系统启动的每一步都作了些什么,应该修改哪些地方,而网上也没有解决方法,只有另外想办法来解决了。经过尝试,问题解决,方法如下:
1.到官网上下载最新的驱动,NVIDIA-Linux-x86-260.19.36.run ,放到一个比较方便的位置,我放在了用户目录~/ 中。
2.修改启动模式[code]su -
vi /etc/inittab[/code]修改 id:5:initdefault:
为 id:3:initdefault:
模式5是图形模式,模式3是文本模式,因为安装Nvidia显卡驱动必须在文本模式才行,所以这里修改为文本模式。
保存后重新启动机器。
3,GRUB启动的时侯选择最新的内核进入系统,输入用户名和密码。这个时侯就是在用户目录 ~/ 中的,执行命令[code]sudo sh NVIDIA-Linux-x86-260.19.36.run [/code]输入密码后开始安装,安装好后会提示你是否更新X配置,选择是。驱动就装好了。
4.启动模式改为5.[code]su -
vi /etc/inittab[/code]修改 id:3:initdefault:
为 id:5:initdefault:
恢复图形模式。保存后重新启动机器。
5.你可以享受最新的内核了。以防万一,我立即把系统备份了一下。
只要先升级内核,后安装驱动,就不会遇到问题,而先安装显卡驱动,后升级内核,都会出现卡进度条,这个问题在前面几个内核版本的时侯我都一直没有解决,今天终于解决了这个问题。
有没有英文好的人给nvidia或者Fedora反应一下这个问题,让他们修补一下。

2011年02月13日 星期日 11时13分58秒
根据4楼pl_014的提示,Fedora系统可以直接使用init 3 、init 5 来改变运行级别,关闭和启动X,那么就修改如下:
1.到官网上下载最新的驱动,NVIDIA-Linux-x86-260.19.36.run ,放到一个比较方便的位置,我放在了用户目录~/ 中。
2.关闭X.
打开终端,运行如下命令[code]su -[/code]输入root密码后运行命令:[code]init 3[/code]切换到文本模式,因为安装Nvidia显卡驱动必须在文本模式才行,所以这里切换到文本模式。
3,执行命令:[code]cd /home/YouUserName[/code]因为前面把驱动放在了用户目录中,所以切换到用户目录。再执行命令。[code] sh NVIDIA-Linux-x86-260.19.36.run [/code]开始安装,安装好后会提示你是否更新X配置,选择是。驱动就装好了。
4.执行命令[code]init 5[/code],切换到图形界面
5.你可以享受最新的内核了。
注:若没有init3 和init 5 命令,则按照前面说的方法改变运行模式。
再次谢谢pl_014的提示。


2011年02月13日 星期日 15时51分03秒
9楼alick版主说这是跟显卡驱动加载进内核有关,那么上面的第二种方法在实施之前首先要确定内核是否是新内核,否则显卡驱动可能还是安装在旧内核里的。
另外alick也提供了一个新方法:看到有新内核,先不要升级,首先卸载掉显卡驱动,重启机器,再来升级内核,内核升级完成后重新启动机器,用新内核进入系统后再安装驱动。
谢谢alick的指点。

2011年02月17日 星期四 00时37分18秒
再次补充一点,只有我自己的步骤是亲自验证可以通过的,后来补充的方法我没有验证,仅供参考,请各位自己斟酌。
文章评论

共有 20 条评论

  1. zhjjaj 于 2011-04-10 22:56:10发表:

    感谢分享阿

  2. yiyelin 于 2011-04-08 14:33:38发表:

    不错哦???????????

  3. chengshiding 于 2011-04-03 22:24:25发表:

    redhat/fedora用 init3 和 init5 可以字符界面和图形界面切换。
    debian/ubuntu用 service gdm stop 和 service gdm start 来切换

  4. deacenote 于 2011-04-03 20:33:15发表:

    10# zhangzhaoi


    饿 下载附件是需要经常会福彩城的

  5. pallana 于 2011-03-01 18:26:46发表:

    16# haiya820


    笨办法是最直接的方法

  6. haiya820 于 2011-02-28 21:55:14发表:

    太烦我都是把显卡驱动放到/HOME/XX/下,如时升级内核了重启时就直接把个显卡驱动再装一下。 呵呵,笨方法解决此问题很有效噢。

  7. muxmachines 于 2011-02-28 00:03:38发表:

    同样的问题我也是同样用这种方式解决的

  8. pallana 于 2011-02-14 10:35:07发表:

    13# alick

    看了这个网页,原来这个问题已经解决了的。
    今天升级系统的时侯看到了,nvidia已经是最新的版本了,看来Fedora动作还是快

    依赖关系解决

    ================================================================================
    软件包 架构 版本 仓库 大小
    ================================================================================
    正在升级:
    alsa-firmware noarch 1.0.24.1-1.fc14 updates 2.6 M
    alsa-tools-firmware
    i686 1.0.24.1-1.fc14 updates 29 k
    kmod-nvidia i686 1:260.19.36-1.fc14.1 rpmfusion-nonfree-updates 32 k
    kmod-nvidia-2.6.35.10-74.fc14.i686
    i686 1:260.19.36-1.fc14 rpmfusion-nonfree-updates 2.7 M
    nvidia-xconfig i686 1.0-7.fc14 rpmfusion-nonfree-updates 76 k
    shadow-utils i686 2:4.1.4.2-11.fc14 updates 901 k
    xorg-x11-drv-nvidia
    i686 1:260.19.36-1.fc14 rpmfusion-nonfree-updates 1.9 M
    xorg-x11-drv-nvidia-libs
    i686 1:260.19.36-1.fc14 rpmfusion-nonfree-updates 15 M
    为依赖而安装:
    kmod-nvidia-2.6.35.11-83.fc14.i686
    i686 1:260.19.36-1.fc14.1 rpmfusion-nonfree-updates 2.7 M

    事务概要
    ================================================================================
    Install 1 Package(s)
    Upgrade 8 Package(s)

    总下载量:26 M

  9. alick 于 2011-02-13 23:11:08发表:

    对了,想起来 rpmfusion 源里面是有ati/nvidia 的闭源驱动的rpm包的.
    http://rpmfusion.org/RPMFusionSwitcher 这里还介绍为什么说使用rpm包的好处。

    只是目前看来这里最新的rpm包针对的内核版本还是 2.6.35.10-74 而非最新的 2.6.35.11-83 。
    可能还需要等一些时日。

  10. shenhao0129 于 2011-02-13 19:54:49发表:

    我都是用一个catalyst-hook这个程序,在升级内核的时候自动重新编译驱动的

  11. pallana 于 2011-02-13 15:49:59发表:

    9# alick


    是的,我直接在新内核上重装驱动,DKMS原理还不懂,所以只有曲线实现了。

  12. zhangzhaoi 于 2011-02-13 13:26:55发表:

    这个是必须的
    以前用ubuntu时更新之后机子就特卡

    后来重新安装显卡驱动就OK了,内核变化了

    现在不随便更新了,省得麻烦

  13. alick 于 2011-02-13 12:44:05发表:

    由于显卡驱动是以内核模块加载的,所以更新了(改变了内核),之前的模块就不能用了,
    得重新生成匹配的模块。其实重新安装的过程就是做这么一步工作。

    所以说每更新一次内核,显卡驱动就得重新安装一次。

    这样的确很麻烦。所以dell搞了一个DKMS,用来实现内核模块的动态支持。
    VIRTUALBOX 就使用这个dkms自动的在更新内核后重新生成新的内核模块。所以
    VIRTUALBOX 就不需要手动来搞。但显卡驱动这块貌似支持不是很好,我曾经
    google到一个帖子,使用dkms来自动化nvidia驱动在ubuntu上的重新安装,
    比较麻烦 :( 有兴趣可以搜来看看。

    一般建议更新内核时,先把旧的显卡驱动卸载掉。看楼主的情况,似乎直接重装也行,对吗?

  14. pallana 于 2011-02-13 11:12:57发表:

    引用:
    绕了一步,像fedora下可以直接用init 3、init 5来改变运行级别,以关闭、启动X。但这种方法不适用于debian(嘿嘿,楼主的也是),因为debian默认2-6这几个级别都是一样的。
    pl_014 发表于 2011-2-13 07:53


    学习了,原来还有这两个命令。

  15. Growth兆 于 2011-02-13 09:39:27发表:

    感谢pallana的分享,本贴已加入到论坛顶置的Linux应用索引贴中

  16. weatny 于 2011-02-13 09:20:58发表:

    向楼主学习 呵呵 楼主真厉害

  17. ineosc 于 2011-02-13 08:53:36发表:

    很给力,学习了

  18. pl_014 于 2011-02-13 07:53:18发表:

    绕了一步,像fedora下可以直接用init 3、init 5来改变运行级别,以关闭、启动X。但这种方法不适用于debian(嘿嘿,楼主的也是),因为debian默认2-6这几个级别都是一样的。

  19. wangyu 于 2011-02-12 23:31:08发表:

    很久没升级了。

  20. shenhao0129 于 2011-02-12 23:06:09发表:

    我已经2.6.37好久了