Установка nouveau (Открыте драйвера NVIDIA) в Gentoo

()

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

  1. Использовать "родной" драйвер из X.Org (nv) и отказаться от 3D возможностей вашей карты.
  2. Использовать открытую альтернативу закрытым драйверам - проект nouveau.

Эта статья призвана помочь тем кто выбрал второй путь. И хотя упор в ней сделан на дистрибутив Gentoo, многие рекомменадции из неё подойдут и для других дистрибутивов.

Для тех оплачивает интернет по трафику: нужно приготовится потратить примерно десять мегабайт трафика на загрузку исходных текстов драйвера и сопутствующих компонентов.

Итак, для начала нам нужно подключить оверлей nouveau:

emerge layman
layman --add nouveau

Всё. Оверлей добавлен. Убедится в этом можно просмотрев содержимое директории /usr/portage/local/layman/nouveau.

Сам драйвер жёстко замаскирован, да и требует последних (git-) версий ещё ряда компонентов, которые так же замаскированы. Чтобы размаскировать их нужно добавить следующие строки в файл /etc/portage/package.keywords:

media-libs/mesa **
x11-base/x11-drm **
x11-drivers/xf86-video-nouveau **
x11-libs/libdrm **

Далее очень хочется выполнить команду:

emerge nouveau

Однако это не правильно. К сожалению ebuild в оверлее написан не совсем корректно. Например модуль x11-drm не указан у nouveau в зависимостях. Поэтому правильно будет сделать вот так:

emerge x11-base/x11-drm media-libs/mesa x11-drivers/xf86-video-nouveau

Если всё прошло успешно, то остаётся только настроить драйвер. Для этого впервую очередь нужно оставноить X-сервер (если он был запущен):

/etc/init.d/xdm stop

Если вы используете драйвер nvidia - выгрзуите модуль:

modprobe -r nvidia

И удалите (или закомментируйте) строчку nvidia в файле /etc/modules.autoload.d/kernel-2.6.

Загрузите модуль nouveau и добавьте его в список модулей, загружаемых при загрузке:

modprobe nouveau
echo nouveau >> /etc/modules.autoload.d/kernel-2.6

Убедитесь что модуль загрузился:

lsmod | grep nouveau

Теперь нужно переключится на встроеный в X.Org интерфейс OpenGL:

eselect opengl set xorg-x11

В файле /etc/X11/xorg.conf в секции Device поменть строку Driver ... на:

Driver "nouveau"

Далее нужно убедится что в секции Module указаны модули dri и glx:

 Load "glx"
 Load "dri"

А так же присутствует (и не закомментирована!) секция:

Section "DRI"
 Group  0
 Mode   0666
EndSection

Всё. Можно запускать графический сервер:

/etc/init.d/xdm start

После входа в систему рекоммендуется проверить работу драйверов командой glxgears. Если всё в порядке - вы увидите три разноцветные шестерёнки, а на консоль каждые пять секунд будут выводится данные о текущем fps.

Если шестерёнки будут крутится рывками, а на консоль будет выведено сообщение:

open DRM failed (Operation not permitted)

То нужно ещё раз проверить наличие и правильность указаний секции DRI в /etc/X11/xorg.conf, поскольку эта ошибка говорит о некорректно выставленных правах на устройство /dev/dri/cards0, которые и задаются в той секции.

Отдельно внимание следует уделить обновлению драйверов. В Gentoo при штатном обновлении пакеты, собраные зи репозиториев SVN/CVS/git, не обновляются. Чтобы их всё же обновить можно использовать утилиту rep-rebuild, ebuild которой есть в оверлее sunrise:

layman --add sunrise
echo app-portage/rep-rebuild ~x86 >> /etc/portage/package.keywords
emerge rep-rebuild

Теперь для обновления всех пакетов, собраных из репозиториев SVN/CVS/git, достаточно выполнить команду:

rep-rebuild --ask

Ключ --ask нужен для того, чтобы прежде чем что-то делать - программа спросила вашего подтвержедния на это действие.

На это всё. Надеемся (но не гарантируем!) что драйвер вас не разочарует.

Источники: [1] [2] [3]

Ключевые слова: nouveau, nv, nvidia, gentoo, layman.

Подписаться на обновления: RSS-лента Канал в TamTam Telegram канал Канал в ICQ

Комментарии:

Новый комментарий

Жирный текстКурсивный текстПодчёркнутый текстЗачёркнутый текстПрограммный кодСсылкаИзображение




© 2006-2024 Вадим Калинников aka MooSE
Политика конфиденциальности