Skip to content

xsane mit einem alten USB-Scanner unter Windows 10

Heute mal was ganz anderes: Letztens bei der Schwiegermutter diesen uralten HP ScanJet 4200c gefunden, der seit bestimmt 20 Jahren nicht mehr in Betrieb ist, weil der letzte Treiber, den es dafür gab, glaube ich unter Windows 98 (ohne SE) lief. Aber: Es gibt funktionierende Linux-Treiber dafür. Also habe ich das gute Stück mal abgestaubt und angeschlossen, mit dem Ziel, es unter Windows 10 WSL2 ans Laufen zu kriegen. Spoiler: Hat relativ schmerzfrei funktioniert!

Vorweg: Das ist jetzt keine Anleitung dafür, dass man diesen alten Scanner tatsächlich wieder für irgendeinen produktiven Einsatz verwenden sollte. Dafür ist er einfach nicht mehr Stand der Technik. Ich sehe das eher als Proof of Concept: Wenn man will, kann man also einen alten Scanner wieder ans Laufen bekommen, und zwar mit mehr oder weniger Windows Bordmitteln. Schließlich gibt es noch andere, bessere alte Scanner, die einfach seit Jahren keinen Support mehr erfahren haben, unter Linux aber nach wie vor einwandfrei laufen. Schon ein bisschen pervers, waren Scanner doch früher eher umgekehrt der Grund, noch ein altes Windows auf der Platte (oder gar in einer VM) zu haben.


Angefangen habe ich ganz einfach mit dem ganz normalen WSL Install. Das habe ich ja vor einiger Zeit ja schon mal beschrieben. Die Installation eines Default-Ubuntu läuft erfahrungsgemäß ja problemlos. Danach habe ich die üblichen Verdächtigen installiert und schließlich xsane und gimp. (sudo apt install xsane gimp) Das sane-find-scanner findet natürlich als erstes Mal gar nichts, was auch nicht wirklich verwunderlich ist, schließlich zeigt das lsusb auch keinen angeschlossenen Scanner an.

Um USB-Geräte an die VM durchzureichen, in der das Linux läuft, sind ein paar Tools nötig, einerseits auf der Windows-, andererseits auch auf der Linux-Seite. Letzteres braucht die Pakete linux-tools-virtual und hwdata. (sudo apt install linux-tools-virtual hwdata) Windows hingegen braucht das Paket usbipd-win, das man bequem durch ein PowerShell-winget-Kommando installieren kann. (winget install usbipd) Nach einem Neustart - es ist schließlich Windows! - kann man dann beliebige USB-Geräte an die VM durchreichen. (usbipd wsl list zum Auflisten der Geräte, usbipd wsl attach --busid <bus>-<id> zum Durchreichen.)


Zurück in der Linux-Shell findet lsusb direkt das neue Device, sudo sane-find-scanner zeigt an, dass es auch glaubt, dass das ein Scanner ist, und sudo scanimage -L identifiziert ihn auch brav als solchen. Starte ich dann xsane, wird der Scanner auch direkt gefunden. Das einzige, das ich gerade parat hatte, war ein Haufen Dia-Streifen (in ihrer Schutzhülle), die ich mal eben so auf den Scanner gelegt habe. Zum Testen reicht das. Und siehe da: Nach einigem hin und her Fahren des Scanner-Wagens gibt es ein Vorschaubild, aus dem ich etwas ausschneiden kann. Ein Klick auf Scan befördert das Bild dann auch nach dem dritten Versuch in den Speicher des Rechners.

(Die ersten zwei Versuche scheiterten meiner Meinung übrigens nicht am Setup, sondern daran, dass der Scanner eben 20 Jahre nicht mehr verwendet wurde und der Wagen auf halbem Weg stecken geblieben ist. Nach ein paar weiteren Vorschauscans, die den Wagen immer wieder vor und zurück gefahren haben, ging es dann nämlich. Wundert mich ja eh, dass die alte Lampe in dem Teil tatsächlich noch leuchtet.)


Das Ergebnis ist nun eher so naja, aber das war ja auch zu erwarten. Ich denke, das Scanergebnis würde sich sicher verbessern, wenn ich die Dias aus der Tüte nehmen würde und vor allem mal den Scanner auseinandernehmen und von innen die Glasplatte reinigen würde. Wie ist da eigentlich der ganze Staub rein gekommen?! Die Dinger sind offensichtlich nicht richtig dicht.

Ich werte diese ganze Bastellei also mal einfach als vollen Erfolg! Das Ganze war schon fast erschreckend einfach. Es ist tatsächlich einfacher, Linux-Software - auch kompliziertere Dinge - unter Windows ans Laufen zu bekommen als so manche Windows-Funktion. (Ich grusel mich ja noch immer jedes Mal, wenn ich auf meinem Rechner Win 11 starte!) Mit ein paar schnell zusammen gehackten Scripten könnte man das ganze sogar so weit automatisieren, dass das sogar die eher weniger technisch begabte Schwiegermutter benutzen könnte. Denn wenn der ganze Scheiß erst mal installiert ist, muss man ja nichts weiter machen, als das Gerät an die Linux-VM anzuschließen und Xsane zu starten. (Im Linux sollte man allerdings noch dafür sorgen, dass man Xsane nicht als Root starten muss, was aber keine größere Operation ist.)