Не обновлять настройки дисплея при отключении внешнего монитора


8

Когда я отсоединяю свой монитор от ноутбука, Ubuntu все еще думает, что он подключен и не обновляет дисплей. Эта проблема специфична для Ubuntu (не встречается в Windows), и мой монитор работал нормально с другим ноутбуком (Ubuntu 13.04, точно такие же драйверы).

Быстрое исправление:

  • открытый system settings
  • щелчок Displays

Полезные характеристики:

  • Драйверы графики : nvidia-313 (проблема также возникает с другими проприетарными драйверами)
  • Видеокарта : Nvidia Quadro K1000M
  • Монитор : Benq ET-0019-N
  • Кабель : VGA D-sub DE15
  • ОС : Ubuntu 13.04

Я хотел бы, чтобы Ubuntu автоматически обновлял настройки дисплея всякий раз, когда кабель монитора отключается. Как бы я это сделал?


Что это за монитор? Некоторые старые мониторы не посылают никаких сигналов, поэтому компьютер не знает, находится ли он там, но я не думаю, что их осталось много. Кроме того, какая у вас модель видеокарты, и используете ли вы проприетарный драйвер или бесплатный драйвер?
Жиль "ТАК - перестань быть злым"

Я отредактировал свой вопрос, чтобы ответить на ваш.
Джорен

1
Настройки дисплея обновляются, когда вы запускаете компьютер без кабеля, а затем подключаете его? Если нет, обновляются ли они при вводе команды xrandrвручную?
Хорхе Суарес де Лис

Вы не можете попробовать другой монитор и кабель? Я знаю, что это работает на Windows, но, может быть, Windows использует другой метод для автоматического определения.
Хорхе Суарес де Лис,

У меня нет другого монитора :(
Joren

Ответы:


2

На Launchpad есть старая ошибка - ошибка № 306735, которая была помечена как недействительная, объяснение состоит в том, что это известная проблема, но довольно сложная (более подробное объяснение здесь ).

Итак, насколько я знаю, не существует автоматического метода для того, что вы просили в истинном смысле. Но вы можете использовать autorandr(вы должны disperсначала установить - запустить sudo apt-get install disperиз терминала ) сценарий Штефана Томанека . Используя этот скрипт ( autorandr), вы можете добавить сочетание клавиш для autorandr --changeкоманды, и все, что вам нужно сделать, когда вы подключаете или отключаете внешний монитор, - это нажимаете это сочетание клавиш. Все это очень хорошо объясняется в этом ответе (я только что проверил в Ubuntu 13.04, и все идет хорошо).

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


Я уже установил дисперсию, но autorand не был найден
Joren

@Joren Что ты имеешь в виду, когда не был найден? Это скрипт по данной ссылке в ответе. Вам нужна помощь о том, как использовать или запустить его?
Раду Рэдяну

О, неважно, я думал, что это произошло автоматически с Диспер
Joren

@ Джорен Нет, это не так (я думал, что мой ответ ясен). Вы должны вручную создать файл-скрипт с именем autorandrили autodisper, поместить весь текст отсюда в точности так, как он есть, и сохранить его в своем ~/binкаталоге. Не забудьте сделать его исполняемым с помощью: chmod +x ~/bin/autorandr(или chmod +x ~/bin/autodisper), а затем просто запустить autorandr --help(или autodisper --help) для получения дополнительной помощи.
Раду Рэдяну

1
У меня все еще была эта проблема с использованием 16.04! = / Это disperвсе еще вокруг, но мне пришлось запустить что-то вроде, disper -eи все вернулось к работе, даже приложение Display.
Нигини

1

Если вы используете какой-то вариант проприетарного драйвера nvidia, то, как уже упоминалось в ответе Хорхе, кажется, что только запуск сам xrandrпо себе решает проблему.


1

Из приложения B в драйвере NVIDIA README :

Option "UseHotplugEvents" "boolean"

Когда эта опция включена, драйвер NVIDIA X будет генерировать измененные события дисплея RandR, когда дисплеи подключены или отключены от графического процессора NVIDIA. Некоторые среды рабочего стола будут прослушивать эти события и динамически перенастраивать рабочий стол при добавлении или удалении дисплеев.

Отключение этой опции подавляет генерацию этих событий RandR для дисплеев не DisplayPort, т. Е. Подключенных через VGA, DVI или HDMI. События горячей замены не могут быть подавлены для дисплеев, подключенных через DisplayPort.

Обратите внимание, что проверка конфигурации дисплея (например, с помощью xrandr или nvidia-settings) может привести к генерации измененных событий дисплея RandR независимо от того, включена эта опция или нет. Кроме того, некоторые порты VGA не способны обнаруживать «горячие» подключения: на таких портах добавление или удаление дисплеев можно обнаружить только путем повторного исследования конфигурации дисплея.

По умолчанию: вкл. Драйвер будет генерировать события RandR при добавлении или удалении дисплеев.

Итак, если вы не отключили эту опцию, проблема сужается до одной из следующих альтернатив:

  • У кабеля VGA или разъема VGA на карте повреждены некоторые контакты DDC (либо контакт 12, 15 или 9). Пожалуйста, подключите другой кабель VGA и попробуйте снова.

  • Ваша видеокарта на базе Nvidia Quadro K1000M имеет разъем, который НЕ поддерживает это обнаружение, и вызовы xrandrили эквиваленты (как при открытии настроек дисплея) запускают это обнаружение. Если это так, то это никогда не сработает, но обнаружение не должно работать и в других операционных системах. Впрочем, никогда не видел этого лично.

  • Или, может быть, есть какая-то ошибка в драйвере NVIDIA, которая мешает этому обнаружению работать должным образом. Попробуйте использовать другие версии драйверов (например, 304) и посмотрите, сохраняется ли проблема.


Спасибо за ваш ответ, но, как я уже сказал в своем вопросе: проблема не возникает при загрузке моей машины в Windows. Таким образом, мы можем исключить первые две альтернативы. Я также попробовал третий вариант, и он не сработал.
Джорен

Хорошо. Это неправильный ответ, но попытка помочь вам: пока вы ждете ответа, спросите также на форуме NVIDIA Linux .
Хорхе Суарес де Лис

Спасибо за предложение. ( Devtalk.nvidia.com/default/topic/606465/linux/... )
Joren
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.