NVIDIA (Русский)

From ArchWiki
Jump to: navigation, search

Tango-preferences-desktop-locale.pngЭта страница нуждается в сопроводителеTango-preferences-desktop-locale.png

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki
Состояние перевода: На этой странице представлен перевод статьи NVIDIA. Дата последней синхронизации: 22 марта 2016. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Данная статья описывает процесс установки и настройки проприетарного драйвера графических карт NVIDIA. Для получения информации о драйверах с открытым исходным кодом обратитесь к статье Nouveau (Русский). Также есть отдельная статья для обладателей ноутбуков с технологиями на базе NVIDIA Optimus.

Установка

Важно: Избегайте установки пакета драйвера с сайта NVIDIA. Установка через pacman, позволяет обновлять драйвер вместе с остальной системой.

Данная инструкция предназначена для предоставляемых в дистрибутиве пакетов ядра linux или linux-lts. Для пользователей ядра, собранного самостоятельно, следует обратится к следующему подразделу.

1. Если вы не знаете модель графической карты, установленной у вас, для поиска используйте данный запрос:

$ lspci -k | grep -A 2 -E "(VGA|3D)"

2. Есть несколько вариантов определения необходимой для вас версии драйвера:

3. Установите подходящий драйвер для своей карты:

  • Для карт GeForce 400 series и более новых [NVCx и новее], установите пакет nvidia или nvidia-lts вместе с nvidia-libgl. (Для самых новых моделей графических ускорителей может потребоваться установка пакета nvidia-betaAUR, т.к. стабильная версия драйвера может не поддерживать новые функции, добавленные в эти карты.

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-96xx-dkms и nvidia-173xx-dkms также можно установить с неофициального репозитория [city]. (Настоятельно рекомендуется использовать данный способ, который поможет избежать любых проблем с зависимостями после установки.)

Альтернативная установка: собственное ядро

Прежде всего, очень хорошо понимать, как работает система ABS, путём прочтения некоторых статей об этом:

Следующее небольшое руководство описывает процесс создания собственного пакета драйвера NVIDIA, используя ABS:

Установите пакет abs и сгенерируйте дерево:

# abs

Как обычный пользователь, сделайте временный каталог для создания нового пакета:

$ mkdir -p ~/abs

Сделайте копию каталога пакета nvidia:

$ cp -r /var/abs/extra/nvidia/ ~/abs/

Зайдите в временный каталог сборки nvidia:

$ cd ~/abs/nvidia

Теперь необходимо отредактировать файлы nvidia.install и PKGBUILD, они должны содержать правильные переменные версии ядра.

Когда запущено собственное ядро, узнайте версию и имя ядра:

$ uname -r
  1. В nvidia.install, замените переменную EXTRAMODULES='extramodules-3.4-ARCH' собственной версией ядра, например EXTRAMODULES='extramodules-3.4.4' или EXTRAMODULES='extramodules-3.4.4-custom' в зависимости от названия и версии вашего ядра. Сделайте эти изменения для всех найденых совпадений в этом файле.
  2. В PKGBUILD, измените переменную _extramodules=extramodules-3.4-ARCH на совпадающую с вашей версией ядра, как описано выше.
  3. Если вы установили параллельно несколько ядер (например собственное ядро и ядро -ARCH, предоставляемое по умолчанию), измените название в PKGBUILD pkgname=nvidia на уникальное, такое как nvidia-344 или nvidia-custom. Это позволяет ядрам использовать разные модули nvidia, собственный модуль nvidia будет иметь другое название пакета и не будет переписан оригинальным. Вам также понадобится закоментировать строку в package(), которая добавляет в чёрный список модуль nouveau в /usr/lib/modprobe.d/nvidia.conf (нет необходимости делать это снова).

Теперь выполните:

$ makepkg -ci

Ключ -c говорит makepkg очистить оставшиеся файлы после сборки пакета, ключ -i указывает makepkg автоматически выполнить запуск pacman для установки собранного пакета.

Автоматическая пересборка модуля NVIDIA при обновлении ядра

Это возможно благодаря пакету nvidia-hookAUR[ссылка недействительна: сохранено в aur-mirror] с AUR. Вам необходимо установить пакет с исходным кодом модуля: nvidia-dkms. В nvidia-hook, автоматическая пересборка выполняется хуком nvidia в mkinitcpio принудительно, при обновлении пакета linux-headers. Вам необходимо добавить nvidia в раздел HOOKS файла /etc/mkinitcpio.conf.

Хук будет вызывать команду dkms для обновления модуля NVIDIA при обновлении версии вашего ядра.

Примечание:
  • Если вы используете данную функциональность необходимо наблюдать процесс установки пакета linux (или другого ядра). Хук nvidia будет сообщать вам, если что-то пойдет не так.
  • Если вы хотите это делать вручную, обратитесь к статье Dynamic Kernel Module Support (Русский)#Использование.

Pure Video HD (VDPAU/VAAPI)

Видеокартам со второго поколения PureVideo HD требуется использование VDPAU и VA-API.

Аппаратное ускорение декодирования видео с помощью XvMC

Ускоренное декодирование видео MPEG-1 и MPEG-2 с помощью XvMC поддерживается на серии видеокарт GeForce4, GeForce 5 FX, GeForce 6 и GeForce 7. Смотрите XvMC.

Настройка

Tango-dialog-warning.pngИнформация в этой статье или разделе устарелаTango-dialog-warning.png

Причина: nvidia-xconfig следует избегать в 2016, и ручная настройка в большинстве случаев не требуется (Обсудить)

Вполне возможно, что после установки драйвера, вам будет не нужно создавать конфигурационные файлы для сервера Xorg. Вы можете запустить тест для проверки корректной работы сервера Xorg без файла конфигурации. Однако, может потребоваться создание конфигурационного файла (предпочтительно /etc/X11/xorg.conf.d/20-nvidia.conf поверх /etc/X11/xorg.conf) для дополнительной настройки. Это конфигурация может быть сгенерирована инструментом конфигурации NVIDIA Xorg или можно создать её вручную. Если создается вручную, это может быть минимальной конфигурацией (в том смысле, что она будет содержать базовые настройки сервера Xorg), либо она может включать в себя ряд настроек, которые могут обоходить автоматически обнаруженные настройки Xorg или предварительно заданные настройки.

Примечание: Начиная с версии 1.8.x, Xorg использует разделение конфигурационных файлов в /etc/X11/xorg.conf.d/ - проверьте раздел advanced configuration.

Минимальная настройка

Базовый блок конфигурации в 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
Совет: Если вы перешли с драйвера nouveau, удостоверьтесь, в том что вы удалили "nouveau" из /etc/mkinitcpio.conf. Дополнительно смотрите Switching between NVIDIA and nouveau drivers, если вы часто переключаетесь между открытым и закрытым драйвером.

Автоматическая настройка

Пакет NVIDIA, включает в себя автоматический инструмент для создания файла конфигурации сервера Xorg (xorg.conf) и может быть запущен путем выполнения:

# nvidia-xconfig

Данная команда автоматически обнаруживает и создает (или изменяет, если было уже создано) конфигурацию /etc/X11/xorg.conf, в соответствии с текущим аппаратным обеспечением.

Если есть строка с указанием загрузки DRI, убедитесь, что она закомментирована:

#    Load        "dri"

Проверьте ещё раз /etc/X11/xorg.conf, убедитесь, что глубина по умолчанию, горизонтальная синхронизация, частота кадров и разрешение допустимы.

Важно: Это может не работать корректно с сервером Xorg версии 1.8

NVIDIA Settings

Пакет nvidia-settings позволяет редактировать большинство опций через графическую оболочку. Запустите nvidia-settings c правами суперпользователя, отредактируйте, и сохраните в /etc/X11/xorg.conf.d/.

Также, вы можете запустить настройки от обычного пользователя и сохранить в ~/.nvidia-settings-rc. Затем, вы сможете загружать настройки используя команду $ nvidia-settings --load-config-only (для примера, в ваш файл xinitrc).

Tip: Если ваш X server падает при запуске, возможно, это из-за некорректно сгенерированных настроек. Попробуйте удалить сгенерированный файл и начать сначала.

Несколько мониторов

Смотрите 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

Tango-emblem-important.pngПравильность информации, представленной в этой статье или разделе, оспариваетсяTango-emblem-important.png

Причина: Данные команды устанавливают мониторы в режим TwinView? (обсуждение: Talk:NVIDIA (Русский)#)

Если вышеуказанные решения не сработали, вы можете использовать автозапуск вашего менеджера окон совместно с пакетом 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"
Примечание: Хотя в документации и указано конфигурация мониторов 2х2, Nvidia уменьшила данную возможность до трех мониторов в режиме Base Mosaic в 304 версии драйвера. Большее количество мониторов доступно в картах серии Quadro, а в обычных картах ограничение в три монитора. Как объяснение данного уменьшения озвучивается как "Паритетное свойство драйвера Windows". С сентября 2014, Windows не имеет ограничение на количество мониторов с той же самой версией драйвера. Это не ошибка, так задумано по дизайну архитектуры.
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. Для использования вручную смотрите документацию разработчика.

Смотрите также