虚幻引擎 5 无法在 Ubuntu 22.04 上启动

问题描述 投票:0回答:1

在从服务器 ISO (

Ubuntu 22.04.3 LTS x86_64 5.15.0-91-generic
) 全新安装的 Ubuntu 22.04 上,UE5 无法以 libc.6.so 中的 SIGSEGV 启动。引擎没有透露有关导致崩溃的功能的任何详细信息。它发生在加载屏幕显示为 0% 后。日志详细信息:

[2024.01.06-16.50.17:131][  0]LogInit: Using SDL_WINDOW_VULKAN
[2024.01.06-16.50.17:131][  0]LogVulkanRHI: Display: Built with Vulkan header version 1.3.239
[2024.01.06-16.50.17:132][  0]LogVulkanRHI: Starting Vulkan Profile check for VP_UE_Vulkan_SM5_RT:
MESA-INTEL: warning: Haswell Vulkan support is incomplete
Signal 11 caught.
Malloc Size=262146 LargeMemoryPoolOffset=262162 
CommonUnixCrashHandler: Signal=11
[2024.01.06-16.50.17:463][  0]LogCore: === Critical error: ===
Unhandled Exception: SIGSEGV: invalid attempt to read memory at address 0x0000000000000000

[2024.01.06-16.50.17:463][  0]LogCore: Fatal error!

0x00007fd6dca12520 libc.so.6!UnknownFunction(0x4251f)

[2024.01.06-16.50.17:504][  0]LogExit: Executing StaticShutdownAfterError

引擎版本是从源代码构建的 5.3.2。 5.3.1 和二进制 5.3.2 上仍然存在崩溃。 nvidia-smi 的输出:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.157                Driver Version: 390.157                   |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro K1100M       Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   46C    P0    N/A /  N/A |    143MiB /  1999MiB |      3%      Default |
+-------------------------------+----------------------+----------------------+

Unreal.log的输出:

[2024.01.06-16.50.17:131][  0]LogInit: Using SDL_WINDOW_VULKAN
[2024.01.06-16.50.17:131][  0]LogVulkanRHI: Display: Built with Vulkan header version 1.3.239
[2024.01.06-16.50.17:132][  0]LogVulkanRHI: Starting Vulkan Profile check for VP_UE_Vulkan_SM5_RT:
[2024.01.06-16.50.17:463][  0]LogCore: === Critical error: ===
Unhandled Exception: SIGSEGV: invalid attempt to read memory at address 0x0000000000000000

[2024.01.06-16.50.17:463][  0]LogCore: Fatal error!

0x00007fd6dca12520 libc.so.6!UnknownFunction(0x4251f)

[2024.01.06-16.50.17:504][  0]LogExit: Executing StaticShutdownAfterError

诊断:

Generating report for minidump

Application version 5.3.2.0
 ... built from changelist 0

OS version Linux 5.15.0-91-generic (network name: thicc-pad)
Running 2 x86_64 processors (4 logical cores)
Exception was "SIGSEGV: invalid attempt to read memory at address 0x0000000000000000"

<SOURCE START>
<SOURCE END>

<CALLSTACK START>
libc.so.6!UnknownFunction(0x4251f)

<CALLSTACK END>

0 loaded modules

Report end!

它在 Ubuntu 20.04 上运行完美,但是几天前我安装了新的 Ubuntu 22.04。 Epic 声称它甚至是 Linux Unreal 开发的推荐系统。

我尝试过的:

  • 从源代码构建 UE5 并启动它 我的期望:
  • UE5正常启动 发生了什么:
  • UE5 在启动时立即崩溃,并出现 libc.so.6 分段错误
segmentation-fault libc ubuntu-22.04 unreal-engine5 unreal
1个回答
0
投票

遇到此(或非常类似)问题,该问题是在虚幻引擎中调用 VulkanRHI.cpp 中的 vpCreateInstance() 时导致的段错误。显卡是 nvidia 3080 Ti,直到几天前 nvidia 的新 550 驱动程序发布之前一直运行得很好。安装完这些之后,甚至降级到我之前安装的驱动程序版本也不起作用。

原来问题不是出在显卡驱动上,而是出在gcc编译器版本上。

我在22.04.5,使用6.8内核,使用gcc-12编译。 Ubuntu 22.04 默认使用 gcc 11.4。安装显卡驱动时,需要使用与内核相同版本的gcc进行编译。如果不是,标头将不同,构建将失败,并且驱动程序将无法完全安装。 tl;dr 安装 gcc 12(或构建内核的任何版本),将其设为默认版本,重新安装图形驱动程序,然后重新启动

运行

gcc --version
检查正在使用的默认 gcc 版本。可能是11.4。我的就是这样的。

sudo apt install gcc-12

安装 gcc 12(如果尚未安装)。

sudo update-alternatives --query gcc

检查 gcc 的任何现有更新替代优先级

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 50

使其成为 gcc 的默认值。我没有现有的,所以 50 对我来说似乎是一个不错的数字。您可能需要更高或更低的值,具体取决于您是否有任何现有的 gcc 优先级。

再次检查gcc版本,确保是12,然后重新运行nvidia驱动安装,成功完成。

init 6

导致我的机器重新启动,当它重新启动时,我在所有显示器上看到了一个非常活泼的桌面,并且 UE5 再次工作了。

© www.soinside.com 2019 - 2024. All rights reserved.