Carga de tablas DSDT arregladas para ACPI
Desde que tengo el portátil Dell X300, el único punto negro que he tenido ha sido el de los problemas con el ACPI debido a que la versión A04 de la BIOS viene con errores en la tabla DSDT que describe la configuración hardware para ACPI, errores que provocan que no se pueda por ejemplo leer el estado de la batería, y supongo que alguna cosa más. La solución: modificar dicha tabla DSDT para corregirla, lo que exigía hasta hace poco modificar el núcleo: no era complejo pero dejabas de tener el núcleo oficial de tu distribución, por no hablar de las actualizaciones. Y decidí hace tiempo utilizar núcleos oficiales de la distribuciones para tener un soporte de hardware mucho mejor.
Ayer volví a ver si existía una solución sin tener que modificar el núcleo y la página de Pedro Diaz sobre el X300 me hizo sospechar que así podía ser. En realidad tal y como se cuenta en esta página se termina modificando el núcleo pero, el blog de Sergio Blanco habla de un parche para el núcleo para carga de tablas DSDT desde el initrd, y este parche se incluye de forma oficial en Ubuntu Hoary. Es decir, si pongo la tabla DSDT corregida dentro del initrd del núcleo de Ubuntu Hoary, este la cargará y problema resuelto.
Finalmente, los pasos finales los encontré en los foros de soporte de Ubuntu: basta con copiar la tabla DSDT modificada al directorio “/etc/mkinitrd”, reconfigurar el paquete del núcleo (se rehace el initrd)y reiniciar. Y ya funciona perfectamente la batería. Y este cambio se mantiene para futuras actualizaciones del núcleo.

Pero que poco dura esta batería
Para los curiosos, sólo es necesario un cambio en toda la tabla DSDT del Dell X300 con BIOS A04:
< Field (ECR, ByteAcc, Lock, Preserve) --- > Field (ECR, DWordAcc, Lock, Preserve)
Al fin los pasos a dar se pueden incluso preparar para un usuario final. Este es el camino.
