Начну с того, что в проприетарных драйверах для видеокарт NVIDIA выше версии 175 существует одна неприятная проблема: при загрузке с выключенным монитором отсутствует какой-либо сигнал к монитору вообще. То есть если уже после загрузки операционной системы включить монитор, от он просто перейдет в режим экономии, словно никуда и не подключен. Причем эта проблема наблюдается как в Windows, так и в операционных системах на базе ядра Linux.
А зачем включать компьютер с выключенным монитором? - спросите Вы.
Объясню мой случай. Я являюсь
счастливым обладателем внешнего ТВ-тюнера AverTV Box9. При этом тюнер подключен к видеокарте, а монитор — к тюнеру. То есть подключение последовательное.
Если ТВ-тюнер выключен или используется технология «кадр в кадре» (PiP), то это эквивалентно прямому подключению монитора к видеокарте. Но если тюнер работает и не используется PiP, то монитор оказывается недоступен для видеокарты. Тут и всплывает упомянутая мною проблема. А ведь так велико желание во время долгой минутной загрузки просмотреть что идет по любимым каналам. Но приходилось терпеливо ждать загрузки и входа в систему.
Представляю Вашему внимание решение этой небольшой проблемы для Ubuntu с установленным проприетарным драйвером NVIDIA версии выше 175. Оно было найдено в одном англоязычном блоге и адаптировано мной. Вот ссылка на оригинал
http://markbrewster.wordpress.com/2010/02/04/ubuntu-9-10-not-starting-up-at-full-resolution-with-tv-turned-off/.
Для начала, из-за чего такое происходит. При загрузке видеокарта запрашивает с монитора информацию о его возможностях (разрешение, частота), содержащихся в EDID. Если монитор выключен (не доступен), то видеокарта переходит в безопасный режим и почему-то не дает вообще никакого сигнала.
Какое напрашивается решение? Правильно! Сохранить настройки для монитора куда-нибудь на жесткий диск и загружать информацию оттуда.
Итак, приступим.
Заранее опишу свою конфигурацию:
Монитор: LG L1952T
Видеокарта: NVIDIA GeForce 9600GT
ОС: Ubuntu 10.04 i386
Видеодрайвер: 195.36.24 (current)
Помните, эти действия опасны. Вы всё делаете на свой же страх и риск. Поэтому, прежде чем следовать этим рекомендациям, прочитайте всю статью полностью. И советую распечатать эту статью для удобства.Во первых, убедитесь, что у Вас установлен ssh-сервер (если нет, выполните в Терминале
sudo apt-get install ssh). Так Вы сможете восстановить настройки без работающей графической системы.
Во-вторых, сделайте резервную копию файла «/etc/X11/xorg.conf». Для этого в Терминале выполните:
cd /etc/X11
sudo chmod 777 xorg.conf
sudo mv xorg.conf xorg.conf.original
Теперь надо создать новый «xorg.conf», так как старый мы переименовали:
sudo nvidia-xconfig
Запустите NVIDIA X Server Settings:
sudo nvidia-settings
Убедитесь, что к видеокарте не подсоединено ничего лишнего, кроме монитора (в моем случае монитор должен быть подсоединен через тюнер), то есть всё установлено так, как и должно в дальнейшем использоваться.
В NVIDIA X Server Settings перейдите во вкладку «X Server Display Configuration» и проверьте правильность выбора разрешения и частоты.
Кликните на кнопку «Advanced...».
Запишите где-нибудь «Model» (в моем случае «LG L1952T (
CRT-0 on GPU-0)», конкретно запомните значение, выделенное у меня жирным шрифтом, у Вас оно скорее всего другое. Далее везде, где упоминается у меня «CRT-0» Вы должны ставить своё значение) и «Mode Name» (у меня «1280x1024_60»).
Кликните на кнопку «Save to X Configuration File» и сохраните в «/etc/X11/xorg.conf»
Теперь перезагрузите компьютер с включенным монитором.
Далее нужно сохранить информацию EDID Вашего монитора. Снова открываем NVIDIA X Server Settings:
sudo nvidia-settings
Переходим на вкладку с настройками для Вашей модели монитора (В моём случае вкладка «CRT-0 — (LG L1952T)»). Кликните на «Acquire EDID» и сохраните файл в папку «/root».
Модифицируем «/etc/X11/xorg.conf» для использования сохраненных настроек:
cd /etc/X11
sudo chmod 777 xorg.conf
sudo gedit xorg.conf
В секцию «Device» я добавил:
Option "CustomEDID" "CRT-0:/root/edid.bin" (Вместо «
CRT-0» Вы должны написать своё значение из тех, которые Вы записали из «X Server Display Configuration» из поля «Model»).
Секция «Device» должна принять подобный вид:
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 9600 GT"
Option "CustomEDID" "CRT-0:/root/edid.bin"
EndSectionСнова перезагрузите компьютер. Если загрузка прошла нормально, то будем двигаться дальше.
Далее нужно установить использование DVI-интерфейса.
В файле «/etc/X11/xorg.conf» в секции «Screen» добавьте следующие строки:
Option "ConnectedMonitor" "CRT-0"
Option "ExactModeTimingsDVI" "TRUE"(Вместо «
CRT-0» напишите своё значение).
Удаляем из той же секции «Screen» все строки, содержащие «metamodes» (помните, что gedit умеет переносить строки).
И записываем вместо них одну строку:
Option "metamodes" "CRT-0: 1280x1024_60 +0+0"(Здесь «
CRT-0» замените на Ваше значение из поля «Model» в «X Server Display Configuration», а «
1280x1024_60» замените на значение из поля «Mode Name»).
После вышеописанных действий секция «Screen» должна выглядеть подобным образом:
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "ConnectedMonitor" "CRT-0"
Option "ExactModeTimingsDVI" "TRUE"
Option "TwinViewXineramaInfoOrder" "CRT-0"
Option "metamodes" "CRT-0: 1280x1024_60 +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSectionИ последний этап.
Перезагрузите компьютер с включенным монитором. Если загрузка прошла нормально, то повторите то же самое с выключенным монитором. После включения монитора Вы должны получить корректное разрешение, частоту и, главное, саму картинку.
Если вдруг будут проблемы, проверьте лог-файл в «/var/log/Xorg.0.log».