Kubuntu Feisty и драйвера Nvidia

Алексей Федорчук

2007-01-16

До недавнего времени я не использовал никаких фирменных драйверов видеокарт для работы в Иксах - не испытывая потребности в третьем измерении, вполне обходился штатными иксовыми nv и ati, для карт с чипами от Nvidia и ATI, соответственно. Однако после установки Kubuntu Feisty в версии для AMD64 (на машину с соответствующим процессором) я столкнулся с тем, что фирменный драйвер - не роскошь, а необходимое средство для работы.

Целевая машина несла в себе материнскую плату ASUS M2NPV-MX на чипсете GeForce 6150 с интегрированной графикой GeForce 6. Не седая древность, конечно, но и не Бог весть какой модерн, так что никаких неожиданностей в Иксах не предвиделось. Каково же было мое изумление, когда после установки системы обнаружилась исключительная задумчивость при выполнении всех графических операций. Окна перетаскивались, как многопудовые мешки, прокрутка текста в браузере или редакторе напоминала неспешное накатывание морской волны на берег при нуле баллов по Бофорту. В общем, работать было положительно невозможно.

Просмотр соответствующего пункта в настройках системы (в Kubuntu это модернизированный Центр управления KDE) выявил причину того: оказывается, при инсталляции был автоматически задействован драйвер VESA. "Во...", сказал я вслед за сибирскими мужиками, и быстренько заменил в /etc/X11/xorg.conf строку

Driver         "vesa"

на

Driver         "nv"

Однако после рестарта Иксов стало еще хуже: запустились они с разрешением 800x600 (при родном для матрицы моего LCD-дисплея 1028x1024), и повысить его через Центр управления никак не удавалось. Когда же я попытался принудительно выставить разрешение 1028x1024 редактированием /etc/X11/xorg.conf, то вообще получил черный экран без признаков жизни X-сервера.

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

$ aptitude search nvidia

и выглядел следующим образом:

p   nvidia-glx                     
p   nvidia-glx-dev                 
p   nvidia-glx-legacy              
p   nvidia-glx-legacy-dev          
v   nvidia-kernel-1.0.7184         
v   nvidia-kernel-1.0.8774         
v   nvidia-kernel-1.0.9629         
v   nvidia-kernel-1.0.9631         
p   nvidia-kernel-common           
p   nvidia-kernel-source           
p   nvidia-legacy-kernel-source    
p   nvidia-settings                
p   nvidia-xconfig

Последовательный просмотр кандидатов посредством aptitude show привел меня к убеждению, что nvidia-glx - это то, что мне надо. Вследствие чего он был немедленно установлен

$ sudo aptitude install nvidia-glx

потянув за собой в качестве зависимости также nvidia-kernel-common. Произведя соответствующие манипуляции с файлом /etc/X11/xorg.conf, а именно, вставив строку

    Load           "glx"

в секцию "Module", и строку

    Driver         "nvidia"

в секцию "Device", я попытался запустить X-сервер. Ответом был черный экран с сообщением о том, что Иксы не могут отыскать ядерный модуль nvidia - путем несложных рассуждений я предположил, что он должен называться nvidia.ko. И действительно, просмотр обоих установленных пакетов показал полное наличие его отсутствия где бы то ни было.

"Во..." - в третий раз повторил я сакраментальную фразу сибирских мужиков и стал думать. Внимание мое привлек пакет nvidia-kernel-source, в котором резонно было бы ожидать именно исходников для сборки ядерного модуля. "Если модуля нет, его следует скомпилировать" - не менее резонно предположил я, и установил этот пакет:

$ sudo aptitude install nvidia-kernel-source

Результатом было появление в каталоге /usr/src тарбалла nvidia-kernel-source.tar.gz. Ничтоже сумняшеся, распаковываю его - и в недрах подкаталогов образовавшегося каталога /usr/src/modules обнаруживаю, среди всего прочего, вожделенный файл nvidia.c и сопутствующее ему хозяйство. Каковое остается только скомпилировать и инсталлировать. В этом деле очень способствует внимательное прочтение файла README, находящегося в том же подкаталоге. Он предписывает следующую простую последовательность действий:

$ make module
$ make install

Выполнив ее и перезагрузив машину, я, после лицезрения стартовой заставки от Nvidia, получил, наконец, и нормальную скорость перерисовки графики при штатном разрешении 1280x1024 и 24-битной глубине цвета. А установив пакет planetpenguin-racer (это одна из вариаций на тему tux-racer'а - пингвина-слаломиста, пожирающего рыбу во время спуска с горы на брюхе), убедился и в наличии 3D-функций. Я, конечно, не знаток этой игры, но, мне кажется, пигвинчик в ней двигался весьма шустро.

Тем не менее, вывод из описанной истории следует весьма грустный. Что же это, товарищи, делается? Раньше, сколько я помню себя в Linux'е, штатные драйвера из комплекта Иксов справлялись с двухмерной графикой на ура, и только для трехмерки требовалось устанавливать драйвера фирменные. Теперь же получается, что Иксы не обеспечивают минимально приемлемой функциональности даже в 2D - и для далеко не самых современных видеосистем. Ведь, насколько я понимаю, интегрированная графика GeForce соответствует дискретным чипам от Nvidia позапрошлого урожая, не так ли? И получается, что чем дальше, тем сложнее будет обходиться без фирменных драйверов. Какие тут могут быть разговоры о запрете подключения к ядру проприетарных модулей...


1Конечно, наиболее свежие фирменные драйвера можно получить с фирменного же сайта: http://www.nvidia.com/object/unix.html, где они лежат в виде "самоинсталлирующегося" из командной строки архива. В принципе, установка их не сложна (в Сети можно найти несколько подробных инструкций на этот счет), но результат инсталляции не всегда предсказуем - вследствие различия иерархии файловой системы разных Linux-дистрибутивов. А поскольку "свежесть" драйвера меня особо не интересовала, я и не стал заморачиваться этим вопросом.