lunes, 10 de enero de 2011

Buscar he encontrar la ubicación de un controlador en linux

No me interesa de cuanto interés sea esto o no.

Es un ejemplo de cómo saber el nombre del módulo de un controlador y saber donde esta ubicado. En eso nos toparemos con varios comandos que seria de interés conocer.

Supongase que queremos saber el nombre del controlador wireless. El primer comando a utilizar seria este:

primero buscar en los dispositivos pci

lspci -k | grep -i -B 2 -C 2 -E "wireless"

lspci: muestra todos los dispositivos pci

con el parametro -k de "lspci" se muestran los controladores asociados en el kernel con cada dispositivo pci.

el parámetro -i de grep indica que no se hará distinción entre mayúsculas y minúsculas -B 2, indica que se mostraran las  2 lineas que estén antes de  palabra "wireless" y -C 2 indica que se mostraran las dos líneas después. Esto es porque tal vez no este toda la información en la misma línea.

sin embargo tal vez el dispositivo no sea pci sino usb. En ese caso el comando a utilizar seria este:

lsusb | grep -i -E "wireless

podría mostrar una línea como esta:

Bus 001 Device 002: ID 0bda:8187 Realtek Semiconductor Corp. RTL8187 Wireless Adapter

RTL8187 seria el nombre del controlador.

Para confirmarlo se utiliza modinfo:

modinfo rtl8187

en la linea filename aparece la ubicación del controlador:

filename:       /lib/modules/2.6.32-27-generic/kernel/drivers/net/wireless/rtl818x/rtl8187.ko
finalmente si se quiere saber a qué paquete corresponde ese archivo se utiliza dpkg:


dpkg -S /lib/modules/2.6.32-27-generic/kernel/drivers/net/wireless/rtl818x/rtl8187.ko

mostraría algo como esto:

linux-image-2.6.32-27-generic: /lib/modules/2.6.32-27-generic/kernel/drivers/net/wireless/rtl818x/rtl8187.ko

donde linux-image-2.6.32-27-generic es el nombre del paquete.