вторник, 10 мая 2011 г.

Как вручную установить драйвера NVIDIA в Debian Squeeze

Если честно, ничего особенно страшного нет в том, чтобы установить в Debian Stable (на данный момент это 6.0, «Squeeze») драйвера NVIDIA с официального сайта, а не с репозитариев.

Расскажу более-менее подробно о ручной установке драйверов. Предлагаю сначала прочитать рассказ целиком, потому что это совсем не пошаговая инструкция. У меня никаких сложностей при установке не возникло, по-моему, достаточно быть готовым, что придётся кое-какие действия выполнять в консольном режиме.




Ручная установка драйверов

Драйвера на данный момент (май 2011 года) раздаются на официальном сайте по ссылке Download NVIDIA Drivers. Там веб-интерфейс, в котором надо выбрать модель видеокарты и операционку. NVIDIA держит марку, и наличествует даже Linux 64-bit.

Драйвера для Linux поставляются в виде многомегабайтного шелл-скрипта с расширением «run». Его надо запустить от рута через интерпретатор sh (наверное, сойдёт даже новомодный dash, но я думаю, надо пускать, как сказано в официальном гайде по установке):

sudo sh NVIDIA-Linux-<arch>-<ver>.run

В процессе установки я нашёл только две хитрости. Во-первых, надо запускать инсталляцию при погашенных иксах, то есть, сделать следующее:

  1. разлогиниться из окружения рабочего стола (чтобы сохранить свою работу, буде таковая имеется),
  2. перейти на первый виртуальный терминал (Ctrl+Alt+F1 в KDE, может быть, в вашем окружении рабочего стола хоткей стандартный Alt+F1)
  3. залогиниться рутом или своей учёткой, тогда придётся работать через sudo
  4. погасить иксы через
    /etc/init.d/kdm stop
    или
    /etc/init.d/gdm stop
    или
    /etc/init.d/xdm stop
  5. запустить инсталлятор
  6. после инсталляции или перезагрузиться, как во времена винды, или запустить иксы заново:
    /etc/init.d/kdm start
    аналогично для gdm или xdm

Во-вторых, установленный в системе gcc может отличаться по версии от того, с которым были скомпиляны нужные для установки дров компоненты. Инсталлятор об этом скажет, и скажет, какая версия gcc ему нужна.

Если такое случилось, то надо установить gcc нужной версии (в моём случае это был gcc 4.2) и запускать инсталлятор с переопределением переменной окружения CC:

CC=gcc-4.2 sudo sh NVIDIA-Linux-<arch>-<ver>.run
Да, достаточно всего лишь такой короткой строки в CC. :)

Прежде чем устанавливать драйвера, скрипт установки удостоверится, что на вашей машине не работает драйвер nouveau. Если же такое случилось, то установщик предложит один простой способ справиться с этим, но для него потребуется перезагрузиться, то есть, придётся заново гасить иксы, заходить в консоль и запускать установщик.

По окончанию установки скрипт предложит перегенерировать xorg.conf, я думаю, что лучше согласиться, на современной системе этот файл и так весь состоит из значений по умолчанию, испортить что-то сложно. Однако, после генерации xorg.conf, достаточно важно внести в него сведения о герцовке монитора.

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

Section "Monitor"
    *** Что-то ещё ***
    HorizSync       30.0 - 85.0
    VertRefresh     50.0 - 160.0
    *** Что-то ещё ***
EndSection
В данный момент вписаны значения для LG Flatron ez T710PH. Правильная герцовка нужна для того, чтобы потом можно было корректно выставить разрешение экрана и ещё чтобы драйвера правильно определили DPI для вывода, а то может быть глюк с размерами шрифта.

Кроме этого, единственное, что потребует установщик драйверов — это согласиться с лицензией NVIDIA.

После установки драйверов в меню KDE появляется пункт «Настройка» -> «NVIDIA X Server Settings». Это простой и понятный гуй, в котором можно сделать одну очень важную вещь: выставить удобное для работы разрешение и частоту обновления экрана. Что появляется в GNOME или в других DE, увы, не знаю.