1. Получение заготовки файла конфигурации
Для начала запустим X-сервер в режиме автоматического конфигурирования:
# X -configureX-сервер протестирует всё доступное оборудование и запишет файл конфигурации в /root/xorg.conf.new. Скопируем его в каталог /etc/X11 под именем xorg.conf:
# cp /root/xorg.conf.new /etc/X11/Теперь можно отключить взаимодействие X-сервера с HAL. Для этого в файле /etc/X11/xorg.conf нужно прописать секцию ServerFlags и две опции:
Section "ServerFlags" Option "AutoAddDevices" "False" Option "AllowEmptyInput" "False" EndSectionЧтобы X-сервер перезапускался при нажатии комбинации клавиш Ctrl+Alt+Backspace, можно добавить ту же секцию следующую опцию:
Option "DontZap" "False"2. Русская раскладка
Теперь нужно русифицировать клавиатуру.
Если вы отключили HAL, то раскладки клавиатуры настраиваются в файле /etc/X11/xorg.conf. Для этого в секцию InputDevice с настройками клавиатуры нужно добавить следующие строки:
Option "XkbRules" "xorg" Option "XkbModel" "pc104" Option "XkbLayout" "us,ru" Option "XkbOptions" "grp:alt_shift_toggle,grp_led:caps" Option "XkbVariant" ",winkeys" Option "AutoRepeat" "250 30"Если HAL включен, то нужно создать файл /etc/hal/fdi/policy/10-keymap.fdi со следующим текстом:
<?xml version="1.0" encoding="UTF-8"?"?> <deviceinfo version="0.2"> <device> <match key="info.capabilities" contains="input.keymap"> <append key="info.callouts.add" type="strlist">hal-setup-keymap</append> </match> <match key="info.capabilities" contains="input.keys"> <merge key="input.xkb.rules" type="string">base</merge> <merge key="input.xkb.model" type="string">keyboard</merge> <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux"> <merge key="input.xkb.model" type="string">evdev</merge> <merge key="input.xkb.layout" type="string">us,ru</merge> <merge key="input.xkb.variant" type="string">,winkeys</merge> <merge key="input.xkb.options" type="string">grp:alt_shift_toggle</merge> <merge key="input.xkb.options" type="string">grp_led:caps</merge> </match> </device> </deviceinfo>Настройки клавиатуры в варианте для HAL пригодятся на случай, если в ручной конфигурации допущены какие-то ошибки. В этом случае X-сервер переключится в режим самоконфигурации и подхватит настройки клавиатуры, заданные для HAL.
Оба варианта настроек задают две раскладки: американскую английскую и русскую раскладку, которая принята в Windows (то есть на подавляющем большинстве современных серийных клавиатур). Переключателем раскладки будет комбинация одновременно нажатых клавиш Alt и Shift. Индикатором раскладки - светодиод клавиши CapsLock.
3. Настройка монитора
Все настройки монитора указываются в секции Monitor.
Обычно все современные мониторы умеют отдавать всю информацию о поддерживаемых ими режимах видеокарте по протоколу DDC и поэтому обычно ручная настройка режимов не требуется.
Мой монитор LG Flatron L1730S выдаёт по DDC вполне рабочие режимы, но они не совпадают с режимами, заявленными в документации. Среди режимов DDC нет режима с разрешением 1280x1024 при частоте кадровой развёртки 75 Герц.
Узнать информацию, которую монитор отдаёт видеокарте по протоколу DDC, можно с помощью команды ddcprobe из пакета xresprobe.
Значения частот вертикальной и горизонтальной развёртки можно прописать в качестве начальных:
HorizSync 30.0 - 83.0 VertRefresh 56.0 - 75.0Теперь, чтобы добавить поддержку недостающих режимов, воспользуемся программой gtf из пакета xserver-xorg-core.
Запускаем команду, указывая желаемое разрешение:
$ gtf 1280 1024 75 -xОна выдаст строку Modeline для этого режима, которую нужно будет включить в эту же секцию:
# 1280x1024 @ 75.00 Hz (GTF) hsync: 80.17 kHz; pclk: 138.54 MHz Modeline "1280x1024_75.00" 138.54 1280 1368 1504 1728 1024 1025 1028 1069 -HSync +VsyncТо же самое нужно повторить для всех остальных желаемых режимов.
Максимальное значение hsync из всех Modeline'ов укажем в настройках частоты горизонтальной развёртки:
HorizSync 30.0 - 83.0 VertRefresh 56.0 - 75.0Однако если всё определилось правильно, или вы иногда меняете монитор на другой, то лучше там ничего не указывать.
Для включения режима энергосбережения монитора нужно указать опцию DPMS:
Option "DPMS"Правильные размеры видимой части экрана в миллиметрах можно измерить линейкой и указать в этом же разделе:
DisplaySize 340 2704. Настройка экрана
При переключении разрешения экрана по Ctrl-Alt-+ и Ctrl-Alt-- вас может утомить листать большое количество режимов. Большинство режимов имеют очень низкую глубину цвета. Самой высокой глубиной цвета является 24-битная. Для этого в секции Screen удалим все подсекции Display, в которых опция Depth принимает значения, отличные от 24. Также полезно в секции Screen указать предпочтительную глубину цвета в 24 бита. В результате секция примет следующий вид. Здесь же можно указать доступные Modeline'ы, расчитанные с помощью программы gtf:
Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1280x1024_75.00" "1024x768_75.00" "800x600_75.00" "640x480_75.00" EndSubSection EndSection5. Другие примеры настройки X-сервера через HAL
Другие примеры настройки X-сервера через HAL можно найти в каталоге /usr/share/hal/fdi/. Например, упомянутый пример настройки раскладок клавиатуры находится в файле /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi
6. Пример моего конфигурационного файла X-сервера
Section "ServerFlags" Option "AutoAddDevices" "False" Option "AllowEmptyInput" "False" Option "DontZap" "False" EndSection Section "ServerLayout" Identifier "X.org Configured" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection Section "Files" RgbPath "/etc/X11/rgb" ModulePath "/usr/lib/xorg/modules" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/share/fonts/X11/Type1" FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" EndSection Section "Module" Load "dri" Load "GLcore" Load "glx" Load "dbe" Load "record" Load "extmod" Load "xtrap" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "pc104" Option "XkbLayout" "us,ru" Option "XkbOptions" "grp:alt_shift_toggle" Option "XkbVariant" ",winkeys" Option "AutoRepeat" "250 30" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/input/mice" Option "ZAxisMapping" "4 5 6 7" EndSection Section "Monitor" DisplaySize 338 270 # mm Identifier "Monitor0" VendorName "LG" ModelName "Flatron L1730S" ### Comment all HorizSync and VertRefresh values to use DDC: HorizSync 30.0 - 80.2 VertRefresh 56.0 - 75.0 Option "DPMS" # 1280x1024 @ 75.00 Hz (GTF) hsync: 80.17 kHz; pclk: 138.54 MHz Modeline "1280x1024_75.00" 138.54 1280 1368 1504 1728 1024 1025 1028 1069 -HSync +Vsync # 1024x768 @ 75.00 Hz (GTF) hsync: 60.15 kHz; pclk: 81.80 MHz Modeline "1024x768_75.00" 81.80 1024 1080 1192 1360 768 769 772 802 -HSync +Vsync # 800x600 @ 75.00 Hz (GTF) hsync: 47.02 kHz; pclk: 48.91 MHz Modeline "800x600_75.00" 48.91 800 840 920 1040 600 601 604 627 -HSync +Vsync # 640x480 @ 75.00 Hz (GTF) hsync: 37.65 kHz; pclk: 30.72 MHz Modeline "640x480_75.00" 30.72 640 664 728 816 480 481 484 502 -HSync +Vsync EndSection Section "Device" ### Available Driver options are:- ### Values: <i>: integer, <f>: float, <bool>: "True"/"False", ### <string>: "String", <freq>: "<f> Hz/kHz/MHz" ### [arg]: arg optional #Option "SWcursor" # [<bool>] #Option "HWcursor" # [<bool>] #Option "NoAccel" # [<bool>] #Option "ShadowFB" # [<bool>] #Option "UseFBDev" # [<bool>] #Option "Rotate" # [<str>] #Option "VideoKey" # <i> #Option "FlatPanel" # [<bool>] #Option "FPDither" # [<bool>] #Option "CrtcNumber" # <i> #Option "FPScale" # [<bool>] #Option "FPTweak" # <i> #Option "DualHead" # [<bool>] Identifier "Card0" Driver "nvidia" VendorName "nVidia Corporation" BoardName "NV43 [GeForce 6600]" BusID "PCI:5:0:0" EndSection Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1280x1024_75.00" "1024x768_75.00" "800x600_75.00" "640x480_75.00" EndSubSection EndSection
3 комментария:
Весьма познавательный пост, спасибо.
Вопрос автору: я как-то пытался настроить Xinerama для объединения двух мониторов на ноутбуке, встроенного и внешнего - и что-то не получилось Ксинераму заварить. Остановился на Xrandr, оно работает вполне сносно.
Автор случаем не планирует написать постов про это? Было бы интересно.
P.S.> Вместо "рейтинга исполнителей прошлой недели" я бы повесил виджет гугла "Присоединиться к сайту". Так проще получать обновления блога. Ну и RSS иконку пожирнее, на видное место. Шаблон для Блоггера, кстати, тоже можно обновить :-)
Вы остановились на Xrandr, т.к. он работает вполне сносно, а я по той же причине остановился на Xinerama.
Ответ - если попробую настроить Xrandr, то обязательно об этом напишу.
Дизайн сменил, хотя прошлый мне нравился тем, что он "резиновый". Рейтинг исполнителей убрал. Как откормить RSS не нашёл. Виджет гугла добавлять не стал - слишком сложно и не совсем понятно, зачем мне это нужно.
Кое-как вернул прежний шаблон. Долго не мог сообразить, что для возвращения прежнего шаблона нужно сменить интерфейс блоггера на старый,а уже в нём выбрать шаблон.
Новые шаблоны мне не понравились совершенно. Они красивые, но не удобные.
Отправить комментарий