如何在 Fedora 23 上安装 nvidia 专有驱动程序?

inf*_*rno 5 fedora nvidia

我的 Geforce GT240 使用 nouveau 显示驱动程序时,Fedora 23 往往会卡住。我已经通过使用驱动程序管理器安装专有驱动程序在 Ubuntu 上解决了这个问题。Fedora 23 有类似的东西吗?

我没有找到任何与驱动程序相关的应用程序。:SI 找到了一些关于如何手动执行此操作的 CLI 教程,但我不确定它们是否可靠。他们中的一些人在谈论 xorg-server 版本从 1.17 更改为 1.18,并且 nvidia 在 1.18 稳定之前不会支持它。12月8号就稳定了。现在我找到的教程是8月的,所以我无法想象他们是如何让Fedora 23 + xorg-server 1.18 rc与旧的nvidia驱动程序一起工作的,它不支持新版本的xorg-server ...关于在哪里可以找到该主题中可靠的内容或如何安装 3.40.x nvidia 专有驱动程序的任何想法?

inf*_*rno 3

a.) 有效但不推荐的解决方案

我设法按照本指南手动安装驱动程序:

这种方法的问题是(根据一些论坛和我的经验)nvidia 驱动程序也会覆盖其他一些库,并且可以dnf update覆盖这些库,这将导致系统非常不稳定。更不用说不小心从 RPM fusion 安装 nvidia 驱动程序将彻底杀死系统,无法修复。(在这种情况下我无法启动,即使在文本模式下也是如此。)

因此,只有当您不打算更新系统,或者您对更新内容非常小心时,此方法才有效。

b.) 推荐的解决方案

我设法从 RPM fusion 安装驱动程序。

首先,您需要注册免费和非免费存储库。http://rpmfusion.org/Configuration

通过驱动程序安装,前 6 次尝试对我来说不起作用,我收到一条错误消息“出了问题”,并且在重新启动后出现了带有“注销”标签的按钮。在这种情况下无需担心,使用ctrl+alt+f2和可以轻松卸载软件包dnf remove akmod-nvidia。之后,重新启动会将系统恢复到 nouveau 驱动程序,该驱动程序会冻结,但每个会话可以工作 1-30 分钟。

请注意,并不总是akmod-nvidia适合您的卡的驱动程序。就我而言,我需要akmod-nvidia-340xx. 您可以在这里找到您需要的驱动程序:ftp ://download.nvidia.com/XFree86/Linux-x86_64/352.63/README/supportedchips.html

我的安装脚本是:

dnf update
dnf install akmod-nvidia-340xx.x86_64 kernel-devel gcc gcc-c++ vdpauinfo
libva-vdpau-driver libva-utils xorg-x11-drv-nvidia-340xx-libs.i686
dracut -f /boot/initramfs-$(uname -r).img $(uname -r)
reboot
Run Code Online (Sandbox Code Playgroud)

我不知道为什么这有效。我的意思是我尝试了类似的方法 6 次,但只在第七次尝试时才有效。我咨询了 RPM fusion 的人,也许他们同时修复了 repo,或者我做了一些我不知道的更好的事情。

根据一些论坛,您需要xorg-x11-drv-nvidia-libs和其他库的 32 位二进制文​​件,因为 Gnome 3 依赖于它们。我对此不确定,但它对我有用。

笔记:

在验证此驱动程序安装有效后,我安装了其他 32 位二进制文​​件:

sudo dnf -y install \
  alsa-lib.i686 \
  alsa-plugins-oss.i686 \
  alsa-plugins-pulseaudio.i686 \
  alsa-plugins-pulseaudio.i686 \
  arts.i686 \
  audiofile.i686 \
  bzip2-libs.i686 \
  cairo.i686 \
  cdk.i686 \
  compat-expat1.i686 \
  compat-libstdc++-33.i686 \
  cyrus-sasl-lib.i686 \
  dbus-libs.i686 \
  esound-libs.i686 \
  fltk.i686 \
  freeglut.i686 \
  glibc.i686 \
  gtk2.i686 \
  imlib.i686 \
  lcms-libs.i686 \
  lesstif.i686 \
  libacl.i686 \
  libao.i686 \
  libattr.i686 \
  libcap.i686 \
  libdrm.i686 \
  libexif.i686 \
  libgnomecanvas.i686 \
  libICE.i686 \
  libieee1284.i686 \
  libsigc++20.i686 \
  libSM.i686 \
  libtool-ltdl.i686 \
  libusb.i686 \
  libwmf-lite.i686 \
  libwmf.i686 \
  libX11.i686 \
  libXau.i686 \
  libXaw.i686 \
  libXcomposite.i686 \
  libXdamage.i686 \
  libXdmcp.i686 \
  libXext.i686 \
  libXfixes.i686 \
  libxkbfile.i686 \
  libxml2.i686 \
  libXmu.i686 \
  libXp.i686 \
  libXpm.i686 \
  libXScrnSaver.i686 \
  libXScrnSaver.i686 \
  libxslt.i686 \
  libXt.i686 \
  libXtst.i686 \
  libXv.i686 \
  libXv.i686 \
  libXxf86vm.i686 \
  lzo.i686 \
  mesa-libGL.i686 \
  mesa-libGLU.i686 \
  nas-libs.i686 \
  nspluginwrapper.i686 \
  openal-soft.i686 \
  openldap.i686 \
  pam.i686 \
  popt.i686 \
  pulseaudio-libs-glib2.i686 \
  pulseaudio-libs.i686 \
  pulseaudio-libs.i686 \
  qt-x11.i686 \
  qt.i686 \
  redhat-lsb.i686 \
  sane-backends-libs.i686 \
  SDL.i686 \
  svgalib.i686 \
  unixODBC.i686 \
  zlib.i686
Run Code Online (Sandbox Code Playgroud)

如果您想运行 32 位应用程序(例如旧游戏),这些可以派上用场。https://gist.github.com/tomekwi/0e0eff870cf9b689379d

更新:

我的第一次安装是 Geforce GT 240。现在我将显卡更改为 Geforce GTX 750 Ti。在更换显卡之前,我使用 删除了旧卡的驱动程序,dnf remove akmod-nvidia-340xx xorg-x11-drv-nvidia-340xx-libs.i686并使用 安装了新驱动程序dnf install akmod-nvidia xorg-x11-drv-nvidia-libs.i686。之后我关闭计算机,更换卡并重新启动系统。从那时起一切都运转良好。