Отображение информации о мониторе через командную строку

Есть ли способ запрашивать информацию о мониторе из командной строки? Например, получить модель монитора, аналогично, например, что lspci делает для информации о графической карте, или в данный момент она включена или выключена, и тому подобное.

Если это возможно, какую базовую информацию, такую ​​как приведенная выше, можно легко собрать? Например, можно ли определить, находится ли монитор в книжной или альбомной ориентации? Или если он имеет встроенные динамики или нет?

Командная строка предпочтительнее, но если есть метод с графическим интерфейсом, я бы тоже хотел об этом услышать.

26
задан 5 November 2013 в 07:22

7 ответов

$ 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".
0
ответ дан 5 November 2013 в 07:22

Да, есть, read-edid аппаратный инструмент сбора информации для мониторов VESA PnP . Этот инструмент имеет две команды: get-edid и parse-edid: инструменты для извлечения и интерпретации спецификаций монитора с использованием протокола VESA VBE DDC . EDID ( Расширенные данные идентификации дисплея ) - это формат метаданных для устройств отображения, чтобы описать их возможности для видеоисточника.

Сначала:

sudo apt-get install read-edid

Затем попробуйте:

sudo get-edid | parse-edid
0
ответ дан 5 November 2013 в 07:22

Попробуйте

xrandr

(я использовал программу один раз, когда играл с настройкой двух мониторов в Archlinux.)

Вы можете найти ее в x11-server-utils пакет. Этот пакет содержит другие вещи, с которыми можно поиграть, например:

  • iceauth, инструмент для манипулирования записями авторизации протокола ICE;
  • rgb;
  • sessreg, простая программа для управление записями utmp / wtmp;
  • xcmsdb - утилита цветовых характеристик устройства для X Color Management System;
  • xgamma - инструмент для запроса и настройки гамма-коррекции монитора;
  • ] xhost, очень опасная программа, которую вы никогда не должны использовать;
  • xmodmap, утилита для изменения раскладок клавиш и указателей в X;
  • xrandr, интерфейс командной строки для расширения RandR ;
  • xrdb, инструмент для управления базой данных ресурсов X-сервера;
  • xrefresh, инструмент, который вызывает перерисовку экрана X;
  • xset, инструмент для настройки различные параметры X-сервера;
  • xsetmode и xsetpointer, инструменты для обработки устройств ввода X;
  • xsetroot, инструмент для настройки внешнего вида корневого окна;
  • xstdcmap, a Util выборочное определение стандартных свойств цветовой карты;
  • xvidtune, инструмент для настройки моделей X-серверов для вашего монитора. (информация находится в синаптическом менеджере пакетов)
0
ответ дан 5 November 2013 в 07:22

Если 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)

get-edid показывает только внешний монитор, который подключен к порту VGA.

  1. Установить read-edid

    sudo apt-get install read-edid
    
  2. При считывании информации edid непосредственно из sysfs должны отображаться все мониторы

    ls /sys/class/drm/*/edid | xargs -i{} sh -c "echo {}; parse-edid < {}"
    
0
ответ дан 5 November 2013 в 07:22

xrandr, xrandr --prop и xrandr --verbose даст Вам некоторую информацию с другим уровнем детализации.

Обеспеченная производителем информация может быть найдена в формате EDID.

Чтобы получить и декодировать EDID, сначала проверьте xrandr вывод для обнаружения используемого интерфейса (например, eDP-1) и apt install edid-decode, затем:

cat /sys/class/drm/card0-eDP-1/edid | edid-decode

Пример произвел Вас, может найти здесь. Замена eDP-1 с Вашим интерфейсом в случае необходимости.

С другой стороны, xrandr --prop выходной EDID в шестнадцатеричном формате, что можно подать к этому онлайн декодер EDID.

Я не рекомендую использовать read-edid пакет, потому что у меня был отрицательный опыт с ним (версия 3.0.2). В моем случае, get-edid дополнительные символы выводов после конца, которые приводят к предупреждению от edid-decode и parse-edid выводы случайный мусор в ModelName и Identifier поля.

0
ответ дан 9 October 2019 в 12:43

Это дает вам всю необходимую информацию:

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

4
ответ дан 15 July 2020 в 15:49

Это сработало для меня на Ubuntu 18.04.
Монитор подключен через HDMI:

grep -i "monitor name" /var/log/syslog
2
ответ дан 7 August 2020 в 13:11

Другие вопросы по тегам:

Похожие вопросы: