Indice
- 1. ¿Que es module-assistant?
- 2. Requisitos previos
- 3. Instalación
- 4. Uso
- 4.1. Linea de comandos.
- 4.1.1. Ordenes básicas.
- 4.1.2. Opciones adicionales.
- 4.1.3. Ejemplo de uso.
- 4.2. Modo gráfico.
- 4.2.1. Pantalla de bienvenida.
- 4.2.2. Pantalla de selección de módulos.
- 4.2.3. Pantalla de manipulación de módulos.
- 5. Problemas comunes.
- 6. Referencias.
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