UMGUM.COM (лучше) 

Debian Squeeze + NVidia video ( Установка драйверов для видеокарты NVidia на Debian Squeeze. )

9 января 2011  (обновлено 15 августа 2016)

OS: Debian GNU/Linux Squeeze.

Пришёл срок ноутбуку моему. Три года верно служил он мне дома и на производстве. Побывал в двух столицах пока ещё республики Казахстан, съездил в зарубежье ближнее. Побывал во всех городах и районных центрах Павлодарской области. Не пропустил ни одной командировки. В общем - пожил. По правде, ничего лучше моего HP nc6320 я пока не видел и следующая машинка будет такого-же "бизнес класса".

Как бы то ни было, приходится теперь проникаться нюансами работы с оборудованием обычного персонального компьютера. Первый виток - установка "проприетарных" драйверов для видео-карты NVidia. Установка тривиальна, записываю уже по привычке.

Прежде всего идём на сайт производителя и выбираем в соответствующем разделе интересующие нас пакеты:


http://www.nvidia.com/object/unix.html

В моём случае это было так:

# cd /usr/src
# wget http://us.download.nvidia.com/XFree86/Linux-x86_64/260.19.29/NVIDIA-Linux-x86_64-260.19.29.run

Пока закачивается пакет драйвера установим необходимое для последующей компиляции модуля:

# aptitude install linux-headers-`uname -r` make binutils gcc libc6-dev xserver-xorg-dev

После успешной загрузки требуемого программного обеспечения переходим в сеанс "чистой консоли" (Alt+Ctrl+F1), вздрагиваем от ощущения чего-то похожего на кратковременный оргазм "олдскульного" бородатого администратора "Unix and Net like" и завершаем работу Х-сервера для выгрузки всех драйверов видео-устройств.

# /etc/init.d/kdm stop

Весьма вероятно, что модули видео-драйвера не захотят выгружаться как в добровольном, так и в принудительном порядке. Проще всего мне показалось откорректировать конфигурационный файл xorg.conf таким образом, чтобы при перезапуске X-сервера тот начал использовать простейший из простых драйвер "vesa" и перезапустить компьютер.

# cat /etc/X11/xorg.conf

....
Section "Device"
....
  Driver "vesa"
....
EndSection
....

# reboot

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

Узнаём, компилятором какой версии собрано ядро:

# cat /proc/version

Linux version 2.6.32-5-amd64 (Debian 2.6.32-29) (ben@decadent.org.uk) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Fri Dec 10 15:35:08 UTC 2010

Видно, что ядро собрано компилятором "GCC 4.3", соответственно, применяем к переменной требуемое значение:

# export CC=/usr/bin/gcc-4.3

На самом деле принудительное указание версии используемой версии компилятора вовсе не излишне, так как в Debian Squeeze присутствует как "GCC 4.3", так и "GCC 4.4", причём второй указан как используемый по умолчанию. Проверить это можно элементарно:

# ls -l /usr/bin | grep "gcc-"

....
lrwxrwxrwx 1 root root           7 Jan  4 18:05 gcc -> gcc-4.4
-rwxr-xr-x 1 root root      239528 Sep 21 07:01 gcc-4.3
-rwxr-xr-x 1 root root      255536 Nov 15 08:04 gcc-4.4
lrwxrwxrwx 1 root root           7 Jan  4 18:05 x86_64-linux-gnu-gcc -> gcc-4.4
lrwxrwxrwx 1 root root           7 Jan  7 20:20 x86_64-linux-gnu-gcc-4.3 -> gcc-4.3
lrwxrwxrwx 1 root root           7 Jan  4 18:05 x86_64-linux-gnu-gcc-4.4 -> gcc-4.4
....

Видно, что имя "GCC" является символической ссылкой на "GCC 4.4". Как бы то ни было, нас это уже не смущает.

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

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

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

Если система не запутана до безобразия противоречивыми конфигурациями пользователя, то более ничего делать не нужно, умный X-сервер при запуске сам обнаружит новенький шустрый драйвер и попытается его использовать. Ежели хочется наложить руку на пульс системы, можно прямо указать, какой драйвер использовать в работе X-серверу.

Делаем резервную копию конфигурационного файла:

# cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

# cat /etc/X11/xorg.conf

....
Section "Device"
....
  Driver "nvidia"
....
EndSection
....

Запускаем или перезапускаем X-сервер:

# /etc/init.d/kdm start


Заметки и комментарии к публикации:


Оставьте свой комментарий ( выразите мнение относительно публикации, поделитесь дополнительными сведениями или укажите на ошибку )