Для чего нужно устанавливать драйвер от NVIDIA?
В первую очередь - это дает возможность поддержки вашей системой
OpenGL, которая так необходима в играх. Во вторых - это использование
дополнительных возможностей вашей видеокарты, таких как TwinView,
TV-Out и т.д. Ну и в третьих - это все-таки большая производительность
драйвера, использующего оптимизированное ускорение для каждого чипсета
от NVIDIA.
Здесь не рассматриваются достоинства или недостатки драйверов от
NVIDIA, как и вопрос, почему эти драйверы не распространяются по
лицензии GPL или Open Source. Все это выходит за рамки данной статьи.
Большая часть информации для этой статьи взята из файла README
поставляемого с драйверами.
2. Поддерживаемое железо.
Как обычно, драйвер от NVIDIA является унифицированным и поддерживает
все собственные чипсеты, произведенные когда-либо, полный список
которых приведен ниже. Исключение составляет чипсет - RIVA 128/128ZX,
поддерживаемый драйвером `nv` в XFree86. Этот же драйвер с выходом
новой версии XFree86 4.3.0 от 23 февраля 2003 поддерживает
видеоадаптеры на следующих чипсетах Riva 128, 128ZX, TNT, TNT2 (Ultra,
Vanta, M64), GeForce (DDR, 256), Quadro, GeForce2 (GTS, Ultra, MX),
GeForce3, и Quadro2.
Полный список чипсетов поддерживаемых драйвером 4191 от NVIDIA:
RIVA TNT
RIVA TNT2
RIVA TNT2 Ultra
Vanta
RIVA TNT2 Model 64
Aladdin TNT2
GeForce 256
GeForce DDR
Quadro
GeForce2 MX/MX 400
GeForce2 MX 100/200
GeForce2 Go
Quadro2 MXR/EX/Go
GeForce2 GTS
GeForce2 Ti
GeForce2 Ultra
Quadro2 Pro
GeForce4 MX 460
GeForce4 MX 440
GeForce4 MX 420
GeForce4 MX 440-SE
GeForce4 440 Go
GeForce4 420 Go
GeForce4 420 Go 32M
GeForce4 460 Go
Quadro4 550 XGL
GeForce4 440 Go 64M
Quadro4 NVS
Quadro4 500 GoGL
GeForce4 410 Go 16M
GeForce4 MX 440 AGP8X
GeForce4 MX 440SE AGP8X
GeForce4 MX 420 AGP8X
Quadro4 580 XGL
Quadro4 280 NVS
Quadro4 380 XGL
NV18M
NV18M Pro
GeForce2 Integrated GPU
GeForce4 MX Integrated GPU
GeForce3
GeForce3 Ti 200
GeForce3 Ti 500
Quadro DCC
GeForce4 Ti 4600
GeForce4 Ti 4400
NV25
GeForce4 Ti 4200
Quadro4 900 XGL
Quadro4 750 XGL
Quadro4 700 XGL
GeForce4 Ti 4800
GeForce4 Ti 4200 AGP8X
GeForce4 Ti 4800 SE
GeForce4 4200 Go
Quadro4 980 XGL
Quadro4 780 XGL
Quadro4 700 GoGL
NV30
NV30
NV30
NV30GL
NV30GL
3. Выбор необходимого драйвера.
Драйвер состоит из двух пакетов, которые нужно скачать и установить.
Пакет NVIDIA_GLX содержит библиотеки OpenGL и драйвер XFree86. Пакет
NVIDIA_kernel содержит модуль ядра, который необходим библиотекам из
пакета NVIDIA_GLX.
Устанавливать нужно оба пакета с совпадающими номерами версий.
Например, пакет NVIDIA_GLX-1.0-4191 должен использоваться только с
пакетом NVIDIA_kernel-1.0-4191.
Пакеты представлены в нескольких форматах: rpm, srpm и tar файлами.
Установка каждого типа пакета описано ниже. Выбор типа пакета в
основном зависит от персональных пристрастий. (Мне всегда по душе
приходились сжатые tar-файлы. Во первых они меньше по размеру, чем
rpm-пакеты. Во вторых - нет нужды пролистывать rpm-пакеты на предмет
определения, где и что располагается. А в третьих - MidnightCommander
позволяет разжимать tar-файлы нажатием одной кнопки.)
Двоичные rpm-пакеты используются только с ядром поставляемым
конкретным дистрибутивом (т.е. пакет
NVIDIA_kernel-1.0-4191.rh73up.i386.rpm должен использоваться с
однопроцессорным ядром поставляемым с RedHat 7.3).
Где возможно, NVIDIA поставляет отдельные rpm-пакеты для SMP
(мультипроцессорного) и однопроцессорного ядер каждого дистрибутива
(т.е. NVIDIA_kernel-1.0-4191.rh73smp.i686.rpm и
NVIDIA_kernel-1.0-4191.rh73up.i686.rpm соответственно). Плюс к этому
поставляются пакеты зависящие от архитектуры процессора или типа ядра
- i386, i586, i686, Athlon, Enterprise, Secure, Bigmem и т.д.
Если вы обновляли свое ядро (вручную или через обновление
дистрибутива) или специфичный rpm-пакет NVIDIA_kernel не представлен
для вашего дистрибутива, то необходимо использовать srpm-пакет с
исходниками NVIDIA_kernel или tar-файл.
Напротив, rpm-пакет NVIDIA_GLX не зависит от версии ядра и поэтому
использование srpm-пакета с исходниками необязательно. Устанавливайте
пакет NVIDIA_GLX rpm или tar файлом.
Если вы затрудняетесь в выборе файла для установки, то вы можете
использовать скрипт 'NVchooser.sh' находящийся на страничке для
скачивания драйверов. Запустив который в оболочке командой 'sh
NVchooser.sh' вы получите рекомендуемый тип пакетов для вашей системы.
Примечание: Почаще заглядывайте в репозиторий rpm-пакетов вашего
дистрибутива. Наверняка необходимый для вашей системы пакет уже
собран.
4. Минимальные требования к установке.
При установке бинарных пакетов:
linux kernel 2.2.12, смотриться так:
$ cat /proc/version
XFree86 4.0.1
$ XFree86 -version
Kernel modutils 2.1.12
$ insmod -V
Если модуль ядра собирается из исходников (srpm или tar файлы), то
необходимы следующие программы:
binutils 2.9.5
$ size --version
GNU make 3.77
$ make --version
gcc 2.91.66
$ gcc --version
Дополнительно для rpms-пакета требуется:
spec-helper rpm
$ rpm -qi spec-helper
Все официальные релизы kernel от 2.2.12 и выше поддерживаются.
Предрелизы версий, как '2.4.3-pre2' не поддерживаются, как и
разрабатываемые версии 2.3.x или 2.5.x.
Если вы используете XFree86, но не имеете файл /var/log/XFree86.0.log,
тогда вы вероятно имеете версию 3.x XFree86 и должны повысить до
версии 4.x.
При настройке XFree86 4.x первый раз, лучше всего использовать open
source драйвер поставляемый с XFree86 (например 'nv', 'vga' или
'vesa'). Если XFree86 нормально функционирует с этим драйвером, то
очень просто будет переключиться на драйвер от NVIDIA.
Следует заметить, что новые графические процесоры NVIDIA могут не
работать со старыми версиями драйвера 'nv' поставляемого с XFree86.
Для примера, драйвер 'nv' XFree86 версии 4.0.1 не распознает семейство
процессоров GeForce2 и Quadro2 MXR. Однако, это было исправлено в
XFree86 версии 4.0.2.
5. Установка пакетов.
Перед началом установки драйвера вы должны выйти из X сервера. В
дополнении вы должны установить загрузку в консоль по умолчанию и
отключить автозагрузку X.
Примечание: Я этого не делал. Просто устанавливал драйвер из
консольного терминала под KDE, конфигурировал и нажимал "волшебную"
комбинацию клавиш - Ctrl-Alt-Backspace. И тут же видел результат - при
перезагрузке появился логотип NVIDIA.
Теперь настало время перейти непосредственно к установке. Для
простоты, в названиях пакетов не указана версия драйвера. Естественно,
что при установке необходимо вводить полное название файла. Т.е. когда
говориться 'NVIDIA_kernel.tar.gz' вы должны указывать полное имя:
'NVIDIA_kernel.1.0-4191.tar.gz'. И еще. Сначала всегда устанавливается
модуль драйвера ядра(NVIDIA_kernel),а потом библиотеки OpenGL
(NVIDIA_GLX).
Установка из RPM-пакетов
Ставим модуль ядра:
$ rpm -ivh NVIDIA_kernel.i386.rpm
Дальше OpenGL:
$ rpm -ivh NVIDIA_GLX.i386.rpm
Переустановка из RPM-пакетов
Переустанавливаем модуль ядра:
$ rpm -Uvh NVIDIA_kernel.i386.rpm
Переустановка OpenGL поверх предыдущей версии не рекомендуется, из-за
ошибки в деинсталляторе старых версий rpm-пакетов NVIDIA.
Поэтому сначала удаляем пакет OpenGL из системы:
$ rpm -e NVIDIA_GLX
И ставим новый:
$ rpm -ivh NVIDIA_GLX.i386.rpm
Установка / переустановка из SRPM-пакетов
Перед сборкой собственного модуля ядра NVIDIA_kernel для вашей системы
вам необходиться в том, что у вас установлены заголовочные файлы для
вашего ядра (RedHat, для примера, включает заголовочные файлы в
rpm-пакет под названием 'kernel-source').
Пересобирем ядра с флагом '--rebuild':
$ rpm --rebuild NVIDIA_kernel.src.rpm
Примечание: в последниих версиях rpm не поддерживается опция
'--rebuild', для этого используем команду:
$ rpmbuild --rebuild NVIDIA_kernel.src.rpm
Смотрим где располагается файл. Например в RedHat это
/usr/src/redhat/RPMS/i386/NVIDIA_kernel.i386.rpm, хотя пути могут
отличаться.
Используем указанный путь для установки:
$ rpm -ivh /usr/src/redhat/RPMS/i386/NVIDIA_kernel.i386.rpm
или переустановки:
$ rpm -Uvh /usr/src/redhat/RPMS/i386/NVIDIA_kernel.i386.rpm
Для установки пакета NVIDIA_GLX, следуйте вышеуказанным действиям из
раздела для установки или переустановки NVIDIA_GLX из rpm-пакетов.
Установка / переустановка из TAR-файла
Распакуем файлы:
$ tar xvzf NVIDIA_kernel.tar.gz
$ tar xvzf NVIDIA_GLX.tar.gz
Заходим в директорию с NVIDIA_kernel. Жмем 'make install'. Если все
прошло нормально, то модуль компилируется, копируется в нужное место и
пробует загрузиться в запущенное ядро.
$ cd NVIDIA_kernel
$ make install
Дальше, идем в директорию с NVIDIA_GLX. Проделываем тоже самое, что и
с модулем ядра.
$ cd ../NVIDIA_GLX
$ make install
Все. Нужные библиотеки и файлы для OpenGL и XFree86 скопированы в
нужное место.
Заметьте, что команда 'make install' для каждого пакета удаляет все
установленные предыдущие драйвера от NVIDIA.
6. Редактирование файла XF86Config.
Когда был выпущен XFree86 4.0, то он использовал немного отличный
синтаксис конфигурационного файла от версий 3.x., для того, чтобы обе
версии XFree86 могли сосуществовать на одной системе. Было решено, что
XFree86 4.x будет использовать конфигурационный файл
'/etc/X11/XF86Config-4' только, если такой существует, иначе
используется файл '/etc/X11/XF86Config' (на самом деле поиск ведется
не так просто, пожалуйста, смотрите man-страницу XF86Config для
полного описания путей поиска).
Будьте, уверены, что вы знаете, как XFree86 использует
конфигурационный файл.
Если вы не имеете рабочего файла XF86Config, то есть несколько
различных путей для начала. Можно использовать образец
конфигурационного файла идущего с XFree86. Можно использовать образец
файла включенного в пакет NVIDIA_GLX (он устанавливается в
/usr/share/doc/NVIDIA_GLX-1.0/). Вы также можете использовать
программу типа 'xf86config'. Некоторые дистрибутивы поставляют
собственную утилиту для генерирования файла XF86Config.
Если вы имеете рабочий файл XF86Config работающий с различными
драйверами (такими, как 'nv' или 'vesa' драйверами), тогда просто
нужно найти нужный раздел Device и заменить строку:
Driver "nv" (или Driver "vesa")
на
Driver "nvidia"
В разделе Module добавить строку если ее нет:
Load "glx"
Удалим следующие строки, если такие присутствуют:
Load "dri"
Load "GLcore"
Также можно добавить несколько опций для настройки драйвера NVIDIA под
XFree86 (дополнительные опции будут описаны в другой статье, например,
как включить TV-Out на видеокартах имеющих выход на телевизор).
Теперь после всех настроек можно давать старт (рестарт) X-серверу и
использовать новые библиотеки OpenGL от NVIDIA.
7. Заключение.
Я не знаю, какая получилась статья. Хотелось написать простым языком,
а получился почти дословный перевод readme от NVIDIA. Я надеюсь, что
это правильнее, т.к. не все являются гуру Linux и подробности не
помешают (меня вообще можно назвать "чайником"). Я буду очень рад,
если это статья поможет кому-то самостоятельно установить и настроить
драйвер от NVIDIA. Поэтому все отзывы и замечания приветствуются.
В продолжение статьи по установке драйверов от NVIDIA. Здесь
описываются дополнительные опции модуля ядра, которые позволяют
задействовать расширенные возможности видеокарты.
Не секрет, что большинство производимых сейчас видеокарт на чипсете
NVIDIA имеют дополнительные выходы для подключения телевизора или
жидкокристаллического монитора (при использовании специального
переходника обычный монитор). Это дает возможность использовать вторую
подсистему вывода изображения для просмотра видеофильмов на экране
телевизора, использовать второй монитор для расширения рабочего стола
системы на его экран или же играть в игру на двух мониторах. Делать
это позволяет режим графического процессора названный NVIDIA
'TwinView'.
Ниже рассматриваются опции драйвера позволяющие использовать телевизор
в качестве второго монитора.
Все опции добавляются в файл '/etc/X11/XF86Config-4', в раздел
'Device', где указано Driver "nvidia".
Рассмотрим все по порядку.
Option "TwinView"
Включение режима 'TwinView'в драйвере.
Option "TwinViewOrientation" "Clone"
Расположение второго изображения.
В данном случае оно клонировано, т.е. идентично изображению монитора.
Возможны также такие варианты: "RightOf" - по умолчанию, т.е.
изображение будет продолжением рабочего стола графической системы с
правой стороны; "LeftOf" - то же самое, но с левой стороны; "Above" -
выше; "Below" - ниже.
Option "NoDDC"
Синоним "IgnoreEDID". Запрещаем запрос параметров EDID (Extended
Display Identification Data), т.к. мы используем телевизор, и свои
поддерживаемые режимы он сообщить не сможет. Без этой опции почему-то
моя видеокарта никак не хотела выводить изображение на телевизор. Хотя
как я понимаю, эта опция предназначена для видеокарт с выходом на
второй монитор.
Option quot;SecondMonitorHorizSync" "30-50"
Option "SecondMonitorVertRefresh" "60"
Частоты горизонтальной и вертикальной разверток второго монитора в кГц
и Гц соответственно. Не знаю, нужны ли они при выводе на телевизор, но
отключать их я не пробовал.
Option "ConnectedMonitor" "CRT, TV"
Указываем драйверу, какой тип монитора подключен к видеокарте.
В нашем случае подключен обычный монитор и телевизор. Может быть "DFP"
- жидкокристаллический монитор. При использовании двух мониторов
возможны варианты: "CRT, CRT","CRT, DFP" и т.д.
Option "MetaModes" "800x600,800x600"
Разрешение экрана на первом и втором мониторе (телевизоре). Имеет
множество вариантов по значениям. Здесь оба режима совпадают, т.к.
используется режим клонирование изображения на телевизоре. В противном
случае, когда разрешения монитора больше, необходимо включать
дополнительные опции модуля для изображения панорамирования, смещения,
дополнительных разрешений и т.д. В данной статье эти опции не
рассматривается, поэтому лучше почитать README от NVIDIA поставляемого
с драйверами.
Option "TVOutFormat" "COMPOSITE"
Указываем тип разъема TV-Out, если драйвер определяет его некорректно.
Возможен другой вариант - "SVIDEO" в зависимости, какой разъем
установлен на видеокарте.
Option "TVStandard" "PAL-B"
Ну и, наконец, в каком формате кодировать видеоизображение на
телевизоре.
Возможны следующие варианты: "PAL-B"; "PAL-D"; "PAL-G"; "PAL-H";
"PAL-I"; "PAL-K1"; "PAL-M"; "PAL-N"; "PAL-NC"; "NTSC-J"; "NTSC-M".
Вроде все.
Для наглядности приведу фрагмент моего файла XF86Config-4:
В заключении добавлю, приведенный здесь список опций модуля ядра от
NVIDIA далеко не полный, он включает очень много флагов и содержит
большое количество настроек для конфигурирования параметров ядра при
использовании в OpenGL приложениях и т.д. Поэтому, замечу еще раз, что
читайте README поставляемого с драйверами.
Если вы знаете, как применять другие настройки драйвера, не
поленитесь, сообщите об этом мне и другим.
Ну и, наконец, если что-то не получилось или не заработало, то
используйте замечательную утилиту NV-TV-Out ссылка, на которую имеется
на этом сайте в разделе утилиты. С ее помощью точно можно забыть все
проблемы по подключению и настройке видеокарт с выходом на телевизор
на основе чипсета NVIDIA.
С уважением, root at LinuxTECH <root@linuxtech.pp.ru>.
746 Прочтений • [Установка драйвера от NVIDIA и настройки TV-OUT (xfree86 x driver video)] [08.05.2012] [Комментариев: 0]