From: alex k <kmxb@hotbox.ru>
Newsgroups: forum.opennet.ru
Date: Mon, 17 Jun 2003 13:01:37 +0000 (UTC)
Subject: Настройка фреймбуфера для видеокарты NVIDIA
Оригинал: http://kmxb.narod.ru/rivafb1.html
Настройка фреймбуфера для видеокарты NVIDIA
немного введения
Сразу оговорюсь, что не буду писать о всех плюсах и минусах
использования framebuffer. Только о нескольких. Просто при
редактировании программ, конфигов, отладке и т.п. для меня самый
главный плюс, который перевешивает все - это большой размер консоли
(например: 100x37). Но, к сожалению, за удобство приходится платить. В
принципе, минусов при использовании rivafb всего несколько.
1. Вывод на экран существенно замедляется, но нам ведь не в игрушки
играть :), кроме того видео смотреть можно безо всяких тормозов.
2. Пока невозможно использовать совместно rivafb и nvidia drivers для
X - либо наглухо виснет, либо пропадает изображение. Не знаю как
сейчас обстоят дела, уже год как не проверял, но, судя по крикам
из форумов - все без изменений. Так что приходится выбирать - либо
rivafb в консоли, либо nvidia в иксах.
3. В ядрах 2.4 все работает на ок. В ветке 2.5 не так давно
заработало тоже, однако есть небольшие проблемы с кириллицей.
Вот, кажется, и все.
теперь, собственно, настройка.
Использовать framebuffer можно либо встроенным в ядро, либо
подгружая как модуль. Если включаете в ядро, то для достижения
необходимого разрешения и частоты экрана достаточно добавить в
lilo.conf строчку типа append="video:rivafb:..." например вот так:
Сразу оговорюсь, что вышеописанные значения расчитаны для режима
800x600, 85Гц и 32bit, проверены на видеокартах GeForce256, TNT2,
GeForce2 MX400 (GeForce4 - пока не поддерживается, во всяком случае -
у меня глючит). Рассчитать режимы каждый сам сможет под свои
разрешение и частоту, внимательно прочитав framebuffer.txt. Чтоб не
томить - вот выдержка из данного документа:
An XFree86 mode line consists of the following fields:
"800x600" 50 800 856 976 1040 600 637 643 666
< name > DCF HR SH1 SH2 HFL VR SV1 SV2 VFL
The frame buffer device uses the following fields:
- pixclock: pixel clock in ps (pico seconds)
- left_margin: time from sync to picture
- right_margin: time from picture to sync
- upper_margin: time from sync to picture
- lower_margin: time from picture to sync
- hsync_len: length of horizontal sync
- vsync_len: length of vertical sync
1) Pixelclock:
xfree: in MHz
fb: in picoseconds (ps)
Good examples for VESA timings can be found in the XFree86 source tree,
under "xc/programs/Xserver/hw/xfree86/doc/modeDB.txt".
Если файла modeDB.txt у вас под рукой не найдется, можно заглянуть
в /etc/fb.modes, но если и там нет нужного вам режима, можно еще
сделать так: временно подредактировать XF86Config, чтобы в X получить
нужный вам режим; потом запускаете xvidinfo, и записываете текущие
значения HFL, HR, SH1 и т.д.; потом вычисляете... потом подставляете.
Еще есть специальные программы-калькуляторы, но я ими не пользовался.
Выбор за вами.
Наконец, специально для тех, кто будет использовать rivafb как
модуль. Вышеуказанная строка append="..." в lilo.conf уже не работает,
приходится действовать в лоб, а именно - перед сборкой ядра и после
наложения необходимых патчей подредактировать один файл в исходниках
ядра (в случае kernel-2.5.xx два файла):
1. kernel-2.4.xx
/usr/src/linux-2.4.xx/drivers/video/riva/fbdev.c
ищем такие строки:
Осталось только откомпилировать ядро, не забыть записать в
/etc/rc.modules:
modprobe rivafb
modprobe fbcon
и перезагрузиться.
Успехов!
Еще забыл сказать, что в случае ядра 2.5 русские шрифты приходится
загружать на каждую консоль отдельно, т.е. говорить setfonts
Cyr_a8x16, например. Еще не разобрался, почему так. Если кто знает,
напишите пару строк, буду очень благодарен.
last update 2003.06.17
1481 Прочтений • [Настройка фреймбуфера для видеокарты NVIDIA (linux framebuffer xfree86 video driver console)] [08.05.2012] [Комментариев: 0]