Установка драйверов NVidia

Материал из База знаний проекта Russian Fedora

Перейти к: навигация, поиск

На странице дана информация по установке проприетарных драйверов для видеокарт Nvidia.

Внимание! Проприетарный (несвободный) драйвер!
В Fedora Linux официально поддерживаются только свободные модули (драйверы) устройств. Свободный драйвер для данных устройств: nouveau
Внимание! В данной вики за любые упоминания ручного способа установки драйвера как основного - откат и блокировка аккаунта!


Содержание

Другие инструкции

Предварительные действия

  1. Выясняем архитектуру системы. Выполним:
    uname -m
    Возможные варианты: i686 и x86_64. Данная информация понадобится нам в ходе установки.
  2. Если у вас архитектура i686, выясним вариант установленного ядра Linux. Выполним:
    uname -r
    Если в строке Вы встретите следующие слова, то:
    • PAE - значит у Вас PAE-ядро;
    • debug - значит у Вас debug-ядро;
    • во всех остальных случаях у Вас generic-ядро (обычное).
  3. Выясним версию дистрибутива: Fedora или же RFRemix. Выполним:
    cat /etc/system-release
    В результате мы получим один из следующих вариантов:
    • Fedora release 14 (Laughlin) - у Вас установлена Fedora без дополнений RFRemix, необходимо подключить репозитории RPMFusion. См. Репозитории#RPM_Fusion
    • RFRemix release 14 (Laughlin) - никаких дополнительных действий совершать не нужно.
  4. Выбираем версию драйвера, исходя из того видеоадаптера, который используем: самый простой способ выяснить версию - это сходить на сайт NVidia, выбрать модель установленного у Вас адаптера в списке и посмотреть предложенную версию. В основном это касается адаптеров 5-ой серии и более ранних.
    • если версия драйвера содержит 173.X.X (где Х - некие цифры), то потребуется использовать вместо:
      • (a)kmod-nvidia - (a)kmod-nvidia-173xx
      • xorg-x11-drv-nvidia-libs.i686 - xorg-x11-drv-nvidia-173xx-libs.i686
    • если версия драйвера содержит 100.х.х, то потребуется использовать вместо:
      • (a)kmod-nvidia - (a)kmod-nvidia-96xx
      • xorg-x11-drv-nvidia-libs.i686 - xorg-x11-drv-nvidia-96xx-libs.i686

Установка в Fedora/RFRemix 19/20/21

Внимание!
Данный способ наиболее рекомендуем к применению во всех выпусках Fedora, поскольку откат в случае необходимости не составляет труда. Другие способы могут вызвать трудности при откате.

Подключим хранилища RPMFusion.


В сети масса руководств, как это сделать, приведу одно, если ты не нашел. Инструкция тут: Репозитории#RPM Fusion. Причем подключить надо и free и nonfree.

Внимание!
Для пользователей RFRemix — этот пункт выполнять не надо, у вас и так уже все подключено.

Обязательно обновляем до последней версии ядро и пакеты SELinux:

yum update kernel* selinux-policy*

Примечание: после обновления компьютер необходимо перезагрузить

Устанавливаем akmod и kernel-devel

yum install akmod-nvidia kernel-devel

Для владельцев новых карт:прежде чем нажать y при установке, убедитесь что ваша видеокарта совместима с этим драйвером. Если нет- посмотрите, совместима ли последняя версия драйвера в Rawhide с вашей видеокартой. Если да, ставьте ее вот так:

 yum --enablerepo=rpmfusion-nonfree-rawhide install akmod-nvidia kernel-devel

Для PAE:

yum install akmod-nvidia kernel-PAE-devel

или Kmod:

yum install kmod-nvidia

PAE:

yum install kernel-PAE-devel kmod-nvidia-PAE

Отключить Nouveau через grub больше нельзя, равно как и через blacklist.conf, его интегрировали в ядро ради красивой капельки plymouth, потому нам придется собрать новый загрузочный образ ядра без nouveau. Отключаем nouveau, перед этим создав резервную копию:

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img

пересоздадим initramfs с модулем nvidia:

dracut /boot/initramfs-$(uname -r).img $(uname -r)

Теперь перезагружаемся и смотрим, как работает блоб. Проверено на fedora 20 x86_64.

Установка в Fedora/RFRemix 18 (Устаревший способ, на некоторых выпусках иногда не срабатывает)

Подключим хринилища RPMFusion.

В сети масса руководств, как это сделать, приведу одно, если ты не нашел. Инструкция тут: Репозитории#RPM Fusion. Причем подключить надо и free и nonfree.

Внимание!
Для пользователей RFRemix — этот пункт выполнять не надо, у вас и так уже все подключено.

Смотрим, какое у нас ядро.

Для тех, у кого архитектура 64-х битная — этот пункт лишний, просто следуй обычным решениям. Для чего это нужно? Для того, чтобы установить правильный пакет для автоматической сборки модулей. Выполняем команду, все равно от пользователя или от root’а:

uname -r

Посмотрели, если в строчке есть буквы PAE — запоминаем это и следуем советам «для PAE-ядра«.

Ставим нужные пакеты.

Внимание!
Все команды, перечисленные ниже выполняются только с правами root. См. Как стать root-ом

Для установки запустим одну из нижеследующих команд.

Обычное решение:

yum install akmod-nvidia

или для PAE-ядра:

yum install akmod-nvidia kernel-PAE-devel

Поясню, что мы ставим и для чего.

Пакет akmod-nvidia — содержит в себе исходники для т.н. kmod-пакетов (пакеты, содержащие модули ядра), и с помощью утилиты от RPMFusion akmods под каждое новое ядро, утилита будет собирать новый kmod-nvidia. Это просто, безопасно и по опыту работает стабильнее, чем надеяться на RPMFusion и их выпуск kmod-nvidia-пакетов. Для PAE-ядра. Пакет kernel-PAE-devel мы ставим потому, что yum не умеет различать какое ядро установлено.

Проверяем.

проверяем наличие файла /etc/X11/xorg.conf командой:

ls -l /etc/X11/xorg.conf

если такой файл есть, тебе его покажут, если нет — то bash об этом скажет, файл этот должен быть, без него ничего не заведется, если его нет — что-то ты не так поставил, проверяй, переставляй;

проверяем наличие файла /etc/X11/xorg.conf.d/00-nvidia.conf командой:

ls -l /etc/X11/xorg.conf.d/00-nvidia.conf

все тоже самое, файл должен быть, без него не заработает;

проверяем наличие файла /etc/modprobe.d/blacklist-nouveau.conf, командой:

ls -l /etc/modprobe.d/blacklist-nouveau.conf

файл тоже должен быть, но начиная с 18-ой федоры и ядра 3.6.9 я стал сильно сомневаться в его реальной нужности, но об этом позже.

Завершаем установку.

Итак нам осталось совсем чуть-чуть. Надо пересобрать initrd с учетом файла /etc/modprobe.d/blacklist-nouveau.conf. Делаем это командой:

/usr/libexec/plymouth/plymouth-update-initrd

Но для несчастных пользователей Fedora 18 и ядра 3.6.9 и выше, есть еще кое-что. Открываем файл /etc/default/grub, ищем строку, которая начинается так:

GRUB_CMDLINE_LINUX=

ищем в этой строке запись rdblacklist=nouveau и если таковой записи нет, добавляем ее через пробел в конец этой строки. Без этого пока блоб не будет работать, может эту строчку снова вернут в пакет, но лучше убедиться, что она точно есть! Обновляем записи GRUB2 командой от root’а:

grub2-mkconfig -o /boot/grub2/grub.cfg

Для тех, у кого 64-х битная ОС (x86_64) также есть отдельный совет: поставь 32-х битную версию библиотек nvidia.

Делается это такой командой:

yum install xorg-x11-drv-nvidia-libs.i686

Всё.

Перезагружаемся и проверяем, как работает блоб.

Установка в Fedora/RFRemix 14

Давайте выберем, какой вариант драйвер нам подойдет больше, существует два варианта:

  1. Обновляемый (kmod): данный вариант удобен тем, что ничего лишнего в систему не устанавливается, а сам модуль вместе с обновлением ядра, обновляется из хранилища RPMFusion. Но есть и недостаток, в случае отсутствия модуля под определенную версию ядра могут возникнуть проблемы с последующим входом в систему;
  2. Автосборный модуль (akmod): этот вариант полностью противоположен предыдушему варианту. Вместе с пакетом установится достаточно много пакетов для разработки и компиляции, зато обновление модуля будет происходить автоматически при каждом запуске системы с новой версией ядра.

Выберите только один вариант.

Итак, мы готовы начать саму установку.

Внимание!
Все команды, перечисленные ниже выполняются только с правами root. См. Как стать root-ом

Установка kmod

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

yum install kmod-nvidia
yum install kmod-nvidia xorg-x11-drv-nvidia-libs.i686

Установка akmod

Здесь же все немного сложнее, ибо под каждое не generic-ядро, нам понадобится собственный пакет разработки ядра.

Установка для generic-ядра

yum install akmod-nvidia
yum install akmod-nvidia xorg-x11-drv-nvidia-libs.i686

Установка для PAE-ядра

Поскольку PAE-ядро возможно лишь при архитектуре ОС i686, то и команда одна:

yum install akmod-nvidia kernel-PAE-devel

Установка для debug-ядра

yum install akmod-nvidia kernel-debug-devel
yum install akmod-nvidia kernel-debug-devel xorg-x11-drv-nvidia-libs.i686

Завершение установки

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

Но обратите Ваше внимание на то, что загрузка произойдет в текстовом режиме Plymouth, если Вы хотите, чтобы экран загрузки (сплэш) был красивым, обратите внимание на этот пункт инструкции ниже.

Установка в Fedora/RFRemix 13

Графический экран загрузки системы

После установки проприетарного драйвера, Вы можете обнаружить, что система загружается в текстовом режиме, т.е. без красивой белой капельки по середине экрана. Это связано с тем, что проп. драйвер не поддерживает KMS (Kernel Mode Settings).

Если Вам не нравится текстовый экран, давайте вернем красивую капельку.

Что нам для этого потребуется:

И так, начнем.

su -
vim /boot/grub/grub.conf
kernel /vmlinuz-2.6.35.10-74.fc14.x86_64 ro root=/dev/mapper/vg_somesys-lv_root rd_LVM_LV=vg_somesys/lv_root rd_LVM_LV=vg_somesys/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=ru_RU.UTF-8 KEYBOARDTYPE=pc KEYTABLE=ru rhgb quiet
kernel /vmlinuz-2.6.35.10-74.fc14.x86_64 ro root=/dev/mapper/vg_somesys-lv_root rd_LVM_LV=vg_somesys/lv_root rd_LVM_LV=vg_somesys/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=ru_RU.UTF-8 KEYBOARDTYPE=pc KEYTABLE=ru rhgb quiet vga=ask

Внимание! Важно, следующие пункты Вам надо будет запомнить, поскольку все, что мы будем делать дальше, будет происходить в процессе загрузки.

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

su -

и открываем текстовым редактором все тот же файл /boot/grub/grub.conf:

vim /boot/grub/grub.conf

и теперь мы исправляем ту же строку, в vga=ask нам надо заменить слово ask на комбинацию 0x<код выбранного режима>. Т.е. должно получится примерно так (я использую выбранный мною код, Вы же должны подменить его на свой:

vga=0x31b
kernel /vmlinuz-2.6.35.10-74.fc14.x86_64 ro root=/dev/mapper/vg_somesys-lv_root rd_LVM_LV=vg_somesys/lv_root rd_LVM_LV=vg_somesys/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=ru_RU.UTF-8 KEYBOARDTYPE=pc KEYTABLE=ru rhgb quiet vga=0x31b

Записываем файл.

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

Диагностика и решение проблем

Оригинальная статья с форума FedoraProject Здесь описана установка драйверов для GeForce версии 4 и ниже.
Та же статья, только на русском и на нашем форуме
FOSSBook от alv’а, глава "Установка драйверов NVidia"