使用 xfreerdp 和 Xvfb 的多个显示器

使用 xfreerdp 和 Xvfb 的多个显示器

我正在尝试在单个 Xvfb 上启动具有多个屏幕的 X 服务器,如下所示:

Xvfb :50 -screen 0 1792x1120x24 -screen 1 1792x1120x24

并启动将使用这两个屏幕的 RDP 连接:

DISPLAY=:50; xfreerdp /w:1792 /h:1120 /monitors:0,1 /multimon /u:... /p... /v:...

这不行,xfreerdp 进程崩溃了。我尝试了一些/span监视器数字的组合,/multimon:force但没有任何效果。当我尝试使用一台显示器和一个 Xvfb 屏幕进行相同操作时,它可以工作。我也不明白如何在 xfreerdp 中设置每个屏幕/显示器的分辨率,因为我只有 /w 和 /h 之一。

xfreerdp /monitor-list在用一两个屏幕启动 Xvfb 后也尝试过。一屏启动Xvfb后,监视器列表正确打印了它。但对于两个 xvfb 屏幕,监视器列表没有打印任何内容。

感谢您的任何答案甚至提示!

答案1

启动将使用这两个屏幕的 RDP 连接...DISPLAY=:50

X 屏幕不是监视器。您通常有一个带有多个显示器的 X 屏幕(通过在不同的显示器上显示单个帧缓冲区的不同部分)。显示器相对较新(它们带有xrandr扩展件),而屏幕则相当旧,现在很少使用。屏幕始终具有不同的帧缓冲区,但可以共享单个 X 服务器连接。但基本上没有 X 应用程序是以实际使用不同屏幕的方式编写的。

您的第一个 Xvfb 屏幕位于:50.0,第二个屏幕位于:50.1,并且:50是 的缩写:50.0,因此xfreerdp按照所描述的方式启动将仅使用第一个屏幕。

因此,您需要xfreerdp在客户端计算机上使用多个屏幕,我不知道是否xfreerdp可以做到这一点。至少我没有看到任何可以用来配置它的选项。

所做/multimon的就是查看与单个显示器/屏幕关联的监视器(即您使用的xrandr)。但Xvfb -screen并没有这样设置。

答案2

xfreerdp我已经成功地通过使用Xvnc服务器( 的一部分tigervnc-server)来获得多个虚拟监视器,而xrandr不是Xvfb

Xvnc :50 -screen 0 1600x600x24 &
DISPLAY=:50
xrandr --setmonitor screen0 800/400x600/300+0+0 VNC-0
xrandr --setmonitor screen1 800/400x600/300+800+0 none
xfreerdp /multimon:force /monitors:0,1 /u:... /p... /v:...

相关内容