vault backup: 2023-09-15 22:51:52

This commit is contained in:
BlueRose 2023-09-15 22:51:52 +08:00
parent 9ccf79f01a
commit 60d938bbfa
4 changed files with 110 additions and 214 deletions

View File

@ -47,94 +47,6 @@
}, },
"showLogAboutPerformanceInConsole": false, "showLogAboutPerformanceInConsole": false,
"selectionHistoryTree": { "selectionHistoryTree": {
"406387721": {
"406387721": {
"currentFile": {
"count": 1,
"lastUpdated": 1690193982464
}
}
},
"使用其他框架https": {
"使用其他框架https": {
"currentFile": {
"count": 1,
"lastUpdated": 1690635291419
}
}
},
"UsingReactUMG": {
"UsingReactUMG": {
"currentFile": {
"count": 1,
"lastUpdated": 1690971735176
}
}
},
"编译插件后进入工程,点击工具栏的": {
"编译插件后进入工程,点击工具栏的": {
"currentFile": {
"count": 1,
"lastUpdated": 1690972218475
}
}
},
"json": {
"json": {
"currentFile": {
"count": 1,
"lastUpdated": 1690972883636
}
}
},
"JavaScript": {
"JavaScript": {
"currentFile": {
"count": 1,
"lastUpdated": 1691039171629
}
}
},
"html#msg40636": {
"html#msg40636": {
"currentFile": {
"count": 1,
"lastUpdated": 1691299621696
}
}
},
"Protocol一种基于OSC的虚拟偶像动作输出传输协议。": {
"Protocol一种基于OSC的虚拟偶像动作输出传输协议。": {
"currentFile": {
"count": 1,
"lastUpdated": 1691462131984
}
}
},
"c++17带来的代码变化": {
"c++17带来的代码变化": {
"internalLink": {
"count": 1,
"lastUpdated": 1691473679060
}
}
},
"js-examples": {
"js-examples": {
"currentFile": {
"count": 1,
"lastUpdated": 1691644835357
}
}
},
"输入输出什么,怎么对接,原理简述": {
"输入输出什么,怎么对接,原理简述": {
"currentFile": {
"count": 1,
"lastUpdated": 1692104361523
}
}
},
"FBXSdk": { "FBXSdk": {
"FBXSdk": { "FBXSdk": {
"currentFile": { "currentFile": {
@ -142,6 +54,14 @@
"lastUpdated": 1692677847729 "lastUpdated": 1692677847729
} }
} }
},
"enabled": {
"enabled": {
"currentFile": {
"count": 1,
"lastUpdated": 1694787633996
}
}
} }
} }
} }

View File

@ -1,18 +1,36 @@
--- ---
title: Untitled title: UE5 Ubantu & Docker 部署
date: 2023-09-12 18:20:39 date: 2023-09-12 18:20:39
excerpt: excerpt:
tags: tags:
rating: ⭐ rating: ⭐
--- ---
# 前言 # 前言
本文假设系统已经安装完Docker并且读者已经将镜像拉取完毕。并且假设此电脑装有显卡且显存在3G以上切记AI专业显卡无法启动UE 本文假设系统已经安装完Docker并且读者已经将镜像拉取完毕。并且假设此电脑装有显卡且显存在3G以上切记AI专业显卡无法启动UE
- 文档地址:https://docs.unrealengine.com/5.3/en-US/quick-start-guide-for-using-container-images-in-unreal-engine/ - 文档地址:https://docs.unrealengine.com/5.3/en-US/quick-start-guide-for-using-container-images-in-unreal-engine/
- 镜像地址:https://github.com/orgs/epicgames/packages/container/package/unreal-engine - 镜像地址:https://github.com/orgs/epicgames/packages/container/package/unreal-engine
## 桌面版问题解决 # UE镜像选择
>docker: Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]问题解决 - [runtime](https://github.com/orgs/epicgames/packages/container/unreal-engine/111082761?tag=runtime)
``` - [dev-5.3](https://github.com/orgs/epicgames/packages/container/unreal-engine/125977937?tag=dev-5.3)
- [dev-slim-5.3](https://github.com/orgs/epicgames/packages/container/unreal-engine/125977946?tag=dev-slim-5.3)
镜像主要分为runtime以及dev两种类型slim为瘦身版。主要的区别在于runtime是为了运行UE打包过的项目带有图形显示环境。dev则带有一个对应版本的虚幻引擎此引擎为源码编译版官方也提供执行编译&构建镜像资料有需求可以自行编译一般这种镜像是为了编译、打包、测试项目或者执行CPU操作所用。
官方的runtime容器用的是第三方制作的镜像(也可以算是官方的github的ReadME说是参与了官方容器的开发):
- https://github.com/adamrehn/ue4-runtime
- https://hub.docker.com/r/adamrehn/ue4-runtime/tags
更多信息可以参考这位大佬的网站:https://unrealcontainers.com/docs/obtaining-images/write-your-own
本人因为项目需求使用`ue4-runtime:22.04-vulkan-x11`镜像。该镜像会将镜像内的UE窗口直接映射到系统桌面上可以方便得查看错误。
PS.dev镜像因为带有引擎需要下载20~30G只建议肉身翻墙或者高级科学上网工具者使用。但即使肉身翻墙10GB的那个包下载速度依然特别慢。最终解压完的镜像大约有60多G小空间的VPS也不好整。
## 问题解决
### Docker提示没有可选设备驱动
>docker: Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]
解决方法安装nvidia-container-toolkit。
```bash
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add - sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
@ -21,133 +39,32 @@ sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker sudo systemctl restart docker
``` ```
# UE镜像选择 ### 构建带有UE的图形环境
- [runtime](https://github.com/orgs/epicgames/packages/container/unreal-engine/111082761?tag=runtime) 简单的做法就是下载一份Linux版本的UE之后将目录映射进容器比如
- [dev-5.3](https://github.com/orgs/epicgames/packages/container/unreal-engine/125977937?tag=dev-5.3)
- [dev-slim-5.3](https://github.com/orgs/epicgames/packages/container/unreal-engine/125977946?tag=dev-slim-5.3)
镜像主要分为runtime以及dev两种类型slim为瘦身版。主要的区别在于runtime是为了运行UE打包过的项目带有图形显示环境。dev则带有一个对应版本的虚幻引擎此引擎为源码编译版官方也提供执行编译&构建镜像资料,有需求可以自行编译,一遍这种镜像是为了编译、打包项目所用。
https://github.com/adamrehn/ue4-runtime
可以参考这位大佬的网站:https://unrealcontainers.com/docs/obtaining-images/write-your-own
# 编译命令
## 生成Project
/home/user/Linux_Unreal_Engine_5.1.1/Engine/Build/BatchFiles/Linux/GenerateProjectFiles.sh /home/user/Projects/AIMotionRender/AIMotionRender.uproject -game -engine -rocket -progress -VSCode
## Start Project
/home/user/Linux_Unreal_Engine_5.1.1/Engine/Binaries/Linux/UnrealEditor -logs "/home/user/Projects/AIMotionRender/AIMotionRender.uproject"
## Build
/home/user/Linux_Unreal_Engine_5.1.1/Engine/Build/BatchFiles/Linux/Build.sh Development Linux -Project="/home/user/Projects/AIMotionRender/AIMotionRender.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE
## UE Docker
### UE-dev 5.1
sudo docker run --gpus=all --rm -ti -v "/media/user//home/user/Projects/AIMotionRender:/project" ghcr.io/epicgames/unreal-engine:dev-5.1.1
### UE-Runtime
sudo docker run --gpus=all --rm -e DISPLAY -ti \
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
-v /home/user/Projects/AIMotionRender:/project \
adamrehn/ue4-runtime:22.04-vulkan-x11
#### 编译Puert
sudo docker run --gpus=all --rm -e DISPLAY -ti \
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
-v /home/user/Projects/AIMotionRender:/project \
-v /home/user/node:/home/user/node \
-v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \
adamrehn/ue4-runtime:22.04-vulkan-x11
sudo apt-get install clang
sudo apt-get install libc++-dev
sudo apt-get install libc++abi-dev
sudo apt-get install make
curl -sL https://deb.nodesource.com/setup_16.x | sudo -e bash -
sudo apt-get install -y nodejs
cd /home/user/Projects/backend-nodejs/node-script
npm install -s commander
sudo apt-get install git
/home/user/Projects/backend-nodejs/linux.sh
root 用户
sudo docker run -u 0 --gpus=all --rm -e DISPLAY -ti \
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
-v /home/user/Projects/AIMotionRender:/project \
-v /home/user/node:/home/user/node \
-v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \
adamrehn/ue4-runtime:22.04-vulkan-x11
#### 编译v8
/home/user/Projects/backend-nodejs/linux.sh
### Startup
cd /home/ue4/UnrealEngine/Engine/Binaries/Linux \
./UnrealEditor -log "/project/AIMotionRender.uproject"
/home/ue4/UnrealEngine/Engine/Binaries/Linux/UnrealEditor -log "/project/AIMotionRender.uproject"
### Compiler
/home/ue4/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh Development Linux -Project="/project/AIMotionRender.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE
## UE Docker
# 需求
1. 参考 adamrehn/ue4-runtime:22.04-vulkan-x11重新构建容器
2. 安装下列环境以进行Puerts的V8环境编译
```bash ```bash
sudo apt-get install clang sudo docker run --gpus=all --rm -e DISPLAY -ti \
sudo apt-get install libc++-dev -v /tmp/.X11-unix:/tmp/.X11-unix:rw \
sudo apt-get install libc++abi-dev -v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
sudo apt-get install make -v /home/user/Project/:/project \
curl -sL https://deb.nodesource.com/setup_16.x | sudo -e bash - adamrehn/ue4-runtime:22.04-vulkan-x11
sudo apt-get install -y nodejs
sudo apt-get install git
``` ```
后台运行:
```bash ```bash
# 下载编译脚本,脚本需要手动修改一下 sudo docker run --gpus=all -d --restart=always --privileged=true -e DISPLAY -ti \
cd /home/user/Projects/ -v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
git clone https://github.com/puerts/backend-nodejs.git -v /home/user/Project/:/project \
cd /home/user/Projects/backend-nodejs/node-script adamrehn/ue4-runtime:22.04-vulkan-x11
npm install -s commander
/home/user/Projects/backend-nodejs/linux.sh
``` ```
之后可以使用docker exec让项目启动。
# 进入容器
![[UEDocker_进入UE容器.png]]
使用第一个命令构建容器后,会进入容器,并且可以通过输入命令行进行操作,主要的命令有:
- 生成解决方案://home/ue4/UnrealEngine/Engine/Build/BatchFiles/Linux/GenerateProjectFiles.sh /project/XXXX.uproject -game -engine -rocket -progress -VSCode
- 编译项目:/home/ue4/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh Development Linux -Project="/project/XXXX.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE
- 启动项目:/home/ue4/UnrealEngine/Engine/Binaries/Linux/UnrealEditor -logs "/project/XXXX.uproject"
## 原容器存在问题 PS.实际是因为Ubantu系统版本与容器系统并不相同所以需要重新编译一下才能运行项目。
adamrehn/ue4-runtime:22.04-vulkan-x11存在的问题
1. 缺少相关编译环境。
2. 没有设置环境变量不知道root、ue4账号密码。
3. 参与编译的libatomic.so.1库是32位的。
经过测试使用官方镜像安装的Ubantu可以正常进行编译UE项目以及Puerts v8环境并且可以正常打开项目原容器可以编译UE项目但因为编译的Puerts v8环境有一些问题导致无法运行Puerts。
## 启动命令参考
```bash
sudo docker run --gpus=all --rm -e DISPLAY -ti \
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
-v /home/user/Projects/AIMotionRender:/project \
adamrehn/ue4-runtime:22.04-vulkan-x11
编译v8环境用
sudo docker run -u 0 --gpus=all --rm -e DISPLAY -ti \
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
-v /home/user/Projects/AIMotionRender:/project \
-v /home/user/node:/home/user/node \
-v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \
adamrehn/ue4-runtime:22.04-vulkan-x11
```

View File

@ -5,3 +5,62 @@ excerpt:
tags: tags:
rating: ⭐ rating: ⭐
--- ---
# 前言
本人使用的版本是[Unreal_v1.0.4](https://github.com/Tencent/puerts/releases/tag/Unreal_v1.0.4)的Nodejs版本
# Linux上的编译问题解决
1. FileSystemOperation.cpp
1. `#include "HAL/PlatformFilemanager.h" => #include "HAL/PlatformFileManager.h"`
2. Compile PesapiFrameworkLoader.mm error: Objective-C was disabled in PCH file but is currently enabled
1. 将PesapiFrameworkLoader.mm的后缀名改成PesapiFrameworkLoader.cpp
### UE-dev 5.1
sudo docker run --gpus=all --rm -ti -v "/media/user//home/user/Projects/AIMotionRender:/project" ghcr.io/epicgames/unreal-engine:dev-5.1.1
#### 编译Puert
sudo docker run --gpus=all --rm -e DISPLAY -ti \
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
-v /home/user/Projects/AIMotionRender:/project \
-v /home/user/node:/home/user/node \
-v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \
adamrehn/ue4-runtime:22.04-vulkan-x11
sudo apt-get install clang
sudo apt-get install libc++-dev
sudo apt-get install libc++abi-dev
sudo apt-get install make
curl -sL https://deb.nodesource.com/setup_16.x | sudo -e bash -
sudo apt-get install -y nodejs
cd /home/user/Projects/backend-nodejs/node-script
npm install -s commander
sudo apt-get install git
/home/user/Projects/backend-nodejs/linux.sh
root 用户
sudo docker run -u 0 --gpus=all --rm -e DISPLAY -ti \
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
-v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \
-v /home/user/Projects/AIMotionRender:/project \
-v /home/user/node:/home/user/node \
-v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \
adamrehn/ue4-runtime:22.04-vulkan-x11
#### 编译v8
/home/user/Projects/backend-nodejs/linux.sh
### Startup
cd /home/ue4/UnrealEngine/Engine/Binaries/Linux \
./UnrealEditor -log "/project/AIMotionRender.uproject"
/home/ue4/UnrealEngine/Engine/Binaries/Linux/UnrealEditor -log "/project/AIMotionRender.uproject"
### Compiler
/home/ue4/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh Development Linux -Project="/project/AIMotionRender.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE
## UE Docker

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB