Hardware en Linux

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?

  1. 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.

  2. 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.
  3. 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:

Cómo se instala el hardware en Linux?

El procedimiento genérico para instalar hardware en Linux es el siguiente:

  1. 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
  2. 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!

  3. 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.

  4. 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.

    hal-device-manager

  • Kinfocenter (paquete kcontrol): muestra información del sistema.

    Kinfocenter

  • 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

    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.

    Ksensors

Artículos en la categoría "Lo más básico en Linux"

  1. Lo más básico en la terminal de Linux
  2. Cómo apagar el ordenador en Linux
  3. Cómo conseguir ayuda en una máquina Linux
  4. Abrir un shell en el entorno gráfico en Linux
  5. Hardware en Linux
  6. Copiar/Pegar en Linux
  7. Activar NumLock en Linux
  8. El menú Debian
  9. Iconos en el escritorio en Linux
  10. Salvapantallas en Linux
  11. Formatos libres y propietarios en Linux
  12. Proceso de arranque en Linux
  13. El kernel Linux 2.6
  14. Emergencias en Linux

5 Comments:

  1. 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!

  2. rodrigo salado anaya

    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.

  3. 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

  4. 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…

  5. 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?