Страница 1 из 1

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

Добавлено: 05 июл 2010, 11:08
Raven
Оригинал: http://linuxtech.pp.ru/modules/sections ... le&artid=1

Статья конечно старовата, но актуальность ее от этого меньше не становится. Вместо XFree86 cейчас используется Xorg, линейка видеокарт значительно пополнилась и ядро 2.2.х больше практически не используется... В остальном же все верно и работоспособно.

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 и заменить строку:
[code="xorg]Driver "nv" (или Driver "vesa")[/code]
на
[code="xorg]Driver "nvidia"[/code]

В разделе Module добавить строку если ее нет:

Код: Выделить всё

 Load "glx"
Удалим следующие строки, если такие присутствуют:

Код: Выделить всё

Load "dri"
    Load "GLcore"
Также можно добавить несколько опций для настройки драйвера NVIDIA под
XFree86 (дополнительные опции будут описаны в другой статье, например,
как включить TV-Out на видеокартах имеющих выход на телевизор).
Теперь после всех настроек можно давать старт (рестарт) X-серверу и
использовать новые библиотеки OpenGL от NVIDIA.

7. Заключение.

Я не знаю, какая получилась статья. Хотелось написать простым языком,
а получился почти дословный перевод readme от NVIDIA. Я надеюсь, что
это правильнее, т.к. не все являются гуру Linux и подробности не
помешают (меня вообще можно назвать "чайником"). Я буду очень рад,
если это статья поможет кому-то самостоятельно установить и настроить
драйвер от NVIDIA. Поэтому все отзывы и замечания приветствуются.

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

Добавлено: 05 июл 2010, 12:48
wass
это, как я понимаю, для ALT?

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

Добавлено: 05 июл 2010, 13:02
Raven
Это - общая инфа для RedHat-подобных дистров.