我最近决定在工作中切换到 Linux,但我仍然需要 Windows,有时还需要远程工作。当使用 Windows 作为主机时,这并不是什么大问题,因为我可以通过 RDP 进入我的计算机并启动 VMWare,并在需要时在虚拟机上工作。
现在我使用 RHEL 8.5 作为主机和 VMWare Workstation 16.2.1。我有 XRDP 设置,并且可以通过 RDP 进入我的 RHEL 盒子,但是当我尝试通过 RDP 会话在 VMWare 中启动虚拟机时,我没有从 VMWare 获得任何图形输出。 (见图)
尽管 VMWare 处于“等待连接”状态,但虚拟机实际上正在运行并启动,只是没有生成任何输出。
我正在使用 XRDP 在连接时创建一个新的 xfce 会话。 (忽略显示 GNOME 3 的图片,我已经更改了配置,但 xfce 仍然存在问题。可能是 RDP/XVNC 本身的问题?)
理想情况下,我希望能够通过 RDP 访问我的 RHEL 主机,而不是直接通过 RDP 访问虚拟机,因为我在任何给定时间都使用多个虚拟机。
编辑:
如果我的解释正确的话,我的 RDP 会话正在使用软件渲染,而我的 Plasma 会话(无 RDP,物理上位于设备上)正在使用硬件渲染。有没有办法来解决这个问题?
答案1
这里的解决方案是从源代码构建xorgxrdp
,因为官方存储库(codeready/epel/appstream)中提供的解决方案没有魅力支持。
您可以选择从可用的存储库进行安装xrdp
- 它与 github 上的可用版本相同。但是,您需要下载源代码并xorgxrdp
对其进行编译。
假设您安装了典型的 X 窗口系统,您仍然需要安装一些软件包。由于这是特定于 Enterprise Linux 的,因此我将发布 EL 的软件包名称,尽管它们在其他版本(例如 arch 和 debian)上也可用。
安装正确的构建工具:
nasm
libtool
pkgconf
automake
autoconf
确保安装了以下软件包:
xorg-x11-proto-devel
xorg-x11-server-devel
mesa-libGL-devel
mesa-libEGL*
mesa-libGLU*
mesa-libGLw*
mesa-libGLw-devel
mesa-libgbm*
mesa-libgbm-devel
mesa-libglapi*
libepoxy-devel
*至少您将需要开发包。
将以下内容保存到方便的位置
git clone https://github.com/neutrinolabs/xrdp
git clone https://github.com/neutrinolabs/xorgxrdp
导航到该xorgxrdp
文件夹并执行以下命令
./bootstrap
./configure XRDP_CFLAGS=-I/path/to/xrdp/common --enable-glamor
make
sudo make install
注意./configure
如果失败则生成的输出。它可能需要安装其他软件包,但它会告诉您实际的软件包名称,而不是说“未找到”“dri”。
完成此步骤后,取消注释以下行/etc/xrdp/xrdp.ini
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20
重新启动 xrdp 服务。
使用 RDP 客户端连接到主机。 (如果会话在连接后立即关闭,您可能需要重新启动,或者至少我遇到了这个问题。)
并享受 GPU 加速的 RDP 会话。
值得注意的是,这个性能不会与使用 RDP 连接 Windows 设备相同,但比使用软件渲染要好得多。
我不会详细介绍安全性和重新连接到同一会话/连接到已存在的会话,或启用音频传递,因为各个论坛上有其他主题很好地涵盖了这一点。
最后说明:我不确定这是否适用于 NVidia 卡。 arch wiki 让我认为情况确实如此,但 git repo 对此只字未提。