Пришёл срок ноутбуку моему. Три года верно служил он мне дома и на производстве. Побывал в двух столицах пока ещё республики Казахстан, съездил в зарубежье ближнее. Побывал во всех городах и районных центрах Павлодарской области. Не пропустил ни одной командировки. В общем - пожил. По правде, ничего лучше моего 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
# 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
....
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
....
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
....
Section "Device"
....
Driver "nvidia"
....
EndSection
....
Запускаем или перезапускаем X-сервер:
# /etc/init.d/kdm start
26 января 2011 в 23:06
27 января 2011 в 00:05
27 января 2011 в 16:21
9 февраля 2011 в 20:13
9 февраля 2011 в 21:59
11 марта 2011 в 16:31
11 марта 2011 в 16:34
4 декабря 2011 в 23:18
4 декабря 2011 в 23:32
5 декабря 2011 в 00:34
5 декабря 2011 в 00:46
5 декабря 2011 в 09:24
5 декабря 2011 в 02:13
6 декабря 2011 в 02:56
6 декабря 2011 в 03:37
6 декабря 2011 в 03:44
6 декабря 2011 в 11:00
6 декабря 2011 в 16:55
6 декабря 2011 в 17:55
6 декабря 2011 в 19:41
7 декабря 2011 в 02:56
7 декабря 2011 в 04:12
7 декабря 2011 в 18:11
7 декабря 2011 в 20:19
9 декабря 2011 в 20:39
9 декабря 2011 в 23:00
7 декабря 2011 в 03:06
7 декабря 2011 в 03:34
6 декабря 2011 в 18:01
6 декабря 2011 в 19:53
6 декабря 2011 в 21:42
6 декабря 2011 в 17:07
6 декабря 2011 в 18:03
7 декабря 2011 в 23:04
7 декабря 2011 в 23:10
7 декабря 2011 в 23:22