Вопрос или проблема
Я использую ноутбук без подключенных дополнительных мониторов, но когда я запускаю xrandr -q
, вывод показывает два подключенных устройства. Диалог настроек дисплея Xfce также отображает два монитора, как и Xorg.0.log.
Вот вывод xrandr -q
:
eDP-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
1920x1080 60.00*+ 59.97 59.96 59.93 48.00
1680x1050 59.95 59.88
1600x1024 60.17
(пропускаем много других разрешений)
DP-1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1024x768 60.00*
800x600 60.32 56.25
848x480 60.00
640x480 59.94
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
Это нормально? Если нет, что я могу сделать, чтобы удалить этот воображаемый монитор? Перезагрузка ноутбука (без внешних мониторов, подключенных в любое время) ничего не меняет.
(Мой догадка состоит в том, что что-то в этом вызывает странную проблему с отображением, которая у меня есть – экран входа начинается с неправильного разрешения, а затем разрешение корректируется, но размеры виртуального рабочего стола неверные.)
Вот строки из Xorg.0.log, имеющие отношение к этому – DP-1 (воображаемый монитор) не имеет EDID, но он указан как подключенный с начальным режимом 1024×768, и, похоже, как-то заставляет eDP-1 (фактический монитор ноутбука) использовать начальный режим 1024×768 вместо 1920×1080; затем он по какой-то причине классифицируется как клавиатура:
[ 13.093] (II) modeset(0): Output eDP-1 has no monitor section
[ 13.921] (II) modeset(0): Output DP-1 has no monitor section
[ 13.921] (II) modeset(0): Output DP-2 has no monitor section
[ 13.921] (II) modeset(0): Output DP-3 has no monitor section
[ 13.923] (II) modeset(0): EDID for output eDP-1
[ 13.923] (II) modeset(0): Manufacturer: BOE Model: 853 Serial#: 0
[ 13.923] (II) modeset(0): Year: 2018 Week: 48
[ 13.923] (II) modeset(0): EDID Version: 1.4
(пропускаем много другой информации о EDID для eDP-1)
[ 13.924] (II) modeset(0): Printing probed modes for output eDP-1
[ 13.924] (II) modeset(0): Modeline "1920x1080"x60.0 141.72 1920 1968 2000 2124 1080 1083 1089 1112 +hsync -vsync (66.7 kHz eP)
[ 13.924] (II) modeset(0): Modeline "1920x1080"x119.9 266.50 1920 1944 1960 2000 1080 1081 1084 1111 doublescan +hsync -vsync (133.2 kHz d)
[ 13.924] (II) modeset(0): Modeline "1920x1080"x60.0 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync (67.2 kHz d)
(пропускаем много других модельных линий для eDP-1)
[ 14.754] (II) modeset(0): EDID for output DP-1
[ 14.754] (II) modeset(0): Printing probed modes for output DP-1
[ 14.755] (II) modeset(0): Modeline "1024x768"x60.0 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz e)
[ 14.755] (II) modeset(0): Modeline "800x600"x60.3 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz e)
[ 14.755] (II) modeset(0): Modeline "800x600"x56.2 36.00 800 824 896 1024 600 601 603 625 +hsync +vsync (35.2 kHz e)
[ 14.755] (II) modeset(0): Modeline "848x480"x60.0 33.75 848 864 976 1088 480 486 494 517 +hsync +vsync (31.0 kHz e)
[ 14.755] (II) modeset(0): Modeline "640x480"x59.9 25.18 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e)
[ 14.755] (II) modeset(0): EDID for output DP-2
[ 14.755] (II) modeset(0): EDID for output DP-3
[ 14.755] (II) modeset(0): Output eDP-1 connected
[ 14.755] (II) modeset(0): Output DP-1 connected
[ 14.755] (II) modeset(0): Output DP-2 disconnected
[ 14.755] (II) modeset(0): Output DP-3 disconnected
[ 14.755] (II) modeset(0): Using fuzzy aspect match for initial modes
[ 14.755] (II) modeset(0): Output eDP-1 using initial mode 1024x768 +0+0
[ 14.755] (II) modeset(0): Output DP-1 using initial mode 1024x768 +0+0
(пропускаем много строк, которые, похоже, не относятся к делу - дайте знать, если я должен вставить всё это)
[ 15.141] (II) config/udev: Adding input device DP-1 (/dev/input/event10)
[ 15.142] (**) DP-1: Applying InputClass "libinput keyboard catchall"
[ 15.142] (II) Using input driver 'libinput' for 'DP-1'
[ 15.142] (**) DP-1: always reports core events
[ 15.142] (**) Option "Device" "/dev/input/event10"
[ 15.142] (**) Option "_source" "server/udev"
[ 15.144] (II) event10 - DP-1: is tagged by udev as: Keyboard Pointingstick
[ 15.144] (II) event10 - DP-1: device is a pointer
[ 15.144] (II) event10 - DP-1: device is a keyboard
[ 15.145] (II) event10 - DP-1: device removed
[ 15.161] (II) libinput: DP-1: needs a virtual subdevice
[ 15.162] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:02.0/rc/rc0/input11/event10"
[ 15.162] (II) XINPUT: Adding extended input device "DP-1" (type: MOUSE, id 9)
[ 15.162] (**) Option "AccelerationScheme" "none"
[ 15.162] (**) DP-1: (accel) selected scheme none/0
[ 15.162] (**) DP-1: (accel) acceleration factor: 2.000
[ 15.162] (**) DP-1: (accel) acceleration threshold: 4
[ 15.164] (II) event10 - DP-1: is tagged by udev as: Keyboard Pointingstick
[ 15.165] (II) event10 - DP-1: device is a pointer
[ 15.165] (II) event10 - DP-1: device is a keyboard
К сожалению, мой Xorg.0.log.old датируется тем же днем и имеет те же проблемы, но я нашел Xorg.1.log.old за прошлый год, в котором нет этих проблем. Он показывает тот же eDP-1, но не показывает никакой информации для DP-1, не классифицирует его как клавиатуру и не указывает, что он подключен, и начальное разрешение дисплея было 1920×1080 (что и должно быть):
[ 942.577] (II) modeset(0): EDID for output DP-1
[ 942.577] (II) modeset(0): EDID for output DP-2
[ 942.577] (II) modeset(0): EDID for output DP-3
[ 942.577] (II) modeset(0): Output eDP-1 connected
[ 942.577] (II) modeset(0): Output DP-1 disconnected
[ 942.577] (II) modeset(0): Output DP-2 disconnected
[ 942.577] (II) modeset(0): Output DP-3 disconnected
[ 942.577] (II) modeset(0): Using exact sizes for initial modes
[ 942.577] (II) modeset(0): Output eDP-1 using initial mode 1920x1080 +0+0
Я использую ThinkPad P1 с Xubuntu 20.04 и Xfce 4.14.
Это не очень хороший ответ, потому что проблема, похоже, разрешилась сама собой после нескольких часов, проведенных в раздумьях и поисках решений, но не после того, как я реализовал новое решение, поэтому я не могу точно сказать, что помогло. Но на случай, если кто-то столкнется с аналогичной проблемой, вот единственные более-менее значимые вещи, которые я сделал между перезагрузкой, которая все еще имела проблему, и перезагрузкой, которая её исправила:
- Я зашел в командную строку grub и попробовал команду
videoinfo
(которая выдала мне “error: Secure Boot forbids loading module”) - Я зашел в утилиту настройки BIOS и посмотрел настройки дисплея – я оставил их на том же значении, на котором они были изначально (“laptop LCD”), но, возможно, просто зайдя в это меню, я вызвал проверку чего-то?
Таким образом, возможно, одно из этих действий исправило проблему – стоит сделать их, если у вас такая же проблема. Или, возможно, это было совершенно не связано с тем, что я делал.
В любом случае, мой Xorg.0.log и xrandr -q снова показывают только один подключенный монитор, и все выглядит нормально, а моя странная проблема с отображением исчезла.
[ 7.927] (II) modeset(0): Output eDP-1 connected
[ 7.927] (II) modeset(0): Output DP-1 disconnected
[ 7.927] (II) modeset(0): Output DP-2 disconnected
[ 7.927] (II) modeset(0): Output DP-3 disconnected
[ 7.927] (II) modeset(0): Using exact sizes for initial modes
[ 7.927] (II) modeset(0): Output eDP-1 using initial mode 1920x1080 +0+0
Кроме того: второй раз, когда эта проблема произошла, она была исправлена, когда у моего ноутбука села батарея. (Я не знаю, исправила бы нормальная перезагрузка это в тот раз – я не пробовал, поскольку в первый раз, когда у меня возникла эта проблема, перезагрузка только усугубила её.)
Из ArchWiki: xrandr:
В некоторых случаях система может обнаружить несуществующий монитор. Чтобы отключить его, найдите название воображаемого вывода, например VGA1, и отключите его с помощью
$ xrandr --output VGA1 --off
Чтобы сделать это постоянным, добавьте следующее в запись в
/etc/X11/xorg.conf.d/:/etc/X11/xorg.conf.d/10-monitor.conf Section "Monitor" Identifier "VGA1" Option "Ignore" "true" EndSection
Ответ или решение
Почему Xorg и xrandr обнаруживают несуществующий монитор?
Когда вы подключаете ноутбук без внешних дисплеев, но команда xrandr -q
выводит список подключенных мониторов, включая несуществующий (фантомный), это может быть довольно запутывающей ситуацией. В контексте вашей ситуации необходимо рассмотреть несколько аспектов, чтобы понять, почему это происходит и как это можно исправить.
1. Причины возникновения проблемы
Фантомные мониторы, такие как ваш DP-1, могут быть результатом:
- Ошибок в конфигурации Xorg. Возможно, драйвер видеокарты или настройки конфигурации Xorg неверно распознают определенные выходы.
- Кэширования состояния устройства. Информация о видеовыходах может кэшироваться в системе, что приводит к неправильной интерпретации доступных дисплеев.
- Проблем с драйверами. Иногда неправильная или устаревшая версия драйвера видеокарты может привести к распознаванию несуществующего оборудования.
- Неправильных настроек BIOS. Некоторые настройки оборудования, находящиеся в BIOS, могут влиять на то, как система определяет видеовыходы.
2. Пошаговое решение
Чтобы избавиться от фантомного монитора и восстановить правильное функционирование отображения, можно воспользоваться некоторыми методами.
Метод 1: Отключение фантомного монитора
Вы можете попробовать отключить фантомный вывод с помощью команды xrandr
:
xrandr --output DP-1 --off
Это временное решение, которое позволяет немедленно отключить отображение фантомного монитора.
Метод 2: Настройка конфигурации Xorg
Чтобы сделать отключение фантомного монитора постоянным, вы можете добавить соответствующий раздел в конфигурационный файл Xorg. Для этого создайте или отредактируйте файл /etc/X11/xorg.conf.d/10-monitor.conf
следующим образом:
Section "Monitor"
Identifier "DP-1"
Option "Ignore" "true"
EndSection
Этот подход позволит системе игнорировать указанный выход при загрузке.
Метод 3: Чистка кеша конфигурации
Иногда перезагрузка системы или даже отключение питания может очистить состояние устройств и устранить ошибки. Попробуйте следующее:
- Выключите ноутбук и полностью отключите его от сети.
- Нажмите и удерживайте кнопку питания в течение 10 секунд для сброса оставшейся энергии.
- Запустите систему без подключенных внешних мониторов.
Метод 4: Проверка BIOS
Если проблема не решается, проверьте настройки BIOS:
- Перезагрузите систему и войдите в BIOS во время загрузки (обычно клавиша F1, F2, Del или Esc).
- Просмотрите настройки по выводу видео. Убедитесь, что значение для встроенного дисплея установлено правильно (обычно "Laptop LCD").
- Сохраните изменения и перезагрузите систему.
3. Примечания и рекомендации
- Обратите внимание на версию драйвера видеокарты. Убедитесь, что вы используете актуальные и подходящие драйвера для вашей видеокарты.
- Если проблема возникает повторно, может быть полезным обратиться к сообществу пользователей или разработчикам ваших дистрибутивов Linux, так как подобные проблемы могут быть специфичными для определенных аппаратных конфигураций.
Заключение
Проблема с обнаружением фантомного монитора может вызывать множество неудобств, особенно когда это влияет на разрешение экрана и общую функциональность системы. Применив описанные методы, вы сможете значительно улучшить управление дисплеем на вашем ноутбуке, минимизируя вероятность повторного возникновения таких ситуаций.