Linux для пользователя - Виктор Костромин
Шрифт:
Интервал:
Закладка:
[root]# X -probeonly › probe.log 2›&1
и заглянув в файл probe.log, вы увидите, какие режимы для вас недоступны (обычно это режимы с высоким разрешением, типа 1600* 1200).
Давайте теперь отыщем в файле probe.log две строки следующего вида (цифры у вас, конечно, могут быть другими):
(--) MGA(0): Virtual size is 640x480 (pitch 640)
(**) MGA(0): Default mode "640x480": 25.2 MHz, 31.5 kHz, 60.0 Hz
а также строку вида (она находится где-то отдельно от двух предыдущих)
(**) MGA(0): Depth 24, (-) framebuffer bpp 24
В совокупности эти три строки указывают на то, что у вас (точнее, у меня) используется глубина цвета 24 и разрешение экрана "640 x 480" с частотой обновления картинки 60 Гц. Такие параметры совершенно неудовлетворительны, поэтому снова обращаемся к корректировке /etc/X11/XF86Config-4. Вначале надо задать нужную глубину цвета. Естественно, побольше. Предельно допустимое значение определяется объемом видеопамяти. О том, как его рассчитать, было сказано в предыдущем подразделе.
В файле /etc/X11/XF86Config-4 для каждой глубины цвета задается своя подсекция Display в секции Screen. Выбор нужной подсекции определяется строкой вида
DefaultColorDepth 24
секции Screen. Чтобы изменить разрешение экрана, например, на значение 1024 x 768, вставляем во все подсекции Display секции Screen строку
Modes "1024x768"
(разрешение выбираете по своему вкусу из стандартного ряда "640 x 350", "640 x 400", "640 x 480", "800 x 600", "1024 x 768", "1152 x 864", "1280 x 1024", "1600 x 1200" и т.д.). Можно ограничиться добавлением только одной такой строки в ту подсекцию Display, которая задана строкой DefaultDepth (или DefaultColorDepth). После этого снова выполняем команду
[root]# X -probeonly › probe.log 2›&1
чтобы убедиться, что нет грубых ошибок, и, если таковых нет, можем рискнуть и запустить графический режим командой X.
Надо иметь в виду, что отсутствие указаний на ошибки еще не гарантирует успешный запуск графического режима. Если результатом этой команды снова будет черный экран, то выйдите из графического режима с помощью комбинации ‹Ctrl›+‹Alt›+‹Backspace› и снова внимательно проанализируйте вывод команды
[root]# X -probeonly › probe.log 2›&1
Если графический режим не запускается, попытайтесь задать меньшее разрешение или меньшую глубину цвета. Обычно таким образом удается добиться успешного запуска графического режима при желаемом разрешении "1024 x 768".
Но может быть и иначе. У меня, например, на одном из компьютеров никак не удавалось запустить графический режим с разрешением "1024 x 768", графическая оболочка нормально загружалась только при разрешении "800 x 600", а при более высоком - загрузка осуществлялась, но экран дрожал и трясся. С этой проблемой мне удалось справиться путем явного задания строки Modeline в секции Monitor и подбора указанных в ней значений параметров. Делал я это следующим образом. Вначале, не обращая внимания на мерцание и дрожание экрана, запустил графический режим и программу xvidtune (о ней будет рассказано ниже). С ее помощью (кнопка "Show") определил, что по умолчанию используется режим, имеющий следующие параметры:
# 1024x768 @ 85 Hz, 68.31 kHz hsync
Modeline "1024x768" 94.5 1024 1072 1168 1376 768 769 772 808 +hsync
Я прописал эти две строки явным образом в секции Монитор и стал менять различные параметры строки Modeline. В конце концов, удалось определить, что причиной дрожания изображения являлась слишком высокая частота тактового генератора (DotClock) - 94.5 МГц. Уменьшение ее до 94 МГц привело к стабилизации изображения. Частота обновления экрана при этом снизилась до 84,55 Гц, но это, на мой взгляд, несущественно. Впрочем, при желании ее можно даже повысить, если еще поэкспериментировать с программой xvidtune. Я же этим ограничился, а окончательную корректировку изображения провел с помощью аппаратных средств монитора.
О программе xvidtune надо рассказать отдельно. Эта программа очень полезна для окончательного выбора оптимального видеорежима. Но запустить её можно только после того, как запустится графический режим. Выйдите в графический режим командой startx и запустите xvidtune в окне эмулятора терминала. Вы увидите вначале суровое предупреждение:
Рис. 7.2. Первое сообщение программы xvidtune
в котором сообщается, что ни разработчик программы, ни XFree86 Project Inc. не несут никакой ответственности за последствия ее применения. И если вы не понимаете, что делаете, то лучше не беритесь! Говорят, что на старых типах мониторов неправильной установкой параметров можно добиться того, что ваш монитор начнет дымиться (за счет неправильной установки частот синхронизации, насколько я понимаю). Но я надеюсь, что вы будете достаточно осторожны и семь раз подумаете, прежде чем применить какое-то значение режима. Если так, то вперед!
Закрываем окно с предупреждением (кнопка OK) и видим основное окно программы xvidtune (рис. 7.3).
Рис. 7.3. Основное окно программы xvidtune
Теперь вы можете начать настраивать изображение на мониторе. Если вы хотите сместить его вправо, то щелкните мышкой по кнопке Right (обратите внимание на изменение некоторых цифр в окне программы), а затем по кнопке Apply. Вы увидите, что изображение сдвинется вправо. Аналогично можно подвинуть его влево (кнопка Left), вверх (Up) и вниз (Down). Можно также увеличить размер изображения по горизонтали (Wider) или вертикали (Taller) и, наоборот, уменьшить (соответственно Narrower и Shorter).
Запомните, что первоначальные установки можно всегда вернуть нажатием клавиши R или щелчком по кнопке Restore. Эта возможность особенно полезна в тех случаях, когда необходимо восстановить стабильный режим работы после слишком кардинальных изменений, когда изображение на экране пропадает вовсе или начинает мелькать. Кнопка Fetch служит для запроса текущих значений установок режима работы монитора.
Кнопка Auto является переключателем, т. е. в режиме Auto (изображение кнопки инвертируется, т. е. отображается белыми буквами на черном фоне) нажатие на кнопки Up/Down/Right/Left и Wider/Narrower/Shorter/Taller приводит к немедленному (без щелчка по кнопке Apply) изменению размера или положения изображения. Кнопка Test временно переключает установки в указанные значения. Кнопка Show служит для того, чтобы вывести выбранные значения на стандартный вывод (практически - в окно эмулятора терминала, из которого была запущена программа). Строка выводится в формате "Modeline", т. е. в том виде, как она должна быть записана в файле XF86Config. Кнопка Next переключает X-сервер в следующий видеорежим, а кнопка Prev - в предыдущий видеорежим (как они заданы в строке "Modes").
После того, как вы подобрали оптимальные с вашей точки зрения значения параметров видеорежима, запишите эти значения на бумагу. Не забудьте записать и приведенные в правом нижнем углу значения частот вертикальной и горизонтальной синхронизации. Формально они не нужны, но обычно пишутся в комментарии к строке "Modeline". На всякий случай нажмите кнопку Show и завершите работу программы нажатием кнопки Quit. После этого осталось проверить, правильно ли вы записали значения и вписать новую строку "Modeline" в файл XF86Config.
Теперь еще обратите внимание на то, что как бы мы не изменяли положение изображения, остается неизменным значение Pixel Clock в правом нижнем углу окна программы xvidtune. Этот параметр не поддается изменению в рамках программы xvidtune. Но после того, как выбраны размеры и положение изображения на экране, можно и нужно рассчитать наилучшее значение этого параметра. Принцип расчета прост: берем максимально допустимое для вашего монитора значение частоты горизонтальной синхронизации и делим его на размер фрейма по горизонтали (это последнее число в группе HTimings), выданное программой xvidtune. Это предельно допустимое значение частоты DotClock, которое может быть задано в строке "Modeline". Для перестраховки я немного округляю это значение в сторону уменьшения, чтобы не превысить максимальное значение частоты горизонтальной синхронизации. На этом формирование строки "Modeline" можно считать завершенным.
Аналогично можно подобрать значения для других таких строк (для других разрешений), но, честно признаюсь, что мне эксперименты по изменению видеорежимов через некоторое время наскучили. Я выбрал для себя один режим работы дисплея и успокоился. Думаю, что так же будет и у вас. Но прежде, чем затвердить свой выбор, создайте по одной подсекции Display для каждого из возможных значений глубины цвета. В файле XF86Config имеется как минимум одна такая подсекция, соответствующая глубине цвета 8 бит. Таких подсекций в секции Screen может быть несколько, поэтому не изменяйте существующую, а скопируйте ее (можно несколько раз) и подкорректируйте новые экземпляры в соответствии со своими пожеланиями. А выбор той подсекции, которая будет использоваться, осуществляется заданием нужной глубины цвета в параметре DefaultColorDepht секции Screen, таким вот примерно образом: DefaultColorDepht 24. Пример того, как может выглядеть секция Screen в итоге, был уже приведен выше, когда описывалась структура файла XF86Config, так что здесь не будем приводить его повторно.