Module-assistant exDebian

Module-assistant

Solapas principales

Indice

1.¿Que es module-assistant?

Module-assistant es un instalador de módulos compilados para nuestro núcleo. Es decir, se encarga de compilar e instalar el modulo necesario para usar un hardware no soportado por el núcleo, o que por alguna razón necesitemos una versión más moderna que la incluida en él. Es una herramienta desarrollada para debian ,que se ha propagado a sus distribuciones derivadas, que facilita la vida al usuario para poder usar hardware con drivers externos al núcleo y compilar sus respectivos módulos.

2. Requisitos previos

El module-assistant (m-a a partir de ahora) necesita una serie de paquetes para su correcto funcionamiento además de sus dependencias directas:

Primero deberemos instalar el metapaquete build-essential con nuestro gestor de paquetes preferido.

   # aptitude install build-essential

Otro paquete importante que debemos instalar son las headers de nuestro núcleo. Para saber cual es la versión de nuestro núcleo:

   uname -r

Ahora solo debemos instalar las headers para nuestro núcleo. El código entre paréntesis se sustituye por el resultado del comando, así que no necesitamos escribir la versión manualmente.

# aptitude install linux-headers-$(uname -r)

Todas estas cosas podemos hacerlas directamente con el m-a automáticamente sin necesidad de instalar estos paquetes con una orden que luego veremos.

Nota: Si queremos tener entorno gráfico y que salgan bonitas barras de progreso al trabajar con m-a necesitaremos tener instalado también dialog

3.Instalación

Tan fácil como instalar el paquete con nuestro gestor preferido:

  # aptitude install module-assistant

4.Uso

Consideraciones previas.

El module-assistant necesita trabajar como root, sino las acciones get, prepare, install y auto-install no las podemos utilizar.

El module-assistant se puede invocar de dos formas: m-a o module-assistant.

4.1. Linea de comandos.

4.1.1.Ordenes básicas.

Esta es una lista de las ordenes que admite el m-a

  • update Como su nombre indica actualiza la base de datos de los paquetes con los que pueden trabajar el m-a. (m-a update)
  • prepare Instala la versión de los headers necesarios (adecuados a tu núcleo) y el paquete build-essential si no están instalados. (m-a prepare)
  • list | list-aviable | la la Muestra los módulos que puede gestionar el module-assistant junto con información relevante. (m-a la)
  • list-installed | li Muestra los modulo instalados en el sistema usando module-assistant. (m-a li)
  • search Sin argumentos muestra todos los paquetes instalados o instalables usando apt-cache, si le pasamos como argumento un modulo en concreto nos muestra si esta instalado o la versión instalable.(m-a search, m-a search modulo)
  • get Obtiene las sources de un paquete en concreto y las instala. (m-a get modulo)
  • build Compila el modulo pasado como argumento y construye un paquete deb instalable pero no lo instala. (m-a build modulo)
  • install Instala el paquete deb construido con build de un modulo en el núcleo. (m-a install modulo)
  • auto-install | a-i Este comando seguido con un modulo, efectúa prepare get build y install de una tacada. (m-a a-i modulo)
  • auto-build | a-b Igual que a-i pero sin instalar el paquete. (m-a a-b modulo)
  • clean Vacía los directorios de compilación de paquetes del kernel. (m-a clean)
  • purge Borra la cache de un paquete y elimina todos los paquetes binarios construidos a partir de el. (m-a purge modulo)

4.1.2. Opciones adicionales.

  • -t | --text-mode Elimina las barras de progreso.
  • -k | --kernel-dir Especifica el directorio de las fuentes del núcleo. Al especificar un directorio nuevo este queda guardado en la lista de directorios de sources.
  • -n | --no-rebuild Esta opción impide que se reconstruya un paquete ya construido (aunque sea una versión vieja).
  • -l | --kver-list Muestra la lista de los directorios de fuentes almacenados por m-a.
  • -v | --verbose Muestra más información.
  • -f | --force Nunca busca si ya esta instalado las fuentes o construido el núcleo y vuelve a construirlo o a obtenerlo.
  • -u | --user-dir Todas la variables de entorno con PATH son redirigidas bajo el directorio configurado con esta opción.
  • -i | --non-inter Con este comando cuando se produce algún error en un modulo no para y muestra el log, sino que continua con el resto de los módulos.
  • -o | --unpack-once Solo desempaqueta las fuentes una vez. Se ha de especificar la primera vez que se instala un paquete. Esta opción es experimental.
  • -O | --not-unpack No desempaqueta el paquete de las sources.
  • -q | --quiet No muestra muchos de los mensajes durante el proceso.
  • -S | --sudo-cmd Esta reemplazo para ejecutar los comandos como superusuario puede usarse en lugar de sudo.
  • -s | --apt-search Igual que search.
  • -h | --help Presenta la ayuda.

4.1.3. Ejemplo de uso.

Vamos a instalar el modulo de rt2500 que maneja las tarjetas wireless con chipset ralink 2500. Preparamos el sistema:

   m-a prepare
  Obteniendo los fuentes de la versión del núcleo: 2.6.25-2-amd64
Encabezados del núcleo disponibles en /lib/modules/2.6.25-2-amd64/build
apt-get install build-essential
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
build-essential ya está en su versión más reciente.
0 actualizados, 0 se instalarán, 0 para eliminar y 3 no actualizados.

¡Hecho!

Conseguimos las fuentes para el modulo:

 m-a get rt2500
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Paquetes sugeridos:
  rutilt
Se instalarán los siguientes paquetes NUEVOS:
  rt2500-source
0 actualizados, 1 se instalarán, 0 para eliminar y 3 no actualizados.
Se necesita descargar 0B/210kB de archivos.
After this operation, 274kB of additional disk space will be used.
Seleccionando el paquete rt2500-source previamente no seleccionado.
(Leyendo la base de datos ...
114863 ficheros y directorios instalados actualmente.)
Desempaquetando rt2500-source (de .../rt2500-source_1%3a1.1.0-b4+cvs20080623-1_all.deb) ...
Configurando rt2500-source (1:1.1.0-b4+cvs20080623-1) ...  

Construimos el paquete:

   m-a build rt2500

Aquí aparece un barra de progreso.

Instalamos el paquete creado.

   m-a install rt2500
  
Seleccionando el paquete rt2500-modules-2.6.25-2-amd64 previamente no seleccionado.
(Leyendo la base de datos ...
114875 ficheros y directorios instalados actualmente.)
Desempaquetando rt2500-modules-2.6.25-2-amd64 (de .../rt2500-modules-2.6.25-2-amd64_1.1.0-b4+cvs20080623-1+2.6.25-7_amd64.deb) ...
Configurando rt2500-modules-2.6.25-2-amd64 (1:1.1.0-b4+cvs20080623-1+2.6.25-7) ...

Por supuesto, todos estos comandos pueden ser sustituidos por uno solo:

   m-a a-i rt2500

Aparecen las salidas anteriores concatenadas.

4.2. Modo gráfico.

El module-assistant posee un modo gráfico que nos permite hacer todas estas acciones, para entrar en él solo tenemos que ejecutar el programa sin argumentos:

  m-a

4.2.1. Pantalla de bienvenida.

Esta es la pantalla que te recibe al ejecutarlo, en ella están las siguientes opciones:

OVERVIEW: Muestra las opciones disponibles del programa en lineas de comandos.

UPDATE: Como la opción update de la linea de comandos.

PREPARE: Como la opción prepare de la linea de comandos.

SELECT: Selecciona los paquetes a compilar.

EXIT: Sale del programa.

4.2.2. Pantalla de selección de modulos.

En esta pantalla debemos seleccionar aquellos módulos que queremos compilar e instalar en nuestro sistema, una vez marcados solo hemos de pulsar aceptar para pasar a la pantalla de manipulación de módulos.

4.2.3. Pantalla de manipulación de módulos.

En esta pantalla procedemos a manipular los módulos como queramos, tenemos estas opciones:

LIST: Como opción li de la linea de comandos.

SEARCH: Como search de la linea de comandos.

GET: Como la opción get de la linea de comandos

BUILD: Como la opción build de la linea de comandos, al terminar te pregunta si quieres instalar el modulo creado.

INSTALL: Como la opción install de la linea de comandos.

BACK: Vuelve a la pantalla de selección de módulos.

5. Problemas comunes.

Module-assistant me dice que no puede descargar las headers de mi versión del núcleo.

Cuando un núcleo desaparece de todas las ramas de debian y nosotros tenemos esa versión instalada y no tenemos instalados los headers de ese núcleo, al hacer un m-a prepare da un error y nos dice que no puede instalar dichos headers.

Ante esta situación tenemos dos opciones:

1. Actualizar a una versión del núcleo que si este en los repositorios.

2. Buscar en la red el paquete de headers necesario.

6.Referencias

man m-a

Fuentes: