A veces estás tan ilusionado con algo que, cuando menos te lo esperas, te llevas un batacazo de los gordos por confiarte demasiado.
Esto es lo que me ha ocurrido estas navidades con Asus. Después del apoyo que dio a Linux con el EEEPC y con tecnologías como Express Gate, lo último que me esperaba era encontrarme con que un portátil suyo diese, bajo Linux, una serie de problemas muy serios. El modelo en cuestión es el Asus F5GL.
¿Qué es lo que ocurre? Todo parece apuntar a que las tablas ACPI de la BIOS contienen errores, y por eso no funcionan cosas tan básicas como que el ordenador se apague cuando finalizas la sesión (hay que apagarlo «a mano» manteniendo pulsado el botón durante cuatro segundos). Y ya ni hablo de funcionalidades más «avanzadas» como el indicador del nivel de las baterías, o las teclas específicas para control de volumen, brillo… las cuales, obviamente, tampoco funcionan.
La razón de este fallo parece venir del hecho de que han usado un compilador de Microsoft para crear dichas tablas. Tal y como podemos leer en http://forums.gentoo.org/viewtopic.php?t=122145, el compilador de ACPI de Microsoft «tolera» una serie de errores en el código. Dichos errores incumplen el estándar ACPI, y de hecho ese código nunca compilaría en el compilador oficial de Intel (que sigue el estándar punto por punto). «Casualmente», el intérprete ACPI de Windows tolera perfectamente dichos errores, mientras que el interprete de Linux (que intenta seguir al pie de la letra el estándar ACPI, como debe ser), no. Que el lector saque sus propias conclusiones.
Lo peor de todo es que, tras explicárselo al servicio on-line de ASUS, su respuesta fue, literalmente, que ese no era un fallo suyo, y que era responsabilidad de mi distribuidor de Linux el resolver ese problema. Personalmente no estoy de acuerdo: creo que si una empresa saca un equipo del que afirman que cumple el estándar ACPI, pero sus tablas contienen errores no permitidos por dicho estándar, la culpa es de ellos. Intenté insistir y su segunda respuesta fue un simple close! (literalmente).
Tras rebuscar por Internet encontré la página de LinLap.com sobre el F5GL (para los que no la conozcan, dicha página informa sobre la compatibilidad de los portátiles y Linux), y allí se comentaban todas y cada una de mis desdichas. Sin embargo, comentaban también dos detalles interesantes:
- Con la última KNOPPIX (5.1.1, del 1 de abril de 2007) el apagado funcionaba perfectamente.
- Había un parche en http://patchwork.kernel.org/patch/1478/ para el kernel 2.6.27 (el que lleva Ubuntu 8.10) que pasaba de los errores en las tablas y hacía que las funciones ACPI funcionase de nuevo.
Revisé el código de todos los núcleos (el de la KNOPPIX, el actual y el parche) y llegué a la conclusión de que dicho parche era un rodeo que ya había para este problema, pero que por alguna razón fue eliminado.
Un par de meses después de encontrar todo esto salió el núcleo 2.6.29, incluyendo un rodeo mucho más depurado para este problema (en concreto, el código es específico para ASUS). Por desgracia, Ubuntu 9.04 llevará el núcleo 2.6.28, el cual todavía no incluye dicho parche. Quien sí trae el nuevo núcleo es Fedora 11 (aún beta, no saldrá hasta el 26 de mayo de 2009), y de hecho la he probado usando un Live-CD y todo parece funcionar perfectamente. Por desgracia el portátil es de un colega y no me atrevo a meterle esta distribución, principalmente porque ya está muy acostumbrado a usar APT.
¿Qué soluciones hay? La más inmediata creo que será, cuando salga Ubuntu 9.04, instalar el núcleo de la versión de desarrollo 9.10 usando pinning. La segunda, que puede que funcione o puede que no, es pedir a los empaquetadores de Ubuntu que hagan un backport del parche del 2.6.29 al 2.6.28, en la página https://bugs.launchpad.net/ubuntu/+source/linux/+bug/333064. Con suerte lo añaden y en un mes estos portátiles vuelven a funcionar al 100%. La tercera, más complicada (sobre todo por los drivers extra de la tarjeta de vídeo e inalámbrica) es compilar yo mismo el núcleo 2.6.29.
Y para terminar, un consejo para todos aquellos que se vayan a comprar un portátil al que pretendan instalar Linux: pasaos antes por http://www.linlap.com y aseguraos de que el modelo que habeis escogido no da problemas. Os ahorrareis muchos disgustos.