El desarrollo de Linux 6.19 no está siendo precisamente un camino de rosas. Como suele pasar en las primeras fases de un nuevo kernel, han ido apareciendo pequeños —y no tan pequeños— dolores de cabeza. Algunos relacionados con el rendimiento, otros con funciones que dejan de comportarse como deberían. Y entre todos ellos, uno especialmente molesto: sistemas ARM64 que directamente se quedaban colgados al arrancar cuando usaban EFI.
Sí, un problema serio. De esos que no dejan margen a dudas porque el sistema ni siquiera llega a arrancar.
La buena noticia es que el origen del fallo ya está localizado… y lo mejor de todo: la solución también. Y llega a tiempo, justo antes de la publicación de Linux 6.19-rc3.
¿A quién afectaba realmente este fallo?
Aunque sería fantástico que más equipos ARM64 usaran EFI, la realidad es que hoy por hoy sigue siendo algo bastante más común en el mundo de los servidores ARM que en el de las placas de desarrollo o SBCs. Aun así, para quienes sí dependen de EFI en ARM64, el problema era imposible de ignorar.
Al intentar arrancar una versión en desarrollo de Linux 6.19, el sistema simplemente se bloqueaba. Sin mensajes claros. Sin segundas oportunidades. Un arranque fallido y punto.
Tras investigar un poco más a fondo, quedó claro que el fallo no era genérico, ni afectaba a otras arquitecturas. Era algo muy concreto del código ARM64 relacionado con EFI.
El verdadero culpable: EFI y un puntero mal inicializado
La causa exacta del problema fue una desreferencia de puntero nulo durante el arranque. Dicho de forma más sencilla: el kernel intentaba acceder a algo que todavía no estaba correctamente preparado en memoria.
¿El motivo?
Un cambio reciente en cómo ARM64 invoca los servicios de tiempo de ejecución de EFI dentro de esta nueva versión del kernel. La intención era buena, pero el ajuste dejó un miembro de una estructura EFI sin inicializar correctamente. Y claro, el resultado fue el bloqueo inmediato del sistema.
Lo curioso —y casi tranquilizador— es que la solución fue mínima.
Un parche pequeño, un alivio enorme
A veces los problemas más aparatosos se solucionan con cambios sorprendentemente pequeños. Este es uno de esos casos.
Bastó un parche de una sola línea para asegurarse de que esa estructura EFI estuviera correctamente inicializada antes de usarse. Nada más. Nada menos. Con ese simple ajuste, los sistemas ARM64 dejan de bloquearse al arrancar Linux 6.19.
El parche se fusionó oficialmente el viernes, y estará incluido en Linux 6.19-rc3, cuya publicación está prevista para el domingo.
¿Qué significa esto para los usuarios?
Si estás probando versiones de desarrollo del kernel en servidores ARM64 con EFI, este arreglo llega como agua de mayo. Vuelve la normalidad al arranque y se elimina uno de los fallos más críticos detectados hasta ahora en el ciclo de Linux 6.19.
Y como siempre, este episodio sirve de recordatorio: las versiones release candidate están para esto mismo. Para detectar errores, pulirlos rápido y llegar a la versión final con un kernel mucho más sólido.
Linux 6.19 sigue avanzando. Con tropiezos, sí. Pero también con soluciones rápidas y bien afinadas. Y eso, al final, es parte de la magia del desarrollo del kernel.
Fuente: Phoronix
Añadir comentario
Comentarios