我有 CUDA,但 Steam 20.04 无法运行

我有 CUDA,但 Steam 20.04 无法运行

我需要 Cuda 10.1,用于 PyTorch、TensorFlow 和 MatLab。它们不支持 Cuda 11。我还需要 steam 来玩游戏。有什么方法可以在 steam 上玩游戏的同时使用 Cuda 的并行处理吗?请帮忙。

Steam 需要 libnvidia-gl-440:i386。

The following packages have unmet dependencies:
libnvidia-gl-440:i386 : Depends: libnvidia-gl-450:i386 but it is not going to be installed

但是安装 libnvidia-gl-450:i386 时显示:

The following packages will be REMOVED:
cuda-10-1 cuda-demo-suite-10-1 cuda-drivers cuda-drivers-450 cuda-runtime-10-1 libnvidia-compute-450 libnvidia-decode-450 libnvidia-encode-450 libnvidia-gl-450 libnvidia-ifr1-450 nvidia-compute-utils-450 nvidia-driver-450 nvidia-utils-450

尝试过的链接: Steam 无法在 Ubuntu 18.04 上启动 Steam 无法在 Ubuntu 20.04 上运行但没有同时帮助 Cuda 和 steam。

编辑:

不仅 steam 有这个问题,其他 32 位应用程序也不允许我使用。安装时libnvidia-gl-450:i386要求删除Cuda 10.1,但我无法删除。

我正在寻找一种运行 Cuda的方法,以及使用所有 32 位 arch 应用程序。如上所述Matlab,不支持。PytorchTensorFlowCuda 11

答案1

我遇到了同样的问题(Ubuntu 18.04 和 CUDA 11.0,但问题似乎相同)

NVidia 有 3 个安装选项。NVidia 本身的安装程序和两个 .deb 选项。.debs 不包含任何 i386 软件包。但是自定义安装程序包含。因此对于 Steam,您需要使用 .run 文件进行安装。

我需要 TensorRT,但它有一些依赖项似乎无法通过 .run 文件安装。如果 TensorFlow 有类似的问题,我也不会感到惊讶。解决方案也是安装 .deb,但不通过 .deb 安装 cuda。

  1. 由于可能会出错,你最好备份你的系统文件

  2. 删除旧的 cuda 和 nvidia 驱动程序

sudo sudo apt-get --purge remove "*cublas*" "*cufft*" "*curand*"  "*cusolver*" "*cusparse*" "*npp*" "*nvjpeg*" "cuda*" "nsight*"
sudo apt-get --purge remove "*nvidia*"
  1. 新黑名单
sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo update-initramfs -u
sudo reboot
  1. 获取并安装运行文件安装程序(CUDA 10.1 似乎不支持 Ubuntu > 18.10?)

  2. 安装 Steam sudo apt install steam

    Steam 现在应该可以运行了

  3. 安装 TensorFlow。如果它抱怨依赖项,你可能还需要安装.deb 存储库在 TensorFlow 之前。但请确保完成安装 cuda 的最后一步

答案2

Steam 和 CUDA 10.1 之间没有冲突——您描述的问题是由于英特尔对其 CUDA 软件包附加了不必要的依赖项(对它们包含的 Nvidia 驱动程序)造成的。这些不必要的 Nvidia 软件包可能是旧驱动程序,比您当前在 Ubuntu 上使用的驱动程序更旧,也可能是新驱动程序,甚至可能不适合您硬件。无论如何,有两种可能的解决方案:

  1. 下载 Intel CUDA deb,解压而不是安装,继续解压任何包含的 deb,跳过 Nvidia 包含的 deb,这样你就可以在本地安装 CUDA 文件,而完全不需要包管理器的参与。查看答案关于在Ubuntu 20.04上安装CUDA 10.1的问题,根文件夹是空的对于这种方法。
  2. 从 Intel CUDA deb 运行安装程序到已知位置 - 避免将 cuda libs 和可执行文件传播到整个系统。处理旧的/新的 Nvidia 驱动程序(如果可能的话),首先备份 CUDA 文件,因为您的有用包管理器会删除它们(它们依赖于您要替换的 Nvidia 包)。安装您选择的 Nvidia 驱动程序(这会删除您的所有 CUDA 文件!),然后从备份中恢复 CUDA 文件。清理所有“rc”删除/配置的剩余 CUDA 包。很麻烦,但当 CUDA deb 中包含较旧的 Nvidia 驱动程序时,它可以工作。

提供的 Ubuntu CUDA 包似乎是 Intel deb 提供的一部分,也许它们适合您,但您无法控制版本。

答案3

Steam 和 Linux 上的大多数游戏都依赖于可用的 32 位 OpenGL 库。然而,Nvidia计划暂时放弃对 CUDA 的 32 位支持。幸运的是,可以手动安装必要的 32 位库以使 Steam 正常工作。

我建议你从Nvidia 存储库首先,然后检查已安装的驱动程序版本。显然,32 位库文件必须与安装的驱动程序版本相匹配。可以使用安装程序提供的仅提取选项获取相应的文件,例如 465.19.01找司机然后执行 ./NVIDIA-Linux-x86_64-465.19.01.run -x

i386 库文件位于名为“32”的文件夹中。要手动安装 32 位库:

chmod u+x NVIDIA-Linux-x86_64-465.19.01.run
./NVIDIA-Linux-x86_64-465.19.01.run -x
cd NVIDIA-Linux-x86_64-465.19.01
cd 32
sudo cp libEGL* libGLESv* libGLX* libnvidia-egl* libnvidia-gl* libnvidia-tls* /usr/lib32

有一些应该创建的符号链接:

cd /usr/lib32
sudo ln -s libEGL_nvidia.so.465.19.01 libEGL_nvidia.so.0
sudo ln -s libGLESv1_CM_nvidia.so.465.19.01 libGLESv1_CM_nvidia.so.1
sudo ln -s libGLESv2_nvidia.so.465.19.01 libGLESv2_nvidia.so.2
sudo ln -s libGLX_nvidia.so.465.19.01 libGLX_indirect.so.0
sudo ln -s libGLX_nvidia.so.465.19.01 libGLX_nvidia.so.0

您可能需要运行此程序以便系统检测新的库:

sudo ldconfig

更新:我可以确认此方法适用于 470.57.02

答案4

解决方案:


sudo apt-get update --fix-missing

sudo dpkg --configure -a

sudo apt-get install -f

sudo apt-get clean

sudo apt-get autoremove

解锁 dpkg – (消息 /var/lib/dpkg/lock)

sudo fuser -vki /var/lib/dpkg/lock.
sudo dpkg --configure -a

您可以使用以下命令删除锁文件:

sudo rm /var/lib/apt/lists/lock

您可能还需要删除缓存目录中的锁定文件

sudo rm /var/cache/apt/archives/lock

现在您可以安装libnvidia-gl-450:i386

sudo apt install libnvidia-gl-450:i386
sudo apt autoremove
sudo apt upgrade

相关内容