# [problem][solved] nvidia-drivers i jądro 2.6.23

## camelon

Do nowego jądra nie instalują się sterowniki do nvidii. Nie wiem o co dokładnie chodzi, bo na jadrze 2.6.22 wchodzą bez problemu. Kernel już został skompilowany. Wcześniej ponadto pojawiał się problem "access violation", ale to z powodu starego sandboxa. Nie idą też stery 96xx, najnowsze (100.xx) zaś działają, a 'make oldconfig && make prepare' też mam za sobą  :Smile:  Wrzucam log instalacji:

```

 * Determining the location of the kernel source code

 * Found kernel source directory:

 *     /usr/src/linux

 * Found sources for kernel version:

 *     2.6.23-gentoo-r2

 * Checking for MTRR support ...

  [ ok ]

>>> Unpacking source...

Creating directory NVIDIA-Linux-x86-1.0-7185-pkg0

Verifying archive integrity... OK

Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86 1.0-7185........................................................................

 * Applying NVIDIA_glx-defines.patch ...

  [ ok ]

 * Applying NVIDIA_glx-glheader.patch ...

  [ ok ]

 * Converting Makefile.kbuild to use M= instead of SUBDIRS= ...

  [ ok ]

>>> Source unpacked.

>>> Compiling source in /var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv ...

 * Preparing nvidia module

NVIDIA: calling KBUILD...

make CC=i686-pc-linux-gnu-gcc  KBUILD_VERBOSE=1 -C /usr/src/linux M=/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv modules

test -e include/linux/autoconf.h -a -e include/config/auto.conf || (      \

   echo;                        \

   echo "  ERROR: Kernel configuration is invalid.";      \

   echo "         include/linux/autoconf.h or include/config/auto.conf are missing.";   \

   echo "         Run 'make oldconfig && make prepare' on kernel src to fix it.";   \

   echo;                        \

   /bin/false)

mkdir -p /var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/.tmp_versions

rm -f /var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/.tmp_versions/*

make -f scripts/Makefile.build obj=/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv

echo \#define NV_COMPILER \"`i686-pc-linux-gnu-gcc -v 2>&1 | tail -n 1`\" > /var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv_compiler.h

  i686-pc-linux-gnu-gcc -Wp,-MD,/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/.nv.o.d  -nostdinc -isystem /usr/lib/gcc/i686-pc-linux-gnu/4.2.2/include -D__KERNEL__ -Iinclude  -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -pipe -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2  -march=i686 -mtune=pentium3 -mtune=generic -ffreestanding -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -Iinclude/asm-i386/mach-generic -Iinclude/asm-i386/mach-default -fomit-frame-pointer  -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign  -I/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv -Wall -Wimplicit -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wparentheses   -Wno-multichar  -Werror -O -fno-common -MD    -Wno-cast-qual -Wno-error -D_LOOSE_KERNEL_NAMES -D__KERNEL__ -DMODULE  -DNTRM -D_GNU_SOURCE -D_LOOSE_KERNEL_NAMES -D__KERNEL__ -DMODULE  -DNV_MAJOR_VERSION=1 -DNV_MINOR_VERSION=0 -DNV_PATCHLEVEL=7185  -DNV_UNIX   -DNV_LINUX   -DNV_INT64_OK   -DNVCPU_X86      -UDEBUG -U_DEBUG -DNDEBUG -DNV_SIGNAL_STRUCT_RLIM -DNV_MULTIPLE_BRIDGE_AGPGART_PRESENT -DNV_PCI_GET_CLASS_PRESENT -DNV_PM_MESSAGE_T_PRESENT -DNV_PCI_CHOOSE_STATE_PRESENT -DNV_VM_INSERT_PAGE_PRESENT -DNV_REMAP_PFN_RANGE_PRESENT -DNV_CHANGE_PAGE_ATTR_PRESENT -DNV_VMAP_4_PRESENT  -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(nv)"  -D"KBUILD_MODNAME=KBUILD_STR(nvidia)" -c -o /var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.o /var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.c

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.c:93: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.c: In function 'nvos_create_alloc':

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.c:392: error: 'nv_pte_t_cache' undeclared (first use in this function)

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.c:392: error: (Each undeclared identifier is reported only once

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.c:392: error: for each function it appears in.)

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.c: In function 'nvos_free_alloc':

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.c:429: error: 'nv_pte_t_cache' undeclared (first use in this function)

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.c: In function 'nvidia_init_module':

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.c:1332: error: 'nv_pte_t_cache' undeclared (first use in this function)

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.c:1332: error: too many arguments to function 'kmem_cache_create'

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.c:1466: error: void value not ignored as it ought to be

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.c: In function 'nvidia_exit_module':

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.c:1491: error: void value not ignored as it ought to be

/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.c:1596: error: 'nv_pte_t_cache' undeclared (first use in this function)

make[3]: *** [/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv/nv.o] Error 1

make[2]: *** [_module_/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/work/NVIDIA-Linux-x86-1.0-7185-pkg0/usr/src/nv] Error 2

NVIDIA: left KBUILD.

nvidia.ko failed to build!

make[1]: *** [module] Error 1

make: *** [module] Error 2

 * 

 * ERROR: x11-drivers/nvidia-drivers-1.0.7185 failed.

 * Call stack:

 *               ebuild.sh, line 1735:  Called dyn_compile

 *               ebuild.sh, line  891:  Called qa_call 'src_compile'

 *               ebuild.sh, line   35:  Called src_compile

 *             environment, line 3548:  Called linux-mod_src_compile

 *             environment, line 2630:  Called die

 * The specific snippet of code:

 *               emake HOSTCC="$(tc-getBUILD_CC)" CC="$(get-KERNEL_CC)" LDFLAGS="$(get_abi_LDFLAGS)" ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} || diefunc "$FUNCNAME" "$LINENO" "$?" "Unable to make ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}.";

 *  The die message:

 *   Unable to make  IGNORE_CC_MISMATCH=yes V=1 SYSSRC=/usr/src/linux SYSOUT=/usr/src/linux clean module.

 * 

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/x11-drivers/nvidia-drivers-1.0.7185/temp/build.log'.

 * 

```

Last edited by camelon on Tue Nov 27, 2007 5:01 pm; edited 1 time in total

----------

## w.tabin

 *camelon wrote:*   

> Do nowego jądra nie instalują się sterowniki do nvidii. Nie wiem o co dokładnie chodzi, bo na jadrze 2.6.22 wchodzą bez problemu. Kernel już został skompilowany. Wcześniej ponadto pojawiał się problem "access violation", ale to z powodu starego sandboxa. Nie idą też stery 96xx, najnowsze (100.xx) zaś działają, a 'make oldconfig && make prepare' też mam za sobą  

 

W kernelu 2.6.23-r1 zostało to już poprawione, a w 2.6.23 zobacz tutaj 

Pozdrawiam

----------

## camelon

 *camelon wrote:*   

> 
> 
> W kernelu 2.6.23-r1 zostało to już poprawione, a w 2.6.23 zobacz tutaj 
> 
> 

 

No właśnie z sandboxem już sobie poradziłem, wystarczyło skompilować najnowszego  :Very Happy:  Tyle że tamtemu człowiekowi moduł się kompilował, tylko sandbox nie miał gdzieśtam dostępu, a mi moduł w ogóle się nie kompiluje :/

PS Najnowsze sterowniki się kompilują, ale rozwiązanie w postaci przesiadki na nowszą kartę graficzną nie wchodzi w grę  :Smile: 

edit: problemy mam na wszystkich jądrach 2.6.23 do *-r2 włącznie.

edit2: Czy Gentoo (ew. całe "władze" GNU/Linux) kończą wsparcie dla starych kart graficznych NVIDIA? Z powodu 'starych' driverów nie idzie mi też xorg-7.3 i xorg-server-1.4 :/

----------

## mziab

Google sugeruje takiego patcha. Pewnie będziesz musiał go troszkę przerobić.

----------

## RA6

camelon moja sugestia:

Podaj dokładny model karty graficznej 

Obecnie testowane na: GF2mx, 3Ti i 4mx oraz GF6200

drivery 96.43.01 i 100.14.x dobrze działają z kernelem 2.6.23 nie mam problemów

wersje bibliotek: sys-apps/sandbox-1.2.18.1-r2, xorg-7.3 i xorg-server-1.4 na każdej z maszyn

Sprawdź w kernelu opcje z jakimi skompilowaleś obsługę kart graficznych

----------

## camelon

 *RA6 wrote:*   

> 
> 
> Podaj dokładny model karty graficznej 
> 
> 

 

Riva TNT2, chyba M64

 *RA6 wrote:*   

> 
> 
> Obecnie testowane na: GF2mx, 3Ti i 4mx oraz GF6200
> 
> drivery 96.43.01 i 100.14.x dobrze działają z kernelem 2.6.23 nie mam problemów
> ...

 

Nie wiem po co tak szczegółowe informacje, w końcu to migracja z jądra 2.6.22 na 2.6.23  :Smile:  Model karty graficznej tym bardziej nie ma znaczenia, bo na jednej instalacji driverów szły wszystkie kompatybilne karty graficzne (bez problemu przesiadłem się na innego kompa z P3 i GF2mx400). Jeśli się dokładnie przyjrzycie logowi, to zauważycie że problem jest ściśle w kompilacji (nieznane wskaźniki itd.). Wg mnie rozwiązaniem będzie patch z forum Slacka, sprawdzę to jak tylko zrobię parę innych rzeczy.

BTW Jak legalnie nałożyć patcha?  :Smile: 

edit: już się nauczyłem  :Smile:  Dobra, wymiękam, nie potrafię poprawić kodu... Może zajmę się tym w przyszłości. Czekam na jakieś inne propozycje  :Wink: 

----------

## camelon

 *mziab wrote:*   

> Google sugeruje takiego patcha. Pewnie będziesz musiał go troszkę przerobić.

 

Mam to:

http://www.linuxinsight.com/nvidia-linux-driver-100.14.11-and-linux-kernel-2.6.23.html

Zapewne z tym jest problem, byłbym wdzięczny, gdyby ktoś lepszy ode mnie poprawił mi tego patcha, tym bardziej, że skrajnie nie mam czasu na grzebanie... Z tego co widzę to nie będzie takie trudne dla kogoś, kto się na tym zna. Będę bardzo wdzięczny za tę robotę  :Very Happy: 

edit: https://bugs.gentoo.org/show_bug.cgi?id=191133 Ten bug odnosi się do driverów 100.xx, został już zaimplementowany, dlatego najnowsze drivery już działają. Teraz trzeba coś zrobić ze starymi driverami.

edit2: Temat zamknięty, poradziłem sobie przerabiając patcha do starszej wersji sterowników. Można go ściągnąć stąd: https://bugs.gentoo.org/show_bug.cgi?id=186490.

----------

