Есть ли способ запрашивать информацию о мониторе из командной строки? Например, получить модель монитора, аналогично, например, что lspci
делает для информации о графической карте, или в данный момент она включена или выключена, и тому подобное.
Если это возможно, какую базовую информацию, такую как приведенная выше, можно легко собрать? Например, можно ли определить, находится ли монитор в книжной или альбомной ориентации? Или если он имеет встроенные динамики или нет?
Командная строка предпочтительнее, но если есть метод с графическим интерфейсом, я бы тоже хотел об этом услышать.
$ 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".
Да, есть, read-edid аппаратный инструмент сбора информации для мониторов VESA PnP . Этот инструмент имеет две команды: get-edid
и parse-edid
: инструменты для извлечения и интерпретации спецификаций монитора с использованием протокола VESA VBE DDC . EDID ( Расширенные данные идентификации дисплея ) - это формат метаданных для устройств отображения, чтобы описать их возможности для видеоисточника.
Сначала:
sudo apt-get install read-edid
Затем попробуйте:
sudo get-edid | parse-edid
Попробуйте
xrandr
(я использовал программу один раз, когда играл с настройкой двух мониторов в Archlinux.)
Вы можете найти ее в x11-server-utils
пакет. Этот пакет содержит другие вещи, с которыми можно поиграть, например:
Если 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.
Установить read-edid
sudo apt-get install read-edid
При считывании информации edid непосредственно из sysfs должны отображаться все мониторы
ls /sys/class/drm/*/edid | xargs -i{} sh -c "echo {}; parse-edid < {}"
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
поля.
Это дает вам всю необходимую информацию:
dbus-send --session --print-reply --dest=org.gnome.Mutter.DisplayConfig /org/ gnome/Mutter/DisplayConfig org.gnome.Mutter.DisplayConfig.GetCurrentState
Это сработало для меня на Ubuntu 18.04.
Монитор подключен через HDMI:
grep -i "monitor name" /var/log/syslog