Skip to content

镜像版本 ARCS

使用容器启动 ARCS 通过X协议显示

X 是协议,就像 HTTP 协议、IP 协议一样。一个基于 X 的应用程序需要运行并显示内容时他就联接到 X 服务器,开始用 X 协议和服务器交谈。比如一个 X 应用程序要在屏幕上输出一个圆,X 应用程序只负责告诉 X 服务器在屏幕的什么地方用什么颜色画一个多大的圆,而具体的“画”的动作,比如这个圆如何生成,用什么显卡的驱动程序去指挥显卡完成等等工作是由 X 服务器来完成的。X 服务器还负责捕捉键盘和鼠标的动作,假设 X 服务器捕捉到鼠标的左键被按下了,他就告诉 X 应用程序:“亲爱的应用程序先生,我发现鼠标被按下了,您有什么指示吗?”

协议是需要具体的软件来实现的。有了协议就需要具体的软件来实现这个协议。XFree86 就是这样一个去根据法规实现协议的"交警"。实现 X 协议的软件也并不只有 XFree86,XFree86 只是实现 X 协议的一个免费 X 服务器软件。商业上常用 MOTIF,现在还有 XORG,还有很多很小的由爱好者写的小的 X 服务器软件。甚至可以在 WINDOWS 上有 X 服务器运行,这样你可以在 Linux 系统上运行一个 X 应用程序然后在另一台 windows 系统上显示。

Windows 的 wsl(Windows Subsystem for Linux,适用于 Windows 的 Linux 子系统)也可以安装桌面环境之后通过 xserver 映射出来哦,可以自行探索。

准备

想要配置 ARCS 软件通过容器方式启动,然后再通过 X 协议传输到 x-server 中需要安装 x-server

Windows: 下载地址

Mac: 下载地址

安装完成后启动,默认 x-server 应该会监听本地的 127.0.0.1

选择 OneWindow 会新建一个窗口提供给客户端输入的视频内容

安装 docker,可以按照 docker 官方文档安装 Docker官方

1. 启动 X-Server (XLaunch)

启动 XLaunch

2. 拉取镜像

镜像版本介绍

镜像版本由 ARCS 软件及 commit_sha 组成,建议查看软件发布网页中的文件名称,之后组成镜像 url 从而执行 docker pull

例如软件包名称为:arcs_update-0.19.4+42bc716.run,那么镜像 tag 就应该为 ccr.ccs.tencentyun.com/aubo/ARCS:0.19.4-42bc716

故可以执行拉取镜像

bash
docker pull ccr.ccs.tencentyun.com/aubo/ARCS:0.19.4-42bc716

3. 启动容器环境

因为镜像中会启动 systemd 进程所以需要使用特权模式启动容器

变量介绍 DISPLAY:需要填写宿主机 IP 地址

  • Windows 可以通过 控制面板 -> 网络和 Internet -> 网络连接 -> 点击正在使用的网卡 -> 点击查看详细信息 查看
  • Linux 可以通过命令 ip add 或 ifconfig 查看正在使用网卡 IP
bash
docker run -d --name ARCS --env LIBGL_ALWAYS_INDIRECT=1 --env DISPLAY="192.168.1.4:0.0" --privileged ccr.ccs.tencentyun.com/aubo/ARCS:0.19.4-42bc716

进入容器中执行软件启动命令,之后就可以看到 x-server 窗口打开

bash
docker exec -it ARCS bash
> [root@docker-desktop bin]# ./ARCS.sh start

过程演示: 启动容器,xlaunch 窗口显示内容