尝试安装nvidia-driver-410
Ubuntu 19.04 时,会尝试安装几个附加软件包,包括nvidia-driver-418
。在这种情况下,正在使用较新的驱动程序,这在我的平台上导致一个重大问题(音频无法通过 HDMI 工作)。
我该如何解决这个问题?这种依赖性有什么原因吗?
我已经尝试明确排除这种依赖性,但是失败了:
$ sudo apt-get install nvidia-driver-410 nvidia-driver-418-
The following packages have unmet dependencies:
nvidia-driver-410 : Depends: nvidia-driver-418 but it is not going to be installed
更新:刚刚发现这nvidia-driver-410
是 的过渡包nvidia-driver-418
,因此部分是合理的。但我仍然不知道为什么无法安装旧驱动程序。
答案1
我使用 ppa 解决了这个问题,但是来自 Ubuntu 19.04 存储库的过渡包nvidia-driver-410
并没有让事情变得简单。
首先,添加驱动程序 ppa:
sudo add-apt-repository ppa:graphics-drivers/ppa
您还可以添加包含驱动程序的 NVidia 官方 CUDA 存储库,但目前没有 Ubuntu 19.04 版本(https://www.tensorflow.org/install/gpu)。
然后找到 ppa 中可用的 410 驱动程序的版本:
$ apt policy nvidia-dkms-410
nvidia-dkms-410:
Installed: 410.104-0ubuntu1
Candidate: 418.56-0ubuntu1
Version table:
418.56-0ubuntu1 500
500 http://ftp.icm.edu.pl/pub/Linux/ubuntu disco/restricted amd64 Packages
410.104-0ubuntu1 500
500 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu disco/main amd64 Packages
100 /var/lib/dpkg/status
请注意,第一个软件包418
的版本名称中有 ,因为它实际上是 的过渡软件包nvidia-driver-418
。是的,软件包nvidia-driver-410
实际上安装了nvidia-driver-418
。不知道为什么,但这是 Debian 发行版上所有 NVidia 驱动程序的常见模式。
我们复制第二个包的版本名称,即410.104-0ubuntu1
。我们现在可以使用它来安装真正的 410 驱动程序:
sudo apt install nvidia-driver-410=410.104-0ubuntu1
由于默认选择过渡包,因此需要明确指定版本。但要小心!这可能会建议您安装 418 个包。请仔细阅读附加包列表!我不知道这是否是最好的解决方案,但我通过用 410 个等效包明确覆盖请求中的每个 418 个包解决了这个问题:
sudo apt install nvidia-driver-410=410.104-0ubuntu1 libnvidia-compute-410=410.104-0ubuntu1 xserver-xorg-video-nvidia-410=410.104-0ubuntu1 libnvidia-encode-410=410.104-0ubuntu1 nvidia-dkms-410=410.104-0ubuntu1 libnvidia-gl-410=410.104-0ubuntu1 nvidia-kernel-source-410=410.104-0ubuntu1 nvidia-compute-utils-410=410.104-0ubuntu1 libnvidia-decode-410=410.104-0ubuntu1 nvidia-utils-410=410.104-0ubuntu1 libnvidia-cfg1-410=410.104-0ubuntu1 libnvidia-ifr1-410=410.104-0ubuntu1 libnvidia-fbc1-410=410.104-0ubuntu1 libnvidia-common-410=410.104-0ubuntu1 nvidia-kernel-common-410=410.104-0ubuntu1
例如,当 apt 建议时,nvidia-kernel-common-418
我将其添加nvidia-kernel-common-410=410.104-0ubuntu1
到我的命令中。虽然很累,但很有效。以某种方式更改存储库的优先级可能更容易,但我不知道该怎么做。
编辑:
正如@fkraiem 指出的那样,我们可以优先考虑 ppa 存储库,以避免这么长的命令。
创建文件/etc/apt/preferences.d/graphics-drivers
:
Package: *
Pin: release o=LP-PPA-graphics-drivers
Pin-Priority: 700
现在发出命令:
sudo apt install nvidia-driver-410
现在首选包含真实驱动程序包(而不是 418 的过渡包)的 PPA 存储库,以便正确安装驱动程序元包和所有依赖项。