В начало → Gentoo и X.Org → Руководство по видеокартам nVidia в Gentoo Linux |
Ссылка на оригинал: http://www.gentoo.org/doc/ru/nvidia-guide.xml
С версии: 1.0
Компания 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, то вы должны перейти на использование новых пакетов.
Как уже было сказано, драйвер 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)
Важно: Что касается процессоров 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:
Если вы используете vesafb, то дополнительную информацию можно посмотреть в файле /usr/src/linux/Documentation/fb/vesafb.txt
, или же найдите нужную документацию по кадровому буферу в каталоге /usr/src/linux/Documentation/fb/
.
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
К несчастью, некоторые устаревшие видеокарты не поддерживаются более новыми версиями пакетов 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.
Теперь пора установить драйверы.
Листинг 40. Установка драйверов nVidia
(если вашей карты нет в списке устаревших карт)#
emerge nvidia-drivers
(если ваша карта присутствует в списке устаревших карт)#
emerge nvidia-legacy-drivers
Важно: Каждый раз, когда вы собираете новое ядро или пересобираете текущее, вам понадобится запускать emerge nvidia-drivers или emerge nvidia-legacy-drivers для переустановки модулей ядра 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, в зависимости от версии ядра).
Как только необходимые драйверы установлены, вам потребуется настроить 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:
Добавьте ваших пользователей в группу video, чтобы у них был доступ к файлам устройств nvidia:
Если вы не используете файловую систему udev, то, в целом, нет необходимости делать шаги, описываемые в следующем разделе, но они ничего не испортят и сделают систему стойкой к переменам.
Для тестирования карты nVidia запустите X и наберите glxinfo | grep direct. Вы должны увидеть, что прямая прорисовка (direct rendering) включена:
Чтобы узнать скорость прорисовки FPS (кадров в секунду), используйте программу glxgears.
Некоторые пакеты, например, 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-флагов.
Если вы сталкиваетесь с проблемами при 2D-ускорении nVidia, скорее всего, вы не можете установить диапазон совмещения записи
(write-combining range) для MTRR. Чтобы проверить это, просмотрите содержимое /proc/mtrr
:
Каждая строка должна содержать «write-back» или «write-combining». Если вы видите строку, содержащую «uncachable», то вам понадобится изменить настройки BIOS, чтобы исправить это.
Перезагрузитесь и войдите в BIOS, затем найдите настройки MTRR (возможно в «CPU Settings»). Измените установки с «continuous» на «discrete» и загрузитесь назад в Linux. Теперь вы не нигде не должны увидеть значения «uncachable», и 2D-ускорение должно работать без какого-либо замедления.
Обычно это происходит, когда у вас нет подходящей видеокарты. Убедитесь, что ваша видеокарта основана на чипе nVidia (это можно проверить командой lspci).
Если вы уверены, что у вас карта nVidia, проверьте BIOS и проверьте, включен ли параметр Assign IRQ to VGA.
Пакет драйверов 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
Модуль ядра 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
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
В начало → Gentoo и X.Org → Руководство по видеокартам nVidia в Gentoo Linux |