Установка драйвера от NVIDIA

LinuxTECH, 03/2003.

1. Введение.
Для чего нужно устанавливать драйвер от 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. Поэтому все отзывы и замечания приветствуются.

С уважением, root at LinuxTECH.



Источник - LinuxBegin.ru
http://linuxbegin.ru

Адрес этой статьи:
http://linuxshop.ru/linuxbegin/article229.html