До недавнего времени я не использовал никаких фирменных драйверов видеокарт для работы в Иксах - не испытывая потребности в третьем измерении, вполне обходился штатными иксовыми 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-дистрибутивов. А поскольку "свежесть" драйвера меня особо не интересовала, я и не стал заморачиваться этим вопросом.