ubuntu下运行UE打包的工程,出现“Cannot find a compatible Vulkan device or driver”报错的解决方案(vulkan无法正常加载)

  • Post author:
  • Post category:其他

ubuntu下运行UE打包的工程,出现“Cannot find a compatible Vulkan device or driver”报错的解决方案

)

问题描述

在ubuntu18.04系统中使用微软AirSim提供的Linux下场景程序时,运行报错,提示:“Cannot find a compatible Vulkan device or driver.Try updating your video driver to a more recent version and make sure your video card supports Vulkan”。如下图所示:

显卡驱动报错

确定显卡驱动情况

这个问题大概率是由于显卡驱动存在问题,如果你安装完ubuntu,没有动过显卡驱动,大概率是识别不了电脑上显卡的。可以通过命令 nvidia-smi 来进行判断。如果驱动正常识别,会显示当前显卡使用情况等信息,如图所示。

nvidia-smi执行结果

或者使用 nvidia-settings 命令,会打开显卡设置的界面,界面上能看到识别出的显卡型号。

nvidia-settings执行结果

如果不正常,则运行 nvidia-smi 会报错。这种情况可以参考 这个博客 重新安装显卡驱动。

驱动能识别显卡情况下仍有该问题

部分情况下,驱动已经顺利安装,并且可以正确识别到显卡,运行程序仍然报错。则运行 vulkaninfo 命令查看当前系统vulkan的信息,可以看到有报错 libGLX_nvidia.so.0找不到

vulkan报错信息
然后我们在系统中搜索libGLX_nvidia.so.0确定下是不存在还是找的库路径有问题。

搜索结果
可以看到系统中本就不存在该库文件。但这个库是显卡驱动附带的,所以可能是显卡驱动安装时,没有安装该库文件。先解压安装的显卡驱动*.run文件,解压命令为 *.run -x

解压过程

解压后,可以看到libGLX_nvidia库文件

解压后文件列表

ldd命令查看该库文件依赖哪些库

库文件引用情况

然后将这些库一并拷贝到 /usr/lib/x86_64-linux-gnu/ 路径下

cp libGLX_nvidia.so.515.65.01 /usr/lib/x86_64-linux-gnu/
cp libnvidia-glsi.so.515.65.01 /usr/lib/x86_64-linux-gnu/
cp libnvidia-tls.so.515.65.01 /usr/lib/x86_64-linux-gnu/
cp libnvidia-glcore.so.515.65.01 /usr/lib/x86_64-linux-gnu/

因为vulkaninfo中找的库是libGLX_nvidia.so.0,所以拷贝后我们使用 ln 命令创建软链接

ln -s /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.515.65.01 /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.0

再次执行,依然报错缺少库文件。

报错信息

我们按照同样的方式,继续拷贝该库文件到对应路径。再次执行 vulkaninfo ,可以正常打印vulkan信息。然后重新运行之前无法打开的UE打包后工程,可以正常运行。

vulkaninfo正常打印


版权声明:本文为jz342401原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。