Recompilar el kernel para drivers nvidia

Para finalizar de ajustar mi sistema he cambiado gdm por kdm. Sólo desinstalé gdm e instalé y configuré kdm desde KDE.

Para que el escritorio vaya fluido, necesito instalar los drivers privativos de nvidia. Me descargé el fichero .run de la web http://www.nvidia.com y lo copié a /opt. Como ya tenía las fuentes del kernel, hice el típico enlace simbólico:

$ ln -s /usr/src/linux-source-2.6.18-3_amd64 /usr/src/linux

Para recompilar el kernel sin complicarme usé, estando en /usr/src/linux:

$ make-kpkg –append-to-version=.treees_1 –initrd kernel_image

Después de un buen rato (unos 30 minutos en mi PC) esto crea una imagen de un kernel empaquetada en un fichero .deb. Es muy cómoda porque lo deja en /usr/src, que se instala (actualizando grub y todo):

$ dpkg -i linux-image_2.6.18.2_treees_1_amd64.deb

(o similar)

Una vez ha terminado, desactivo kdm. Esto lo hago porque para instalar los drivers de nvidia, no pueden estar corriendo las X. Por defecto, cuando mi sistema arranca, como instalé el servidor gráfico, el entorno kde y el gestor de acceso al sistema kdm.

Cuando un sistema linux arranca, después de haber reconocido hardware y demás, inicia el sistema según las preferencias del usuario, y entra en lo que se llama un nivel de ejecución, o runlevel. En Debian, el último nivel que se ejecuta para inicar el sistema (para un sistema normal, multiusuario, con escritorio, …) es el 2. Creo que para un entorno monousuario, se ejecuta el nivel de ejecución 3, pero no es nuestro caso, por lo general. Así que para desactivar kdm y hacer que cuando se inicie el PC no se inicie el servidor gráfico, tengo que encontrar qué script ejecuta el kdm al inicio, y cambiarle de nombre temporalmente. Bueno, cabe recordar que kdm no son la X ni mucho menos, pero parándo kdm es suficiente para instalar el driver. Lo que hago es renombrar el script que lo inicia.

$ mv /etc/rc2.d/S99kdm /etc/rc2.d/_S99kdm

Sólo le añado un “_” al inicio del nombre, y con esto evito que se inicie (ya que ya no se llama como se espera).

Voy a /opt y ejecuto (ya copié el archivo .run descargado de la web de nvidia al directorio /opt):

$ sh NVIDIA-loquesea.run

Es básicamente “siguiente, siguiente” y elijo la compatibilidad con las bibliotecas de 32 bits. Cuando el proceso acaba, le digo que NO edite mi fichero de configuración de las X, ya que lo edito yo a mano. Y termina.

Entonces edito el fichero /etc/X11/xorg.conf y quito las referencias al dri, lo quito de la sección “Modules” (para quitarlo, basta con comentar la línea, usando # al principio de la línea). También comento todo lo que vea que tiene que ver con dri. Aseguro que se carga el módulo glx, y en la sección del driver, sustituyo “nv” o “vesa” por “nvidia“. Grabo el fichero y voilá, cuando reinicie el PC se iniciarán las X con los drivers de nvidia. Todo va muy bien :) porque además no sé porqué, pero cuando llevaba 30 minutos con el ordenado el entorno de ventanas empezaba a ir muy lento, y ahora va muy suave.

Casi se me olvida, antes de reiniciar, tengo que volver a cambiar el nivel de ejecución 2 para que no inicie kdm otra vez:

$ mv /etc/rc2.d/_S99kdm /etc/rc2.d/S99.kdm

Y ya :)

~ por telemacro en 25 febrero, 2007.

2 comentarios to “Recompilar el kernel para drivers nvidia”

  1. Hola

    Soy nuevo en esto de linux acabo de descargar suse Linux 10.1 estoy trantado de habiliar la opcion xgl para que mi tarjeta nvidia tenga aceleracion 3d he leido que ocupo descargarme el driver ya lo descargue pero a la hora que trato de instalarlo me dice que ocupo precompilar el kenel mi pregunta es, como? que debe de descargar, mi tarjeta grafica es nvidia geForce ge6150

    Gracia, por favor aconsejar

  2. Hola Alejandro, es cierto, el instalador de los drivers de nvidia (ese fichero .run que bajaste de la página de nvidia) te pide un kernel recompilado. Es posible que puedas instalar el driver bajándote sólo las cabeceras del kernel, pero como yo nunca lo he hecho así, no sabría decirte.

    Te puedo contar cómo lo hago yo:

    1. bajo los fuentes del kernel. En Suse no sé cómo se instalan paquetes, pero habrá alguna aplicación para instalar nuevos programas. Busca “linux-source”. Debería aparecerte algo así como linux-source-2.6.22 o kernel-source-2.6.22 o similar.

    2. el kernel se instala en /usr/src/linux-source-2.6.22 (o el que sea que hayas bajado, pero estará en /usr/src).

    3. ahora toca recompilar el kernel. Mira a ver si tienes algún fichero de configuración del kernel en /boot. Algunas distribuciones como ubuntu o debian dejan allí el fichero de configuración de los kernels que tienes. En mi sistema, este fichero que te digo se llama /boot/config-2.6.22

    copias este fichero al directorio del kernel, pero lo llamas con otro nombre. Ten en cuenta que estos pasos son orientativos, los nombres dependen un poco de tu sistma. Para copiar el fichero de configuración hago:

    cp /boot/config-2.6.22 /usr/src/linux-source-2.6.22/.config

    Lo importante es que llames al fichero destino .config

    Y ahora por fin recompilas:

    make-kpkg –append-to-version=.mikernel –initrd kernel_image

    mmm aunque llevo mucho tiempo usando debian, y no sé cómo podría hacerse en suse, supongo que de la manera tradicional:

    make oldconfig
    make modules_install
    cp System.map /boot
    cp vmlinuz /boot

    Si te atascas con algo pregunta y vemos cómo podemos solucionarlo.

    Un saludo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: