【UE5】- Linux的打包与部署 :在国产操作系统上离线部署UE程序以及像素流送
目录
注意
一、检查部署平台硬件
二、打包Linux程序
三、下载对应依赖
1. 下载显卡驱动
2. 下载Node.js
3. 像素流送下载
四、在服务器上部署
1. 安装显卡驱动
2. 安装Node.js
3. 安装与启动像素流送
3.1 直接拷贝下载的像素流送即可
3.2 启动像素流送
4. UE程序启动
五、可能会出现的问题
1. 在root下无法启动
2. 防火墙端口未开放
3. 缺少图形化界面或输出设备
4. 端口被占用
注意
1. !!!操作系统的属于 Linux x86 架构 Linux aarch64 架构在像素流送上和低版本UE打包部署上存在一些问题,暂时没有研究。
2. 本文内容像素流送仅仅在内网部署中生效,暂时没做外网映射。
一、检查部署平台硬件

硬件推荐
https://dev.epicgames.com/documentation/en-us/unreal-engine/hardware-and-software-specifications-for-unreal-engine?application_version=5.0

容器要求
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/hardware-and-software-requirements-for-container-deployments-in-unreal-engine
二、打包Linux程序
推荐使用虚幻文档中的交叉编译工具链:

将工具包使用默认选项安装完成即可。
接下来便可以尝试打包:

如果还是无法打包,在项目目录下的config文件夹点开该配置文件:

添加如下代码:
[/Script/LinuxTargetPlatform.LinuxTargetSettings]
TargetArchitecture=X86_64UnknownLinuxGnu
此时便可正常打包,成功打包后的目录如下:

三、下载对应依赖
1. 下载显卡驱动
UE其核心功能高度依赖显卡硬件加速,显卡驱动是操作系统与显卡硬件之间的桥梁,负责将引擎的图形指令翻译为硬件可执行的操作。所以还需要安装显卡驱动。
如果是NVIDIA显卡驱动:
NVIDIA显卡驱动下载
https://www.nvidia.cn/geforce/drivers/
注意选择对应显卡型号以及正确的操作系统:

如果是AMD显卡驱动:
AMD显卡驱动
https://www.amd.com/zh-cn/support/download/linux-drivers.html
2. 下载Node.js
虽然Node.js并非必需,但在某些前后端交互场景中可能需要动态控制数据传输流程。此时可通过Node.js搭建REST API或WebSocket服务,实现与前端页面(如Pixel Streaming前端UI)及UE后端的通信。因此建议预先安装以备不时之需。
Node.js
https://nodejs.org/zh-cn/download

资源里是Node.js的安装包下载,官网有时可能出现访问不稳定的情况。
3. 像素流送下载
PixelStreaming
https://github.com/EpicGames/PixelStreamingInfrastructure/tree/UE5.2
下载完成后的像素流送可能在Linux的系统环境下没有完成安装
在目录:SamplesPixelStreamingWebServersSignallingWebServerplatform_scriptsash 下找到setup.sh双击安装所需要的环境:

四、在服务器上部署
1. 安装显卡驱动
先查看是否有显卡驱动
nvidia-smi
没有的话编译运行(可能驱动版本不同)
sudo ./NVIDIA-Linux-x86_64-560.31.02.run
直接选择NVIDIA Proprietary选项
接下来的步骤都点OK或Continue就行了
安装完成后检查显卡驱动
nvidia-smi
有出现 NVIDIA-SMI 和 Driver Version 的版本号列表表示安装成功。
2. 安装Node.js
直接把上述步骤中下载成功的node.js在服务器上安装即可。
3. 安装与启动像素流送
3.1 直接拷贝下载的像素流送即可
但是需要给整个像素流送文件夹赋予权限:
chmod -R 777 /opt/ue_dependon/Samples
3.2 启动像素流送
bash run_local.sh
出现以下弹框表示启动成功:

4. UE程序启动
跟像素流送一样,需要给整个文件夹赋予权限
然后添加对应启动项启动:
bash XXX.sh -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888 -RenderOffScreen -log -forceres -ResX = 1920 ResY = 1080 -PixelStreamingEncoderMaxQP=20
同时像素流送log出现以下变化代表连接成功:
这时在浏览器输入部署服务器的IP+端口号便可正常访问!!
五、可能会出现的问题
1. 在root下无法启动
如果无法在 root 下启动,建议创建新用户并切换至该用户身份后重新启动访问,报错如下:
2. 防火墙端口未开放
未开放防火墙端口可能会导致前端网页无法访问,可能访问前端会出现如下界面:

假如我的端口是8077,要开放8077端口:
firewall-cmd --list-ports #检查端口开放列表
firewall-cmd --zone=public --add-port=8077/tcp --permanent #开放8077端口
firewall-cmd --reload #重启防火墙
如果还是无法访问 尝试关闭掉防火墙
sudo systemctl stop firewalld
3. 缺少图形化界面或输出设备

如果一直报有关 initSDL 的错误,可能是缺少图形化界面或者输出界面,在UE启动程序后添加
-RenderOffScreen 启动参数即可
4. 端口被占用
有可能的像素流送端口被其他端口占用了。
在 SamplesPixelStreamingInfrastructure-UE5.2SignallingWebServer 下找到:

修改如下内容:

把红框内的数字改成没被占用的端口号,重启像素流送即可。













