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

Jump to content

# NVIDIA (Русский)

6 languages

- Deutsch
- English
- Español
- 日本語
- Português
- 中文（简体）

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

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

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

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

## Установка

Важно: Избегайте установки драйвера с сайта NVIDIA. Установка через pacman позволяет обновлять драйвер вместе с остальными компонентами системы.
Примечание: При двойной загрузке на системе с гибридной графикой включение Eco mode (например, ASUS Eco mode) в Windows может полностью отключить дискретную видеокарту NVIDIA и таким образом помешать её обнаружению.

Сперва узнайте архитектуру и семейство видеокарты (например, NV110, NVC0 и т. п.), найдя название модели на странице nouveau wiki с кодовыми именами — от архитектуры зависит, какую именно версию драйвера нужно установить. Узнать название модели можно командой:

    $ lspci -k -d ::03xx

Затем установите драйвер, подходящий для вашей видеокарты:

Семейство | Драйвер | Статус
--- | --- | ---
Turing (NV160/TUXXX) и более новые | nvidia-open для ядра linux nvidia-open-lts для ядра linux-lts nvidia-open-dkms для любых ядер | Рекомендуется Текущая версия, поддерживается1
От Maxwell (NV110/GMXXX) до Ada Lovelace (NV190/ADXXX) включительно | nvidia для ядра linux nvidia-lts для ядра linux-lts nvidia-dkms для любых ядер | Текущая версия, поддерживается1
Kepler (NVE0/GKXXX) | nvidia-470xx-dkmsAUR | Старая версия, не поддерживается2,3
Fermi (NVC0/GF1XX) | nvidia-390xx-dkmsAUR
Tesla (NV50/G80-90-GT2XX) | nvidia-340xx-dkmsAUR
Curie (NV40/G70) и более старые | Нет пакетов для Arch

1. Если у вас новая видеокарта и стабильная версия драйвера ещё не поддерживает её, попробуйте пакет nvidia-open-betaAUR, в котором может быть более новый драйвер с поддержкой вашей видеокарты.
2. Старые версии драйвера могут работать некорректно на системах с процессором Intel 11 поколения и новее и ядром 5.18 (или новее) из-за несовместимости с функцией безопасности Indirect Branch Tracking. Вы можете отключить её, добавив параметр ядра `ibt=off` в настройках загрузчика. Имейте в виду, что она отвечает за защиту от целого класса уязвимостей.
3. Если у вас совсем старая видеокарта, NVIDIA больше не поддерживает драйвера для неё. Это означает, что последние доступные для неё драйвера могут не поддерживать текущую версию Xorg. В таком случае может оказаться проще использовать драйвер nouveau, который поддерживает старые видеокарты и текущую версию Xorg. Однако устаревшие драйверы NVIDIA всё ещё доступны и могут предоставлять более хорошую стабильность или производительность 3D.

  Примечание:
  - При установке dkms прочтите раздел Dynamic Kernel Module Support (Русский)#Установка.
  - DKMS-варианты драйвера не привязаны к конкретному ядру, поскольку они компилируют модули для каждого ядра, для которого установлены заголовочные файлы.

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

Пакет nvidia-utils содержит файл, который запрещает загрузку модуля `nouveau`, так что запланируйте перезагрузку для его применения. По желанию также можно убрать `kms` из массива `HOOKS` в файле `/etc/mkinitcpio.conf` и пересобрать образ initramfs. Это предотвратит добавление модуля `nouveau` в initramfs.

Примечание: Если вы используете Wayland, не перезагружайтесь, пока не включите #DRM kernel mode setting, иначе после перезагрузки вы получите чёрный экран.

После установки драйвера можно перейти к разделу #Настройка Xorg или #Настройка Wayland.

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

Убедитесь, что ядро собрано с опцией `CONFIG_DRM_SIMPLEDRM=y`, а при использовании `CONFIG_DEBUG_INFO_BTF` в PKGBUILD должно быть это (начиная с ядра 5.16):

    install -Dt "$builddir/tools/bpf/resolve_btfids" tools/bpf/resolve_btfids/resolve_btfids

Если ваше ядро собрано с включенным `CONFIG_NOVA_CORE`, вам может понадобиться отключить новый драйвер Nova. Пакет nvidia-utils запрещает его загрузку по умолчанию. Если вы установили другую версию драйвера, вам может понадобиться вручную запретить загрузку модулей `nova_core` и `nova_drm`.

### DRM kernel mode setting

Поскольку NVIDIA не поддерживает автоматический поздний запуск KMS, для корректной работы композиторов Wayland необходимо включить DRM (Direct Rendering Manager) kernel mode setting.

С версии nvidia-utils 560.35.03-5 DRM включен по умолчанию.[1] В более старых версиях для включения добавьте параметр модуля ядра `modeset=1` для модуля `nvidia_drm`.

Чтобы проверить, что DRM действительно включен, можно выполнить команду:

    # cat /sys/module/nvidia_drm/parameters/modeset

Команда должна вывести `Y`.

Примечание: Официально поддерживаемые ядра используют `simpledrm`, однако драйверу NVIDIA нужен `efifb` или `vesafb`, если параметр `nvidia_drm.fbdev` отключен или недоступен (в версиях < 545).

#### Ранняя загрузка

Для базовой функциональности достаточно добавить параметр ядра. Если вы хотите, чтобы он загружался как можно раньше, или замечаете проблемы с запуском (например, модуль ядра `nvidia` загружается после экранного менеджера), вы можете добавить `nvidia`, `nvidia_modeset`, `nvidia_uvm` и `nvidia_drm` в initramfs. Подробнее об этом в разделе Модуль ядра#Ранняя загрузка модулей. При использовании mkinitcpio может понадобиться пересобирать образ initramfs каждый раз после обновления драйвера nvidia — можно использовать #Хук pacman для автоматизации этого действия.

##### Хук pacman

Примечание: Этот хук необходим только при использовании пакетов с заранее скомпилированными модулями ядра. Для пакетов `*-dkms` он не требуется, потому что их обновление автоматически запускает mkinitcpio.

Чтобы не забывать обновлять initramfs после обновления драйвера NVIDIA, вы можете использовать хук pacman:

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

    [Trigger]
    Operation=Install
    Operation=Upgrade
    Operation=Remove
    Type=Package
    # Можно удалить строки с неиспользуемыми пакетами: например,
    # если вы установили nvidia-open, то Target=nvidia-lts можно стереть
    Target=nvidia
    Target=nvidia-open
    Target=nvidia-lts
    # Если вы используете другой пакет ядра, пропишите его в строке ниже
    Target=linux

    [Action]
    Description=Updating 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'

Примечание: Усложнение в строке `Exec` сделано для того, чтобы избежать многократного запуска mkinitcpio в случае одновременного обновления пакетов `nvidia` и `linux`. Если вас это не беспокоит, строки `Target=linux` и `NeedsTargets` можно убрать, а строку `Exec` сократить до простого `Exec=/usr/bin/mkinitcpio -P`.

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

Аппаратное декодирование видео с помощью VDPAU поддерживается на картах серии GeForce 8 и новее. Аппаратное декодирование видео с помощью NVDEC поддерживается на картах Fermi (~400 серии) и новее. Подробности смотрите в статье Аппаратное ускорение видео.

### Аппаратное кодирование видео с помощью NVENC

Для NVENC нужен модуль `nvidia_uvm` и файлы устройств в `/dev`.

Пакеты с последней версией драйвера содержат правила udev, которые создают нужные файлы автоматически, так что дополнительные действия не требуются.

Если у вас старый драйвер (например, nvidia-340xx-dkmsAUR), вам нужно создать файлы устройств самостоятельно. Вызов утилиты `nvidia-modprobe` создаст их. Вы можете создать `/etc/udev/rules.d/70-nvidia.rules` для автоматического её запуска:

    /etc/udev/rules.d/70-nvidia.rules

    ACTION=="add", DEVPATH=="/bus/pci/drivers/nvidia", RUN+="/usr/bin/nvidia-modprobe -c 0 -u"

## Настройка Wayland

Информацию об Xwayland смотрите в разделе Wayland (Русский)#Xwayland.

Дальнейшие варианты настройки Wayland-окружения можно найти на страницах вики или в документации соответствующего композитора.

Примечание: В старых драйверах до версии 555 или при использовании Wayland-композиторов, не поддерживающих Explicit Sync (протокол `linux-drm-syncobj-v1`), могут наблюдаться серьёзные проблемы вроде мерцания, неправильного порядка вывода кадров и прочих артефактов.

### Базовая поддержка

Для работы Wayland важны два параметра `modeset` и `fbdev` в модуле `nvidia_drm`. Они включены по умолчанию в пакете nvidia-utils. NVIDIA также планирует включить их по умолчанию в будущей версии драйвера.

#### modeset

Включение `modeset` необходимо для нормальной работы Wayland.

Если у вас старый драйвер, в котором он не включен по умолчанию, смотрите разделы #DRM kernel mode setting и Wayland (Русский)#Требования.

#### fbdev

Включение `fbdev` может быть необходимо для работы Wayland в некоторых конфигурациях.

В частности, на некоторых версиях драйвера это может быть необходимо для Linux 6.11 и более новых версий, но пока что непонятно, это баг или ожидаемое поведение. [2]

Он включается по аналогии с #DRM kernel mode setting (добавляйте параметр `fbdev=1`) с тем лишь отличием, что в некоторых старых версиях драйвера команда:

    # cat /sys/module/nvidia_drm/parameters/fbdev

выдаст ошибку об отсутствующем файле вместо вывода `N`, если `fbdev` не включен.

### Поддержка ждущего режима

С настройками по умолчанию переход в ждущий режим может работать плохо, причём в Wayland проблем больше чем в X. Подробнее в разделе NVIDIA/Советы и рекомендации#Сохранение видеопамяти в ждущем режиме.

Если вы используете GDM, смотрите также раздел GDM#Wayland and the proprietary NVIDIA driver.

## Настройка Xorg

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

Совет: Больше информации о настройках можно прочитать в статье NVIDIA/Решение проблем.

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

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

    # nvidia-xconfig

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

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

### nvidia-settings

Инструмент nvidia-settings позволяет редактировать большинство опций через консоль или графический интерфейс. Запуск `nvidia-settings` без параметров запустит графический интерфейс; доступные опции командной строки описаны в nvidia-settings(1).

Вы можете запустить `nvidia-settings` от имени обычного пользователя и сохранить настройки в `~/.nvidia-settings-rc`, используя кнопку Save Current Configuration на вкладке nvidia-settings Configuration.

Чтобы загрузить настройки из `~/.nvidia-settings-rc` для текущего пользователя:

    $ nvidia-settings --load-config-only

Можно добавить эту команду в автозапуск.

Примечание: Xorg может перестать запускаться после сохранения изменений в `nvidia-settings`. Изменение или удаление сгенерированных файлов `~/.nvidia-settings-rc` и/или Xorg поможет восстановить работоспособность.

### Ручная настройка

Некоторые настройки (которые не могут быть включены автоматически или с помощью nvidia-settings) можно изменить через файл конфигурации. Для применения изменений нужно будет перезапустить сервер Xorg.

Подробности и доступные опции описаны в NVIDIA Accelerated Linux Graphics Driver README and Installation Guide.

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

Минимальный блок настроек `20-nvidia.conf` может выглядеть так:

    /etc/X11/xorg.conf.d/20-nvidia.conf

    Section "Device"
            Identifier "NVIDIA Card"
            Driver "nvidia"
            VendorName "NVIDIA Corporation"
            BoardName "GeForce GTX 1050 Ti"
    EndSection

#### Отключение лого при запуске

Если вы используете старый драйвер (nvidia-340xx-dkmsAUR), который ещё отображает логотип NVIDIA при запуске X, вы можете отключить его отображение, добавив `"NoLogo"` в секцию `Device`:

    Option "NoLogo" "1"

#### Переопределение обнаружения монитора

Опция `"ConnectedMonitor"` в секции `Device` позволяет переопределить обнаружение монитора при запуске X-сервера, что может сэкономить значительное количество времени при запуске. Доступными опциями являются: `"CRT"` для аналоговых подключений, `"DFP"` для цифровых мониторов и `"TV"` для телевизоров.

Следующая опция заставит драйвер NVIDIA обойти проверки при запуске и распознать монитор как DFP:

    Option "ConnectedMonitor" "DFP"

Примечание: Используйте "CRT" для всех аналоговых 15-контактных VGA-подключений, даже если дисплей является плоской панелью. "DFP" предназначен только для цифровых соединений DVI, HDMI или DisplayPort.

#### Включение SLI

Примечание: С версии 455.23.04 поддерживается только режим Mosaic; смотрите раздел #SLI Mosaic.
Важно: Начиная с серии GTX 10xx (1080, 1070, 1060 и т.д.) поддерживается только 2-way SLI. 3-way и 4-way SLI могут работать для приложений CUDA/OpenCL, но скорее всего сломают все приложения OpenGL.

В официальной документации указано, что `Option "SLI"` управляет настройкой SLI на поддерживаемых конфигурациях. «Поддерживаемая конфигурация» — это компьютер с материнской платой, имеющей сертификацию SLI и 2 или 3 GPU GeForce с сертификацией SLI.

Найдите идентификатор PCI-шины первого GPU с помощью `lspci`:

    # lspci -d ::03xx

    00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (rev 09)
    03:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)
    04:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)
    08:00.0 3D controller: NVIDIA Corporation GM108GLM [Quadro K620M / Quadro M500M] (rev a2)

Добавьте BusID (в данном примере 3) в секцию `Device`:

    BusID "PCI:3:0:0"

Примечание: Формат значения BusID должен быть таким: `"PCI:<BusID>:0:0"`

Добавьте нужное значение режима рендеринга SLI в секции `Screen`:

    Option "SLI" "AA"

Таблица доступных режимов рендеринга:

Значение | Поведение
--- | ---
0, no, off, false, Single | Использовать только один GPU при рендеринге.
1, yes, on, true, Auto | Включить SLI и позволить драйверу автоматически выбрать подходящий режим рендеринга.
AFR | Включить SLI и использовать режим рендеринга чередующихся кадров (alternate frame rendering mode).
SFR | Включить SLI и использовать режим рендеринга с разделением кадров (split frame rendering mode).
AA | Включить SLI и использовать сглаживание SLI. Используйте это в сочетании с полным сглаживанием сцены для улучшения качества изображения.

Также можно использовать nvidia-xconfig для внесения этих изменений в `xorg.conf` одной командой:

    # nvidia-xconfig --busid=PCI:3:0:0 --sli=AA

Проверка режима SLI:

    $ nvidia-settings -q all | grep SLIMode

      Attribute 'SLIMode' (arch:0.0): AA
        'SLIMode' is a string attribute.
        'SLIMode' is a read-only attribute.
        'SLIMode' can use the following target types: X Screen.

Важно: После включения SLI система может зависнуть/не реагировать при запуске xorg. Рекомендуется отключить экранный менеджер перед перезагрузкой.

Если эта конфигурация не работает, может понадобиться использовать PCI Bus ID, который выдаст `nvidia-settings`,

    $ nvidia-settings -q all | grep -i pcibus

    Attribute 'PCIBus' (host:0[gpu:0]): 101.
      'PCIBus' is an integer attribute.
      'PCIBus' is a read-only attribute.
      'PCIBus' can use the following target types: GPU, SDI Input Device.
    Attribute 'PCIBus' (host:0[gpu:1]): 23.
      'PCIBus' is an integer attribute.
      'PCIBus' is a read-only attribute.
      'PCIBus' can use the following target types: GPU, SDI Input Device.

и закомментировать опцию Primary GPU в настройках xorg,

    /usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf

    ...

    Section "OutputClass"
    ...
        # Option "PrimaryGPU" "yes"
    ...

Использование этой конфигурации также может решить проблемы с графической загрузкой.

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

Смотрите Multihead для получения основной информации.

#### Использование nvidia-settings

Можно использовать nvidia-settings для настройки нескольких мониторов.

Для настройки через командную строку сперва узнайте `CurrentMetaMode`:

    $ nvidia-settings -q CurrentMetaMode

    Attribute 'CurrentMetaMode' (hostnmae:0.0): id=50, switchable=no, source=nv-control :: DPY-1: 2880x1620 @2880x1620 +0+0 {ViewPortIn=2880x1620, ViewPortOut=2880x1620+0+0}

Сохраните всё после символов `::` и до конца атрибута (в данном примере `DPY-1: 2880x1620 @2880x1620 +0+0 {ViewPortIn=2880x1620, ViewPortOut=2880x1620+0+0}`) и используйте в качестве значения для перенастройки мониторов командой `nvidia-settings --assign "CurrentMetaMode=ваш_мета_режим"`.

Совет: Вы можете создать псевдонимы в командной оболочке для различных конфигураций мониторов и разрешений, которые вы используете.

#### 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

##### Вертикальная синхронизация при использовании 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.

##### Запуск игр при использовании TwinView

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

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

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

##### 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, карты GeForce имеют искусственное ограничение в 3 монитора в режиме Base Mosaic. Большее количество мониторов доступно в картах серии Quadro. С сентября 2014 года Windows не имеет ограничение на количество мониторов с той же самой версией драйвера, но в Linux-драйвере ограничение по-прежнему есть.

##### 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"

## NVswitch

Для систем с NVswitch, таких как H100x8 на AWS, нужно в дополнение к драйверу установить fabricmanager. Без него pytorch не заработает с сообщением об отсутствующем GPU.

Для установки fabricmanager нужно скачать архив, соответствующий версии установленного драйвера, и исправить путь установки файла в `sbin/fm_run_package_installer.sh`.

После установки запустите и включите службу `nvidia-fabricmanager.service`, и pytorch должен заработать.

## Советы и рекомендации

Смотрите NVIDIA/Советы и рекомендации.

## Решение проблем

Смотрите NVIDIA/Решение проблем.

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

- Информация о текущих версиях драйверов на официальном форуме NVIDIA
- NVIDIA Developers Forum - Linux Subforum

Categories:

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