O cómo actualizar la BIOS de un portátil sin disquetera (ni siquiera disquetera USB) y sin Windows instalado
Tras horas de pruebas con Ubuntu, percibí que en (pocas) ocasiones el rendimiento del sistema se reducía palpablemente, a la vez que el ventilador comenzaba a soplar con fuerza. Un rápido vistazo a top
me mostró que había dos procesos, kacpid
y kacpid_notify
consumiendo un gran porcentaje de ciclos. Una búsqueda aún más rápida me llevó al blog de José Medina, que ofrece la pista fundamental: la BIOS podía estar relacionada con el problema, y con su solución.
Pocas cosas hielan la sangre arterial y venosa con mayor eficacia que una actualización de BIOS. Probablemente se trate de un miedo irracional, pero hay que reconocer que la posibilidad de dejar la máquina lista para su “enajenación” es un buen acicate para el pensamiento cuidadoso y ordenado. Dicho sea de paso, en mi actual trabajo llamamos enajenación al procedimiento consistente en levantar cuidadosamente un ordenador del suelo y arrojarlo con fuerza a la caja de un camión, contratado cada vez que se llena el almacén de trastos.
Volviendo al tema, resulta que kacpid
es un demonio (proceso de sistema que se ejecuta en segundo plano) encargado de varias características propias de los portátiles, como control de la temperatura y gestión de los voltajes de la CPU. Por tanto, no podía aplicar la sugerencia de José, ya que perder el control sobre la tensión/frecuencia de la CPU supondría automáticamente reducir la duración de la batería entre cargas. Actualizar la BIOS parecía el único camino válido, así que me lancé a ello con la mirada acerada, la cabeza fría, los pies de plomo y unos cuantos tópicos más que pude reunir.
La web del fabricante
Para empezar, la web de Hewlett-Packard ofrece información detallada acerca de las diferentes versiones de controladores disponibles para cada uno de sus modelos. Mientras que la instalación de Linux hace irrelevante el problema de los controladores (sobre todo, cuando hay versiones de código abierto disponibles), la BIOS sigue estando sujeta a las especificaciones del fabricante, debido a que es el primer código que se ejecuta en un PC y es, por tanto, anterior al sistema operativo e incluso al cargador (GRUB, o LILO, anteriormente).
La última versión de la BIOS disponible para mi tc4200 es la F.0E. Un rearranque, pulsando F10
, reveló que la versión de mi máquina era la F.06. La historia de revisiones revela que la versión F.09 incluyó una mejora en las tablas de valores térmicos, así que probablemente esta sea la primera corrección válida para el problema de kacpid
. Me decido, no obstante, a instalar la última versión disponible. Pero, ¿como?
Perdido sin disquetera
Se nos ofrecen tres modos de actualizar la BIOS:
- HPQFlash es un reprogramador de BIOS sencillo de usar, y sólo disponible en entorno Windows. Ya no tengo ganas de reinstalar XP para lo que debería ser un procedimiento elemental, así que veamos más opciones.
- Algo llamado Remote ROM Flash – SSM Compliant parece lo suficientemente amenazador. ¿Actualizaciones de la BIOS por la red? Actualizar la BIOS de una máquina ya es un procedimiento lo bastante infrecuente. No, no tenemos de eso. Nada que ver por aquí, por favor, circulen.
- ROMPaq, un programita que crea un disquete arrancable. No tengo disquetera en el portátil, pero vi McGyver de pequeño, así que saldré de esta.
Tengo un pinganillo (USB)
Antes de nada, para ejecutar ROMPaq hace falta un ordenador con Windows y (más difícil todavía) un disquete. Ordenadores con Windows, casi diría que por desgracia, hay muchos aquí. Con ayuda de un compañero localizo una caja de disquetes cubierta de polvo en el almacén. El primero no funciona, haciéndome recordar viejos sonidos traqueteantes. Con el segundo sí soy capaz de crear un disco de arranque adecuado (o eso dice ROMPaq). ¿Y ahora?
Una memoria USB puede formatearse y particionarse como un disco, y la mayor parte de las BIOS actuales incluyen la posibilidad de arrancar desde un dispositivo USB. Un vistazo a la configuración de arranque de la BIOS de mi portátil me muestra que es el caso, y aprovecho para cambiar el orden de arranque de dispositivos, poniendo el disco duro al final de la lista (para poder hacer eso tengo que activar la característica Multiboot, que ofrece un menú de medios de arranque temporizado; no tendría que ser necesario, pero…)
La misma HP ofrece (tras buscar un poco) una herramienta apropiada para formatear mi memoria USB como un disco arrancable: HP Drive Key Boot Utility. Funciona, a pesar de lo que dice en la página, con memorias USB sin marca. La instalo en el mismo ordenador en el que creé el disco de arranque; enchufo la memoria (aparece con la letra E:
) y ejecuto el programa, que resulta ser un wizard.
Selecciono la unidad E:
, y en la siguiente pantalla, Create New or Replace Existing Configuration, sin marcar la caja de selección que permite salvaguardar lo que tenga ahora la memoria. Eso ya lo he hecho antes, “manualmente”.
Más adelante, escojo formatear la memoria como un disco duro y no como un disquete. No parece lo lógico, pero lo cierto es que ya lo he probado y no ha funcionado: los blogs no son en directo, afortunadamente. En la siguiente pantalla marco Create New Filesystem. Esto formatea la memoria y crea un cargador de arranque. En la siguiente pantalla se ofrece configurar los contenidos del disco de arranque. Escojo la opción Floppy Image, que permite añadir una imagen del disquete de arranque con el programa de actualización de la BIOS que hice al principio. Marco A:
como la unidad de origen, y relleno los dos campos de texto llamados Menu Text con “BIOS” y “Actualización de la BIOS, tc4200”, respectivamente.
La hora de la verdad
Con esto ya debería tener una memoria USB lista para arrancar. La desenchufo y la conecto en mi portátil. Reinicio, y selecciono el dispositivo de arranque como USB Disk (eso que sale es el menú Multiboot que cité antes). Tras varios mensajes informativos, arranca la utilidad de actualización de la BIOS. Selecciono Update, cruzo hasta los dedos de los pies, confirmo la selección y…
Ya está. Reinicio de nuevo cuando lo pide el programita. Aparece un inesperado rectángulo de texto rojo en la pantalla, y cuando consigo que mi corazón baje de las 170 pulsaciones por el susto, veo que está actualizando el controlador del teclado, y que no toque nada por lo que más quiera. Unas instrucciones fáciles de seguir. Unos segundos después tengo un ordenador con una flamante BIOS versión F.0E, y sin problemas de kacpid
.
¿Linux, listo para el escritorio?
Sí, lo mantengo. Para empezar, este problema es lo suficientemente oscuro (e infrecuente) como para que no le afecte a mucha gente. La solución puede ser complicada, pero está muy condicionada por mi plataforma particular: en el caso —más normal, creo— de un portátil con una partición Windows habría podido resolverse sin mayores aspavientos; lo mismo, para un ordenador con disquetera.
Pero todo esto no es lo más importante. Lo fundamental es que una pequeña excursión por Google dio las pistas necesarias y toda la documentación para completar la tarea. ¿Cuántas veces me habré perdido en el laberinto de MSDN buscando la solución a un problema elemental? (Como cuando instalé IE7 en este mismo portátil; un día entero de buceo por la Knowledge Base y la aplicación de oscuros parches, conjuros binarios. Como Cervantes, no quiero acordarme.) Así que si Linux no está listo para el escritorio, Windows tampoco. Después de todo, no tanta gente sabe lo que es instalar Windows desde cero en un ordenador.