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

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

[ Hits: 9.140 ]

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

Captura de tela com Gimp

Usando sempre o Firefox mais recente

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

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

Megaupload - faça seus downloads sem preocupação

Leitura recomendada

Deixando o SeaMonkey em português

Adicionando ou excluindo um usuário de um grupo

Configuração do Mozilla e Firefox para acesso ao site da Serpro

rcconf: configure e controle os serviços de inicialização do Debian ou Ubuntu

Imprimindo para PDF a partir de programas rodando sob o Wine no openSUSE 13.2

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts