Есть ли способ запросить информацию о мониторе из командной строки? Например, получить модель монитора, аналогичную, например, какой lspci делает для получения информации о графической карте, или о том, включена она в данный момент или выключена, и тому подобное.
Если возможно, какую базовую информацию, подобную приведенной выше, можно легко собрать? Например, можно ли определить, находится ли монитор в портретном или альбомном положении? Или есть ли у него встроенные динамики или нет?
Предпочтение отдается командной строке, но если есть метод с графическим интерфейсом, я бы тоже хотел услышать об этом.
Да, есть, read-edidинструмент для сбора информации об оборудовании для мониторов VESA PnP. Этот инструмент имеет две команды: get-edid и parse-edid: инструменты для извлечения и интерпретации спецификаций монитора с использованием протокола VESA VBE DDC. ЭДИД (Расширенное Отображение Идентификационных Данных) - это формат метаданных для устройств отображения для описания их возможностей для источника видео.
$ grep "NVIDIA(GPU-0)" /var/log/Xorg.0.log |head -17| cut -d\: -f2
Дисплей (Samsung SA300/SA350 (DFP-0)) не поддерживает NVIDIA
Стереосистема 3D-видения.
Идентификатор EDID для Samsung SA300/SA350 (DFP-0) противоречит сам себе
режим "1920x1080" указан в EDID; однако
допустимый диапазон VertRefresh EDID (56.000-75.000 Гц) будет
исключить VertRefresh этого режима (50,0 Гц); игнорирование
VertRefresh проверяет наличие режима "1920x1080".
Идентификатор EDID для Samsung SA300/SA350 (DFP-0) противоречит сам себе
режим "1280x720" указан в EDID; однако
допустимый диапазон VertRefresh EDID (56.000-75.000 Гц) будет
исключить VertRefresh этого режима (50,0 Гц); игнорирование
VertRefresh проверьте наличие режима "1280x720".
Идентификатор EDID для Samsung SA300/SA350 (DFP-0) противоречит сам себе
режим "720x576" указан в EDID; однако
допустимый диапазон VertRefresh EDID (56.000-75.000 Гц) будет
исключить VertRefresh этого режима (50,0 Гц); игнорирование
VertRefresh проверяет наличие режима "720x576".
xrandr, xrandr --prop и xrandr --verbose даст вам некоторую информацию с разным уровнем детализации.
Информацию, предоставленную производителем, можно найти в ЭДИД формат.
Чтобы получить и декодировать EDID, сначала проверьте xrandr вывод на выяснить используемый интерфейс (например eDP-1) и apt install edid-decode, затем:
edid-decode </sys/class/drm/card0-eDP-1/edid
Пример вывода, который вы можете найти здесь. Замените eDP-1 с вашим интерфейсом, если это необходимо.
Альтернативно, xrandr --prop выводит EDID в шестнадцатеричном формате, который вы можете передать в этот онлайн Декодер EDID.
Я не рекомендую использовать read-edid пакет, потому что у меня был негативный опыт работы с ним (версия 3.0.2). В моем случае, get-edid выводит дополнительные символы после окончания, которые приводят к предупреждению от edid-decode и parse-edid выводит случайный мусор в ModelName и Identifier поля.