Вопрос или проблема
Существует ли команда, которая будет перечислять дисплеи, подключенные к компьютеру?
В частности, я хочу узнать, как система распознает мой внешний монитор при подключении через 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").
Способы получения информации о подключенных дисплеях:
-
Использование команды
xrandr
:
Эта команда позволяет показать информацию о подключенных дисплеях, а также доступных разрешениях.xrandr --query
Эта команда выведет список дисплеев, их названия и доступные разрешения.
В дополнение, вы можете использовать:
xrandr --listactivemonitors
Это покажет список активных мониторов.
-
Для систем с установленными проприетарными драйверами 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 и подключенных дисплеях.
-
Проверка логов X сервера:
Вы можете просмотреть лог-файлы X сервера, чтобы найти информацию о подключенных дисплеях. В общем случае, файл лога находится по пути:/var/log/Xorg.0.log
Если вы используете Bumblebee, замените
0
на8
для доступа к логам X сервера, запущенного Bumblebee:/var/log/Xorg.8.log
-
Просмотр сокетов 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, а также идентификаторы дисплеев, которые могут быть полезны для настройки или устранения неполадок.