Todos los componentes electrónicos de nuestro PC tienen un firmware. Este software es una pieza básica para el funcionamiento de los mismos, pero, aun así, todavía hay usuarios que no saben qué es y la importancia que tiene su presencia en nuestros componentes que, por cierto, debemos mantener lo más actualizados posible. En este artículo nos adentraremos más en su definición, su importancia, así como la de tenerlo actualizado.
A muchos usuarios cuando les hablas de firmware piensan automáticamente en una especie de driver que es lo que permite que el software entienda el hardware. La realidad es bien distinta, ya que el firmware no es el programita que permite que se entienda con Windows (que eso es más bien un driver) sino que es el software que ejecuta de manera interna el hardware para poder realizar ciertas funciones que lleva a cabo de forma continua y recursiva mientras se encuentra en funcionamiento y que no necesita de que tengamos que hacer nada para que se ponga en marcha.
El firmware es, por tanto, el software que en combinación con el microcontrolador integrado en tu tarjeta gráfica, tu disco duro e incluso tu teclado, hace que tenga las funciones que tiene y se pueda comunicar de una manera completamente natural con el ordenador para transmitirle precisamente eso: que el periférico es capaz de hacer tal o cual cosa y que luego veamos el resultado en pantalla. Fielmente reflejado.
¿Qué es el firmware de un componente?
De todas formas, se conoce como firmware al software integrado dentro del hardware, habitualmente en una memoria ROM, que lleva el sello o la firma del fabricante y que le especifica cómo ha de funcionar y cuál es su configuración. El firmware de un componente es un tipo de software que es capaz de proporcionar un control de bajo nivel específico para el componente en cuestión y que suele sufrir actualizaciones cada poco tiempo que no solo corrigen errores sino que son capaces de añadir nuevas funcionalidades.
Este software puede ser capaz de proporcionar un entorno de operación para las funciones más complejas del componente, o bien puede actuar como el propio sistema operativo interno del componente. En definitiva, el firmware es el encargado de decirle al mismo cómo ha de funcionar o cómo comportarse cuando funciona en consonancia con otros dispositivos para obtener de él el rendimiento prometido por el fabricante.
Un claro ejemplo de lo que es un firmware avanzado es la BIOS/UEFI de nuestras placas base. Gracias a ellas, la placa puede hacer funcionar nuestro PC, pero también gracias a ella, podemos configurar muchos aspectos de nuestros sistemas de manera diferente a lo que sería la configuración de serie del mismo. Por lo que se puede decir que el firmware incluye toda la información en cuanto a las especificaciones del dispositivo. Esto es importante porque de cara a comunicarse entre ellos de forma correcta y sin fallos, los diferentes chips han de respetar ciertos tiempos y velocidades.
¿Dónde se almacena el firmware?
Habitualmente este tipo de código se almacena en una memoria de tipo no volátil. Antigualmente se utilizaban memorias ROM (Read Only Memory), EPROM (Erasable Programmable Read Only Memory), pero actualmente se suele usar memoria NAND Flash. Estas últimas son las preferidas actualmente por su bajo coste, elevadas velocidades de transferencia y gran flexibilidad, a diferencia de las anteriores que necesitan de cierto mantenimiento a lo largo de los años para evitar perder información.
La mayoría de placas base moderndas incluyen una chip de memoria de respaldo. Esta memoria almacena una copia origial del código por si durante la actualización del firmware sucede algún problema. Permite realizar un proceso sencillo de restauración, pudiendo iniciar nuevamente el proceso de actualización.
Antiguamente, las placas base carecian de esta memoria de respaldo, lo cual hacía que pocos usuarios actualizarán la BIOS. Un fallo durante la instalación del nuevo firmware suponia la «rotura» de la placa base. No se podía restaurar por el usuario, era necesario mandarla al fabricante para que la volviera a instalar.
¿Cómo se comunica el procesador con el firmware?
Algunos dispositivos hacen uso de puertos y pines de bajo consumo para comunicarse con el chip donde se guarda el firmware. Normalmente se suelen utilizar las interfaces UART o I2C, aunque se pueden utilizar otro tipo de pines especificos para esta tarjeta.
Normalmente, se dejan estos pines de comunicación con la CPU para dar acceso al firmware durante el proceso de arranque. Especialmente cuando el ordenador se encuentra en modo reposo y no se pueden emplear aquellas con un alto nivel de consumo.
¿Por qué es importante actualizarlo?
Actualmente, existen diferentes motivos por los cuales es más que recomendable actualizar el firmware. Estos motivos son:
- Habilitar nuevas funciones o caracteristicas del procesador que mejoran el rendimiento o reducen el consumo, entre otros, de este.
- Corrección de posibles vulnerabilidades o problemas detectados.
- Mejorar la estabilidad del sistema con nuevas caracteristicas o ajustes.
- Habilitar nuevas funciones o caracteristicas que no estuvieran disponibles inicialmente.
- Corrección de problemas de funcionamiento debido a una mala comunicación con otros componentes o una funcionalidad tiene un mal rendimiento o simplemente falla.
En todo caso no podemos olvidar que estamos hablando de un programa almacenado en una memoria, no vamos a ver ninguna capacidad que el hardware no pudiese hacer por si solo ni va a añadir mejoras en ese aspecto. Por ejemplo, actualizar el firmware no hará que tu procesador tenga más núcleos, la cantidad de memoria RAM crezca o broten puertos como setas en tu placa base.
Firmware engañoso
Muchos estafadores venden hardware con el firmware modificado de tal manera que sea visto con unas especificaciones diferentes a las reales. Por ejemplo, puede que un SSD de más almacenamiento del que tiene o que un modelo de tarjeta gráfica se presente como uno superior. En especial, esto es común en productos de marcas dudosas y desconocidas que provienen del mercado asiático o en mercados de segundo mano.
Es por ello que es importante hacer benchmarks o pruebas de rendimiento a los diferentes componentes de nuestro PC e incluso algunos dispositivos. Por ejemplo, en el mercado abundan los pendrives con capacidades falsas e incluso con chips de memoria NAND Flash de corto recorrido que les queda un suspiro de vida y no pueden ni tan siquiera cumplir con la garantía mínima.
En tiendas físicas, este tipo de estafas no suelen ser habituales. Por otro lado, existe un tipo de firmware que no es del todo engañoso, el cual proviene de productos que no pueden alcanzar en los test de calidad ciertas especificaciones y han de ser recortadas. Normalmente, se venden como productos aparte, con un nombre comercial y una presentación distinta. Aunque nos podemos encontrar con casos especiales donde dicha diferenciación no se ha hecho.
¿Cómo saber si el firmware de nuestro PC está actualizado?
Para ello tenemos una serie de aplicaciones que lo que hacen es monitorizar nuestro hardware y ver qué especificaciones tiene cada componente. Esto lo hacen preguntando al firmware, pero, ¿sí, este es engañoso e incluye información falsa cómo lo hacen? Pues por el hecho de que cada fabricante tiene un repositorio donde se marca el código identificativo de cada revisión del firmware asociada a la del producto y una fecha. En el caso de los tres puntos no coincidan, la aplicación lo marcará como desconocido.
Si queremos hacer que nuestro hardware funcione siempre a su máximo rendimiento, siempre es buena política comprobar que el firmware de nuestros componentes está correctamente actualizado y que sea el correcto. Es por ello que tenemos herramientas como AIDA64 que nos permiten sacar información de nuestro hardware.
¿Cómo actualizar el Firmware?
La mayoría de fabricantes incluyen un programa en el driver del dispositivo que se encarga de realizar dicha tarea, por lo que en el 99% de los casos no deberás preocuparte. Sin embargo, hay una serie de herramientas adicionales que algunas marcas dejan para que manos más expertas puedan trabajar con el firmware de sus dispositivos.
- Por ejemplo, algunos SSD suelen tener una suite con algunas opciones donde entre ellas está la opción de actualizar dicho firmware.
- El mejor caso es Samsung y su software Magician.
- CORSAIR también tiene su Toolbox, la cual se integrará en iCUE en no demasiado tiempo para todos los modelos.
- En cuanto a tarjetas gráficas tenemos fuentes no oficiales, por ejemplo tenemos utilidades no oficiales como NVFlash para las tarjetas de NVIDIA.
- Los auriculares también tienen firmware y en no pocos casos mejoran o cambian el sonido de los cascos amparándose en correcciones o calibraciones distintas.
- Las placas base que utilizan UEFI, tienen acceso a Internet, por lo que a través de las opciones de configuración de la placa, podemos comprobar si hay alaguna nueva actualización y que esta se descargue e instale automáticamente sin necesidad de descargar el último firmware desde de la web del fabricante e instala (otra forma de actualizarlo).
En definitiva, casi todo hardware o periférico tiene firmware en la actualidad, incluso tu teclado, ya que es una herramienta simple para corregir errores y mejorar rendimientos o compatibilidades e incluso es capaz de añadir nuevas funciones con el paso del tiempo que el propio fabricante no había contemplado en el momento de su diseño.
Es importante que recuerdes que no hay un momento más crítico para un componente, periférico o lo que sea que vayamos a actualizarle el firmware que aquel en el que estamos flasheando esa información. Un apagado repentino, un corte en la corriente o un incidente parecido pueden dejar a medias un proceso que, si no se completa, tiene muchos visos de dejar inutilizable sus funciones. Así que mucho cuidado y no hagas nada cuando veas la barra de progreso en pantalla.
Dónde descargar el firmware
Cómo hemos comentado más arriba, el firmware es una de las partes más importantes de cualquier dispositivo, ya que es quien se encarga de hacerlo funciona. Además, es la barrera invisible que lo protege de interacciones externas que pueden modificar su funcionamiento, por lo que, siempre que sea posible, es recomendable instalar cada nueva versión que se lance al mercado.
Cada nueva actualización, no solo está enfocada a mejorar el rendimiento y funcionamiento del dispositivo, sino que, además, también se parchean agujeros de seguridad y/o vulnerabilidades que se hayan detectado del dispositivo desde la última vez que se actualizó. También se utiliza para activar nuevas funciones que están disponibles vía hardware pero que estaban activadas por cualquier razón del fabricante.
Teniendo en cuenta lo importante que es para el funcionamiento de cualquier dispositivo, a la hora de descargar el firmware para actualizarlo, únicamente debemos confiar en la web del fabricante. En Internet podemos encontrar un gran número de sitios web que permite descargar firmware para todo tipo de dispositivos, firmware que añaden funciones adicionales y/o desbloquean funciones disponibles que el desarrollador no quiere desbloquear.
Si es cierto que esto supone un importante atractivo de cara a los usuarios, descargar e instalar el firmware de estos sitios web supone poner en riesgo la integridad y seguridad del dispositivo, ya que, estas plataformas no hacen nada por amor al arte y siempre buscan algo a cambio, que, en este caso, son nuestros datos personales para comercial con ellos o incluso intentar acceder a nuestras cuentas bancarias.
Si no queremos complicarnos la vida actualizando el firmware del dispositivo, lo mejor que podemos hacer es utilizar las herramientas nativas que nos ofrece desde el propio dispositivo. De esta forma, el proceso será totalmente seguro y la actualización se hará de forma automática.
Diferencias entre driver y firmware
Es importante el saber diferenciar entre un firmware y unos drivers. Los controladores, de actualización muy habitual cada poco tiempo como por ejemplo sucede con las tarjetas gráficas, son un software en toda regla que de manera efectiva pueden modificar el comportamiento de los dispositivos; siguiendo con el ejemplo de las tarjetas gráficas, se añaden optimizaciones para nuevos juegos en pos de conseguir un mejor rendimiento, además de solucionar vulnerabilidades conocidas de seguridad.
Sin embargo, y aunque en muchos casos una actualización de firmware puede tener el mismo efecto, hay que tener en cuenta que no es un software como tal sino el código interno del dispositivo. Es decir, el driver le dice al SO cómo tiene que interactuar con el componente, el firmware le dice al componente como tiene que interactuar con el SO, aunque parezca lo mismo, realmente no lo es. Hay que tener, además, en especial consideración de que si se va la luz durante una actualización de firmware el dispositivo podría quedar inutilizado para siempre, cosa que no sucede cuando actualizas unos drivers.
Por lo que la diferencia principal entre un driver y el firmware es que el primero se ejecuta en el PC mientras que el segundo lo hace en el propio hardware de manera directa. El firmware además puede trabajar de manera conjunta con el driver, pasando parámetros importantes para el correcto funcionamiento y la seguridad del dispositivo o componente en cuestión.
En cualquier caso, ten en cuenta que es importante mantener la integridad del firmware para que el componente o periférico funcione tal y como el fabricante lo diseñó y eso pasa, obligatoriamente, por estar atentos y realizar labores de mantenimiento. Además de la inseguridad que nos ofrecería no hacerlo. Son muchas las noticias recientes de brechas de seguridad por culpa de versiones antiguas de los mismos, por lo que sino quieres llevarte un susto… ya sabes lo que tienes que hacer. Al menos estás avisado.