Una de las novedades más jugosas a mi parecer de las que hace gala la nueva Ubuntu 8.10 es DKMS, Dynamic Kernel Module Support. Parémonos un poco a ver qué es y por qué debe interesarnos.

Uno de los problemas más comunes con los módulos que no se incluyen con el núcleo Linux es que deben ser compilados siempre para cada versión exacta bajo la misma configuración que el mismo núcleo. Es decir, si tenemos una webcam cuyos drivers, por el motivo que sea, no son mantenidos en la rama principal del núcleo sino que los hace un señor que vive en Barbuda, tenemos que realizar una serie de pasos previos antes de poder utilizarlos.

Las distribuciones, máximas responsables de facilitarle la vida al tipo de usuario al que van dirigidas, habitualmente incluyen versiones precompiladas para el núcleo que están utilizando en ese momento, pero ¿qué ocurre cuando se actualiza el núcleo? Que todos los que mantienen esos módulos tienen que volverlos a compilar. Como haya algún despistado puede ocurrir que se actualice el núcleo pero no un módulo concreto hasta pasado un tiempo -y que tengas que estar unos días sin que te funcione la webcam, por ejemplo-. Esperar no suele ser una opción, especialmente por actualizaciones de seguridad.


Normalmente, siguiendo otro enfoque, distribuciones como Debian incluyen las versiones en código fuente de estos drivers pasándole el control sobre estos módulos al mismo usuario. Ubuntu también tiene opción a ello, es desde luego opción imprescindible si somos nosotros mismos los que compilamos nuestro núcleo.

Hace unos años surgió una herramienta que facilitaba el proceso de compilar los módulos, module-assistant. El problema es que mediante module- assistant el usuario debe preparar el sistema para compilar, escoger qué módulos quiere, etc. y termina siendo únicamente una máscara algo más visual para el mismo sistema de compilar a mano de toda la vida.

DKMS es un sistema que también trabaja con estas últimas versiones en código fuente. A diferencia de module-assistant, no requiere interacción con el usuario. Éste tan solo elige qué módulos quiere con su gestor de paquetes favorito y DKMS en la sombra se encarga del resto: En cada inicio comprobará qué módulos tenemos instalados y los compilará para el núcleo en ejecución en caso de que sea necesario.

Este sistema convierte la instalación de módulos como lirc, kqemu o cdemu en un juego para niños, sin pervertir para nada el tradicional sistema de instalación de paquetes ni el de compilación manual. Eso sí, requiere que los responsables de las distribuciones habiliten DKMS en cada paquete que lo necesita, ya que deben ser los mismos paquetes los encargados de añadirse al sistema en cuestión, aunque es una tarea bastante trivial.

Más información en la página oficial de DKMS