Cómo es el soporte del hardware en Linux?
El soporte del hardware en Linux es un asunto complicado: es (con diferencia) lo que más problemas da. ¿Cómo es realmente el soporte para hardware en Linux?
- Linux soporta la mayor parte del hardware, pero a veces puede haber problemas:
- si es hardware muy antiguo, muy moderno o muy raro.
- si es un dispositivo exclusivo para Windows, como los winmodems (linmodems.org).
Si el hardware es "de verdad" (no winmodems), de marca conocida y moderno (pero no demasiado moderno, mejor un poco pasado de moda) casi con toda seguridad estará soportado por Linux.
- Los instaladores de Linux reconocen prácticamente todo el hardware durante la instalación, por lo que la mejor manera de evitar problemas con el hardware es instalarlo desde el principio.
- Si añadimos software posteriormente nos costará hacerlo funcionar. Como todos los linuxeros experimentados saben, muchas veces es necesario un poco de magia negra para que las cosas funcionen. ¡Incluso puede ser más rápido instalar el sistema desde cero!
Cómo puedo saber si mi hardware está soportado por Linux
¿Cómo puedo saber si mi hardware está soportado por Linux (antes de comprarlo y meter la pata de forma irreparable)?
Fácil: consultando en Internet.
Recursos para comprobar si nuestro hardware está soportado por Linux:
- Hardware HOWTO: tldp.org/HOWTO/Hardware-HOWTO/
- Hardware compatible con Linux: compatiblelinux.org
- Hardware PCI soportado por Linux: list-kernel-hardware.txt
Fuente: diegocg.blogspot.com
El kernel tiene una infraestructura estándar para que los modulos informen sobre qué dispositivos soportan, que se puede consultar con:depmod extrae la lista de todos los módulos y agrupa toda la información en el archivo /lib/modules/<version_del_kernel>/modules.pcimap, archivo que udev utiliza para saber qué módulo tiene que cargar cuando detecta un dispositivo en el sistema. El script list-kernel-hardware.py cruza esa lista con los nombres de dispositivos que figuran en /usr/share/misc/pci.ids$ modinfo <nombre_del_modulo>
- Hardware PCI soportado por Linux on-line: kmuto.jp/debian/hcl/
Mediante una interfaz web, introducimos la salida del comando:y nos devolverá un listado dispositivo/módulo del kernel.$ lspci -n
- Hardware USB soportado por Linux: qbik.ch/usb/devices/
- Todo sobre impresoras en Linux: linuxprinting.org
- Soporte ALSA para tarjetas de sonido: alsa-project.org/alsa-doc/
- Soporte para webcam en Linux: mxhaard.free.fr
- Soporte para tarjetas de TV en Linux: linuxtv.org
- Todo sobre cámaras en Linux: gphoto.org
- Todo sobre escáners en Linux: sane-project.org/sane-backends.html
- Todo sobre portátiles en Linux: linux-laptop.net
Cómo se instala el hardware en Linux?
El procedimiento genérico para instalar hardware en Linux es el siguiente:
- Soporte en el kernel
El kernel tiene que estar compilado para soportar nuestro hardware. De no ser así tendremos que volverlo a compilar incluyendo las opciones adecuadas.
Por ejemplo, para la tarjeta de TV Prolink BT878 el kernel debe tener soporte genérico Video4Linux y soporte para la tarjeta concreta:
Multimedia devices ---> <M>Video For Linux Video Capture Adapters ---> <M>BT848 Video For Linux
- Cargar los módulos
Cargaremos el módulo (pasándole los parámetros necesarios) con modconf para que se actualice el archivo /etc/modules y se cargue al iniciar.
Por ejemplo, para la tarjeta de TV Prolink BT878 cargaremos el módulo bttv con los parámetros card=70 tuner=5 radio=1 pll=1.
¿Y dónde encuentro la información sobre parámetros, etc.? En Internet. O mejor, descárgate las fuentes del kernel y bajo /usr/src/linux/Documentation encontrarás toda la información.
Por ejemplo, en /usr/src/linux/Documentation/video4linux/bttv está la información para el módulo bttv para la tarjeta de TV Prolink BT878.
Un poco de magia negra
Tengo una webcam Logitech QuickCam Chat Skype. Cargué el módulo spca5xx, enchufé la cámara y… no la reconocía. En la web mxhaard.free.fr/spca5xx.html figura el id de la cámara (0x092e) como uno de los soportados, pero en la web qbik.ch/usb/ sobre dispositivos USB dice que la cámara no funciona (Currently spca5xx does not work). Por suerte, googleando encuentro un post donde dice que modificando las fuentes del módulo spca5xx y añadiendo a la lista de dispositivos reconocidos el 0x092e a él le funciona. Me descargo las fuentes del módulo, añado los cambios del parche y lo compilo e instalo siguiendo el INSTALL del paquete spca5xx. Resultado: la webcam funciona perfectamente!
- Comprobar el dispositivo /dev/…
Comprobaremos que existe el dispositivo /dev/… adecuado y que apunta al device correcto (si no existe lo crearemos).
Por ejemplo, para una tarjeta de TV debe existir /dev/video y apuntar a /dev/video0.
- Software que maneje el hardware
Una vez que tenemos un kernel que entiende nuestro hardware y los devices adecuados para que los programas se comuniquen con el hardware, sólo nos falta un programa capaz de manejar el dispositivo.
Por ejemplo, podemos manejar una tarjeta de TV con el programa tvtime.
Qué sabe Linux de mi hardware?
El kernel se encarga de la gestión del hardware usando herramientas como udev (sistema de nombrado del hardware), hotplug (mecanismo de avisos), dbus (comunicaciones entre procesos) o hal (capa de abstracción de hardware), y mapea todo el hardware en archivos de dispositivos ubicados en los directorios /dev y /sys.
- hal-device-manager (paquete hal-device-manager): muestra la información que HAL (Hardware Abstraction Layer) conoce de nuestro sistema.
- Kinfocenter (paquete kcontrol): muestra información del sistema.
- lshw-gtk (Hardware Lister,
ezix.org, paquete lshw-gtk):
versión GTK de lshw (paquete lshw), programa para la
línea de comandos que muestra información del sistema. Para ejecutarlo:
# lshw-gtk
- Ksensors (ksensors.sourceforge.net,
paquete ksensors): frontal de KDE para Lm-sensors
(lm-sensors.org, paquete lm-sensors),
una utilidad que monitoriza la placa base (temperatura, voltaje, ventiladores, discos duros, etc.).
Antes de lanzar Ksensors cargaremos los módulos que nos recomiende el comando:
# sensors-detect
Comprobaremos que los sensores funcionan con el comando:
# sensors
Por último, configuraremos los paneles de Ksensors.
Hola, muy interesante blog. Lindo diseño.
Soy novato en linux y quería saber si existe alguna distribución que no solo detecte el hardware cunado instalamos la distro por primera vez, sino que también cuando ya la tenemos instalada y añadimos un nuevo hardware. Algo así como el “Se ha encontrado un nuevo hardware” de Windows. Es decir, que detecte automáticamente el hardware nuevo y nos de la opción de instalar sus drivers también de forma automática.
Saludos!
que buen post, llegue a el buscando información por una “IC Plus IP1000 Family Gigabit Ethernet” ya encontré el driver que necesita, aun no la hago funcionar pero, permiteme molestarte si me surge una duda insuperable para mi, te lo agradeceré mucho, un así buen post.
Me alegro haber encontrado su pagina sus palabras es lo que necesitaba. tengo en mi pc windows xp y ubuntu linux hardy heron. uso la pc solo para entretenerme: la red, musica, descargas, leer manuales de c++ (visual c++ y Dev-c++), etc
como diablos voy a salir de aqui? lo que uso en windows y no he podido usar en linux:
sierra aircard usb U881. se supone que el driver ya viene en la version del kernel de hardy heron (2.6.24) pero no lo hago funcionar.
gracias y los visitare mañana
quiero usar el sistema operativo linux en mi computadora personal, pero no se como encontrar los drivers(linux) de: escaner Canon y mi impresora HP deskjet 930c series….que me recomiendan…gracias…
Buenas tardes:
Soy usuario de Ubuntu 10.04 desde hace unas semanas. Me gustaría hacer un par de consultas sobre drivers (intentaré ser lo más preciso posible):
Para poder imprimir en una impresora Konica Minolta bizhub 350 me descargué el paquete de drivers (kmpu18.zip) de su web. Dentro de este paquete hay un .deb (kmpu1.8-debian-intel.deb) que supuse que era el indicado para ubuntu. Pues bien, al ejecutar este .deb me dice que “Error: Arquitectura incorrecta «i386»” ¿Esto se da porque el ordenador trabaja a 64 bits y este paquete está pensado para 32 bits? A partir de aquí: ¿Qué puedo hacer? ¿Es posible hacer correr estos paquetes en 64 bits? ¿Existe algún paquete que esté preparado para los 64 bits?
1. El otro asunto se trata de los drivers para la tarjeta Atheros Ar8151. Un compañero de trabajo me pidió que le instalara Ubuntu en su Acer Aspire One y resulta que no hay conexión a internet. Supuse que también es problema de drivers e investigué en la web. Aunque pude confirmar mis sospechas no he podido dar con la solución y mi compañero me ha pedido que le desinstale Ubuntu (¡Cosa que no puede ocurrir!).
2. En fin. Por último decir que colgué el asunto de la tarjeta de red en el foro del portal de ubuntu en español y allí no contesta nadie. ¿Existe algún sitio ‘oficial’ donde poder hacer este tipo de consultas?
¿Será estrellateyarde la respuesta a mis plegarias?