В началоGentoo и  X.Org → Руководство по видеокартам nVidia в Gentoo Linux
Gentoo-doc HOME Пред.: HOWTO Xorg and Fonts (Рус.)В началоУровень выше: Gentoo и  X.OrgСлед.: Распространенные вопросы об ATI в Gentoo Linux

5. Руководство по видеокартам nVidia в Gentoo Linux

Ссылка на оригинал: http://www.gentoo.org/doc/ru/nvidia-guide.xml

С версии: 1.0

5.1. Введение

Компания nVidia выпускает свои собственные драйверы для Linux, отличающиеся хорошей производительностью и поддержкой трехмерного ускорения. В дереве Portage присутствуют два драйвера — nvidia-drivers для новых видеокарт nVidia и nvidia-legacy-drivers для старых.  

Примечание

Раньше в Gentoo было два отдельных пакета — для модуля ядра nVidia (nvidia-kernel) и для библиотек GLX X11 (nvidia-glx). Эти пакеты были удалены из дерева Portage для замены на nvidia-drivers и nvidia-legacy-drivers. Если вы до сих пор используете nvidia-kernel и nvidia-glx, то вы должны перейти на использование новых пакетов.

5.2. Настройка карты

5.2.1. Конфигурирование ядра

Как уже было сказано, драйвер nVidia настраивается и запускается для текущего ядра. Он собирается в качестве модуля, поэтому ядро должно поддерживать загрузку модулей. Если вы использовали genkernel для конфигурации ядра, тогда все уже сделано. Если же нет, тогда дважды проверьте конфигурацию вашего ядра на наличие поддержки загружаемых модулей:

Листинг 31. Включение загрузки модулей ядра

Loadable module support --->
  [*] Enable loadable module support


Также вам потребуется включить в ядре Memory Type Range Register:

Листинг 32. Включение MTRR

Processor and Features --->
  [*] MTRR (Memory Type Range Register) support


Также, если у вас AGP-видеокарта, вы можете включить поддержку agpgart в ядре или в виде модуля. Если вы не используете встроенный agpgart, то драйверы будут использовать собственную реализацию agpgart под названием NvAGP. На одних системах эта реализация работает лучше, чем встроенная, на других — хуже. Вам понадобится проверить это на своей собственной системе, чтобы сделать выбор в пользу лучшей производительности. Если вы не хотите экспериментировать, просто используйте встроенный в ядро agpgart:

Листинг 33. Включение agpgart

Device Drivers --->
Character devices --->
<*> /dev/agpgart (AGP Support)


5.2.1.1. Замечания к архитектурам

Важно: Что касается процессоров x86 и AMD64, встроенный в ядро драйвер конфликтует с двоичным драйвером, выпускаемым nVidia. Если вы собираете ядро для этих процессоров, следует полностью убрать поддержку встроенного драйвера, как показано ниже:

Листинг 34. Удаление встроенного драйвера

Device Drivers --->
Graphics Support --->
< >   nVidia Framebuffer Support
< >   nVidia Framebuffer Support


Хорошей альтернативой кадрового буфера будет VESA:

Листинг 35. Включение поддержки VESA

Device Drivers --->
Graphics Support --->
<*>   VESA VGA graphics support


Затем в разделе «VESA driver type» выберите либо vesafb, либо vesafb-tng. Если у вас процессор AMD64, вы должны выбрать vesafb, а не vesafb-tng:

Листинг 36. Выбор типа кадрового буфера

(X) vesafb
( ) vesafb-tng


Если вы используете vesafb, то дополнительную информацию можно посмотреть в файле /usr/src/linux/Documentation/fb/vesafb.txt, или же найдите нужную документацию по кадровому буферу в каталоге /usr/src/linux/Documentation/fb/.

5.2.1.2. Последующая настройка ядра

The nvidia-drivers and nvidia-legacy-drivers ebuilds автоматически определят версию ядра на основании символической ссылки /usr/src/linux. Пожалуйста проверьте правильность конфигурации ядра и что эта ссылка правильно указывает на исходные коды. Обратитесь к разделу «Конфигурирование ядра» из Настольной книги за подробностями конфигурирования ядра.

Если вы используете gentoo-sources-2.6.11-r6, каталог /usr/src может выглядеть примерно так:

Листинг 37. Проверка символической ссылки /usr/src/linux

# cd /usr/src
# ls -l
(Проверьте, что ссылка linux указывает на нужный каталог)
lrwxrwxrwx   1 root root   22 Apr 23 18:33 linux -> linux-2.6.11-gentoo-r6
drwxr-xr-x   4 root root  120 Apr  8 18:56 linux-2.4.26-gentoo-r4
drwxr-xr-x  18 root root  664 Dec 31 16:09 linux-2.6.10
drwxr-xr-x  18 root root  632 Mar  3 12:27 linux-2.6.11
drwxr-xr-x  19 root root 4096 Mar 16 22:00 linux-2.6.11-gentoo-r6


В приведенном выводе можно увидеть, что символическая ссылка linux указывает на ядро linux-2.6.11-gentoo-r6.

Если ссылка не указывает на правильные исходники, вы должны обновить ее:

Листинг 38. Создание или обновление символической ссылки /usr/src/linux

# cd /usr/src
# ln -snf linux-2.6.11-gentoo-r6 linux


5.2.1.3. Необязательный шаг: уточнение поддержки устаревших видеокарт

Примечание

К несчастью, некоторые устаревшие видеокарты не поддерживаются более новыми версиями пакетов nvidia-drivers. У nVidia есть список поддерживаемых видеокарт. Посмотрите этот список, прежде чем будете устанавливать драйверы.

В следующем списке указаны неподдерживаемые ныне видеокарты:

Листинг 39. Неподдерживаемые видеокарты

TNT2
TNT2 Pro
TNT2 Ultra
TNT2 Model 64 (M64)
TNT2 Model 64 (M64) Pro
Vanta
Vanta LT
GeForce 256
GeForce DDR
GeForce2 GTS
GeForce2 Pro
GeForce2 Ti
GeForce2 Ultra
GeForce2 MX Integrated graphics
Quadro
Quadro2 Pro
Quadro2 EX


Если ваша карта присутствует в списке устаревших карт, то для поддержки 3D вам потребуется установить nvidia-legacy-drivers.

5.2.1.4. Установка подходящих драйверов

Теперь пора установить драйверы.

Листинг 40. Установка драйверов nVidia

(если вашей карты нет в списке устаревших карт)
# emerge nvidia-drivers
(если ваша карта присутствует в списке устаревших карт)
# emerge nvidia-legacy-drivers


Важно: Каждый раз, когда вы собираете новое ядро или пересобираете текущее, вам понадобится запускать emerge nvidia-drivers или emerge nvidia-legacy-drivers для переустановки модулей ядра nVidia.

После завершения установки запустите modprobe nvidia для загрузки модуля в память.

Листинг 41. Загрузка модуля

# lsmod | grep nvidia && rmmod nvidia
# modprobe nvidia


Чтобы не приходилось вручную загружать модуль после каждой загрузки, вероятно, вам потребуется, чтобы это делалось автоматически при загрузке, поэтому откройте /etc/modules.autoload.d/kernel-2.6 (или kernel-2.4 в зависимости от используемой версии ядра) и добавьте строку nvidia в файл. После этого не забудьте запустить modules-update.

Важно

Если вы собрали agpgart в качестве модуля, то вам понадобиться указать его в /etc/modules.autoload.d/kernel-2.6 (или kernel-2.4, в зависимости от версии ядра).

Листинг 42. Запуск modules-update

# modules-update


5.2.1.5. Настройка X-сервера

Как только необходимые драйверы установлены, вам потребуется настроить X-сервер, чтобы задействовать драйвер nvidia вместо используемого по умолчанию nv.

Откройте файл /etc/X11/xorg.conf своим любимым текстовым редактором (как nano или vim) и найдите раздел Device. В этом разделе измените строку Driver:

Листинг 43. Замена nv на nvidia в файле настроек X-сервера

Section "Device"
  Identifier "nVidia Inc. GeForce2"
  Driver     "nvidia"
  VideoRam   65536
EndSection


Теперь перейдите в раздел Module и проверьте, что будет загружаться модуль glx, а dri — не будет:

Листинг 44. Изменение раздела Module

Section "Module"
  (...)
  # Load  "dri"
  Load  "glx"
  (...)
EndSection


Далее, в разделе Screen проверьте, что каждая из инструкций DefaultDepth установлена в 16 или 24, или что у вас есть только подразделы Display с установленной Depth в 16 или 24. Без этого расширение nVidia GLX не будет запускаться.

Листинг 45. Обновление раздела Screen

Section "Screen"
  (...)
  DefaultDepth 16
  Subsection "Display"
  (...)
EndSection


Запустите eselect, чтобы X-сервер использовал GLX-библиотеки nVidia:

Листинг 46. Запуск eselect

# eselect opengl set nvidia


5.2.1.6. Добавление пользователей в группу video

Добавьте ваших пользователей в группу video, чтобы у них был доступ к файлам устройств nvidia:

Листинг 47. Добавление пользователя в группу video

# gpasswd -a youruser video


Если вы не используете файловую систему udev, то, в целом, нет необходимости делать шаги, описываемые в следующем разделе, но они ничего не испортят и сделают систему стойкой к переменам.

5.2.1.7. Тестирование карты

Для тестирования карты nVidia запустите X и наберите glxinfo | grep direct. Вы должны увидеть, что прямая прорисовка (direct rendering) включена:

Листинг 48. Проверка статуса прямой прорисовки

$ glxinfo | grep direct
direct rendering: Yes


Чтобы узнать скорость прорисовки FPS (кадров в секунду), используйте программу glxgears.

5.2.1.8. Включение поддержки nvidia

Некоторые пакеты, например, mplayer и xine-lib, используют локальный USE-флаг «nvidia», который разрешает поддержку аппаратного ускорения потока Mpeg (XvMCNVIDIA), полезного при просмотре широкоформатных фильмов. Добавьте «nvidia» к переменной USE в файле /etc/make.conf или добавьте его в качестве USE-флага для media-video/mplayer и/или media-libs/xine-lib в /etc/portage/package.use.

Затем запустите emerge -uD --newuse world, чтобы пересобрать приложения, которых коснулось изменение USE-флагов.

5.2.1.9. Использование инструмента nVidia Settings

Начиная с версии 1.0.6106, компания nVidia поставляет программу настройки. Эта программа может изменять настройки графики без перезапуска X-сервера и находится в дереве Portage под названием media-video/nvidia-settings.

5.3. Проблемы

5.3.1. Работа 2D на компьютерах с ОЗУ 4 ГБ и более

Если вы сталкиваетесь с проблемами при 2D-ускорении nVidia, скорее всего, вы не можете установить диапазон совмещения записи (write-combining range) для MTRR. Чтобы проверить это, просмотрите содержимое /proc/mtrr:

Листинг 49. Включена ли поддержка write-combining

# cat /proc/mtrr


Каждая строка должна содержать «write-back» или «write-combining». Если вы видите строку, содержащую «uncachable», то вам понадобится изменить настройки BIOS, чтобы исправить это.

Перезагрузитесь и войдите в BIOS, затем найдите настройки MTRR (возможно в «CPU Settings»). Измените установки с «continuous» на «discrete» и загрузитесь назад в Linux. Теперь вы не нигде не должны увидеть значения «uncachable», и 2D-ускорение должно работать без какого-либо замедления.

5.3.2. Пытаясь загрузить модуль ядра, я в ответ получаю «no such device»

Обычно это происходит, когда у вас нет подходящей видеокарты. Убедитесь, что ваша видеокарта основана на чипе nVidia (это можно проверить командой lspci).

Если вы уверены, что у вас карта nVidia, проверьте BIOS и проверьте, включен ли параметр Assign IRQ to VGA.

5.4. Настройка для опытных

5.4.1. Документация

Пакет драйверов nVidia поставляется с исчерпывающей документацией. Она устанавливается в /usr/share/doc, ее можно посмотреть следующей командой:

Листинг 50. Просмотр документации NVIDIA

(для nvidia-drivers)
$ less /usr/share/doc/nvidia-drivers-*/README.gz
(для nvidia-legacy-drivers)
$ less /usr/share/doc/nvidia-legacy-drivers-*/README.gz


5.4.2. Параметры модуля ядра

Модуль ядра nvidia способен принимать некоторые параметры, с помощью которых вы можете изменять поведение драйвера. Большинство из них описано в документации. Чтобы добавить или изменить эти параметры, отредактируйте файл /etc/modules.d/nvidia. Не забудьте запустить modules-update после изменения этого файла и держите в голове, что вам понадобиться перезагрузить модуль nvidia, чтобы новые настройки подействовали.

Листинг 51. Изменение параметров nvidia

(Отредактируйте /etc/modules.d/nvidia вашим любимым редактором)
# nano -w /etc/modules.d/nvidia
(Обновление информации о модулях)
# modules-update
(Выгрузка модуля nvidia...)
# modprobe -r nvidia
(...и его загрузка снова)
# modprobe nvidia


5.4.3. Расширенная настройка X-сервера

GLX-интерфейс также имеет множество настраиваемых параметров. Они управляют настройками TV-вывода, двойных мониторов, определением частоты монитора и т.д. И снова, все доступные параметры подробно описаны в документации.

Если вы хотите задействовать любой из этих параметров, то вам нужно перечислить их в соответствующем разделе Device конфигурационного файла X-сервера (обычно /etc/X11/xorg.conf). Например, я хочу отключить всплывающий логотип nVidia при загрузке X-сервера:

Листинг 52. Расширенная конфигурация nvidia в настройках X-сервера

Section "Device"
  Identifier "nVidia Inc. GeForce2"
  Driver     "nvidia"
  Option     "NoLogo" "true"
  VideoRam   65536
EndSection


Пред.: HOWTO Xorg and Fonts (Рус.)В началоУровень выше: Gentoo и  X.OrgСлед.: Распространенные вопросы об ATI в Gentoo Linux
В началоGentoo и  X.Org → Руководство по видеокартам nVidia в Gentoo Linux