VMware 使用 RDP 連接主機時不產生輸出
我最近決定在工作中切換到 Linux,但我仍然需要 Windows,有時還需要遠端工作。當使用 Windows 作為主機時,這沒什麼大不了的,因為我可以 RDP 進入我的機器並啟動 VMWare 並在需要時使用虛擬機。
現在,我使用 RHEL 8.5 作為 VMWare Workstation 16.2.1 的主機。我有 XRDP 設置並且可以 RDP 進入我的 RHEL 盒子,但是當我嘗試通過我的 RDP 會話在 VMWare 中啟動 VM 時,我沒有從 VMWare 獲得圖形輸出。(見圖)
即使 VMWare 坐在那裡“等待連接”,虛擬機實際上正在執行和啟動,但沒有產生任何輸出。
我正在使用 XRDP 在連接時創建一個新的 xfce 會話。(忽略顯示 GNOME 3 的圖片,我已經更改了配置,但 xfce 仍然存在問題。可能是 RDP/XVNC 本身的問題?)
理想情況下,我希望能夠將 RDP 插入到我的 RHEL 主機中,而不是直接將 RDP 插入到 VM 中,因為我在任何給定時間都使用多個 VM。
編輯:
如果我正確地解釋了這一點,我的 RDP 會話正在使用軟體渲染,而我的 Plasma 會話(沒有 RDP,物理上在設備上)正在使用硬體渲染。有沒有辦法來解決這個問題?
這裡的解決方案是
xorgxrdp
從原始碼建構,因為可以從官方 repos (codeready/epel/appstream) 獲得的解決方案沒有 glamor 支持。您可以選擇
xrdp
從可用的 repos 中安裝 - 它與 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’ not found。完成此步驟後,取消註釋以下行
/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 對此隻字未提。