¿Por qué no es tan buena opción buscar en base al nombre que provee el fabricante? ¿Hay algo mejor para utilizar en la búsqueda?
- Muchos productos basan su funcionamiento en un mismo circuito integrado (de aquí en más, CI). Si en lugar de buscar un producto en particular, buscamos por el nombre del CI que utiliza, estamos ampliando los resultados de la búsqueda.
- Aveces los CI utilizados son distintos, pero de una misma familia, con lo cual comparten parte del nombre (varía alguna letra al final) lo cual puede brindar más resultados.
- Si la búsqueda por parte de otra persona llegó a solucionarse, seguramente el nombre del CI que utiliza figure en la solución.
- El desarrollador del driver, va a referirse y documentar respecto al nombre del CI, no a los cientos de productos que lo utilicen, así que buscando sobre el CI podemos llegar a obtener la mejor información disponible.
- Aún sin obtener el nombre del CI, al conectar el dispositivo a la PC, Linux nos brindará alguna información que seguramente el desarrollador referencie, así que es interesante contar con esta información extra.
Ok. ¿Los convencí de que es una mejor opción buscar en base a la información, ya sea el nombre o la descripción, que el propio Linux nos brinde sobre el CI? Si es así, veamos como intentar obtenerla. Aclaro antes que, en la actualidad, la mayoría del hardware que agreguemos es USB o PCI, así que veremos más que nada como obtener información para estas 2 opciones.
USB
En lo que respecta a este tipo de dispositivos, lo que sea almacenamiento rara vez nos traerá problemas, pero abundan los dispositivos que convierten el USB a otro tipo de puertos, como el Ethernet cableado o inalámbrico (WiFI), que si nos puede traen complicaciones. El comando a utilizar en este caso es lsusb. Lo aplico a continuación con el ejemplo de un adaptador USB a WiFi (como dato extra Ubuntu 10.10 lo reconoció de inmediato mientras que en Debian Squeeze me implicó una pequeña búsqueda):
$ lsusb
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 0cf3:1006 Atheros Communications, Inc. TP-Link TL-WN322G v3 / TL-WN422G v2 802.11g [Atheros AR9271]
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
La línea de información correspondiente al adaptador es la tercera. Desglosemos cada parte a ver que nos sirve:
- Bus 001 Device 004: bus USB al que quedo asociado el dispositivo. Cambia con cada conexión/desconexión, así que para este caso no nos aporta información útil.
- ID 0cf3:1006: número de identificación que le asigna el fabricante. La parte 0cf3:1006 puede servir de búsqueda, pero sólo si no tenemos la descripción.
- Atheros Communications, Inc. TP-Link TL-WN322G v3 / TL-WN422G v2 802.11g [Atheros AR9271] : descripción que tiene Linux sobre el dispositivo.
Hay casos donde la descripción no figura. Simplemente nos diría:
Bus 001 Device 004: ID 0cf3:1006
Esto puede ocurrir con hardware realmente nuevo (no nuevas versiones) con respecto a la distribución que usamos. Lo único que hay que hacer es actualizar la lista de Ids USB de nuestra distribución. Para eso, recurrimos con permisos de root al comando update-usbids:
$ sudo update-usbids
El cual se conectará con www.linux-usb.org y bajará la lista de ID reconocidos por Linux.
Si incluso después de esto no aparece descripción alguna, aún podemos buscar en Internet según el ID, pero posiblemente nuestro dispositivo no este soportado aún en Linux, lo cual explica que el ID no sea conocido. Si encontramos resultados, posiblemente sean aún experimentales y difíciles (más que nada con muchos pasos elaborados) de aplicar.
Resumen de comandos utilizados
$ lsusb
Si no aparece descripción:
$ sudo update-usbids
Nota para novatos: el signo $ lo pongo para hacer referencia a que es un comando que se escribe en consola. Noo debe escribirse.
En la parte 2 de este artículo, veremos como conseguir información extra para dispositivos PCI, así como algunas experiencias y comentarios que los animen a afrontar esta tarea cuando se presente.