Christian Schaller, director de ingeniería en Red Hat y reconocido colaborador de GNOME y Fedora, se enfrentó a un problema que muchos usuarios de Linux conocen: su escáner Plustek OpticFilm 8200i, comprado porque aparecía como compatible, no funcionaba correctamente con Linux debido a un cambio en el chipset interno que el sistema no reconocía.
Al descubrir que el chipset Genesys GL128 de su escáner no contaba con un driver para Linux, Schaller intentó inicialmente que la inteligencia artificial Claude Code generara un controlador funcional, pero sin éxito durante varias semanas, lo que le llevó a dejar el proyecto en pausa.
Cuando retomó el trabajo, adoptó un método distinto y en apenas unas horas logró obtener su primer escaneo reconocible. A los pocos días, el driver ya permitía funciones avanzadas como el escaneo infrarrojo para la eliminación de polvo en negativos.
Schaller publicó su metodología y herramientas bajo el nombre hw-harness como un proyecto open source con licencia MIT, que automatiza la captura y comparación del comportamiento de dispositivos entre un driver funcional de Windows y uno experimental para Linux. Esta solución da la información precisa necesaria para que una IA pueda trabajar eficazmente en el soporte de hardware aún no accesible en Linux.
Ingeniería inversa apoyada en IA
Inspirado por un tuit de Tom Crider (alias Glorious Eggroll), quien utilizó IA para reparar un driver de ratón con acceso remoto a Windows, Schaller aplicó la misma lógica para su escáner. Alimentó a Claude con el post y le pidió crear una plataforma similar capaz de ejecutar el software del fabricante en Windows mientras monitorizaba el tráfico USB y lo contrastaba con las peticiones fallidas del driver de Linux.
Mediante la identificación de discrepancias y errores, Claude sugirió correcciones de código hasta encontrar un punto funcional. Schaller destaca que, a diferencia de un humano, la IA no se aburre ni pierde la paciencia frente al tedio que supone analizar protocolos USB y registros, tarea que aunque no es compleja, requiere minuciosidad y conocimiento especializado.
En última instancia, el controlador generado no solo fue funcional sino que superó en velocidad de escaneo a la versión oficial integrada en SANE. Su driver realizó un escaneo a resolución completa en 34,6 segundos frente a los 54,4 segundos del oficial, además de ofrecer soporte para escaneo en infrarrojos y ajustes específicos para negativos densos.
Creación de una aplicación complementaria
Con la nueva capacidad de escaneo, Schaller también desarrolló una aplicación para GNOME llamada Negative Vibes, escrita en Rust con asistencia de Claude. Esta aplicación preserva los datos originales de 16 bits de las imágenes, incluidos los canales infrarrojos, permitiendo la eliminación de polvo, ajustes de color calibrados mediante ArgyllCMS y exportación a formatos TIFF, JPEG, PNG o DNG sin modificar el original.
Solución para la cámara del ThinkPad
La innovación de Schaller no terminó con el escáner. También abordó problemas en la cámara de su Lenovo ThinkPad X1 Carbon Gen 14 Aura Edition que generaba imágenes oscuras y con tinte verdoso en Linux. Al no existir tráfico USB para analizar, aportó a Claude los archivos de configuración, entradas del registro y tablas ACPI del driver de Windows y conectó un webcam USB como referencia funcional.
En horas consiguió parches para el kernel Linux y para libcamera que corregían problemas como un bug de selección de área de recorte, un registro de patrón de prueba mal definido y un límite incorrecto de ganancia analógica que restaba sensibilidad. Mejoró además la corrección de sombra de lente y el balance de blancos, logrando un aumento de brillo de 31,1 a 90,9 en pruebas de poca luz y un color más natural.
Los parches aún están en revisión por expertos en Nvidia y Red Hat antes de su posible integración definitiva.
Herramientas y perspectivas
El conjunto hw-harness incluye utilidades como winctl, usbcap, hostdev y hwdbg, que permiten controlar la VM de Windows, capturar tráfico USB, alternar dispositivos entre anfitrión y guest, y depurar desde Linux. También usa scripts en PowerShell para obtener información del dispositivo en Windows.
Schaller confía en que esta metodología puede generar drivers de alta calidad con posibilidades reales de integrarse en proyectos comunitarios, aunque reconoce que quedan preguntas legales sobre licencias y falta probar la herramienta en una gama más amplia de hardware.
El trabajo realizado por Schaller ilustra cómo la combinación entre inteligencia artificial y técnicas clásicas de ingeniería inversa puede acelerar la compatibilidad de hardware en Linux, facilitando la vida a usuarios que requieren soporte para dispositivos modernos sin abandonar su sistema preferido.