我正在尝试在单个 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:...