Linux за българи: Форуми

Linux секция за начинаещи => Настройка на хардуер => Темата е започната от: Gruntz в Jul 09, 2007, 10:45



Титла: Kernel 2.6.21, nvidia driver, build error
Публикувано от: Gruntz в Jul 09, 2007, 10:45
Здравейте.

Имам Slackware 12 със kernel 2.6.21 които си е по подразбиране. Немога да си инсталирам драйвера за видеокартата  (nVidia geForce4 MX 440) Ето извадка от /var/log/nvidia-installer.log

Примерен код
include/linux/prefetch.h: In function 'prefetch_range':
   include/linux/prefetch.h:62: warning: pointer of type 'void *' used in arith
   metic
   /home/ftp/data/video/nvidia/patched/usr/src/nv/nv-i2c.c: At top level:
   /home/ftp/data/video/nvidia/patched/usr/src/nv/nv-i2c.c:26: error: unknown f
   ield 'slave_send' specified in initializer
   /home/ftp/data/video/nvidia/patched/usr/src/nv/nv-i2c.c:27: error: unknown f
   ield 'slave_recv' specified in initializer
   make[4]: *** [/home/ftp/data/video/nvidia/patched/usr/src/nv/nv-i2c.o] Error
   1
   make[3]: *** [_module_/home/ftp/data/video/nvidia/patched/usr/src/nv] Error
   2
   make[2]: *** [modules] Error 2
   NVIDIA: left KBUILD.
   nvidia.ko failed to build!
   make[1]: *** [mdl] Error 1
   make: *** [module] Error 2
-> Error.
ERROR: Unable to build the NVIDIA kernel module.
ERROR: Installation has failed.  Please see the file
       '/var/log/nvidia-installer.log' for details.  You may find suggestions
       on fixing installation problems in the README available on the Linux
       driver download page at www.nvidia.com.


Някой зблъсквал ли се е с подобен проблем, и решил ли го е? Търсих в google, намерих два начина с промяна на кода в файловете: "[разархивиран драйвер]/usr/src/nv/Makefile.kbuild" и файла "[разархивиран драйвер]/usr/src/nv/nv-linux-h", но нищо не помага. Преди, когато бях на Slackware 11 с ядро 2.6.18, драйвера се нуждаеше от пачване, и след пача работеше. Но на ядра над 2.6.20 включително, не работи.

Поздрави.


Титла: Kernel 2.6.21, nvidia driver, build error
Публикувано от: triplek в Jul 09, 2007, 16:29
Трябват ти kernel-headers и няма да имаш проблем.





Титла: Kernel 2.6.21, nvidia driver, build error
Публикувано от: tonitochev в Jul 09, 2007, 22:12
Трябва да си прекомпилираш кернела,като махнеш една експериментална функционалност-ама точно какво беше не си спомням,извинете.Порови по проблема в слакуерските форуми-проблема е всеобщ.


Титла: Kernel 2.6.21, nvidia driver, build error
Публикувано от: tolostoi в Jul 10, 2007, 16:08
Аз имах този проблем, със същото ядро и Debian unstable, там по мои скромни наблюдения, проблема беше от версията на компилатора. Но на slack 12 преди 2 ден сложих драйвера без какъвто и да е проблем, може би съм късметлия.


Титла: Kernel 2.6.21, nvidia driver, build error
Публикувано от: Drugia в Jul 20, 2007, 21:14
аз имам същия проблем и все още не знам как да го оправя. Помогнете.


Титла: Kernel 2.6.21, nvidia driver, build error
Публикувано от: tonitochev в Jul 21, 2007, 07:36
И при Дебиан при ядро 2.6.21 трябва да се прекомпилира ядрото,като се махне паравиртуализацията или каквото е там.


Титла: Kernel 2.6.21, nvidia driver, build error
Публикувано от: Gaara в Jul 21, 2007, 10:37
Аз съм с 2.6.21 (Дебиан) и не съм махал нищо от ядрото. Според  мен проблема не е в това.

Edit: Картата ти не е от най-новите и се чудя какъв драйвер се опитваш да сложиш, т.е. поддържа ли твоята карта?





Титла: Kernel 2.6.21, nvidia driver, build error
Публикувано от: ivo1204 в Jul 21, 2007, 16:15
Щом си решил да се "бориш" с кода , прегледай внимателно съобщенията до това , което си дал , грещката може да е много по-напред.
Например може да направиш така :
make &>/MyLogFile
Та да можеш да птвориш после файла с редактор и да използваш  "Редактиране"-> "Търсене"  
Най -вече търси  НЕНАМЕРЕН  ЗАГЛАВЕН ФАЙЛ!


Титла: Kernel 2.6.21, nvidia driver, build error
Публикувано от: nikoni в Jul 21, 2007, 17:42
версия 9639 се компилира със Slack 12.0

N.B. Но внимавай със хедерите. Тези дето са за SMP kernela добавят _smp към версията и не вървят със  no SMP kernela. Ако имаш header-и само за SMP версията (с които е компилирана glibc) оправи
/lib/modules/2.6.21.5/build/include/linux/autoconf.h
 и там коментирай това дето се отнаця за SMP.


Титла: Kernel 2.6.21, nvidia driver, build error
Публикувано от: tonitochev в Jul 21, 2007, 20:42
Цитат (Gaara @ Юли 21 2007,11:37)
Аз съм с 2.6.21 (Дебиан) и не съм махал нищо от ядрото. Според  мен проблема не е в това.

Edit: Картата ти не е от най-новите и се чудя какъв драйвер се опитваш да сложиш, т.е. поддържа ли твоята карта?

Еми картата ми е Nvidia 440 и драйвера е 9639.Без да прекомпилирам ядрото компилира драйвера и тогава вече дава грешка.След консултация с Google се оказва,че тая експериментална функция в новите ядра паравиртуализация нещо не се спогажда с NVidia драйвера.След като си прекомпилирам ядрото,премахвайки тази пара..... всичко си идва на мястото.


Титла: Kernel 2.6.21, nvidia driver, build error
Публикувано от: triplek в Jul 22, 2007, 09:38
Цитат (tonitochev @ Юли 21 2007,21:42)
Цитат (Gaara @ Юли 21 2007,11:37)
Аз съм с 2.6.21 (Дебиан) и не съм махал нищо от ядрото. Според  мен проблема не е в това.

Edit: Картата ти не е от най-новите и се чудя какъв драйвер се опитваш да сложиш, т.е. поддържа ли твоята карта?

Еми картата ми е Nvidia 440 и драйвера е 9639.Без да прекомпилирам ядрото компилира драйвера и тогава вече дава грешка.След консултация с Google се оказва,че тая експериментална функция в новите ядра паравиртуализация нещо не се спогажда с NVidia драйвера.След като си прекомпилирам ядрото,премахвайки тази пара..... всичко си идва на мястото.

Освен тази и ако има Nvidia Riva support също не се компилира драйвера.


Титла: Kernel 2.6.21, nvidia driver, build error
Публикувано от: iso в Jul 29, 2007, 17:49
Преди време имах подобен проблем с кернел 2.6.20 та изнамерих в google едно мисля по елегнтно (бързо) решение вместо да прекомпилирам кернела.... ;)
Чрез apt-get или synaptic сваляте nvidia-kernel-хххх-sources (трябва вече да имате инсталиран драйвер)

1.)Отивате в /usr/src и разархивирате въпросния nvidia-kernel-xxxx-sources
2.)Отивате във /usr/src/nvidia-kernel-xxx/nv и намирате файла Makefile.kbuild
3.)Отваряте го с някой текстов редактор и намирате ред 77 изглеждащ долу-горе така:
Примерен код
EXTRA_CFLAGS += -Wall -Wimplicit -Wreturn-type....bla bla bla....

4.)След него веднага добавяте тези 2-а реда:
Примерен код

     PARAVIRT_OPS := $(shell grep "D paravirt_ops" /boot/System.map-$(shell uname -r) | colrm 9)
     EXTRA_LDFLAGS := --defsym paravirt_ops=0x$(PARAVIRT_OPS)


5.)Записвате промените,реботвате и зареждате новия кернел.
6.)Влизате като root
Примерен код

cd /usr/src/nvidia-kernel-xxx/nv
make module
make install


Въпросната процедура може да се приложи и върху драйвера от сайта на nvidia след като се разпакетира и се редактира въпросният файл Makefile.kbuild

Това съм го пробвал на дистрибуция debian sid със кернел 2.6.21-2 и всичко си работи безпроблемно.Та на който не му се занимава да компилира нов кернел може да пробва това решение....... ;)