NVIDIA/Tips and tricks (Русский) - ArchWiki

# NVIDIA/Tips and tricks (Русский)

From ArchWiki
< NVIDIA
Состояние перевода: На этой странице представлен перевод статьи NVIDIA/Tips and tricks. Дата последней синхронизации: 23 марта 2016. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Смотрите главную статью NVIDIA.

## Исправление разрешения терминала

Переход с драйвера nouveau будет сопровождаться низким разрешением экрана терминала при загрузке. Для загрузчика GRUB, обратитесь к GRUB/Tips and tricks#Setting the framebuffer resolution, чтобы увеличить разрешение.

## Использование ТВ-выхода

Хорошая статья об этом есть тут.

## X with a TV (DFP) as the only display

Сервер X откатывается к CRT-0, если нет автоматически определённого монитора. Это может стать проблемой при использовании подключения ТВ через DVI как основной монитор, и сервер X был запущен при выключенном ТВ или он был не подключен.

Для принудительного использования DFP драйвером NVIDIA, сохраните копию EDID в файловой системе там, где его сможет прочитать сервер X, вместо чтения EDID с ТВ/DFP.

Для получения EDID запустите nvidia-settings. Появится различная информация в древовидном формате, игнорируя все настройки выберите графический процессор (соответствующее поле должно называться "GPU-0" или быть похожим на него), щелкните по `DFP` секции (также возможно `DFP-0` или что-то похожее), нажмите на кнопку `Acquire Edid` и сохраните куда-нибудь, например в `/etc/X11/dfp0.edid`.

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

    $ startx -- -logverbose 6

После окончания иницализации сервера X закройте его, ваш лог файл сохранится в `/var/log/Xorg.0.log`. Извлеките блок EDID используя nvidia-xconfig:

    $ nvidia-xconfig --extract-edids-from-file=/var/log/Xorg.0.log --extract-edids-output-file=/etc/X11/dfp0.bin

Отредактируйте `xorg.conf` добавив в секцию `Device` строки:

    Option "ConnectedMonitor" "DFP"
    Option "CustomEDID" "DFP-0:/etc/X11/dfp0.edid"

Опция `ConnectedMonitor` принуждает драйвер распознавать DFP так, как буд-то он подключен. `CustomEDID` предоставляет данные EDID для устройства и говорит, что при загрузке ТВ/DFP как бы был подключен во время процесса запуска X.

Таким образом, можно автоматически запускать менеджер экрана при загрузке, иметь рабочий и настроенный экран для X до включения питания ТВ.

Если вышеуказанные изменения не работают, в `xorg.conf` в секции `Device` вы можете попробовать удалить строку `Option "ConnectedMonitor" "DFP"` и добавить следующие строки:

    Option "ModeValidation" "NoDFPNativeResolutionCheck"
    Option "ConnectedMonitor" "DFP-0"

Опция драйвера NVIDIA `NoDFPNativeResolutionCheck` предотвращает отключение всех режимов, которые не подходят к основному разрешению.

## Проверьте источник питания

С помощью драйвера NVIDIA можно выяснить текущий источник питания видеокарты. Для этого нужно получить значение параметра 'GPUPowerSource' с помощью утилиты `nvidia-settings` (0 - питание от сети переменного напряжения, 1 - питание от батареи):

    $ nvidia-settings -q GPUPowerSource -t

    1

## Прослушивание ACPI-событий

Драйверы NVIDIA автоматически пытаются подключиться к демону acpid и получать уведомления о ACPI событиях (подключение/отключение источника питания, некоторые горячие клавиши и т.д.). Если соединение завершается неудачей, то X сервер выведет следующее предупреждение:

    ~/.local/share/xorg/Xorg.0.log

    NVIDIA(0): ACPI: failed to connect to the ACPI event daemon; the daemon
    NVIDIA(0):     may not be running or the "AcpidSocketPath" X
    NVIDIA(0):     configuration option may not be set correctly.  When the
    NVIDIA(0):     ACPI event daemon is available, the NVIDIA X driver will
    NVIDIA(0):     try to use it to receive ACPI event notifications.  For
    NVIDIA(0):     details, please see the "ConnectToAcpid" and
    NVIDIA(0):     "AcpidSocketPath" X configuration options in Appendix B: X
    NVIDIA(0):     Config Options in the README.

Вы можете запретить вывод этого сообщения, отключив опцию `ConnectToAcpid` в вашем конфигурационном файле:

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

     Section "Device"
       ...
       Driver "nvidia"
       Option "ConnectToAcpid" "0"
       ...
     EndSection

Однако если вы пользователь ноутбука, возможно более грамотным решением проблемы станет установка и запуск acpid демона.

## Отображение температуры графического процессора в оболочке

### Method 1 - nvidia-settings

Примечание: Данный метод требует наличия сервера X. Используйте второй или третий метод если X сервер вам не нужен. Также, третий метод не работает с новыми картами NVIDIA, такими как GeForce 200 series, и с интегрированными графическими решениями, такими как Zotac IONITX's 8800GS.

Для отображения температуры графического ядра в оболочке используйте `nvidia-settings` как указано ниже:

    $ nvidia-settings -q gpucoretemp

Вывод должен быть примерно такой:

    Attribute 'GPUCoreTemp' (hostname:0.0): 41.
    'GPUCoreTemp' is an integer attribute.
    'GPUCoreTemp' is a read-only attribute.
    'GPUCoreTemp' can use the following target types: X Screen, GPU.

Температура графического процессора этой платы 41 °C.

Пример того, как получить значение температуры для использования в утилитах `rrdtool` или `conky` и др.:

    $ nvidia-settings -q gpucoretemp -t

    41

### Method 2 - nvidia-smi

`nvidia-smi` может читать температуру прямо с графического процессора без использования сервера X. Это важно для небольшой группы пользователей, которые не имеют запущенного сервера X, те, кто используют ОС для серверных приложений. Отображение температуры графического процессора с использованием nvidia-smi:

    $ nvidia-smi

Пример вывода результата работы программы:

    $ nvidia-smi

    Fri Jan  6 18:53:54 2012
    +------------------------------------------------------+
    | NVIDIA-SMI 2.290.10   Driver Version: 290.10         |
    |-------------------------------+----------------------+----------------------+
    | Nb.  Name                     | Bus Id        Disp.  | Volatile ECC SB / DB |
    | Fan   Temp   Power Usage /Cap | Memory Usage         | GPU Util. Compute M. |
    |===============================+======================+======================|
    | 0.  GeForce 8500 GT           | 0000:01:00.0  N/A    |       N/A        N/A |
    |  30%   62 C  N/A   N/A /  N/A |  17%   42MB /  255MB |  N/A      Default    |
    |-------------------------------+----------------------+----------------------|
    | Compute processes:                                               GPU Memory |
    |  GPU  PID     Process name                                       Usage      |
    |=============================================================================|
    |  0.           ERROR: Not Supported                                          |
    +-----------------------------------------------------------------------------+

Только температура:

    $ nvidia-smi -q -d TEMPERATURE

    ==============NVSMI LOG==============

    Timestamp                           : Sun Apr 12 08:49:10 2015
    Driver Version                      : 346.59

    Attached GPUs                       : 1
    GPU 0000:01:00.0
        Temperature
            GPU Current Temp            : 52 C
            GPU Shutdown Temp           : N/A
            GPU Slowdown Temp           : N/A

Пример того, как получить значение температуры для использования в утилитах `rrdtool` или `conky` и др.:

    $ nvidia-smi -q -d TEMPERATURE | awk '/GPU Current Temp/ {print $5}'

    52

Ссылка на руководство: http://www.question-defense.com/2010/03/22/gpu-linux-shell-temp-get-nvidia-gpu-temperatures-via-linux-cli.

### Method 3 - nvclock

Используйте nvclockAUR, который доступен в AUR.

Примечание: `nvclock` не может получить доступ к тепловому сенсору на картах NVIDIA новее Geforce 200 series.

Могут быть расхождения значений температуры между nvclock и nvidia-settings/nv-control. В соответствии с этим сообщением от автора (thunderbird) nvclock, значения выдаваемые nvclock более точные.

## Установка скорости вентилятора при входе

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

Примечания: Плохой стиль оригинала. (обсуждение: Talk:NVIDIA/Tips and tricks (Русский)#)

Вы можете выставить скорость вентилятора вашей графической карты с помощью консольного интерфейса nvidia-settings. Сначала убедитесь в том, что в вашем конфигурационом файле Xorg значения опции Coolbits установлены в `4`, `5` или `12` для архитектуры Ферми и выше в секции `Device` для включения управления скоростью вентилятора.

    Option "Coolbits" "4"

Примечание: Для карт GeForce 400/500 series, на текущий момент, этот метод при входе не устанавливает скорость вентилятора. Также, этот метод только позволяет настраивать скорость вентилятора только для текущей сессии X через nvidia-settings.

Поместите следующую строку в ваш файл xinitrc для управления вентилятором при запуске Xorg. Замените `n` на значение скорости вентилятора нужное вам в процентах.

    nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUCurrentFanSpeed=n"

Также вы можете указать и второй графический процессор, путем увеличения счетчика графического процесора и вентилятора.

    nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUCurrentFanSpeed=n" \
                    -a "[gpu:1]/GPUFanControlState=1" -a  [fan:1]/GPUCurrentFanSpeed=n" &

Если вы ипользуете менеджер входа такой как GDM или KDM, вы можете создать файл настроек. Создайте `~/.config/autostart/nvidia-fan-speed.desktop` и вставьте следующий текст.Снова измените `n` на значение скорости вентилятора нужное вам в процентах.

    [Desktop Entry]
    Type=Application
    Exec=nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUCurrentFanSpeed=n"
    X-GNOME-Autostart-enabled=true
    Name=nvidia-fan-speed

Примечание: С версии драйвера 349.16, опция `GPUCurrentFanSpeed` заменена на `GPUTargetFanSpeed`. [1]

## Переключение драйверов NVIDIA и nouveau

Если вам необходимо переключиться между драйверами, вы можете воспользоваться следующим скриптом (запускайте с правами суперпользователя и пишите yes во всех подтверждениях) :

    #!/bin/bash
    BRANCH= # Enter a branch if needed, i.e. -340xx or -304xx
    NVIDIA=nvidia${BRANCH} # If no branch entered above this would be "nvidia"
    NOUVEAU=xf86-video-nouveau

    # Replace -R with -Rs to if you want to remove the unneeded dependencies
    if [ $(pacman -Qqs ^mesa-libgl$) ]; then
        pacman -S $NVIDIA ${NVIDIA}-libgl # Add lib32-${NVIDIA}-libgl and ${NVIDIA}-lts if needed
        # pacman -R $NOUVEAU
    elif [ $(pacman -Qqs ^${NVIDIA}$) ]; then
        pacman -S --needed $NOUVEAU mesa-libgl # Add lib32-mesa-libgl if needed
        pacman -R $NVIDIA # Add ${NVIDIA}-lts if needed
    fi

## Как избежать разрывов/тиринга на картах GeForce серий 500/600/700/900

Разрывов можно избежать принудительным включением цепочки полного композитинга, независимо от используего вами композитора. Для проверки работоспособности опции, выполните

    nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"

Вам будет сообщено, что производительность некоторых приложений OpenGL может быть снижена.

Для постоянного использования сделанных изменений, вам необходимо добавить следующую строку в секцию `"Screen"` вашего конфигурационного файла Xorg, например `/etc/X11/xorg.conf.d/20-nvidia.conf`:

    Option  "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"

Если у вас нет конфигурационного файла Xorg, вы можете создать его для текущей видеокарты исполльзуя `nvidia-xconfig` (смотрите #Автоматическая настройка[broken link: invalid section]) и переместить его из `/etc/X11/xorg.conf` в более удобное место `/etc/X11/xorg.conf.d/20-nvidia.conf`.

## Ручная конфигурация

Некоторые настройки (которые не могут быть настроены автоматически[broken link: invalid section] или с помощью GUI) можно выполнить с помощью редактирования конфигурационного файла. Для вступления изменений в силу перезапустите X сервер.

Обратитесь к NVIDIA Accelerated Linux Graphics Driver README and Installation Guide для дополнительных сведений.

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

Добавьте опцию `"NoLogo"` внутри секции `Device`:

    Option "NoLogo" "1"

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

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

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

    Option "ConnectedMonitor" "DFP"

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

### Включение контроля яркости

Добавьте в секцию `Device` строку:

    Option "RegistryDwords" "EnableBrightnessControl=1"

Если контроль яркости не заработает после применения данной опции, попробуйте установить nvidia-blAUR или nvidiablAUR.

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

Важно: По состоянию на Май 7, 2011, вы можете испытывать проблемы с производительностью видео в GNOME 3, после включения SLI.

Выдержка из README драйвера NVIDIA Приложение B: Данная опция контролирует рендеринг SLI в поддерживаемых конфигурациях. Другими словами, в "поддерживаемых конфигурациях" обозначены компьютеры оборудованные материнской платой c сертифицированной поддержкой SLI и 2 или 3 графических процессора GeForce, также с сертифицированной поддержкой SLI. Смотрите Зона SLI (англ.) для получения подробной информации.

Найдем первый PCI Bus ID графического процессора, используя `lspci`:

    $ lspci | grep VGA

    03:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 8800 GTS 512] (rev a2)
    05:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 8800 GTS 512] (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 | Использовать только один графический процессор для рендеринга.
1, yes, on, true, Auto | Включить SLI и позволить драйверу автоматически выбрать режим рендеринга.
AFR | Включить SLI и использовать режим поочередного рендеринга кадров.
SFR | Включить SLI и использовать режим разделённого рендеринга кадров.
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. Желательно отключить менеджер входа до перезагрузки.

### Включение разгона

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

Разгон контролируется через опцию Coolbits в секции `Device`, позволяя использовать различные неподдерживаемые свойства:

    Option "Coolbits" "value"

Совет: Опция Coolbits легко контролируется через nvidia-xconfig, которая может управлять файлами конфигурации Xorg:

    # nvidia-xconfig --cool-bits=value

Значение Coolbits - сумма его составляющих битов в двоичной системе исчисления. Типы битов:

- `1` (bit 0) - Включает возможность разгона для старых (до архитектуры Fermi) ядер, вкладка Clock Frequencies в nvidia-settings.
- `2` (bit 1) - Когда бит установлен, драйвер "будет пытаться инициализировать режим SLI, когда используются два графических процессора с разным количеством видеопамяти".
- `4` (bit 2) - Включает ручное управление охлаждением графического процессора вкладка Thermal Monitor в nvidia-settings.
- `8` (bit 3) - Включает возможность разгона на вкладке PowerMizer в nvidia-settings. Доступна с версии 337.12 для архитектур Fermi и новее. [2]
- `16` (bit 4) - Включает возможность повышения напряжения через параметры командной строки nvidia-settings. Доступна с версии 337.12 для архитектур Fermi и новее.[3]

Чтобы включить несколько свойств, сложите значения Coolbits. Например, чтобы включить возможности разгона и повышения напряжения для архитектуры Fermi, установите значение `Option "Coolbits" "24"`.

Документация по Coolbits находится в `/usr/share/doc/nvidia/html/xconfigoptions.html`. Последния онлайн-версия документации по Coolbits (версия драйвера 355.11) находится тут (англ.).

Примечание: Также, возможно отредактировать и переписать BIOS графического процессора, используя DOS (предпочтительнее) или с использованием Win32 окружения с помощью nvflash[устаревшая ссылка 2013-05-25] и NiBiTor 6.0[устаревшая ссылка 2013-05-25]. Преимущество данного способа в том, что вы можете поднять не только напряжение, но и повысить стабильность программных методов разгона, такие как Coolbits. Руководство по модификации BIOS архитектуры Fermi (англ.)

#### Настройка статического 2D/3D разгона

Установите следующую строку в секции `Device` для включения PowerMizer на максимальную производительность (VSync не будет работать без этой строки):

    Option "RegistryDwords" "PerfLevelSrc=0x2222"

Categories:

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

Hidden category:

- Pages with broken section links