Алексей Федорчук
16 января 2007 г
До недавнего времени я не использовал никаких фирменных драйверов видеокарт для работы в Иксах — не испытывая потребности в третьем измерении, вполне обходился штатными иксовыми 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"
Однако после рестарта Иксов стало еще хуже: запустились они с разрешением 800×600 (при родном для матрицы моего LCD-дисплея 1028×1024), и повысить его через Центр управления никак не удавалось. Когда же я попытался принудительно выставить разрешение 1028×1024 редактированием /etc/X11/xorg.conf
, то вообще получил черный экран без признаков жизни X-сервера.
«Во…» — снова повторил я вслед за сибирскими мужиками, и понял, что не миновать мне установки фирменного драйвера.
Конечно, наиболее свежие фирменные драйвера можно получить с фирменного же сайта Nvidia, где они лежат в виде «самоинсталлирующегося» из командной строки архива. В принципе, установка их не сложна (в Сети можно найти несколько подробных инструкций на этот счет), но результат инсталляции не всегда предсказуем. А поскольку «свежесть» драйвера меня особо не интересовала, я и не стал заморачиваться этим вопросом.
Список возможных кандидатов на установку из репозитория легко определился командой
$ 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, получил, наконец, и нормальную скорость перерисовки графики при штатном разрешении 1280×1024 и 24-битной глубине цвета. А установив пакет planetpenguin-racer (это одна из вариаций на тему tux-racer’а — пингвина-слаломиста, пожирающего рыбу во время спуска с горы на брюхе), убедился и в наличии 3D-функций. Я, конечно, не знаток этой игры, но, мне кажется, пигвинчик в ней двигался весьма шустро.
Тем не менее, вывод из описанной истории следует весьма грустный. Что же это, товарищи, делается? Раньше, сколько я помню себя в Linux’е, штатные драйвера из комплекта Иксов справлялись с двухмерной графикой на ура, и только для трехмерки требовалось устанавливать драйвера фирменные. Теперь же получается, что Иксы не обеспечивают минимально приемлемой функциональности даже в 2D — и для далеко не самых современных видеосистем. Ведь, насколько я понимаю, интегрированная графика GeForce соответствует дискретным чипам от Nvidia позапрошлого урожая, не так ли? И получается, что чем дальше, тем сложнее будет обходиться без фирменных драйверов. Какие тут могут быть разговоры о запрете подключения к ядру проприетарных модулей…