1.你可以尝试这个命令

1.你可以尝试这个命令

我正在运行 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,你可以转储edidhex 文件,例如:

    hd /sys/class/drm/card0-eDP-1/edid
    

    要加密此十六进制文件,请查看维基百科或下载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 ...

相关内容