Bei der Unterstützung von Scannern der großen Hersteller wie HP, Epson und Canon hat sich viel getan und die Liste der von Linux unterstützten Geräte wird länger. Im Falle von weit verbreiteten Geräten stehen die Chancen nicht schlecht, dass sie in einer aktuellen Distribution ohne erheblichen Konfigurationsaufwand oder eine Treiberodyssee funktionieren. Leider gilt das aber zumeist nur für ältere Geräte. Denn die Hersteller von Scannerhardware haben für die meisten ihrer Modelle weiterhin keine Treibersoftware für Linux im Angebot, von ein paar rühmlichen Ausnahmen abgesehen. Neuere Scanner und Multifunktionsgeräte verweigern daher unter Linux oft die Arbeit. Im folgenden Artikel geht es deshalb um die Einrichtung der Scannerhardware, bevor es an die eigentliche Arbeit geht.
Scannen? Aber bitte mit Sane!
Scannertreiber sind unter Linux – anders als Treibermodule für Standardhardware – nicht Bestandteil des Kernels. Nur wenige Scannerhersteller unterstützen das Open-Source-Betriebssystem aktiv oder bieten selbst Linux-Treiber an. Die meisten Treiber sind daher von anderen in mühevoller Kleinarbeit per „reverse engineering“ entstanden, also meist durch Analyse der Windows-Treiber. Diese Entwicklungsmethode hat ihre Tücken: Ändert ein Hersteller innerhalb einer Produktlinie auch nur wenig an den technischen Spezifikationen, so funktioniert der Treiber nicht mehr einwandfrei.
Das macht die Entwicklung von Linux-Treibern ohne Herstellerunterstützung aufwendig und hält das Feld der wirklich solide unterstützten Scanner vergleichsweise klein.
Maßgeblich für die tadellose Funktion eines Scanners unter Linux ist die Unterstützung durch das Scannerhardware-Projekt Sane (kurz für „Scanning Access Now Easy“). Dessen Entwickler arbeiten mit hohem Zeiteinsatz an inoffiziellen Open-Source-Treibern für viele gängige Scannermodelle. Unter https://www.sane-project.org/sane-mfgs.html gibt es eine lange Tabelle, die nach Herstellern geordnet über die Unterstützung von Scannern durch Sane informiert. Dabei verwenden die Sane-Entwickler in der Bewertung der Funktionen eine Skala, die von „Complete“ (volle Unterstützung aller Funktionen) über „Good“ (Grundfunktionen werden unterstützt, besondere Zusatzfunktionen wie beispielsweise Diascanner fehlen), über „Basic“ (funktionsfähig mit Qualitätseinschränkungen) bis hin zu „Unsupported“ reicht.
Lesetipp Linux-Live: Die besten Rettungssyteme im Überblick
Im Idealfall werden Scanner direkt von Sane oder von einem der offiziellen Linux-Treiber seitens HP oder Epson unterstützt. In vielen Fällen gibt es aber auch dann noch die Möglichkeit, ein Gerät durch die manuelle Einbindung einer binären Firmwaredatei des Herstellers in Betrieb zu nehmen, die aus dem Windows-Treiber stammt, aber oft auf inoffiziellen Supportseiten für Linux- Distributionen zu finden ist.

Hardware: USB-Scanner erkennen
Der erste Schritt bei der systematischen Inbetriebnahme eines Scanners ist immer die Installation des Sane-Pakets und der Bibliothek „libsane“, die es in allen Linux-Distributionen gibt. In Desktopdistributionen von Debian/Ubuntu sind diese Pakete auch schon vorinstalliert und bei Bedarf mittels des Befehls
sudo apt install sane xsane libsane
schnell nachinstalliert. Nach dem Anschluss des Scanners rufen Sie das Programm mit
simple-scan
auf, vorzugsweise über das Terminal, um dort eventuelle Fehlermeldungen mit mehr Details zu sehen. Wird der Scanner hier gleich erkannt, kann es sofort an die Arbeit gehen. Oft aber verläuft die Erkennung nicht so problemlos. In diesen Fällen zeigt, weiterhin im Terminal, das Kommando
lsusb
an, ob die grundsätzliche Erkennung des Scanners am USB-Anschluss geklappt hat. In der Liste sollte das Gerät mit seiner Typenbezeichnung auftauchen. Wenn nicht, hilft es oft, das Gerät an einem anderen USB-Port anzuschließen.
Der nächste Schritt ist der Aufruf des Sane-Erkennungsprogramms:
sane-find-scanner
Dieser Befehl versucht, eine Verbindung zum Scanner herzustellen. Nebenbei gibt das Tool einige Fehlermeldungen aus, weil es alle USB-Ports und Geräte durchprobiert. Eine Erfolgsmeldung zeigt sich über die Zeile „found USB scanner“. Dann kann es weitergehen mit dem Sane-Tool scanimage:
scanimage -L
Dieses Kommando zeigt den erkannten Scanner an. Das bedeutet aber noch nicht, dass der Scanner schon funktionieren wird. Aber bis hierher lassen sich dann zumindest Verbindungsprobleme mit der USB-Schnittstelle ausschließen.

USB-Scanner: Keine Berechtigung
Gibt das Scantool scanimage kein Gerät aus, so lohnt sich der nochmalige Versuch mit root-Rechten über dieses Kommando:
sudo scanimage -L
Ist das Tool jetzt erfolgreich, so liegt ein Berechtigungsproblem bei der Anbindung von USB-Geräten zugrunde. Aus der dann angezeigten Scannerbezeichnung benötigt man die letzten beiden Nummern, welche die USB-Adresse des Scanners angeben. Beispielsweise wären dies in der Zeile
snapscan:libusb:001:007
die Adressen „001“ und „007“. Eine vorübergehende Lösung verspricht dann dieses Kommando:
sudo chmod u+w /dev/bus/usb/001/007
Es erlaubt den Zugriff auf diese USB-Adresse mit dem Scanner für alle Benutzer des Systems bis zum nächsten Neustart.

Treiber: Mit Firmware nachhelfen
Wird das Scannermodell ohne zusätzliche Firmware von Sane unterstützt, so kann das Programm (im Terminal)
simple-scan
jetzt mit dem Scanner kommunizieren. Es zeigt auf dem Desktop ein Fenster mit der Meldung „Bereit zum Scannen“, aber erst ein Klick auf die Schaltfläche links oben wird zeigen, ob das Gerät ansprechbar ist. Bei einem Modell, das in der Sane-Gerätedatenbank mit „Unsupported“ gekennzeichnet ist, zeigt das Programm dann die Meldung „Scannen fehlgeschlagen“. Ein Blick zurück auf das Terminalfenster gibt dazu mehr Details preis. Die übliche Meldung bei nicht unterstützten Geräten lautet dort „Cannot open Firmware file /usr/share/sane/snapscan/your-firmwarefile. bin“. In diesem Fall ist nun Geduld für die Suche nach der passenden Firmware gefragt. Es gibt einige wichtige Anlaufstellen, unter anderem auch die Downloadbereiche auf der jeweiligen Herstellerwebseite.

Neuere Epson-Geräte: Viele Treiber mit Firmware für Epson-Scanner und Multifunktionsgeräte der letzten Jahre, auch für Linux, finden sich auf der Supportwebseite https://download.ebz.epson.net/dsc/search/01/search . Das Suchfeld verlangt den Produktnamen des Geräts, die Auswahl darunter „Linux“ als Betriebssystem. Die Downloadseite für den Scannertreiber bietet nach einem Klick auf „Accept“ zunächst die Übersicht zu verfügbaren Linux-Treibern. Interessant ist immer der „Scanner Driver“, der auf eine Unterseite führt, die über den Link „Package Download Page“ eine Auswahl für das Zielsystem bietet. Es handelt sich dabei aber nicht um ein fertiges Paket im RPM- oder DEB-Format, sondern um ein „targ.gz“-Archiv. Dieses entpacken Sie in einen beliebigen Ordner und finden dann dort im neu angelegten Unterverzeichnis ein Installations-Script, das mit
sudo ./install.sh
gestartet wird.
Scanner für Linux: Die richtige Hardware
Kein Scanner vorhanden, aber dringend benötigt? Viel einfacher als einen störrischen Scanner zum Laufen zu überreden, ist die Situation, einen kompatiblen Scanner neu zu kaufen. Es gibt zahlreiche Geräte, die in Linux über Sane direkt und ohne große Einschränkungen Unterstützung finden. Dabei handelt es sich meistens um etwas ältere Scanner, die gebraucht über Ebay erhältlich sind und üblicherweise nur noch wenige Euro kosten.
HP: Die Scanjet-Serie von HP hat dank der HPLIP-Bibliothek eine vergleichsweise gute Hardwareunterstützung unter sämtlichen Linux-Distributionen. Eine Liste von HP-Scannern haben die Ubuntu-Entwickler unter https://wiki.ubuntu.com/HardwareSupportComponentsScannersHp zusammengetragen.

©Epson
Epson: Richtig alt, aber weiterhin gebraucht zu finden sind die Modelle Photo Perfection und Stylus von Epson. Hier ist immer etwas manuelle Bastelei nötig und die Einbindung einer binären Firmwaredatei in Sane. Die Übersicht https://wiki.ubuntu.com/HardwareSupportComponentsScannersEpson zeigt den Supportstatus von Epson-Scannern in Ubuntu.
Wichtiger Hinweis für Gebrauchtgeräte: Es lohnt sich, vom Hersteller das Handbuch als PDF herunterzuladen und zumindest zu überfliegen. Denn viele Geräte haben eine Transportverriegelung für den Schlitten der Scaneinheit, die es vor der Inbetriebnahme immer erst zu entriegeln gilt.
Epson Perfection: Eine Übersicht zu älteren Epson-Scannern bietet die deutschsprachige Seite https://wiki.ubuntuusers.de/Scanner/Epson_Perfection und präsentiert dort binäre Firmwaredateien für Epson-Scanner der Perfection-Serie zum Download. Diese Dateien müssen als Firmware manuell in das Verzeichnis „/usr/share/sane/snapscan/“ eingebunden werden. Dazu legen Sie die BIN-Datei in diesen Ordner und passen deren Zugriffsrechte an:
sudo mv [firmware].bin /usr/share/sane/snapscan/ sudo chmod -R 755 /usr/share/sabe/snapscan/
Dann verlangt die Konfigurationsdatei von Sane nach einer Anpassung. Der Befehl
sudo nano /etc/sane.d/snapscan.conf
lädt diese in einen Texteditor, hier in Nano. Die Zeile „firmware“ muss auf den Speicherort der BIN-Datei verweisen, beispielsweise auf diesen Pfad:
firmware /usr/share/sabe/snapscan/esfw41.bin
HP (Hewlett Packard): Die Bibliothek HPLIP (kurz für „HP Linux Imaging and Printing“) ist in den meisten Linux-Distributionen verfügbar und enthält Treiber sowie Firmware für HP-Geräte aller Art, von Scannern über Drucker bis Multifunktionsgeräte. In Debian und Ubuntu sowie den Derivaten installiert das Kommando
sudo apt-get install hplip
diese Bibliothek. Auf der Seite https://developers.hp.com/hp-linux-imaging-and-printing/supported_devices zeigt HP eine umfangreiche Übersicht zu den Geräten von HPLIP. Es kommt aber auch immer auf die verfügbare Version von HPLIP an. Die Tabellenspalte gibt Auskunft darüber, welche HPLIP-Version mindestens für ein Gerät erforderlich ist. Ist die verwendete Distribution schon etwas älter, könnten Treiber für modernere Modelle in HPLIP aus den Standard-Paketquellen fehlen. Sollte für den Scanner ein Update nötig sein, dann finden Sie dieses auf https://developers.hp.com/hp-linux-imaging-and-printing zum Download für zahlreiche Linux-Systeme. Für die meisten Systeme liegt HPLIP als binäres Installationsarchiv vor. Dessen Installation startet nach dem Download beispielsweise der Aufruf
sh hplip-3.19.3.run
in einem Terminal.

Scannen: Programme und Tools
Das wichtigste Tool aus dem Werkzeugkasten von Sane bleibt das einfach gehaltene grafische Programm Simple-Scan, das auch zur Fehlersuche dient. Das Tool kann immerhin einen Stapelscan mit einem manuellen Seitenwechsel und einem Intervall von zehn Sekunden starten. Elaborierte Funktionen zur Bildoptimierung hat das Tool allerdings nicht, etwa zur Anpassung von Kontrast und Helligkeit.
Dafür geeigneter ist das Programm Xsane, das in den Standard-Paketquellen der meisten Linux-Distributionen vorhanden ist. Die Oberfläche ist altbacken, aber Funktionen zum Optimieren eines Scans sind in Hülle und Fülle vorhanden. Das Programm öffnet mehrere Fenster, jedes enthält bestimmte Funktionen.
In den Optionen kann Xsane, sofern Scanner und Treiber das unterstützen, statt der Option „Flachbett“ auch den Dia-Aufsatz eines Scanners aktivieren.
Zwischen Simple-Scan und Xsane platziert sich das Programm Skanlite, das ebenfalls aus den Standard-Paketquellen jeder Linux-Distribution schnell installiert ist. Es bietet nicht so viele Einstellungen für einen Scan wie Xsane, hat aber als KDE-Programm die komfortabelste Programmoberfläche. Durch seine KDE-Bibliotheken unterstützt Skanlite auch die meisten Bildformate zum Abspeichern des Scans.

Ubuntu: Fehlerbehebungen für Scanner
Ab Ubuntu 16.04 gibt es immer wieder Kompatibilitätsprobleme von Sane mit Scannern verschiedener Hersteller.
Geräte von Epson, Dell, Xerox und Brother, die früher unter Ubuntu funktionierten, versagen in neuen Ubuntu-Versionen den Dienst – aufgrund einiger Bugs in diesen Systemen. Eine umfassende Lösung haben die Ubuntu-Entwickler noch nicht gefunden und derzeit arbeitet auch niemand an dem Bug. Einige Ubuntu-Anwender haben aber im Bugtracker unter https://bugs.launchpad.net/ubuntu/+source/sane-backends/+bug/1728012 einige patente Lösungen für die 64-Bit-Ausgaben Ubuntu zusammengetragen.
Epson: Die Scanner des Herstellers, die eine Firmwaredatei brauchen, verlangen in Ubuntu noch weitere Nacharbeiten. Zuerst muss der Befehl
sudo ln -sfr /usr/lib/sane/libsane-epkowa* /usr/lib/x86_64-linux-gnu/sane
einen symbolischen Link im Dateisystem erstellen. Anschließend erstellt man mit dem Kommando
sudo nano /etc/udev/rules.d/79-udev-epson.rules
eine neue Konfigurationsdatei und fügt dort folgende Zeilen ein:
ATTRS{manufacturer}=="EPSON", DRIVERS=="usb", SUBSYSTEMS=="usb", ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="*", MODE="0777"
Xerox: Die Multifunktionsgeräte mit Scannereinheit verlangen in Ubuntu einen symbolischen Link, den der Befehl
sudo ln -sfr /usr/lib/sane/* /usr/lib/x86_64-linuxgnu/sane
erzeugt. Dann muss das Kommando
sudo adduser $USER lp
noch den aktuellen Benutzer zur Gruppe „lp“ hinzufügen.
Brother: Diese Geräte funktionieren erst, wenn zwei symbolische Links mit den beiden Befehlen
sudo ln -sfr /usr/lib64/libbrscandec* /usr/lib/x86_64-linux-gnu
sudo ln -sfr /usr/lib64/sane/libsane-brother* /usr/lib/x86_64-linux-gnu/sane
erzeugt werden. Zum Abschluss ist in jedem Fall noch ein Neustart des Systems nötig, um die Änderungen zu übernehmen.