我正在运行 Ubuntu 18.04.1 LTS 桌面。
我正在通过远程 SSH 会话连接到桌面。
我正在尝试获取当前活动的本地会话的当前分辨率。
我发现了这些看似相关的问题:
但是,xdpyinfo
返回以下错误:
xdpyinfo: unable to open display "".
并xrandr
返回类似的错误:
Can't open display
我假设这是因为没有显示连接到我的远程 SSH 会话。我尝试将 ( su
) 切换到与本地会话相同的用户,但错误是相同的 - 我假设原因相同:没有与该 SSH 会话相关的显示。
因此,我尝试了上面第三个链接中的建议。
$ export DISPLAY=:0
$ xdpyinfo
No protocol specified
xdpyinfo: unable to open display ":0"
和
$ xrandr --display :0
No protocol specified
Can't open display :0
如何从远程 SSH 会话轮询活动本地会话上的显示以获取分辨率(尺寸)信息?
答案1
1.你可以尝试这个命令
cat /sys/class/drm/*/modes
或获取更多信息
grep . /sys/class/drm/*/modes
要获取每个设备的状态,请输入
grep . /sys/class/drm/*/status
2.或者读取监控画面数据
扩展显示识别数据 (EDID): 该标准定义了携带配置信息的数据格式,从而允许最佳地使用显示器。
显示器通常支持多种分辨率和刷新率。当然,有人会喜欢最大(物理)分辨率和刷新率。
要读取此监视器数据,请尝试以下解决方案之一:
edid 解码
如果尚未安装,请输入
sudo apt install edid-decode
然后读取
edid
文件edid-decode /sys/class/drm/card0-eDP-1/edid
已读
安装
sudo apt install read-edid
然后通过i2c读取屏幕监控数据并解析
sudo get-edid | parse-edid
Hexdump edid 数据
如果没有安装 edid-tools,你可以转储
edid
hex 文件,例如:hd /sys/class/drm/card0-eDP-1/edid
答案2
X-Windows 有一个命令可以为您提供以下信息显示器。你可以这样启动它:
xdpyinfo | less
-X
但是,通过 SSH 运行时,除非您使用该选项并且服务器允许通过 ssh 进行远程连接(Ubuntu 上默认情况下如此),否则您将无法访问 X-Windows 。
ssh -X <other-desktop>
如果 ssh 守护进程似乎不允许您通过这种方式连接(您将能够获得 ssh 会话,但会出现错误提示 X11 不可用),请在目标桌面上编辑 ssh 服务器设置:
sudo vim /etc/ssh/sshd_config
并搜索 X11 并确保以下内容没有被注释掉(没有起始#
字符)并且它说yes
:
X11Forwarding yes
如果您必须更改这一点,请重新启动 ssh 守护程序:
sudo systemctl restart sshd
如果您重新启动了sshd
,请确保重新连接(Ctrl-D退出然后ssh -X ....
再次)。
一旦连接并且 X-Windows 错误消失,您可以在 ssh 会话中执行以下操作:
DISPLAY=:0 xdpyinfo | less
这为您提供了有关显示的信息:0
,很有可能是用户当前正在运行的显示(如果您有许多用户,则可能有多个屏幕,因此:0
可能不正确)。
在输出中搜索:
dimensions: 3840x2160 pixels (1016x572 millimeters)
现在我们知道了分辨率。此示例显示 4K 显示器。
所以我认为您所缺少的只是-X
命令ssh -X ...
。