NVIDIA (Русский)
Ссылки по теме
Данная статья описывает процесс установки и настройки проприетарного драйвера графических карт NVIDIA. Для получения информации о драйверах с открытым исходным кодом обратитесь к статье Nouveau (Русский). Также есть отдельная статья для обладателей ноутбуков с технологиями на базе NVIDIA Optimus.
Contents
Установка
Данные инструкции предназначены для предоставляемых в дистрибутиве пакетов ядра linux или linux-lts. Для пользователей ядра, собранного самостоятельно, следует обратится к следующему подразделу.
1. Если вы не знаете модель графической карты, установленной у вас, для поиска используйте данный запрос:
$ lspci -k | grep -A 2 -E "(VGA|3D)"
2. Есть несколько вариантов определения необходимой версии драйвера:
- поиск по кодовому имени (например, NV50, NVC0 и т.д.) на странице с кодовыми именами nouveau
- просмотр модели в списке устаревших графических карт NVIDIA: если вашей карты нет в списке, используйте драйвер для нового оборудования
- также можно посетить страницу загрузки драйвера с сайта NVIDIA
3. Установите подходящий драйвер для своей карты:
- Для карт GeForce 400 series и более новых [NVCx и новее], установите пакет nvidia или nvidia-lts вместе с nvidia-libgl. (Для самых новых моделей графических ускорителей может потребоваться установка пакета nvidia-betaAUR, т.к. стабильная версия драйвера может не поддерживать новые функции, добавленные в эти карты).
- Для карт GeForce 8000/9000 и 100-300 series [NV5x, NV8x, NV9x и NVAx] года производства 2006-2010, установите пакет nvidia-340xx или nvidia-340xx-lts вместе с nvidia-340xx-libgl.
- Для карт GeForce 6000/7000 series [NV4x и NV6x] года производства 2004-2006, установите пакет nvidia-304xx или nvidia-304xx-lts вместе с nvidia-304xx-libgl.
- Для более старых моделей, обратитесь к подразделу #Не поддерживаемые драйвера.
4. Если разрядность вашей ОС 64-бит и вам необходима поддержка OpenGL 32-бит, то необходимо установить соответствующие пакеты lib32 из репозитория multilib (например, lib32-nvidia-libgl, lib32-nvidia-340xx-libgl или lib32-nvidia-304xx-libgl).
5. Перезагрузите систему. Пакет nvidia содержит файл с чёрным списком, который включает в себя модуль nouveau, поэтому перезагрузка необходима.
После того, как драйвер будет установлен, можно перейти к разделу #Настройка.
Не поддерживаемые драйвера
Если вы имеете карту GeForce 5 FX series или старее, Nvidia не поддерживает больше драйвера для вашей карты. Это означает, что эти драйвера не поддерживают текущую версию Xorg. В вашем случае, проще использовать драйвер nouveau, который поддерживает старые карты с текущей версией Xorg.
Однако, старые драйвера Nvidia пока ещё доступны и могут предоставлять лучшую 3D производительность/стабильность, если вы откатите версию Xorg:
- Для карт GeForce 5 FX series [NV30-NV36], установите пакет nvidia-173xx-dkmsAUR. Последняя поддерживаемая версия Xorg 1.15.
- Для карт GeForce 2/3/4 MX/Ti series [NV11, NV17-NV28], установите пакет nvidia-96xx-dkmsAUR. Последняя поддерживаемая версия Xorg 1.12.
Собственное ядро
Если вы используете собственной ядро, то сборка модулей Nvidia может быть автоматизированна при помощи DKMS.
Установите пакет nvidia-dkms (или специфичную ветку, например, nvidia-340xx-dkms). Модуль будет пересобираться после каждого обновления драйвера или ядра благодаря DKMS Pacman Hook.
Pure Video HD
По крайней мере, видеокартам со второго поколения PureVideo HD необходимо аппаратное ускорение, использующее VDPAU.
DRM kernel mode setting
Пакет nvidia 364.16 добавляет поддержку DRM Kernel mode setting. Чтобы включить эту особенность, добавьте nvidia-drm.modeset=1
в параметры ядра, а также: nvidia, nvidia_modeset, nvidia_uvm и nvidia_drm в initramfs#MODULES
Pacman hook
Для того, чтобы не забывать обновлять initramfs после обновления nvidia, вы можете использовать pacman hook следующим образом:
/etc/pacman.d/hooks/nvidia.hook
[Trigger] Operation=Install Operation=Upgrade Operation=Remove Type=Package Target=nvidia [Action] Depends=mkinitcpio When=PostTransaction Exec=/usr/bin/mkinitcpio -p linux
Аппаратное ускорение видео посредством XvMC
Ускоренное декодирование видео MPEG-1 и MPEG-2 с помощью XvMC поддерживается на серии видеокарт GeForce4, GeForce 5 FX, GeForce 6 и GeForce 7. Смотрите XvMC.
Настройка
Вполне возможно, что после установки драйвера, вам будет не нужно создавать конфигурационные файлы для сервера Xorg. Вы можете запустить тест для проверки корректной работы сервера Xorg без файла конфигурации. Однако, может потребоваться создание конфигурационного файла (предпочтительно /etc/X11/xorg.conf.d/20-nvidia.conf
поверх /etc/X11/xorg.conf
) для дополнительной настройки. Это конфигурация может быть сгенерирована инструментом конфигурации NVIDIA Xorg или можно создать её вручную. Если создается вручную, это может быть минимальной конфигурацией (в том смысле, что она будет содержать базовые настройки сервера Xorg), либо она может включать в себя ряд настроек, которые могут обоходить автоматически обнаруженные настройки Xorg или предварительно заданные настройки.
Минимальная настройка
Базовый блок конфигурации в 20-nvidia.conf
(или устаревший блок в xorg.conf
) должен выглядеть так:
/etc/X11/xorg.conf.d/20-nvidia.conf
Section "Device" Identifier "Nvidia Card" Driver "nvidia" VendorName "NVIDIA Corporation" Option "NoLogo" "true" #Option "UseEDID" "false" #Option "ConnectedMonitor" "DFP" # ... EndSection
Автоматическая настройка
Пакет NVIDIA, включает в себя автоматический инструмент для создания файла конфигурации сервера Xorg (xorg.conf
) и может быть запущен путем выполнения:
# nvidia-xconfig
Данная команда автоматически обнаруживает и создает (или изменяет, если было уже создано) конфигурацию /etc/X11/xorg.conf
, в соответствии с текущим аппаратным обеспечением.
Если есть строка с указанием загрузки DRI, убедитесь, что она закомментирована:
# Load "dri"
Проверьте ещё раз /etc/X11/xorg.conf
, убедитесь, что глубина по умолчанию, горизонтальная синхронизация, частота кадров и разрешение допустимы.
NVIDIA Settings
Пакет nvidia-settings позволяет редактировать большинство опций через графическую оболочку. Запустите nvidia-settings
c правами суперпользователя, отредактируйте, и сохраните в /etc/X11/xorg.conf.d/
.
Также, вы можете запустить настройки от обычного пользователя и сохранить в ~/.nvidia-settings-rc
. Затем, вы сможете загружать настройки используя команду $ nvidia-settings --load-config-only
(для примера, в ваш файл xinitrc).
Несколько мониторов
- Смотрите Multihead для получения основной информации
Использование NVIDIA Settings
Используйте nvidia-settings для настройки мультимониторной конфигурации.
ConnectedMonitor
Если драйвер не определил второй монитор, вы можете принудительно указать его с помощью опции ConnectedMonitor
/etc/X11/xorg.conf
Section "Monitor" Identifier "Monitor1" VendorName "Panasonic" ModelName "Panasonic MICRON 2100Ex" HorizSync 30.0 - 121.0 # this monitor has incorrect EDID, hence Option "UseEDIDFreqs" "false" VertRefresh 50.0 - 160.0 Option "DPMS" EndSection Section "Monitor" Identifier "Monitor2" VendorName "Gateway" ModelName "GatewayVX1120" HorizSync 30.0 - 121.0 VertRefresh 50.0 - 160.0 Option "DPMS" EndSection Section "Device" Identifier "Device1" Driver "nvidia" Option "NoLogo" Option "UseEDIDFreqs" "false" Option "ConnectedMonitor" "CRT,CRT" VendorName "NVIDIA Corporation" BoardName "GeForce 6200 LE" BusID "PCI:3:0:0" Screen 0 EndSection Section "Device" Identifier "Device2" Driver "nvidia" Option "NoLogo" Option "UseEDIDFreqs" "false" Option "ConnectedMonitor" "CRT,CRT" VendorName "NVIDIA Corporation" BoardName "GeForce 6200 LE" BusID "PCI:3:0:0" Screen 1 EndSection
Дублирование устройств с опцией Screen
описывает использование сервером Xorg двух мониторов на одной карте без технологии TwinView
. Учтите, что nvidia-settings
будет вырезать любое упоминание опции ConnectedMonitor
.
TwinView
Вы хотите только один большой экран вместо двух. Установите значение опции TwinView
в 1
. Эта опция должна использоваться если вы хотите композитинга. Технология TwinView работает только на базе одной карты, когда все мониторы подключены к одной карте.
Option "TwinView" "1"
Пример конфигурцаии:
/etc/X11/xorg.conf.d/10-monitor.conf
Section "ServerLayout" Identifier "TwinLayout" Screen 0 "metaScreen" 0 0 EndSection Section "Monitor" Identifier "Monitor0" Option "Enable" "true" EndSection Section "Monitor" Identifier "Monitor1" Option "Enable" "true" EndSection Section "Device" Identifier "Card0" Driver "nvidia" VendorName "NVIDIA Corporation" #refer to the link below for more information on each of the following options. Option "HorizSync" "DFP-0: 28-33; DFP-1 28-33" Option "VertRefresh" "DFP-0: 43-73; DFP-1 43-73" Option "MetaModes" "1920x1080, 1920x1080" Option "ConnectedMonitor" "DFP-0, DFP-1" Option "MetaModeOrientation" "DFP-1 LeftOf DFP-0" EndSection Section "Screen" Identifier "metaScreen" Device "Card0" Monitor "Monitor0" DefaultDepth 24 Option "TwinView" "True" SubSection "Display" Modes "1920x1080" EndSubSection EndSection
Дополнительная информация о технологии TwinView (англ.).
Если вы имеете несколько карт, которые совместимы с технологией SLI, вы можете использовать несколько мониторов присоединённых к разным картам (пример: две карты в режиме SLI с подключением монитора на каждой карте). Опция "MetaModes" совместно с режимом SLI Mosaic позволяет это. Ниже указана конфигурация, которая работает для вышеупомянутого примера и безупречно запускает GNOME.
/etc/X11/xorg.conf.d/10-monitor.conf
Section "Device" Identifier "Card A" Driver "nvidia" BusID "PCI:1:00:0" EndSection Section "Device" Identifier "Card B" Driver "nvidia" BusID "PCI:2:00:0" EndSection Section "Monitor" Identifier "Right Monitor" EndSection Section "Monitor" Identifier "Left Monitor" EndSection Section "Screen" Identifier "Right Screen" Device "Card A" Monitor "Right Monitor" DefaultDepth 24 Option "SLI" "Mosaic" Option "Stereo" "0" Option "BaseMosaic" "True" Option "MetaModes" "GPU-0.DFP-0: 1920x1200+4480+0, GPU-1.DFP-0:1920x1200+0+0" SubSection "Display" Depth 24 EndSubSection EndSection Section "Screen" Identifier "Left Screen" Device "Card B" Monitor "Left Monitor" DefaultDepth 24 Option "SLI" "Mosaic" Option "Stereo" "0" Option "BaseMosaic" "True" Option "MetaModes" "GPU-0.DFP-0: 1920x1200+4480+0, GPU-1.DFP-0:1920x1200+0+0" SubSection "Display" Depth 24 EndSubSection EndSection Section "ServerLayout" Identifier "Default" Screen 0 "Right Screen" 0 0 Option "Xinerama" "0" EndSection
Ручная конфигурация из командной строки с использованием xrandr
Если вышеуказанные решения не сработали, вы можете использовать автозапуск вашего менеджера окон совместно с пакетом xorg-xrandr.
Некоторые примеры работы с командой xrandr
:
xrandr --output DVI-I-0 --auto --primary --left-of DVI-I-1
или:
xrandr --output DVI-I-1 --pos 1440x0 --mode 1440x900 --rate 75.0
Где:
-
--output
используется для указания "монитора", к которому применяются опции. -
DVI-I-1
имя второго монитора. -
--pos
позиция второго монитора относительно первого. -
--mode
разрешение второго монитора. -
--rate
частота обновления (в Гц).
Vsync при использовании TwinView
Если вы используете TwinView и вертикальную синхронизацию (опция "Sync to VBlank" в nvidia-settings), вы заметите, что только один экран корректно использует синхронизацию, если у вас два идентичных монитора. Несмотря на то, что nvidia-settings имеет необходимую опцию для выбора, какой именно экран синхронизировать (опция "Sync to this display device"), это не всегда работает. Решением будет добавить следующие переменные окружения при запуске, например в /etc/profile
:
export __GL_SYNC_TO_VBLANK=1 export __GL_SYNC_DISPLAY_DEVICE=DFP-0 export __VDPAU_NVIDIA_SYNC_DISPLAY_DEVICE=DFP-0
Вы можете изменить DFP-0
на ваш используемый монитор (DFP-0
это DVI порт, а CRT-0
- VGA порт). Идентификатор для вашего монитора можно найти с помощью nvidia-settings в секции "X Server XVideoSettings".
Gaming using TwinView
In case you want to play fullscreen games when using TwinView, you will notice that games recognize the two screens as being one big screen. While this is technically correct (the virtual X screen really is the size of your screens combined), you probably do not want to play on both screens at the same time.
To correct this behavior for SDL, try:
export SDL_VIDEO_FULLSCREEN_HEAD=1
For OpenGL, add the appropriate Metamodes to your xorg.conf in section Device
and restart X:
Option "Metamodes" "1680x1050,1680x1050; 1280x1024,1280x1024; 1680x1050,NULL; 1280x1024,NULL;"
Another method that may either work alone or in conjunction with those mentioned above is starting games in a separate X server.
Режим Mosaic
Режим Mosaic единственный способ использовать более чем два монитора через несколько видеокарт с использованием композитинга. Ваш оконный менджер может распознать, а может и не распознать различия между мониторами.
Base Mosaic
Режим Base Mosaic работает с картами Geforce 8000 series или выше. Его нельзя включить через графический интерфейс nvidia-setting. Вы должны использовать команду nvidia-xconfig
, либо отредактировать xorg.conf
самостоятельно. Опция Metamodes должна быть указана. Следующий пример для четырёх DFP мониторов в конфигурации 2х2, каждый запущен в разрешении 1920x1024, по два подключенных DFP монитора на две карты:
$ nvidia-xconfig --base-mosaic --metamodes="GPU-0.DFP-0: 1920x1024+0+0, GPU-0.DFP-1: 1920x1024+1920+0, GPU-1.DFP-0: 1920x1024+0+1024, GPU-1.DFP-1: 1920x1024+1920+1024"
SLI Mosaic
Если вы имеете конфигурацию SLI и все графические ускорители серии Quadro FX 5800, Quadro Fermi или новее, тогда вы можете использовать режим SLI Mosaic. он можеть быть включен из графического интерфейса nvidia-settings или из командной строки:
$ nvidia-xconfig --sli=Mosaic --metamodes="GPU-0.DFP-0: 1920x1024+0+0, GPU-0.DFP-1: 1920x1024+1920+0, GPU-1.DFP-0: 1920x1024+0+1024, GPU-1.DFP-1: 1920x1024+1920+1024"
Драйвер Persistence
Начиная с версии 319, Nvidia изменила порядок работы драйвера persistence, теперь он запускается как демон при загрузке. Смотрите раздел драйвер Persistence (англ.) документации Nvidia, для получения детальной информации.
Для запуска демона persistence разрешите nvidia-persistenced.service
. Для использования вручную смотрите документацию разработчика.