Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2011-06-09

и доточить напильником

Вчера я забыл сделать важное заявление. Концептуальное :)
Я очень четко понимаю, что пользуясь Линуксом и прочими продуктами Free* и OpenSource я не вправе чего-либо требовать и ожидать сверх того, что авторы пожелают предоставить сообществу. Поэтому все мои бурчалки на тему «ну кто так строит (с) Обыкновенное Чудо» следует воспринимать как недоумение по поводу «почему так а не иначе». Или «а я бы сделал по другому». Сплошное IMHO, короче.

Продолжим где остановились вчера. Ядреный модуль драйвера от nVidia не хочет компиляться (Debian Squeeze). Компайлер сыпет сообщениями типа
#error acpi_walk_namespace() conftest failed!

Пользуясь своим собственным советом, я полностью прочел ридми к драйверу (nvidia.com/XFree86/Linux-x86_64/270.41.19/README/installationandconfiguration), узнал много нового. Но это не помогло.

Узнал как правильно заблокировать nouveau:
the following two lines will need to be added:
blacklist nouveau
options nouveau modeset=0
in file, for example, /etc/modprobe.d/disable-nouveau.conf
nvidia.com/XFree86/Linux-x86_64/270.41.19/README/commonproblems#nouveau

Узнал как просто и как правильно задать версию компилятора, чтобы установщик драйвера не ругался на несовпадение версий текущей и той, что ядро собирали
# cat /proc/version
(gcc version 4.3.5)
# export CC=/usr/bin/gcc-4.3
это как просто. А ниже — куда копать чтобы правильно:
# update-alternatives --list cc
forums.debian.net/viewtopic?f=30&t=55314


И только сильно после, почти случайно, я узнал, что насторожиться надо было в самом начале, когда возникла странная донельзя ошибка
899 ./nvidia-installer: not found

Не надо было ставить либы amd64-libs. Надо было прочесть вот этот пост:

Some distributions have the option of installing a 64-bit kernel for use with all 32-bit userspace programs.
This configuration is not supported by the NVIDIA Linux Graphics Driver.
If you try to install the 64-bit driver package on such a system, you will receive an error like the following:
./nvidia-installer: No such file or directory

nvnews.net/vbulletin/showthread?s=ce7172da527094e880b7e22020852671&t=72490#2

После чего достаточно было сообразить, что у меня именно оно — 32битный дистр (http://cdimage.debian.org/debian-cd/6.0.1a/i386/iso-cd/) и 64разрядное ядро (linux-image-2.6.32-5-amd64), по умолчанию влезло, я его не выбирал. Отдельный вопрос к составителям дистра — нахрена так, неужели проще жить с таким компотом?

Еще раз проверив, не поглючилось ли мне
uname -a
нет, не поглючилось, amd64

я занялся избавлением от лажи. Приблизительно в такой последовательности:
Установил 32разрядное ядро
aptitude install linux-image-2.6.32-5-686-bigmem
Внес правки в конфиг граба (GRUB2), чтобы по умолчанию грузилось новое ядро, да с нужной опцией nomodeset:
nano /etc/grub.d/10_linux
cat /etc/default/grub
cat /boot/grub/grub.cfg
cat /etc/grub.d/00_header
update-grub
cat /boot/grub/grub.cfg
Потом перезагруз
reboot
Проверка — а на каком ядре мы щаз? И удаление старого ядра с довесками:
uname -a
aptitude search ~i64
aptitude purge amd64-libs linux-headers-2.6.32-5-amd64 linux-image-2.6.32-5-amd64
aptitude search ~i64
aptitude purge nvidia-kernel-common
Установка правильных хидеров, компиляция драйвера от nVidia:
aptitude install linux-headers-2.6.32-5-686-bigmem
aptitude update; aptitude safe-upgrade; aptitude full-upgrade
service gdm3 stop
export CC=/usr/bin/gcc-4.3
sh NVIDIA-Linux-x86-270.41.19.run

Вроде получилось. Делал я все это удаленно, из дому. Завтра приду в офис, проверю, как картинка на дисплей выводится.

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) Klaipeda (13) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)