В этой статье описаны установка, настройка, обновление, удаление проприетарного драйвера для видеокарт Nvidia.

Определение модели видеокарты

Для определения модели видеокарты запустите терминал (Ctrl+Alt+T) и выполните команду:

lspci -k| grep -EA2 'VGA|3D'



Если вывод команды показал две видеокарты Intel + Nvidia, перейдите к инструкции nVidia Optimus



Выбор версии драйвера

На сайте Nvidia выложены несколько версий видео драйвера, можно нажать на каждую и посмотреть список поддерживаемых видеокарт. Так вы сможете определить какой драйвер вам нужен. Или посмотреть на форуме .



Если подходит 96 версия, перейдите к инструкции установка драйвера для старых видеокарт.



Установка драйвера из официального репозитория Ubuntu (рекомендуется)

  1. Устанавливаем драйвер и программу для его настройки, запустите терминал (Ctrl+Alt+T) и выполните команду:

    sudo apt-get update && sudo apt-get install nvidia-304 nvidia-settings

  2. Создаем xorg.conf:

    sudo nvidia-xconfig

  3. Перезагружаем компьютер.
  4. После перезагрузки проверяем какой видео драйвер используется:

    lspci -k| grep -EA2 'VGA|3D'

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

    03:00.0 VGA compatible controller: NVIDIA Corporation G92 [GeForce 9800 GT] (rev a2)
        Subsystem: Elitegroup Computer Systems Device 1a0e
        Kernel driver in use: nvidia

Установка более новой версии драйвера из PPA

Для Ubuntu существует неофициальный репозиторий, в котором выкладываются новые версии драйверов, это драйверы собранные из исходников с сайта Nvidia упакованные в deb пакеты.

  1. Удаляем ранее установленный драйвер nvidia, если устанавливали:
    sudo apt-get purge nvidia*

  2. Подключаем репозиторий:

    sudo add-apt-repository ppa:ubuntu-x-swat/x-updates

  3. Устанавливаем драйвер:

    sudo apt-get update && sudo apt-get install nvidia-331 nvidia-settings-331

  4. Создаем xorg.conf:

    sudo nvidia-xconfig

  5. Перезагружаем компьютер.
  6. После перезагрузки проверяем какой видео драйвер используется:

    lspci -k| grep -EA2 'VGA|3D'

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

    03:00.0 VGA compatible controller: NVIDIA Corporation G92 [GeForce 9800 GT] (rev a2)
        Subsystem: Elitegroup Computer Systems Device 1a0e
        Kernel driver in use: nvidia

Установка драйвера с официального сайта Nvidia (сборка из исходников)

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

  1. Удалите предыдущие драйвера, установленные через менеджер драйверов, чтобы в системе пакетов не возникло ошибок:

    sudo apt-get purge nvidia-

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

  2. Скачайте последнюю версию драйвера с официального сайта Nvidia (полученный файл будет иметь название вида NVIDIA-Linux-XXX-X.X-XXX-pkg1.run);
  3. Установите необходимые пакеты:

    sudo apt-get install linux-headers-`uname -r` binutils pkg-config build-essential xserver-xorg-dev

  4. Откройте черный список модулей ядра:

    sudo gedit /etc/modprobe.d/blacklist.conf

    Добавьте в него свободные видео драйверы, которые могут работать с видеокартами Nvidia:

    blacklist vga16fb
    blacklist nouveau
    blacklist rivafb
    blacklist nvidiafb
    blacklist rivatv

    Сохраните изменения и закройте текстовй редактор.

  5. Выключите X сервер командой в терминале (для Ubuntu версии 11.10 и выше):

    sudo service lightdm stop

    переключитесь на консоль командой Ctrl-Alt-F1 и войдите в систему под обычным пользователем;

  6. Запустите установщик драйверов (из каталога куда был сохранен драйвер):

    sudo sh  ./NVIDIA-Linux-XXX-X.X-XXX-pkg1.run

    :!: Вместо NVIDIA-Linux-XXX-X.X-XXX-pkg1.run укажите точное имя пакета с драйверами, которые вы скачали с официального сайта
    (это же действие удобнее делать через Midnight Commander, запустить mc с правами администратора, перейти в каталог, выделить файл и нажать энтер).

  7. Инсталлятор сообщит об отсутствии «precompiled headers» для вашего ядра и предложит скачать их с сервера Nvidia - откажитесь. Затем, он предложит скомпилировать их сам - соглашайтесь.
  8. Если все прошло успешно, то по окончанию установки вам будет предложено запустить утилиту автонастройки nvidia-xconfig - откажитесь.
  9. Сделайте копию конфигурационного файла X-сервера:

    sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

  10. Отредактируйте файл xorg.conf в соответствии с приведенным ниже примером:

    Section "Screen"
    	Identifier	"Default Screen"
    	DefaultDepth	24
    EndSection        
    
    Section "Device"
    	Identifier	"Default Device"
    	Driver	"nvidia"
    	Option	"NoLogo"	"True"
    EndSection
    
    Section "Module"
    	Load	"glx"
    EndSection
  11. Перезапустите X-сервер:

    Для Ubuntu версии 11.10 и выше:

    sudo service lightdm start

    Для старых версий Ubuntu, а также для тех, кто использует GDM вместо LightDM:

    sudo service gdm start

Если вы все сделали правильно, то X-сервер запустится уже используя официальные драйвера nVidia. Если же X-сервер не запустился, то просто восстановите конфигурационный файл:
sudo cp /etc/X11/xorg.conf.backup /etc/X11/xorg.conf

и ищите ошибку в своих действиях или спрашивайте в обсуждении на форуме.

Удаление драйвера после установки из исходников

Если требуется полностью удалить установленный вручную драйвер Nvidia, нужно выполнить следующее:

  1. Скачайте последнюю версию драйверов с официального сайта Nvidia (полученный файл будет иметь имя вида NVIDIA-Linux-XXX-X.X-XXX-pkg1.run).
  2. Запустите установщик драйверов (из каталога куда был сохранен драйвер) с ключом –uninstall:

    sudo -s -H sh NVIDIA-Linux-XXX-X.X-XXX-pkg1.run --uninstall

    :!: Вместо NVIDIA-Linux-XXX-X.X-XXX-pkg1.run укажите точное имя пакета с драйверами, которые вы скачали.

Устранение возможных проблем

Неправильно определяются разрешение и частота монитора

  • Если не устанавливается или неправильно определяются разрешение и частота монитора, нужно добавить следующие строки в секцию «Screen»: ..
    SubSection "Display"
        Depth   24
        Modes   "1920x1200"
    EndSubSection

    ..разрешение соответственно меняем на то, которое вам нужно

  • Или воспользоваться методом определения Modeline для этих целей, используя утилиту gtf. Для этого нужно точно знать разрешение и частоту вашего монитора от производителя, Включая горизонтальную <HorizSync XX.0 - XX.0> и вертикальную <VertRefresh XX.0 - XX.0> развёртку вашего монитора, которые можно узнать в паспорте или на сайтах производителя. Смотрите обсуждение сводной темы. Применение gtf - 1920×1200 60Hz для монитора HP-ZR24w. Вводим в терминал: ..

    gtf 1920 1200 60
        получаем:
        1920x1200 @ 60.00 Hz (GTF) hsync: 74.52 kHz; pclk: 193.16 MHz
        Modeline "1920x1200_60.00"  193.16  1920 2048 2256 2592  1200 1201 1204 1242  -HSync +Vsync

  • Далее копируем строку Modeline и вставляем в файл xorg.conf, в секцию «Monitor» и правим значения опций HorizSync и VertRefresh. Опции VendorName и ModelName редактируйте согласно своей модели, - либо вообще не трогайте(!): ..

    Section "Monitor"
        Identifier     "Monitor0"
        VendorName     "HP"
        ModelName      "ZR24w"
        HorizSync       24.0 - 80.0
        VertRefresh     59.0 - 61.0
        Option         "DPMS"
        Modeline "1920x1200_60.00"  193.16  1920 2048 2256 2592  1200 1201 1204 1242  -HSync +Vsync
    EndSection

Медленно работает (тормозит) интерфейс в Ubuntu на видеокартах Nvidia

  • Суть проблемы в том, что видеокарта nVidia с включённой по умолчанию опцией PowerMizer динамически меняет частоты памяти и GPU на видеокарте, а система болезненно на это реагирует.
  • Выходом является смена в Nvidia X Server settings (nvidia-settings) в разделе PowerMizer - Preferred Mode режима с Adaptive на Maximum Performance. После перезагрузки ПК, настройки сбросятся и нужно автоматизировать установку Maximum Performance.
  • Для этого нужно отредактировать xorg.conf, чтобы он выглядел следующим образом:
Section "Screen"
	Identifier	"Default Screen"
	DefaultDepth	24
EndSection        

Section "Device"
	Identifier	"Default Device"
	Driver	"nvidia"
	Option	"NoLogo"	"True"
        Option  "Coolbits"      "1"
        Option  "RegistryDwords"    "PowerMizerEnable=0x1; PerfLevelSrc=0x3322; PowerMizerDefaultAC=0x1"
EndSection

Section "Module"
	Load	"glx"
EndSection
  • Для систем в которых xorg.conf отсутствует можно изменить рассматриваемую опцию, поместив следующую команду в автозапуск:
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=1

Исправление загрузочного экрана (Plymouth)

FIXME

  1. Установите необходимые пакеты:
    sudo apt-get install v86d

  2. Измените параметры загрузчика, для этого в терминале введите:

    sudo gedit /etc/default/grub

    Найдите и добавьте/исправьте строчки на следующие, изменив разрешение на своё:

    GRUB_GFXMODE=1440x900x24
    GRUB_GFXPAYLOAD_LINUX=keep

    :!: Возможно потребуется использовать 16-битную глубину цвета (GRUB_GFXMODE=1440x900x16)

  3. Выполните команду в терминале:

    echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash

  4. Обновите параметры загрузчика и ядра:

    sudo update-initramfs -u
    sudo update-grub2

  5. Перезагрузите систему.

Исправление загрузочного экрана (Plymouth) в Ubuntu 10.04, 10.10, 11.04, 11.10

DELETEME

Заметка для редакторов: Проверить, для каких выпусков Ubuntu подходит способ. Если для 12.04 и 12.10 он отличен — описать изменения.

  1. Установите необходимые пакеты:
    sudo apt-get install v86d cryptsetup libcryptsetup1 libcryptsetup-dev hwinfo

  2. Измените параметры загрузчика, для этого в терминале введите:

    sudo gedit /etc/default/grub

    Найдите и добавьте/исправьте строчки на следующие, меняя «номер» и разрешение на свои:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1920x1200-24,mtrr=3,scroll=ywrap"
    GRUB_CMDLINE_LINUX="splash vga=0x037d"
    GRUB_GFXMODE=1920x1200

    :!: Значение vga=«номер» для GRUB_CMDLINE_LINUX берется из вывода команды

    sudo hwinfo --framebuffer
  3. Отредактируйте файл /etc/grub.d/00_header

    sudo gedit /etc/grub.d/00_header

    Найдите строку и впишите нужное вам разрешение

    if [ "x${GRUB_GFXMODE}" = "x" ] ; then GRUB_GFXMODE=1920x1200 ; fi

    Также сразу под этой строкой допишите

    set gfxpayload=keep

    Далее в этом же файле найдите строку и замените в ней разрешение на нужное:

    set gfxmode=1920x1200
  4. Отредактируйте загрузку модулей:

    sudo gedit /etc/initramfs-tools/modules

    Добавьте в файл строку, меняя в ней разрешение на нужное:

    uvesafb mode_option=1920x1200-24 mtrr=3 scroll=ywrap

  5. Выполните команду в терминале:

    echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash

  6. Обновите параметры загрузчика и ядра:

    sudo update-grub
    sudo update-initramfs -u

  7. Перезагрузите систему.

Дополнительные опции

Option  "GLShaderDiskCache"   "True"

В некоторых случаях позволяет ускорить работу с шейдерами

Option  "ModeValidate" "NoTotalSizeCheck"

Позволяет для видеокарт GF9xxx, GTX2xx и новее избежать разбиения изображения на 6 маленьких экранов

Option "ModeValidation" "NoEdidModes, NoMaxPClkCheck, NoVertRefreshCheck, NoHorizSyncCheck, NoEdidMaxPClkCheck" 

Наиболее часто помогает, опция убирает проверку различных параметров портов видеокарты и опций передаваемых монитором, но воспринимаемых системой ошибочно.

Option "UseEDIDFreqs" "False"

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

Option "NoBandWidthTest" "True"

Выключает тест памяти видеокарты на аппаратные ограничения пропускной способности.

Option "ExactModeTimingsDVI" "True"

Опция вызывает принудительную синхронизацию с точными таймингами, указанными в ModeLine, а не с приближенными к ним, которые указаны в EDID.

SLI режим

  • Если не работает SLI режим или не запускается X-сервер с двумя включенными карточками, то добавляем в секцию «Device» строку:
Option   "SLI" "True"

Настройка TV-out

Подключение TV настраивается обычно через Система⇒Администрирование⇒NVIDIA X Server Settings, но если после настройки так и не удается вывести изображение на TV, добавляем следующие строки в секцию «Screen»:

Option         "TwinView"
Option         "TVOutFormat" "AUTOSELECT"
Option         "TVStandard" "PAL-B"

Режим опции «TVOutFormat» можно задать вручную, вписав вместо «AUTOSELECT» одно из следующих значений:

TVOutFormat Поддерживаемые TV форматы
«AUTOSELECT» PAL, NTSC, HD
«COMPOSITE» PAL, NTSC
«SVIDEO» PAL, NTSC
«COMPONENT» HD
«SCART» PAL, NTSC

Режим опции «TVStandard» можно менять взависимости от того формата который вам нужен, вписав вместо «PAL-B» одно из следующих значений:

TVStandard Описание
«PAL-B»
«PAL-D»
«PAL-G»
«PAL-N»
«NTSC-J»
«NTSC-M»
«HD480i»
«HD480p»
«HD576i»
«HD576p»
«HD720p»
«HD1080i»
«HD1080p»

Разгон видеокарт семейства nVidia Fermi

Для активации возможности разгона формируем и редактируем xorg.conf:

sudo nvidia-xconfig
sudo nano /etc/X11/xorg.conf

В секцию «Device» добавляем следующую строку:

Option "Coolbits" "8"

, сохраняем файл и перезапускаем иксы. Теперь через утилиту nvidia-settings в разделе PowerMizer вам доступно управление частотами памяти и ядра. Данные настройки будут сбрасываться каждый новый сеанс. Если вы хотите сохранить установленные настройки разгона, сформируйте конфиг-файл .nvidia-settings-rc в домашнем каталоге пользователя, сохранив текущую конфигурацию через nvidia-settings, и добавьте в полученный файл следующие строки:

[gpu:0]/GPUGraphicsClockOffset[3]=-50
[gpu:0]/GPUMemoryTransferRateOffset[3]=-50

, где числовые значения - разгон частот ядра и памяти соответственно. Остается добавить команду

nvidia-settings --load-config-only

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

Техническая поддержка nVidia

Если при использовании проприетарного драйвера nVidia у вас возникнут какие-либо проблемы вы можете обратиться в техническую поддержку компании nVidia:

Ссылки

См.также