通过命令行显示监视器信息

icy*_*com 43 monitor

有没有办法从命令行查询监视器信息?例如,获取监视器模型,类似于lspci图形卡信息的作用,或者它当前是打开还是关闭,诸如此类。

如果可能的话,像上面这样的哪些基本信息可以很容易地收集到?例如,是否可以确定显示器是纵向还是横向?或者它是否有内置扬声器?

命令行是首选,但如果有 GUI 方法,我也想听听。

tho*_*hom 46

是的,有用于 VESA PnP 显示器的read-edid 硬件信息收集工具。该工具有两个命令:get-edidparse-edid使用 VESA VBE DDC 协议检索和解释监视器规范的工具EDID扩展显示标识数据)是显示设备向视频源描述其功能的元数据格式。

第一的:

sudo apt-get install read-edid
Run Code Online (Sandbox Code Playgroud)

然后尝试:

sudo get-edid | parse-edid
Run Code Online (Sandbox Code Playgroud)


tho*_*hom 22

$ grep "NVIDIA(GPU-0)" /var/log/Xorg.0.log |head -17| cut -d\: -f2
 Display (Samsung SA300/SA350 (DFP-0)) does not support NVIDIA
     3D Vision stereo.
 The EDID for Samsung SA300/SA350 (DFP-0) contradicts itself
     mode "1920x1080" is specified in the EDID; however, the
     EDID's valid VertRefresh range (56.000-75.000 Hz) would
     exclude this mode's VertRefresh (50.0 Hz); ignoring
     VertRefresh check for mode "1920x1080".
 The EDID for Samsung SA300/SA350 (DFP-0) contradicts itself
     mode "1280x720" is specified in the EDID; however, the
     EDID's valid VertRefresh range (56.000-75.000 Hz) would
     exclude this mode's VertRefresh (50.0 Hz); ignoring
     VertRefresh check for mode "1280x720".
 The EDID for Samsung SA300/SA350 (DFP-0) contradicts itself
     mode "720x576" is specified in the EDID; however, the
     EDID's valid VertRefresh range (56.000-75.000 Hz) would
     exclude this mode's VertRefresh (50.0 Hz); ignoring
     VertRefresh check for mode "720x576".
Run Code Online (Sandbox Code Playgroud)

  • `/var/log/Xorg.0.log: 没有那个文件或目录` (3认同)
  • 谢谢 - 查看 `/var/log/Xorg.0.log` 实际上有帮助 - 可惜这是唯一的方法。 (2认同)

use*_*.dz 16

情况下get-edid不显示所有显示器

像我一样,我有:

$ lshw -c display
  *-display               
       description: VGA compatible controller
       product: 3rd Gen Core processor Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 09
       width: 64 bits
       clock: 33MHz
       capabilities: vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:27 memory:f6400000-f67fffff memory:e0000000-efffffff ioport:f000(size=64)
Run Code Online (Sandbox Code Playgroud)

get-edid 仅显示插入 VGA 端口的外接显示器。

  1. 安装 read-edid

     sudo apt-get install read-edid
    
    Run Code Online (Sandbox Code Playgroud)
  2. 直接从 SYSFS 树读取 EDID 信息,它应该显示所有检测到的监视器

     ls /sys/class/drm/*/edid | xargs -i{} sh -c "echo {}; parse-edid < {}"
    
    Run Code Online (Sandbox Code Playgroud)


小智 13

尝试

xrandr

(我在 Archlinux 上玩双显示器设置时使用过该程序一次。)

您可以在x11-server-utils包中找到它。该软件包包含其他可玩的东西,例如:

  • iceauth,一种用于操作 ICE 协议授权记录的工具;
  • RGB;
  • sessreg,一个用于管理 utmp/wtmp 条目的简单程序;
  • xcmsdb,X 颜色管理系统的设备颜色特征实用程序;
  • xgamma,用于查询和设置显示器伽马​​校正的工具;
  • xhost,一个你永远不应该使用的非常危险的程序;
  • xmodmap,一个用于在 X 中修改键盘映射和指针按钮映射的实用程序;
  • xrandr,RandR 扩展的命令行界面;
  • xrdb,一个管理X服务器资源数据库的工具;
  • xrefresh,一种强制重绘 X 屏幕的工具;
  • xset,一个用于设置杂项 X 服务器参数的工具;
  • xsetmode 和 xsetpointer,用于处理 X 输入设备的工具;
  • xsetroot,一个裁剪根窗口外观的工具;
  • xstdcmap,一个有选择地定义标准颜色图属性的实用程序;
  • xvidtune,一种为您的显示器定制 X 服务器模式的工具。(在突触包管理器中找到的信息)

  • 谢谢弗兰克 - 你能澄清我如何使用 `xrandr` 获得监视器模型吗? (3认同)

小智 9

这为您提供了所需的所有信息:

dbus-send --session --print-reply --dest=org.gnome.Mutter.DisplayConfig /org/gnome/Mutter/DisplayConfig org.gnome.Mutter.DisplayConfig.GetCurrentState

  • 如果您使用 Mutter 窗口管理器,也许是这样。 (2认同)

use*_*ser 6

xrandrxrandr --prop并且xrandr --verbose会给你不同详细程度的一些信息。

制造商提供的信息可以在EDID格式中找到。

要获取和解码 EDID,首先检查xrandr输出以找出使用的接口(例如eDP-1)和apt install edid-decode,然后:

edid-decode </sys/class/drm/card0-eDP-1/edid
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到示例输出。eDP-1如果需要,请替换为您的接口。

或者,xrandr --prop以十六进制格式输出 EDID,您可以将其提供给此在线EDID 解码器

我不建议使用read-edid包,因为我对它有负面体验(版本3.0.2)。在我的情况下,get-edid在结束后输出额外的字符,导致警告edid-decodeparse-edidModelNameIdentifier字段中输出随机垃圾。


jwa*_*ker 6

这在 Ubuntu 18.04 上对我有用。
使用 HDMI 连接显示器:

grep -i "monitor name" /var/log/syslog
Run Code Online (Sandbox Code Playgroud)