domingo, 29 de abril de 2012

Instalar drivers de nVidia

Tengo una gráfica nVidia que, con perdón de de los que tienen una ATI, yo siempre he leido que eran las gráficas más compatibles con Linux.
NOTA, 6 años más tarde: Debian mejora, y cambia, y esta entrada posiblemente sea obsoleta. Ver el tema de instalar drivers nVidia aquí
De hecho, cuando compro un ordenador, lo condiciono a que tenga una nVidia... pero la verdad es que nunca he probado pelearme con una ATI y, como tampoco compras un ordenador todos los días... no quiero que esto se considere 'dogma de fe'. Porque también me he peleado con las nVidia.
Tanto es así que como usando los drivers nVidia siempre tenía problemas con la conexión HDMI (del PC a la TV), hace tiempo que me dejé de historias y dejo instalado, por defecto, el driver 'nouveau' (proyecto libre, adoptado por Debian, para sustituir los privativos de nVidia).
Y es que este 'nouveau' (con el que te conectas automáticamente por HDMI, sin tener que andar configurando nada, como pasa si instalas los drivers nVidia) a partir del kernel 3.2 (o quizás 2.6.37, no recuerdo) ya lleva aceleración 3D y te permite correr perfectamente el entorno gnome3 (gnome shell, Unity, etc), que es lo que se lleva ahora.
Pero como, en estos momentos, con nouveau, usando un Debian actualizado a la Rama Sid, donde hay muchos cambios, tengo problemas de 'nitidez' en los textos de los navegadores (al menos en Iceweasel y en Chrome), decidí probar, en el Debian-Pruebas que tengo en una partición, instalar los drivers de nVidia, y veo que esos problemas desaparecen.
Así que, como desempolvé viejos apuntes, los pongo aquí.

El problema de los drivers nVidia es que hay que instalarlos, claro. Y además, que 'se dan de tortas' con el driver nouveau que se te instala por defecto, hasta el punto que se recomienda desinstalarlo primero, e incluso ponerlo en la blacklist. Cosa que a mucha gente se le olvida, y a lo mejor es fuente de conflictos.

Hay muchas formas de instalar los drivers de nVidia en Debian, no hay más que bucear un poco por Google. Yo encontré, en su día, un sistema muy simple, un simple script de Shell (bueno, no tan simple) que lo instala a partir del paquete 'module-assistant' y tenía la ventaja que se encargaba de todo, hasta de anular el famoso nouveau.

Y funciona perfectamente. Lo único que tienes que preocuparte es de tener instalado el paquete 'linux-headers XXX' correspondiente a tu 'linux-image-XXX' que te determina el kernel con el que arrancas.

Ya sabes cómo es eso de los scripts: te abres el gedit, o cualquier otro editor de textos, copias el texto del script y lo guardas en un sitio cómodo (por ejemplo, en la ruta donde se te abre, por defecto, la consola). Y luego lo ejecutas, desde consola, escribiendo, simplemente, desde consola root.
sh [nombre_del_script]
El script es el siguiente:
# !/bin/sh
aptitude install module-assistant
m-a prepare m-a a-i nvidia
m-a a-i nvidia-kernel-source
aptitude install nvidia-glx
aptitude install nvidia-settings
aptitude install dkms
aptitude install nvidia-glx-ia32
aptitude install nvidia-xconfig
nvidia-xconfig
nano /etc/X11/xorg.conf
# NOTAS
# con este script no hace falta eliminar antes el driver nouveau
# porque te va a generar el archivo /etc/modprobe.d/nvidia-kernel-common.conf
# y en él te pone la linea 'blacklist nouveau', con lo que queda anulado
# La linea 'aptitude install nvidia-glx-ia32' es para instalaciones de 64 bits,
# si no es tu caso la puedes eliminar o comentar poniendo delante #
# y 'nano...' es para ver cómo quedó el xorg.conf
#
# recuerda que para arrancar este script, basta escribir, en consola root, sh [nombre_script]
Así que, si quieres probar, copia, en gedit, este script, guárdalo, por ejemplo, con el nombre de script_nvidia (o script_nvidia.sh), abre una consola como root y ejecútalo con
# sh script_nvidia
Y el script empieza a correr, te va instalando cosas, incluso compilando... y al final te saca (con el editor nano) cómo te queda el xorg.conf que ha creado (recuerda que, con nouveau, no existe xorg.conf)
Y ya tienes tus drivers nVidia instalados.

NOTA IMPORTANTE:
Cuando cambias (se actualiza) el kernel, puede que se siga manteniendo el nvidia-kernel. No suele pasar nada, pero si hay algún problema y, al arrancar el PC, no te entra el modo gráfico, se arregla de la siguiente manera (hay que tener instalado el module-assistant y el linux-headers del nuevo kernel).
  • Primero, se entra (o el sistema, si arrancas 'te entra') en el modo recovery (supongo que, si todavía estuvieses en modo gráfico, puedes también hacerlo saliendo de él con Ctrl+Alt+F1 (a F6), para entrar en una consola tty (tty1 a 6), y Ctrl+Alt+F7 para volver)
  • Luego te logueas, y pasas a consola root (con 'su')
  • Ya como root vas escribiendo, en la consola 
  • # m-a prepare 
  • # module-assistant auto-install nvidia (te compilará muchas cosas, tarda un ratito) y finalmente 
  • # apt-get install nvidia-glx 
y solucionado, al arrancar ya te entrará el modo gráfico. 
(si lo hiciste por tty, recuerda que se vuelve al modo gráfico con Ctrl+Alt+F7)

3 comentarios:

  1. Tras horas de peleas, quebraderos de cabeza y reinstalaciones de debian he visto la luz gracias a esto, a ver si funciona...

    ResponderEliminar
    Respuestas
    1. pues desgraciadamente no funcionó :( Los comandos # m-a prepare y
      # module-assistant auto-install nvidia no los reconoce (orden no encontrada)
      y nvidia-glx dice ya estar instalado, no recupero el entorno gráfico, gracias igualmente, seguire buscando

      Eliminar
  2. es raro, a mi si me han funcionado siempre...
    Lo único que se me ocurre es que si, es de suponer, has introducido esos comandos que dices sin la almohadilla (#) inicial (que solo es el indicativo de que se trabaja en 'consola de root'), tengas una tarjeta nVIdia híbrida de nueva generación, que parece ser que necesitan eso del Bumblebee y tal... de lo cual no tengo ni idea, porque nunca me ha tocado pelearme con ello.

    ResponderEliminar