NVIDIA (Русский) - ArchWiki

# NVIDIA (Русский)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Ссылки по теме

- NVIDIA/Советы и приёмы
- NVIDIA/Решение проблем
- Nouveau (Русский)
- Bumblebee (Русский)
- NVIDIA Optimus (Русский)
- nvidia-xrun (Русский)
- Xorg (Русский)
- Vulkan (Русский)

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

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

## Установка

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

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

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

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

2. Определите версию драйвера, необходимую для вашей видеокарты:

  - Используя поиск по кодовому имени (например, NV50, NVC0 и т.д.) на странице Nouveau с кодовыми именами
  - Просмотрев модели в списке устаревших графических карт NVIDIA: если вашей карты нет в списке, используйте последний доступный драйвер
  - Посетив страницу загрузки драйверов NVIDIA

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

  Важно: По состоянию на октябрь 2020 года драйвер NVIDIA не поддерживает ядро Linux 5.9. [1]
  - Для карт GeForce 630-900, 10-20 и Quadro/Tesla/Tegra серии K и новее [семейства NVE0, NV110 и NV130 примерно из 2010-2020], установите пакет nvidia или nvidia-lts.
    - Если эти пакеты не работают, в nvidia-betaAUR может быть более новый драйвер с поддержкой вашего оборудования.
    - Также существует nvidia-llb-dkmsAUR, собранный из ветки NVIDIA с длительным сроком поддержки.
  - Для видеокарт серии GeForce 400/500/600 [NVCx и NVDx] примерно из 2010-2011, установите пакет nvidia-390xx-dkmsAUR
  - Для установки драйвера более старых моделей(выпущеных в 2010 или раньше), обратитесь к разделу #Не поддерживаемые драйвера.

4. Для поддержки 32-разрядных приложений также необходимо установить соответствующий пакет nvidia lib32 из репозитория multilib (например, lib32-nvidia-utils или lib32-nvidia-390xx-utilsAUR).

5. Перезагрузите систему. Пакет nvidia содержит файл, который добавляет модуль nouveau в чёрный список, поэтому перезагрузка необходима.

После того, как драйвер был установлен, можно перейти к разделу #Настройка.

### Не поддерживаемые драйвера

Если у вас установлена видеокарта серии GeForce 300 или старее (выпущенная в 2010 или раньше), Nvidia больше не поддерживает драйвера для данной карты. Это означает, что указанные драйвера не поддерживают текущую версию Xorg. В таком случае проще использовать драйвер Nouveau, который поддерживает старые видеокарты с текущей версией Xorg.

Однако устаревшие драйверы Nvidia ещё доступны и могут предоставлять лучшую стабильность или 3D-производительность, если вы готовы откатить версию Xorg (Русский):

- Для карт серий GeForce 8/9, ION и 100-300 [NV5x, NV8x, NV9x and NVAx], установите пакет nvidia-340xx-dkmsAUR. Последняя поддерживаемая версия Xorg 1.20.
- Карты GeForce 7 series и более старые [NV6x, NV4x и ниже] не имеют пакетов для Arch Linux.

### Собственное ядро

Если вы используете собственной ядро, то сборка модулей Nvidia может быть автоматизированна при помощи DKMS.

Установите пакет nvidia-dkms (или специфичную ветку, например, nvidia-340xx-dkmsAUR). Модуль будет пересобираться после каждого обновления драйвера или ядра благодаря DKMS Pacman Hook.

### DRM kernel mode setting

nvidia 364.16 добавляет поддержку DRM (Direct Rendering Manager) Kernel mode setting. Для активации добавьте `nvidia-drm.modeset=1` в параметры ядра, а также добавьте `nvidia`, `nvidia_modeset`, `nvidia_uvm` и `nvidia_drm` в initramfs в соответствии с mkinitcpio#MODULES.

Не забывайте запускать `mkinitcpio` каждый раз после обновления драйвера. См. раздел #Pacman hook для автоматизации данных действий.

Примечание: Драйвер Nvidia не предоставляет драйвер `fbdev` для высокого разрешения в консоли для скомпилированного модуля ядра `vesafb`. Тем не менее, скомпилированный в ядро модуль `efifb` поддерживает высокое разрешение в консоли на EFI системах. Этот метод требует GRUB или rEFInd и описан в NVIDIA (Русский)/Tips and tricks (Русский)#Исправление разрешения терминала. [2][3][4].

#### Pacman hook

Для того, чтобы не забывать обновлять initramfs после обновления nvidia, вы можете использовать pacman hook следующим образом:

    /etc/pacman.d/hooks/nvidia.hook

    [Trigger]
    Operation=Install
    Operation=Upgrade
    Operation=Remove
    Type=Package
    Target=nvidia
    Target=linux
    # Change the linux part above and in the Exec line if a different kernel is used

    [Action]
    Description=Update Nvidia module in initcpio
    Depends=mkinitcpio
    When=PostTransaction
    NeedsTargets
    Exec=/bin/sh -c 'while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -P'

Убедитесь, что `Target` это тот пакет который вы установили в шагах выше (т.е. `nvidia`, `nvidia-dkms`, `nvidia-lts` or `nvidia-ck-something`).

Так же измените Target=linux если используется другое ядро.

### Аппаратное ускорение видео

#### NVDEC and VDPAU

Ускоренное декодирование видео с помощью VDPAU поддерживается на картах GeForce 8 series и более поздних версиях. Ускоренное декодирование видео с помощью NVDEC поддерживается на картах Fermi и более новых. Дополнительная информация Hardware video acceleration (Русский).

#### XvMC

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

## Настройка

Эта статья или раздел нуждается в переводе

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

Вполне возможно, что после установки драйвера, вам будет не нужно создавать конфигурационные файлы для сервера 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).

Совет: Если ваш 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

Эта статья или раздел нуждается в переводе

Примечания: Сомнительная информация в оригинале. Данные команды устанавливают мониторы в режим 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

Если вы захотите сыграть в полноэкранные игры при использовании TwinView, вероятно вы заметите, что игры распознают два экрана как один большой экран. Хотя это технически правильно (виртуальный экран X в действительности соответствует размеру ваших экранов вместе), вы, вероятно, не захотите так играть.

Чтобы исправить это для SDL, попробуйте:

    export SDL_VIDEO_FULLSCREEN_HEAD=1

Для OpenGL, добавьте Metamodes в свой xorg.conf в секции `Device` и перезапустите X:

    Option "Metamodes" "1680x1050,1680x1050; 1280x1024,1280x1024; 1680x1050,NULL; 1280x1024,NULL;"

Еще один метод, который может работать самостоятельно, или в сочетании с упомянутыми выше: Запуск игр в отдельном X сервере[ссылка недействительна: раздел не найден].

#### Режим 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`. Для использования вручную смотрите документацию разработчика.

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

- NVIDIA User forums
- Official README for NVIDIA drivers, all on one text page. Most Recent Driver Version as of September 7, 2015: 355.11.
- README Appendix B. X Config Options, 355.11 (direct link)

Categories:

- Graphics (Русский)
- X server (Русский)

Hidden categories:

- Pages or sections flagged with Template:Translateme (Русский)
- Pages with broken section links