Christian Fredrik Kalager Schaller ha raccontato il 15 ottobre 2026 come Claude Code lo abbia aiutato a sviluppare un backend SANE per uno scanner Plustek e ad affrontare difetti della fotocamera di un ThinkPad. Schaller ha scelto gli interventi e verificato i risultati sui dispositivi reali, secondo il suo resoconto.
Dalle tracce USB al backend SANE
Il lavoro sullo scanner riguardava una variante più recente del Plustek OpticFilm 8200i, con controller Genesys GL128 e identificativo USB 07b3:1825. La versione precedente con lo stesso nome usava invece un controller GL845. Per studiare la variante nuova, Schaller ha avviato il driver del produttore in una macchina virtuale Windows e ha registrato il traffico USB mentre usava lo scanner.
Schaller riferisce di aver ottenuto una prima scansione riconoscibile in poche ore e, alcuni giorni dopo, un driver quasi perfetto con scansione a infrarossi. Il backend supportava modalità a colori, in scala di grigi, a infrarossi e a colori più infrarossi; risoluzioni da 300 a 7200 dpi e profondità di 8 o 16 bit per canale. Includeva anche la rimozione di polvere e graffi tramite il canale a infrarossi e un moltiplicatore dell’esposizione per i negativi più densi.
Il progetto, però, non rappresentava la prima disponibilità del supporto Linux per quella variante: Schaller dice che il backend genesys di SANE upstream aveva aggiunto il supporto nel settembre 2026, prima che lui se ne accorgesse. Nel suo confronto, entrambi i driver risolvevano lo stesso dettaglio a 3600 dpi. Per una singola scansione a piena risoluzione, Schaller ha misurato 34,6 secondi con il proprio backend e 54,4 con quello upstream: un confronto su una sola unità e un solo fotogramma.
I difetti della fotocamera del ThinkPad
Il secondo caso riguardava la fotocamera del Lenovo ThinkPad X1 Carbon Gen 14 Aura Edition, con sensore Sony IMX471 dietro il processore d’immagine Intel IPU7. Schaller descriveva immagini scure, vignettate e con una dominante giallo-verde.
Le modifiche al driver del kernel riguardavano un errore nella selezione del ritaglio, la larghezza dichiarata in modo errato per un registro del pattern di test e un limite al guadagno analogico che riduceva la sensibilità di circa 1,8 stop. Sul lato software, l’ISP di libcamera ha ricevuto una correzione della vignettatura e un intervento sulle statistiche del bilanciamento del bianco, che mescolavano la profondità in bit nativa del sensore con un livello del nero a 8 bit.
Nel test controllato di Schaller in condizioni di scarsa luce, il rapporto rosso/verde è passato da 0,890 a 1,047 e quello blu/verde da 0,672 a 0,823. Il canale blu risultava ancora sottostimato di circa il 17% in quelle condizioni. Schaller ha riferito di aver inviato le patch del kernel a Kate Hsuan; le patch per libcamera erano sotto la revisione di Wim Taymans in vista dell’invio al progetto.
Il ruolo di hw-harness e delle prove sull’hardware
Schaller ha documentato hw-harness dopo i due progetti: per il lavoro iniziale sullo scanner e sulla fotocamera aveva usato codice scritto appositamente, non la versione generica dell’harness. Il flusso descritto per hw-harness prevede di registrare l’attività del driver del produttore in una macchina virtuale Windows, catturare dal sistema Linux le comunicazioni con usbmon, ripetere l’operazione con il driver Linux e confrontare le tracce. Per dispositivi come le fotocamere MIPI, senza un bus accessibile da intercettare, il metodo contempla l’ispezione da Windows.
In entrambi i casi, Schaller ha mantenuto il controllo su cosa sviluppare e ha verificato le modifiche sui dispositivi fisici: il software ha assistito il lavoro, mentre la decisione e la prova finale sono rimaste umane.