Sterownik nvidia.
Witam!
Zachciało mi się modułu - sterownika nvidia. Zacząłem więc od kompilacji
kernela (bo tak podobno najszybciej i najłatwiej i tak w ogóle wszyscy
polecają). Skompilowałem 2.4.22, bo po zainstalowaniu go z paczki
okazało się, że się uruchomił, a więc może i skompilowany przeze mnie
się uruchomi? Dla niezorientowanych przypomnę, że już jakiś czas temu
ciągnąłem wątek nieszczęsnego kontrolera HPT370 i niemożliwości zmiany
kernela w związku z nim. Faktycznie 2.4.22 skompilował się i uruchomił,
zatem jeszcze tylko moduł nvidia i wszystko niby jest ok. Ale czy na
pewno? Otóż nie, bo niestety z żadnym kernelem, oprócz instalacyjnego
2.4.18-bf2.4 nie działa DMA na HPT370. Efekt jest widoczny aż do bólu -
chociażby przeskakująca muzyka z XMMS i kopiowanie plików z szybkością
jak z dyskietki. W takim razie może skompilować moduł dla 2.4.18-bf2.4?
Wszystko fajnie, ale moduł nie daje się załadować, wywala mi tylko, że
nie jest skompilowany na ten kernel, lecz na 2.4.18. No to może
przekompiluję 2.4.18 z tym samym konfigiem? I co? I to:
In file included from ksyms.c:50:
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:72:30: missing
terminating " character
In file included from ksyms.c:50:
/usr/src/kernel-source-2.4.18/include/asm/checksum.h: In function
`ip_fast_csum':
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:73: error: parse
error before "movl"
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:75:17: invalid
suffix "f" on integer constant
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:82:17: invalid
suffix "b" on integer constant
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:90:13: missing
terminating " character
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:105:17: missing
terminating " character
/usr/src/kernel-source-2.4.18/include/asm/checksum.h: In function
`csum_fold':
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:106: error: parse
error before "addl"
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:108:17: missing
terminating " character
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:121:13: missing
terminating " character
/usr/src/kernel-source-2.4.18/include/asm/checksum.h: In function
`csum_tcpudp_nofold':
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:122: error: parse
error before "addl"
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:126:9: missing
terminating " character
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:128: error: `__x'
undeclared (first use in this function)
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:128: error: (Each
undeclared identifier is reported only once
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:128: error: for
each function it appears in.)
/usr/src/kernel-source-2.4.18/include/asm/checksum.h: At top level:
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:128: error: parse
error before ')' token
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:161:17: missing
terminating " character
/usr/src/kernel-source-2.4.18/include/asm/checksum.h: In function
`csum_ipv6_magic':
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:162: error: parse
error before "addl"
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:173:17: missing
terminating " character
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:176: error: `__x'
undeclared (first use in this function)
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:176: warning: no
return statement in function returning non-void
/usr/src/kernel-source-2.4.18/include/asm/checksum.h: At top level:
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:176: error: parse
error before ')' token
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:176: error: parse
error before "__u32"
make[2]: *** [ksyms.o] Błąd 1
make[2]: Leaving directory `/usr/src/kernel-source-2.4.18/kernel'
make[1]: *** [first_rule] Błąd 2
make[1]: Leaving directory `/usr/src/kernel-source-2.4.18/kernel'
make: *** [_dir_kernel] Błąd 2
Próbowałem też zainstalować sterownik z pliku
NVIDIA-Linux-x86-1.0-4496-pkg2.run, ale tu z kolei wywaliło mi:
-> Building kernel module:
executing: 'cd ./usr/src/nv; make nvidia.o
SYSINCLUDE=/usr/src/linux/include
'...
You appear to be compiling the NVIDIA kernel module with
a compiler different from the one that was used to compile
the running kernel. This may be perfectly fine, but there
are cases where this can lead to unexpected behaviour and
system crashes.
If you know what you are doing and want to override this
check, you can do so by setting IGNORE_CC_MISMATCH.
In any other case, set the CC environment variable to the
name of the compiler that was used to compile the kernel.
*** Failed cc sanity check. Bailing out! ***
make: *** [gcc-check] Błąd 1
-> Error.
gcc mam w wersji 3.3.2 Na tym kończy się moja wiedza i pomysły. Jeśli
ktokolwiek wie jak pomoć to bardzo proszę o wszelkie porady. Z góry
dziękuję!
--
http://www.miki.z.pl miki(AT)z.pl
Gadu-gadu: 2128279 Mobile: +48607345846 IRC: `miki`
Linux Registered User # 285966
"Give me the freedom to destroy
Give me radioactive toy"
Reply to: