热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux系统入门教程:Fedora21安装Nvidia驱动以及失败后的补救方法

阅读目录安装Nvidia驱动的三种方法方法1:到Nvidia官网下载驱动并安装安装NVIDIA官方驱动失败后的补救办法方法2:安装第三方软件源中的软件包(rpmfusion源中的akmod-nvidia)安装akmod-nvidia失败后的补救办法方法3:安装Bumblebee安装Bumblebee失败后的补救办法Fedora21和Nvidia驱动不对付

在Linux桌面系统下玩了这么久,大部分时间都是使用Ubuntu,偶尔使用一下Fedora。我的电脑中安装有多个Linux发行版,见这里《在同一个硬盘上安装多个Linux发行版及Fedora 21初体验》。在Ubuntu桌面系统中,安装Nvidia显卡驱动是分分钟的事,使用起来也一直很顺畅,见这里《桌面美化那点事儿》。然而到了Fedora中,则一直是好事多磨。特别是对于Fedora 21 Workstation版,在我的笔记本电脑上安装Nvidia驱动就没有一次获得好的结果。不管用哪一种方法,过程都很顺利,但是结果总是失败,总是进不了图形界面,总是出现这样的界面:

安装Nvidia驱动的三种方法

  在Fedora中安装Nvidia显卡驱动可谓方法众多,我这次采用了三种方法,它们分别是:

  1. 到Nvidia官网下载官方驱动并安装。
  2. 使用第三方源中的软件包,我这里使用了rpmfusion中的akmod-nvidia软件包。
  3. 使用Bumblebee,Bumblebee是为解决双显卡切换问题而存在的一个开源产品,在前两个方法失败后,我以为失败的原因是我的笔记本电脑上有Nvidia GT 720M显卡和Intel集显共存,结果使用Bumblebee后,仍然出现同样的结局。

方法1:到Nvidia官网下载驱动并安装

  直接访问Nvidia的官网www.nvidia.com,找到驱动程序下载的页面,然后选择自己的硬件和软件平台,以便搜索合适的驱动,如下图:

  选择最新的346.47版进行下载,带BETA字样的当然不考虑,如下图:

  下载完以后是一个NVIDIA-Linux-x86_64.346.47.run文件,可以这样运行它:

  运行Nvidia官方的这个安装程序需要相当强的心理素质,因为它会依次出现以下错误界面。

  出错提示1:

  出错提示2:

  出错提示3:

  出错提示4:

  出错提示5:

  还好我的内心足够强大,我居然耐着性子一遍一遍运行这个安装程序,直到把所有的这些问题都解决。第1个出错提示是说该安装程序必须以root权限运行,解决这个问题比较简单,使用sudo ./NVIDIA-Linux-x86_64.346.47.run命令运行该程序或使用su命令先切换到root用户再运行该程序均可。第2个出错提示是说不能在图形界面下安装Nvidia的显卡驱动,必须退出X Server才行。那么怎么样才能让Fedora 21开机后进入字符界面呢?这个问题我在该系列博文的第一篇《玩转Linux系统的方法论》中就有过探讨。不同的Linux发行版进入字符界面的方式不一样,Fedora 21使用的init程序是systemd,所以其进入字符界面的方法是以root用户运行systemctl set-default multi-user.target命令,如下图:

  本以为进入字符界面安装该驱动就一帆风顺了,结果发现我还是太天真。果然,第3个出错提示很快就出现了,它告诉我们安装这个驱动还要先安装gcc。这个问题好解决,yum install gcc搞定。然后再运行安装程序,结果第4个出错提示就出来了。太TM让人伤心了,该提示是说要安装该驱动必须得有Linux内核的源代码。解决这个问题花了我一点时间,本以为yum install kernel-devel就可以解决问题,结果发现安装的kernel-devel的版本和系统本来的kernel版本不一致,只好再来一个yum update kernel才解决问题。

  然后,该安装程序顺利运行了,成功的对Nvidia驱动进行了编译,产生了相应的内核模块。本以为要大功告成了,结果第5条错误提示来了。我勒个去!该错误提示的意思是说nvidia.ko模块无法成功加载,那是因为nouveau模块还在。要禁掉nouveau模块,只需要在/etc/modprobe.d目录下建立一个.conf文件,在里面写上blacklist nouveau即可,这件事Nvidia驱动的安装程序已经帮我们做了,但是依然无法阻止nouveau模块的加载。为什么呢?那是因为Linux启动时会先加载initramfs中的模块,如果不更新initramfs的话,单纯写/etc/modprobe.d目录下的配置文件也没有什么用。在Fedora 21中更新initramfs使用这个命令dracut --force

  最后,使用systemctl set-default graphical.target命令设置让系统开机时进入图形界面,然后reboot命令重启。如下图:

  我怎么知道Fedora 21中更新initramfs的命令是dracut呢?这就是另外一个话题了,方法还是《玩转Linux系统的方法论》中写的方法。首先猜想建立initramfs文件或initrd文件的命令可能是mkinitramfs或者mkinitrd,然后再使用which命令找出这系统中是否有这两个命令,再然后找出它属于哪个软件包,最后再找出这个软件包的文档即可。下面看看 Ubuntu 和 Fedora 21 要重建initramfs,分别用什么工具:

  虽然最终的结局是无法进入图形界面,但是仍然可以对该安装过程进行一些总结,如下:

  1. 显卡驱动属于Linux内核的内核模块,安装内核模块需要懂一点内核知识;
  2. 下载Nvidia的驱动;
  3. 需要退出图形界面,进入字符界面,命令为systemctl set-default multi-user.target,然后重启系统;
  4. 需要安装gcc,命令为yum install gcc
  5. 需要内核源代码,命令为yum install kernel-devel,而且每一次升级内核,都需要重新编译驱动;
  6. 禁止启动时载入nouveau模块,方法为修改/etc/modprobe.d目录下的配置文件;
  7. 更新initramfs,命令为dracut --force
  8. 再次设置启动系统时进入图形界面,命令为systemctl set-default graphical.target
  9. 重启系统,命令为reboot

  以上命令都以root用户的权限运行。遵循该流程,你将成功得到本文开头所示的那个错误界面。恭喜你,Fedora 21和Nvidia搭配,就是这个结局。

安装NVIDIA官方驱动失败后的补救办法

  本次折腾最大的收获就是如何从错误中恢复,再也不是像以前那样一遇到进不了图形界面就重装系统了。方法是这样的,首先,按Ctrl+Alt+F2进入另一个控制台,以root用户登录。然后,我觉得Linux下的程序往往都会提供一点帮助,所以我用NVIDIA-Linux-x86_64-346.47.run -h(也就是带 -h 选项)运行了一下,果然,该安装程序给出了一个帮助信息。在该帮助信息里面说,如果用 -x 选项运行该程序,就可以对该文件进行解压。然后,我就解压了,进去看了一下,然后就发现更多的帮助信息了。最后,通过运行解压目录中的nvidia-installer --uninstall命令,我成功将Nvidia的驱动删除了。最后,dracut --force一下让nouveau回来,重启一下就行了。如下图:

方法2:安装第三方软件源中的软件包(rpmfusion源中的akmod-nvidia)

  其实玩Linux,除了使用发行版官方的软件源之外,偶尔也要用用第三方的软件源,特别是对一些闭源的软件更是如此,比如各种音频、视频解码啊,Flash播放啊什么的。当然,显卡驱动也是第三方源经常收录的重量级软件了。比较出名的第三方源是fusion,这里我们使用rpmfusion,到其官方网站http://fpmfusion.org看一下,如下图:

  使用第三方源之前,使用yum list命令找不到和Nvidia相关的驱动,然后添加rpmfusion源,如下图:

  再次使用yum list搜索Nvidia的驱动,得到的结果如下图:

  最后,使用yum install akmod-nvidia进行安装即可。

  这里说一下akmod,前面提到过,对于内核模块来说,每一次升级内核,内核模块都需要重新编译,如果每一次都手动操作的话工作量就太大了,所以需要一个自动化的工具,akmod就是这样一个工具。和akmod功能相同的工具还有dkms,这个工具我们之前见过,在Ubuntu中安装显卡驱动时就会自动安装dkms,VirtualBox虚拟机也会使用dkms管理它的内核模块。详见《Linux入门学习教程:虚拟机体验之VirtualBox篇》。

  本以为使用第三方源的软件包应该可以成功的,因为软件源里面的软件往往经过测试,是比较成熟的。但是很不幸,还是失败了。

安装akmod-nvidia失败后的补救办法

  这个就比较简单了,按Ctrl+Alt+F2进入另一个控制台,以root用户登录,将相应的软件包删即可。不过需要注意的是,不仅要删除akmod-nvidia,还要删除xorg-x11-drv-nvidia。命令为yum erase akmod-nvidia xorg-x11-drv-nvidia,运行效果如下图:

方法3:安装Bumblebee

  连续使用两种办法安装Nvidia的驱动都失败了,我实在是不知道原因。我想,可能是因为笔记本中的双显卡吧,网络上似乎有人提到过这个问题。所以我的第3个方法就是从双显卡切换这个切入点去解决问题。

  我是从Fedora的Wiki上知道Bumblebee的,不要看这个词很难拼写,如果你知道它的意思是大黄蜂你肯定就过目难忘了,之所以用这个名字是因为Nvidia官方的双显卡切换技术叫Optimus,也就是擎天柱的意思。变形金刚迷还真多啊。Bumblebee的安装过程见如下Wiki:

  很不幸,最终还是失败了。

安装Bumblebee失败后的补救办法

  这个和上一个错误的补救措施相同,按Ctrl+Alt+F2进入另一个控制台,以root用户登录,将相应的软件包删除即可。命令为yum erase bumblebee。我就不截图了。

Fedora 21和Nvidia驱动不对付,究竟问题出在哪里呢?

  在网上搜索一下,发现很多人使用Fedora 21安装Nvidia的驱动都没有成功。那么错误的原因究竟是什么呢?是双显卡的问题吗?还是Linux的内核太新?或者是Nvidia驱动的版本太新?再或者,是Xorg的问题还是Gnome的问题?这些问题我没有答案。在此将我的折腾过程晒出来,欢迎大家探讨。

更多Fedora相关信息见Fedora 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=5

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-03/115564.htm


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 在ubuntu服务器上安装vscode,但是目前使用的方法都无法成功。第一次安装经历:安装完anaconda后有自动安装vscode的选项,输入yes后,没有出现错误,但是在终端输 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
author-avatar
peaxcwxzl_372248
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有