Un usuario de Linux usó Claude, un modelo de IA, para hacer ingeniería inversa de los drivers de un escáner de películas y de la cámara de un portátil que no tenían soporte funcional en Linux. Además, publicó los resultados junto con una herramienta pensada para ayudar a otros a hacer lo mismo.

El proyecto comenzó con una pérdida familiar. Tras la muerte de su madre, heredó una gran caja con negativos antiguos de viajes de la infancia y de otros momentos familiares. Compró un Plustek OpticFilm 8200i porque era compatible con Linux. Sin embargo, el escáner que recibió usaba un chipset más reciente que los drivers de Linux no cubrían.

Ya había escrito algunas herramientas de configuración para Linux con Claude, así que le preguntó al asistente si podía ayudarle a construir un driver SANE funcional. Durante meses no logró avanzar y, finalmente, dejó el proyecto de lado. El punto de quiebre llegó cuando vio una publicación en X de Tom Crider, conocido en internet como Glorious Eggroll, quien dijo que había usado herramientas de IA para arreglar el driver de un mouse. Crider había configurado un agente de IA con control total de una máquina con Windows para que pudiera capturar los datos que necesitaba.

Pegó la publicación en Claude y le pidió que construyera una máquina virtual con Windows que hiciera lo mismo con su escáner. En cuestión de pocas horas tuvo un primer escaneo en Linux. Tenía problemas de calidad, pero era claramente la imagen del negativo. Unos días después tenía un driver casi completo que incluía escaneo infrarrojo. Para entonces, alguien ya había incorporado el soporte para el escáner en SANE, el proyecto de escaneo de código abierto. Él comentó que eso a veces pasa.

El método funciona así. El desarrollador graba una sesión de referencia ejecutando el driver de Windows del fabricante en una máquina virtual KVM, con el dispositivo real conectado al sistema invitado. Captura el tráfico USB desde fuera de la máquina virtual usando usbmon en el host de Linux y luego repite la misma operación con su propio driver, capturándola también. Como ambas trazas provienen del mismo instrumento, pueden compararse directamente, y las diferencias señalan errores en el driver. En dispositivos sin un bus que se pueda interceptar, como una cámara MIPI interna, la herramienta se apoya en la inspección desde Windows de archivos INF, datos del registro, tablas ACPI y propiedades del dispositivo.

Aplicó el mismo enfoque a su ThinkPad. La cámara usa un sensor Sony IMX471 conectado a un Intel IPU7, y en Linux producía imágenes oscuras con un fuerte viñeteado y una dominante amarillo-verdosa intensa. Trabajando con Claude, preparó parches para el kernel y para libcamera. En una prueba controlada con poca luz, el brillo de los cuadros subió de 31,1 a 90,9. Las proporciones de rojo a verde y de azul a verde se acercaron a una cámara web USB de referencia. El azul sigue quedando unos 17 por ciento por debajo en poca luz, lo que atribuye al método de balance de blancos gray-world. Los parches para el kernel fueron enviados a Kate Hsuan, y los parches para libcamera están en revisión por Wim Taymans.

El trabajo con el escáner dio lugar a dos proyectos más. El primero es un backend de SANE para el 8200i más reciente, que usa el controlador Genesys GL128 y admite los modos de color, escala de grises, infrarrojo y color más infrarrojo, con resoluciones de 300 a 7200 dpi. El backend upstream de SANE para Genesys añadió soporte para el mismo escáner en septiembre de 2026. En su comparación, ambos drivers resolvieron el mismo detalle fino a 3600 dpi. Su versión terminó un escaneo a resolución completa en 34,6 segundos, frente a 54,4 segundos del upstream, y además admite eliminación de polvo por infrarrojo. El upstream ofrece más pasos de resolución. Estas cifras se basan en una sola unidad y en pruebas de un solo cuadro, y él presenta el trabajo como una prueba de concepto.

El segundo proyecto es Negative Vibes, una aplicación para GNOME escrita en Rust para escanear negativos y diapositivas en color y en blanco y negro. Conserva el escaneo sin procesar de 16 bits intacto y aplica los cambios como configuraciones no destructivas. Se distribuye como Flatpak y se ha probado principalmente con el 8200i. Dijo que SANE necesitaría una forma estándar de exponer los canales infrarrojos antes de que la aplicación pudiera dar soporte a cualquier escáner de películas que maneje el proyecto.

Según él, la IA hizo el trabajo tedioso, como decodificar las capturas, escribir sondas de prueba y verificar constantes, mientras que él tuvo que sostener el hardware y confirmar que cada cambio funcionara. También señaló que los escaneos y la cámara no son perfectos, pero considera que las mejoras fueron suficientes para avanzar en ambos dispositivos. Ha invitado a otras personas con hardware no compatible a probar hw-harness.

Dieser Artikel wurde mit Unterstützung von KI verfasst.
News Factory APP - agentische News für besseres SEO & AEO.