viernes, 31 de mayo de 2013

Problema con el comando modprobe en Debian Wheezy: solucionado

Hoy estaba teniendo problemas para instalar un programa de CAD porque me faltaban dependencias. Una cosa llevó a la otra, hasta que intenté listar los módulos cargados en el sistema con el comando modprobe y la opción -l. Para mi sorpresa este fue el resultado:

paco@paco-pc:~modprobe -l
modprobe: invalid option -- 'l'
paco@paco-pc:~$

¿Qué demonios pasa? Dice que la opción -l no es válida, cuando nunca tuve problema para utilizarla en Ubuntu o en Debian Squeeze. Pues bien, en Debian Wheezy ya no sirve, así que hay que listar los módulos de otra manera. Buscando con la red encontré este foro donde ofrecen una solución, pero que yo he llevado algo más allá. Se trata del comando awk, que yo desconocía. La línea que hay que escribir en el terminal de comandos para listar los módulos es esta:


paco@paco-pc:~$ awk -F: '{print $1}' /lib/modules/`uname -r`/modules.dep

El listado se producirá ipso facto.

Pero tener que teclear esto cada vez que queramos listar los módulos cargados es un pestiño, así que podemos crearnos una forma de listarlos ad hoc usando el comando alias. Este comando lo que hace es crear atajos a partir de combinaciones o sucesiones de otros comandos. Estos atajos pueden ser temporales o permanentes, que es lo que ahora nos interesa. Para ello hay que editar el archivo .bashrc, presente en nuestra carpeta /home/usuario/ (que en mi caso es /home/paco/) con un editor como nano, emacs o gedit.


Una vez abierto escribimos las siguientes dos líneas en cualquier punto siempre que no interrumpamos ninguna secuencia de códigos:


#Alias modprobe -l
alias modprobel="awk -F: '{print $1}' /lib/modules/`uname -r`/modules.dep"

Con esto, estaremos asignando un alias para la línea de comando del comando awk que nos permite listar los módulos cargados, y ese alias lo he llamado modprobel pero puede tener el nombre que cada uno quiera. La línea que precede a la definición del alias no es más que un comentario descriptivo de lo que va a continuación, por lo que lleva delante el símbolo almohadilla. También puede uno escribir ahí lo que quiera pero es conveniente que describa qué es lo que hace o a qué comando sustituye.


Guardamos los cambios en el archivo .bashrc y lo recargamos utilizando en comando source:


paco@paco-pc:~$ source .bashrc
paco@paco-pc:~$

Y ya podemos utilizar el alias modprobel para listar los módulos cargados de nuestro sistema como si fuera un comando más.


Ya que hemos hablado de módulos no puedo dejar de lado a un grupo de rock progresivo español de los años 70 llamado así, Los Módulos, y que tuvieron su canción más popular en este "Todo tiene su fin".