El desarrollo de controladores para hardware no documentado es tradicionalmente un proceso laborioso que requiere capturar el tráfico bruto del bus, inspeccionar manualmente volcados hexadecimales y formular hipótesis sobre los comportamientos de los registros, un ciclo que a menudo toma semanas o meses de paciencia y ensayo y error. Christian F.K. Schaller ha demostrado que este 'trabajo pesado' puede simplificarse significativamente utilizando agentes de IA como Claude. Al proporcionar a un modelo de IA acceso a miles de líneas de datos de captura USB, este puede identificar secuencias repetitivas donde cambia un solo byte, proponer qué representan esos bytes y generar scripts de prueba para confirmar los hallazgos en hardware real.

La metodología implica crear un entorno de comparación para establecer una línea base de operación exitosa. Para dispositivos con buses accesibles, como los escáneres, el flujo de trabajo incluye ejecutar el controlador de Windows del fabricante dentro de una máquina virtual mientras se registra el tráfico resultante desde el sistema operativo anfitrión mediante herramientas como `usbmon`. Esto crea una traza de referencia. El desarrollador luego ejecuta operaciones similares en Linux utilizando un controlador personalizado incipiente, captura una segunda traza y utiliza la IA para comparar las dos. Debido a que ambas trazas se originan en el mismo instrumento físico, cualquier discrepancia en los datos capturados resalta errores específicos o funciones faltantes en el nuevo controlador.

Una comparación lado a lado de dos salidas de controladores de escáner diferentes en la misma imagen negativa.
Comparación de las salidas de los controladores de escáner utilizadas para establecer una línea base para el flujo de trabajo de ingeniería inversa.blogs.gnome.org

Esta imagen ilustra la metodología del entorno de comparación donde se comparan un controlador del fabricante y un controlador personalizado.

Schaller aplicó este enfoque a varios proyectos, incluyendo el desarrollo de un backend SANE (el subsistema estándar de Linux para escáneres) para un Plustek OpticFilm 8200i y la corrección de problemas de cámara MIPI en un Lenovo ThinkPad X1 Carbon. En este último caso, la IA ayudó a identificar errores de selección de recorte a nivel de kernel y anchos de registro incorrectos que causaban una distorsión de color severa y viñeteado. Si bien el humano sigue siendo responsable de manejar el hardware físico y verificar los resultados finales, la IA se encarga del trabajo pesado de decodificar capturas y verificar constantes. Sin embargo, persisten las limitaciones: no hay sustituto para las pruebas en hardware 'real', y algunos componentes internos, como aquellos sin un bus externo para interceptar, requieren una inspección más compleja de archivos INF, datos de registro y tablas ACPI.

Comparación visual de la salida de la cámara MIPI antes y después de aplicar las correcciones asistidas por IA.
Los resultados de identificar y corregir errores de selección de recorte a nivel de kernel y anchos de registro en un Lenovo ThinkPad X1 Carbon.blogs.gnome.org

Esta imagen demuestra los resultados específicos del proceso de depuración asistido por IA para la cámara del Lenovo ThinkPad X1 Carbon.