Foxconn sabotea sus BIOS para que el ACPI no funcione en Linux

Tal como lo lees; la empresa Foxconn (también con el nombre de LeadTek) vende placas con BIOS configuradas para enviar información corrupta si detectan que el sistema que se va a arrancar es Linux. Por ejemplo, muchas placas con el socket LGA 775 de Intel, en particular las que tienen el chipset G33 (es difícil conocer todos los modelos afectados, pues una cosa es “no soportar Linux” - la excusa de la empresa para este problema - y otra enviar deliberadamente información erronea al núcleo de Linux).

¿Y por qué en este post y en los otros que hablan del tema se insiste en hablar de sabotaje? ¿No será simplemente “un error”? No, no puede ser simplemente un error; por varios motivos. Básicamente:

  1. La empresa dice que sus placas no soportan Linux. Sin embargo, tienen código que envía tablas DSDT especiales en el caso de que se esté usando Linux. ¿Qué hace ahí ese código? Desde luego, no será para que Linux soporte ACPI.
  2. Una placa que cumpla correctamente las especificaciones ACPI (cosa que según Foxconn, cumplen sus productos), no necesita pasar tablas especiales a Linux, pues este soporta perfectamente ACPI. Son precisamente los sistemas que no cumplen los estándares los que necesitan tablas específicas para que ellos funcionen correctamente.

Cosas como esta explican gran cantidad de fallos que se producen en Linux para hibernar, suspender, control de energía y más cosas que dependen de la correcta implementación de la especificación ACPI por el hardware. Recuerda que el núcleo acepta como parámetro de arranque “noacpi”, lo cual evita que lea la información errónea que le pasa la BIOS.

También, cosas como esta ponen en evidencia la importancia de asegurarnos que nuestro hardware cumple con los estándares y no esté atado a un único sistema operativo, incluso si ese sistema es el que usas actualmente. Hoy, las placas de las que hablo no funcionan bien con Linux, y su fabricante pasa olímpicamente de sus clientes y nos indica que “compremos Vista” [sic], para que la placa “funcione bien“. Pero esa no es una verddadera solución. Aunque hoy funcione en Vista, ¿quien nos asegura que vaya a funcionar con la siguiente versión de Windows?

Una buena costumbre es comprobar si el hardware que vayamos a comprar tiene drivers libres disponibles. Si no los hay, no hay ninguna garantía de que vayamos a poder seguir usando ese hardware en futuras versiones del sistema operativo que usemos.

Me he enterado de esta lamentable situación leyendo Barrapunto y los enlaces del final de este post. Cito la nota enviada a Barrapunto:

Un usuario ha estado analizando las tablas DSDT que ofrece la BIOS dependiendo del sistema operativo que consulta. Ofrecen distintas tablas para XP/Vista, Windows 2000, 98/95… y Linux. Desafortunadamente, la que se ofrece para Linux viola la especificación de ACPI, lo que hace que las funciones de suspender, resumir, rearrancar y otras se comporten erráticamente e incluso se produzcan bloqueos, checksum no válidos, bips continuos y kernel panics variados. Lo grave es que hackeando Linux para que use tablas DSDT de Windows XP y Vista, el ACPI funciona casi al completo. ¿La respuesta de Foxconn? Sus productos no están certificados para Linux. Eso sí, presumen de cumplir las especificaciones ACPI y haber recibido una certificación de Microsoft.

Si sabes inglés, te aconsejo leer el intercambio de emails con el fabricante de la BIOS, el cual deja en evidencia la cara tan dura que tiene esa gente. Aquí está el origen de la noticia, en los foros de Ubuntu y el informe de problemas en Launchpad.

Otros enlaces (inglés):

No hay comentarios: