Instalando o driver NVidia 173.14 (legacy) vs. kernel recente

Publicado por Percival F. Jr. em 16/12/2008

[ Hits: 8.647 ]

Blog: http://www.debianbrasil.890m.com

 


Instalando o driver NVidia 173.14 (legacy) vs. kernel recente



Muitos usuários de placas NVidia que fazem uso do driver legacy (séries MX, FX e algumas da série 6) estão encontrando problemas ao compilar o módulo em relação a um kernel novo, acima de 2.6.26.

Enquanto a NVidia não disponibiliza o instalador corrigido e JÁ prometido, eis o recurso técnico necessário (a.k.a. gambiarra) para a solução do impasse.

Baixe o instalador do site:

http://www.nvidia.com/object/linux_display_ia32_173.14.12.html

E depois o patch no endereço:

http://www.nvnews.net/vbulletin/showpost.php?p=1704622&postcount=4

Dê permissão ao instalador:

# chmod a+x NVIDIA-Linux-x86-173.14.12.pkg1.run

Aplique o patch baixado:

# ./NVIDIA-Linux-x86-173.14.12.pkg1.run --apply-patch NVIDIA_kernel-173.14.09-2512683.diff.txt

Um novo instalador será criado: NVIDIA-Linux-x86-173.14.12.pkg1-custom.run

Basta executá-lo:

# ./NVIDIA-Linux-x86-173.14.12.pkg1-custom.run

P.S.: Estes são apenas os passos para corrigir o instalador. Consulte a documentação da sua distro ou outros artigos sobre os passos necessários para que a operação de instalação do driver tenha sucesso em seu sistema.

Bom trabalho,

Percival.
( gnu_xiitas @ irc.freenode.net )

Outras dicas deste autor

TUX: tenha em casa seu próprio mascote Linux

Customizando seu GRUB com nova splash screen

Fim dos "estalos" de som no Ubuntu 9.10 (Karmic Koala)

Tenha seus preferidos do Firefox à mão em qualquer lugar, a qualquer momento

KAMEFU: Organize seus emuladores de games em um só programa

Leitura recomendada

GRUB 2 - Edição em modo correto

Instalação do Microcode Intel no Void Linux

Agrupando mensagens no aMSN

Banco do Brasil no Ubuntu 10.04 (Sun Java funcionando)

Instalando Spacewalk no Fedora 27

  

Comentários
[1] Comentário enviado por pinduvoz em 18/12/2008 - 23:03h

Quando o Lenny mudou para o Kernel 2.6.27 eu tentei várias vezes instalar o referido driver da Nvidia e não consegui.

Acabei usando o Lenny com o Kernel 2.6.26 até que, por conta de um upgrade no xorg, não consegui mais abrir o x, nem mesmo com o driver genérico (nv).

Assim, agradeço esta dica, pois ela me fez pensar em reinstalar o Lenny, que abandonei por conta dos problemas supra referidos.

[2] Comentário enviado por nickolback em 02/01/2009 - 10:44h

Estou tendo problemas do esse kernel no que se refere a Nvidia.
Instalei alguns jogos e nada rodou.
Uso para o Ubuntu 8.10 e pensei várias vezes em voltar para o Mandriva 2008.1 pois tinha sucesso com os jogos nesse sistema.
Vou testar e postar mais tarde!
-------
18/01/09
--------
FIz o tutorial e consegui gerar outro driver.
Vale lembrar quando vc faz o comando do patch vc tem que apertar Y para que aceite, no caso só aparece N e assim não é concluído.
Como escrevi estou com o problema com kernel e continuo, mesmo com essa dica

Peguei o problema para analisar

nvidia-installer log file '/var/log/nvidia-installer.log'
creation time: Thu Jan 15 06:34:06 2009
installer version: 1.0.7

option status:
license pre-accepted : false
update : false
force update : false
expert : false
uninstall : false
driver info : false
precompiled interfaces : true
no ncurses color : false
query latest version : false
OpenGL header files : true
no questions : false
silent : false
no recursion : false
no backup : false
kernel module only : false
sanity : false
add this kernel : false
no runlevel check : false
no network : false
no ABI note : false
no RPMs : false
no kernel module : false
force SELinux : default
no X server check : false
no cc version check : false
force tls : (not specified)
X install prefix : (not specified)
X library install path : (not specified)
X module install path : (not specified)
OpenGL install prefix : (not specified)
OpenGL install libdir : (not specified)
utility install prefix : (not specified)
utility install libdir : (not specified)
doc install prefix : (not specified)
kernel name : (not specified)
kernel include path : (not specified)
kernel source path : (not specified)
kernel output path : (not specified)
kernel install path : (not specified)
proc mount point : /proc
ui : (not specified)
tmpdir : /tmp
ftp mirror : ftp://download.nvidia.com
RPM file list : (not specified)

Using: nvidia-installer ncurses user interface
-> License accepted.
-> Installing NVIDIA driver version 173.14.12.
-> No precompiled kernel interface was found to match your kernel; would you li
ke the installer to attempt to download a kernel interface for your kernel f
rom the NVIDIA ftp site (ftp://download.nvidia.com)? (Answer: No)
-> No precompiled kernel interface was found to match your kernel; this means
that the installer will need to compile a new kernel interface.
-> Performing CC sanity check with CC="cc".
-> Performing CC version check with CC="cc".
-> Kernel source path: '/lib/modules/2.6.27-7-generic/build'
-> Kernel output path: '/lib/modules/2.6.27-7-generic/build'
-> Performing rivafb check.
-> Performing nvidiafb check.
-> Performing Xen check.
-> Cleaning kernel module build directory.
executing: 'cd ./usr/src/nv; make clean'...
-> Building kernel module:
executing: 'cd ./usr/src/nv; make module SYSSRC=/lib/modules/2.6.27-7-generi
c/build SYSOUT=/lib/modules/2.6.27-7-generic/build'...
NVIDIA: calling KBUILD...
make CC=cc KBUILD_VERBOSE=1 -C /lib/modules/2.6.27-7-generic/build SUBDIRS=
/tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/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 mis
sing."; \
echo " Run 'make oldconfig && make prepare' on kernel src to fix it
."; \
echo; \
/bin/false)
mkdir -p /tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/src/nv/.tmp_ve
rsions ; rm -f /tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/src/nv/.
tmp_versions/*
make -f scripts/Makefile.build obj=/tmp/selfgz16139/NVIDIA-Linux-x86-173.14.
12-pkg1/usr/src/nv
cc -Wp,-MD,/tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/src/nv/.nv
.o.d -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.3.2/include -D__KERNE
L__ -Iinclude -I/usr/src/linux-headers-2.6.27-7-generic/arch/x86/include -
include include/linux/autoconf.h -Iubuntu/include -Wall -Wundef -Wstrict-pr
ototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-fu
nction-declaration -O2 -m32 -msoft-float -mregparm=3 -freg-struct-return -mp
referred-stack-boundary=2 -march=i586 -mtune=generic -ffreestanding -pipe -W
no-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2
-mno-3dnow -Iinclude/asm-x86/mach-default -fno-stack-protector -fno-omit-fra
me-pointer -fno-optimize-sibling-calls -pg -Wdeclaration-after-statement -Wn
o-pointer-sign -I/tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/src/nv
-Wall -Wimplicit -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wparenth
eses -Wpointer-arith -Wno-multichar -Werror -MD -Wsign-compare -Wno-cast-qua
l -Wno-error -D__KERNEL__ -DMODULE -DNVRM -DNV_VERSION_STRING=\"173.14.12\"
-UDEBUG -U_DEBUG -DNDEBUG -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=K
BUILD_STR(nv)" -D"KBUILD_MODNAME=KBUILD_STR(nvidia)" -c -o /tmp/selfgz16139
/NVIDIA-Linux-x86-173.14.12-pkg1/usr/src/nv/.tmp_nv.o /tmp/
selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/src/nv/nv.c
In file included from include/linux/bitops.h:17,
from include/linux/kernel.h:15,
from include/linux/sched.h:52,
from include/linux/utsname.h:35,
from /tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/s
rc/nv/nv-linux.h:19,
from /tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/s
rc/nv/nv.c:14:
include/asm/bitops.h: In function ‘set_bit’:
include/asm/bitops.h:60: warning: pointer of type ‘void *’ used in arith
metic
include/asm/bitops.h: In function ‘clear_bit’:
include/asm/bitops.h:97: warning: pointer of type ‘void *’ used in arith
metic
In file included from include/linux/list.h:6,
from include/linux/preempt.h:11,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:29,
from include/linux/time.h:8,
from include/linux/timex.h:57,
from include/linux/sched.h:54,
from include/linux/utsname.h:35,
from /tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/s
rc/nv/nv-linux.h:19,
from /tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/s
rc/nv/nv.c:14:
include/linux/prefetch.h: In function ‘prefetch_range’:
include/linux/prefetch.h:57: warning: pointer of type ‘void *’ used in a
rithmetic
In file included from include/linux/utsname.h:35,
from /tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/s
rc/nv/nv-linux.h:19,
from /tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/s
rc/nv/nv.c:14:
include/linux/sched.h: In function ‘object_is_on_stack’:
include/linux/sched.h:1969: warning: pointer of type ‘void *’ used in ar
ithmetic
In file included from include/asm/dma-mapping.h:9,
from include/linux/dma-mapping.h:52,
from include/asm-generic/pci-dma-compat.h:7,
from include/asm/pci.h:94,
from include/linux/pci.h:983,
from /tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/s
rc/nv/nv-linux.h:86,
from /tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/s
rc/nv/nv.c:14:
include/linux/scatterlist.h: In function ‘sg_virt’:
include/linux/scatterlist.h:199: warning: pointer of type ‘void *’ used
in arithmetic
In file included from /tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/s
rc/nv/nv.c:14:
/tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/src/nv/nv-linux.h:107:2
7: error: asm/semaphore.h: Arquivo ou diretório inexistente
In file included from /tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/s
rc/nv/nv-linux.h:109,
from /tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/s
rc/nv/nv.c:14:
include/linux/highmem.h: In function ‘zero_user_segments’:
include/linux/highmem.h:134: warning: pointer of type ‘void *’ used in a
rithmetic
include/linux/highmem.h:134: warning: pointer of type ‘void *’ used in a
rithmetic
include/linux/highmem.h:134: warning: pointer of type ‘void *’ used in a
rithmetic
include/linux/highmem.h:134: warning: pointer of type ‘void *’ used in a
rithmetic
include/linux/highmem.h:137: warning: pointer of type ‘void *’ used in a
rithmetic
include/linux/highmem.h:137: warning: pointer of type ‘void *’ used in a
rithmetic
include/linux/highmem.h:137: warning: pointer of type ‘void *’ used in a
rithmetic
include/linux/highmem.h:137: warning: pointer of type ‘void *’ used in a
rithmetic
In file included from /tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/s
rc/nv/nv.c:14:
/tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/src/nv/nv-linux.h: In f
unction ‘nv_execute_on_all_cpus’:
/tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/src/nv/nv-linux.h:674:
error: too many arguments to function ‘on_each_cpu’
/tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/src/nv/nv.c: In functio
n ‘nv_kern_cpu_callback’:
/tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/src/nv/nv.c:1299: error
: too many arguments to function ‘smp_call_function’
/tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/src/nv/nv.c:1306: error
: too many arguments to function ‘smp_call_function’
make[3]: ** [/tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/src/nv/nv.
o] Erro 1
make[2]: ** [_module_/tmp/selfgz16139/NVIDIA-Linux-x86-173.14.12-pkg1/usr/sr
c/nv] Erro 2
NVIDIA: left KBUILD.
nvidia.ko failed to build!
make[1]: ** [module] Erro 1
make: ** [module] Erro 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.



Contribuir com comentário