Um usuário de Linux usou o Claude, um modelo de IA, para fazer engenharia reversa de drivers de um scanner de filmes e de uma câmera de notebook que não tinham suporte funcional ao Linux, e publicou os resultados junto com uma ferramenta destinada a ajudar outras pessoas a fazerem o mesmo.

O projeto começou com uma perda familiar. Após a morte de sua mãe, ele herdou uma grande caixa de negativos antigos de viagens de infância e de outros momentos da família. Ele comprou um Plustek OpticFilm 8200i porque o modelo era compatível com o Linux. No entanto, o scanner que recebeu utilizava um chipset mais novo, que não era coberto pelos drivers Linux.

Ele já havia escrito algumas ferramentas de configuração para Linux com o Claude, então perguntou ao assistente se ele poderia ajudar a criar um driver SANE funcional. Durante meses, não chegou a lugar nenhum e, por fim, deixou o projeto de lado. A virada veio quando viu uma publicação no X de Tom Crider, conhecido online como Glorious Eggroll, que disse ter usado ferramentas de IA para corrigir um driver de mouse. Crider havia configurado um agente de IA com controle total de uma máquina Windows para que ele pudesse capturar os dados de que precisava.

Ele colou a publicação no Claude e pediu que o assistente construísse uma máquina virtual Windows que fizesse o mesmo com seu scanner. Em poucas horas, ele tinha uma primeira digitalização funcionando no Linux. Havia problemas de qualidade, mas a imagem do negativo estava claramente ali. Alguns dias depois, ele tinha um driver quase completo, que incluía digitalização infravermelha. Nessa altura, alguém já havia incluído o suporte ao scanner no SANE, o projeto de digitalização de código aberto. Ele disse que isso às vezes acontece.

O método funciona assim: o desenvolvedor grava uma sessão de referência executando o driver Windows do fabricante em uma máquina virtual KVM, com o dispositivo real repassado ao sistema convidado. Ele captura o tráfego USB de fora da máquina virtual usando o usbmon no host Linux e, em seguida, repete a mesma operação com seu próprio driver, capturando também esse tráfego. Como ambos os registros vêm do mesmo instrumento, eles podem ser comparados diretamente, e as diferenças apontam para erros no driver. Para dispositivos sem barramento acessível, como uma câmera MIPI interna, a ferramenta depende da inspeção, no lado Windows, de arquivos INF, dados do registro, tabelas ACPI e propriedades do dispositivo.

Ele aplicou a mesma abordagem ao seu ThinkPad. A câmera usa um sensor Sony IMX471 com um Intel IPU7 e, no Linux, produzia imagens escuras, com forte vinheta e uma dominante amarelo-esverdeada acentuada. Trabalhando com o Claude, ele preparou correções para o kernel e para o libcamera. Em um teste controlado com pouca luz, o brilho dos quadros subiu de 31,1 para 90,9. As razões entre vermelho e verde e entre azul e verde se aproximaram de uma webcam USB usada como referência. O azul ainda fica cerca de 17% abaixo em pouca luz, o que ele atribui ao método de balanço de branco gray-world. As correções para o kernel foram enviadas a Kate Hsuan, e as correções para o libcamera estão em análise por Wim Taymans.

O trabalho com o scanner gerou mais dois projetos. O primeiro é um backend SANE para o 8200i mais novo, que usa o controlador Genesys GL128 e oferece suporte aos modos colorido, escala de cinza, infravermelho e colorido mais infravermelho, em resoluções de 300 a 7200 dpi. O backend genesys do SANE, na versão oficial, passou a dar suporte ao mesmo scanner em setembro de 2026. Em sua comparação, ambos os drivers reproduziram o mesmo nível de detalhe fino a 3600 dpi. A versão dele concluiu uma digitalização em resolução máxima em 34,6 segundos, contra 54,4 segundos da versão oficial, e oferece remoção de poeira por infravermelho. A versão oficial, por sua vez, oferece mais opções de resolução. Ele baseou esses números em uma única unidade e em testes de quadro único, e apresenta o trabalho como uma prova de conceito.

O segundo projeto é o Negative Vibes, um aplicativo GNOME escrito em Rust para digitalizar negativos e slides coloridos e em preto e branco. Ele mantém a digitalização bruta de 16 bits intacta e aplica as alterações como configurações não destrutivas. É distribuído como Flatpak e foi testado principalmente com o 8200i. Ele disse que o SANE precisaria de uma forma padrão de expor os canais infravermelhos antes que o aplicativo pudesse oferecer suporte a qualquer scanner de filme que o projeto abrange.

Ele afirmou que a IA fez o trabalho cansativo, como decodificar as capturas, escrever sondas de teste e verificar constantes, enquanto ele ainda precisou segurar o hardware e confirmar que cada alteração funcionava. Ele também observou que as digitalizações e a câmera não são perfeitas, mas disse que as melhorias foram suficientes para avançar nos dois dispositivos. Ele convidou outras pessoas com hardware sem suporte a testar o hw-harness.

Questo articolo è stato scritto con l'assistenza dell'IA.
News Factory APP - notizie agentiche per potenziare il tuo SEO e AEO.