Как перечислить подключенные дисплеи с помощью командной строки?

Вопрос или проблема

Существует ли команда, которая будет перечислять дисплеи, подключенные к компьютеру?

В частности, я хочу узнать, как система распознает мой внешний монитор при подключении через HDMI и каков его (не уверен в правильном термине) аппаратный адрес (например, “CRT-0” или “DFP-1”).

Это просто общий вопрос, но для справки я использую:

  • ноутбук Asus UL30JT – работает под управлением Ubuntu 12.04 beta и 11.10
  • монитор Asus PA238 23″
  • кабель HDMI 1.4
  • графика Optimus (Intel + nVidia GeForce 310M) – работает с Bumblebee

Попробуйте это:

xrandr --query
xrandr --listactivemonitors

Эта команда перечисляет имена дисплеев и доступные разрешения. Вы также можете перенастроить свои дисплеи с помощью xrandr.

Обратите внимание, что это может не сработать, если вы используете драйвера ATI; я не уверен.

Для большинства машин с загруженным проприетарным драйвером /usr/lib/nvidia-current/bin/nvidia-xconfig --query-gpu-info --nvidia-cfg-path=/usr/lib/nvidia-current работает. Обратите внимание, что я сказал “с загруженным проприетарным драйвером”. Например, это не сработает, если драйвер выгружен или загружен nouveau. Поэтому, при использовании Bumblebee, запустите optirun /usr/lib/nvidia-current/bin/nvidia-xconfig --query-gpu-info. Часть --nvidia-cfg-path здесь не нужна, так как optirun устанавливает правильный путь к библиотеке.

Смотрите также обсуждение на https://github.com/Bumblebee-Project/Bumblebee/issues/21

/var/log/Xorg.0.log (где 0 – это номер дисплея) может также содержать ценную информацию о доступных экранах. Для ноутбуков Optimus этот журнал содержит только данные о экране Intel, поэтому замените 0 на 8, чтобы узнать журнал от X-сервера, запущенного Bumblebee.

Все остальные ответы работают только в определенных ситуациях.

Ответ @ams требует, чтобы переменная окружения $DISPLAY была установлена, и, следовательно, не работает через SSH.

Ответ @Lekensteyn, очевидно, работает только с графическими процессорами nvidia.

Универсальное решение для систем, работающих на X-сервере дисплея

Единственное верное решение – это посмотреть открытые юникс-сокеты дисплея X-сервера, то есть перечислить директорию /tmp/.X11-unix/

Например:

root@host # ls /tmp/.X11-unix/
total 0
srwxrwxrwx 1 root root 0 Apr  2 01:06 X0
srwxrwxrwx 1 root root 0 Apr  2 01:06 X1

Это означает, что два дисплея, соответственно именуемые :0 и :1, подключены к машине.

Ответ или решение

Чтобы получить список подключенных дисплеев через командную строку в операционной системе Ubuntu, вы можете воспользоваться несколькими командами. Вот несколько способов, которые могут помочь вам узнать, как ваша внешняя монитора определяется системой, и выяснить его идентификатор (например, "CRT-0" или "DFP-1").

Способы получения информации о подключенных дисплеях:

  1. Использование команды xrandr:
    Эта команда позволяет показать информацию о подключенных дисплеях, а также доступных разрешениях.

    xrandr --query

    Эта команда выведет список дисплеев, их названия и доступные разрешения.

    В дополнение, вы можете использовать:

    xrandr --listactivemonitors

    Это покажет список активных мониторов.

  2. Для систем с установленными проприетарными драйверами NVIDIA:
    Если вы используете NVIDIA и у вас загружен проприетарный драйвер, вы можете воспользоваться командой:

    /usr/lib/nvidia-current/bin/nvidia-xconfig --query-gpu-info

    Если вы используете Bumblebee, вам потребуется выполнить следующую команду:

    optirun /usr/lib/nvidia-current/bin/nvidia-xconfig --query-gpu-info

    Это предоставит информацию о GPU и подключенных дисплеях.

  3. Проверка логов X сервера:
    Вы можете просмотреть лог-файлы X сервера, чтобы найти информацию о подключенных дисплеях. В общем случае, файл лога находится по пути:

    /var/log/Xorg.0.log

    Если вы используете Bumblebee, замените 0 на 8 для доступа к логам X сервера, запущенного Bumblebee:

    /var/log/Xorg.8.log
  4. Просмотр сокетов X серверов:
    Если вам нужна универсальная команда, вы можете посмотреть на открытые клиентские сокеты дисплея, используя:

    ls /tmp/.X11-unix/

    Например, результат может выглядеть так:

    total 0
    srwxrwxrwx 1 root root 0 Apr  2 01:06 X0
    srwxrwxrwx 1 root root 0 Apr  2 01:06 X1

    Это означает, что на машине подключены два дисплея, соответственно называемые :0 и :1.

Заключение

С помощью вышеперечисленных команд вы сможете получить полную информацию о подключенных дисплеях на вашем компьютере под управлением Ubuntu, а также идентификаторы дисплеев, которые могут быть полезны для настройки или устранения неполадок.

Оцените материал
Добавить комментарий

Капча загружается...