Multifunktionsgeräte kombinieren Drucker und Scanner – wobei aus Linux-Sicht beide Geräte separat auftreten und auch so behandelt werden möchten. Mit der SANE-Bibliothek gelingt der Zugriff auf den Scanner-Teil.
Separate Scanner sterben im Anwenderbereich langsam aus: Immer selter finden sich klassische Flachbettscanner als eigenständige Geräte in den Regalen der Händler. Das hat nichts damit zu tun, dass zu Hause weniger gescannt wird – im Gegenteil: Der Bedarf, Dokumente oder Fotos auf den eigenen Computer zu laden, um etwa Nachbearbeitungen durchzuführen, ist in den vergangenen Jahren gestiegen. Schließlich kann man so bequem Fotos digitalisieren oder Papierrechnungen am Computer wie per Mail erhaltene Rechnungen behandeln.
Den Platz der klassischen Scanner nehmen Multifunktionsgeräte ein: Das sind Kombinationen aus Scanner und Drucker, die oft auch noch einen Faxanschluss und eine Kopierfunktion aus dem Ärmel schütteln und so vier Geräte in sich vereinen. Bessere Geräte bieten zudem einen Netzwerkanschluss.
Linux-Anwender müssen beim Kauf der genannten Geräte einmal mehr wachsam sein: Während man sich blind darauf verlassen kann, dass Treiber für alle aktuellen Windows-Versionen beiliegen, sieht es bei der Unterstützung auf der Linux-Seite nicht immer ganz so gut aus. Wir verraten, wie Sie gängige Multifunktionsgeräte so konfigurieren, dass Sie die Scan-Funktion nutzen können.
Erst testen
Bevor Sie sich mit einer eventuell umständlichen manuellen Konfiguration beschäftigen, sollten Sie ausprobieren, ob Linux Ihren Scanner aus dem Stand unterstützt. Um überhaupt scannen zu können, benötigen Sie ein wenig Software – prüfen Sie darum zunächst, ob die folgenden Pakete installiert sind:
- unter Kubuntu 16.04: libsane, libsane-extras und xsane
- unter OpenSuse 42.1: sane-backends und xsane
– falls nicht, holen Sie das über die Paketverwaltung nach.
In einem nächsten Schritt sollten Sie prüfen, ob Linux den Scanner beim Einstöpseln bemerkt: Das neue Gerät sollte Spuren im Systemlog hinterlassen. Öffnen Sie dazu mit [Alt]+[F2] und konsole ein Terminalfenster und geben Sie dort den Befehl
sudo dmesg -w
ein. Dadurch erscheinen die letzten und alle künftigen Systemlog-Einträge in diesem Terminalfenster. Der Befehl fordert mit sudo Administratorrechte an; darum müssen Sie Ihr Passwort (Kubuntu) bzw. das Administratorpasswort (OpenSuse) eingeben. Abbildung 1 zeigt die Ausgaben, nachdem wir testweise zunächst ein modernes Multifunktionsgerät von Brother (den MFC-J5910DW) und danach zusätzlich einen älteren Flachbettscanner von Canon (den LIDE 35) angeschlossen haben.

Abbildung 1: Das Anstöpseln eines USB-Geräts sollte immer eine Reaktion im Systemlog verursachen. Hier haben wir zwei Scanner angeschlossen.
Die nächsten Schritte sind ein Blick in die Liste der USB-Geräte mit lsusb und der Aufruf von scanimage -L, das nach Scannern sucht. Abbildung 2 zeigt die Resultate: Das Tool erkennt beide Geräte als Scanner. In jeder Zeile steht zum Gerät auch die USB-ID in der Form ab12:cd34, im Beispiel 04f9:0288 und 04a9:2213 für die beiden Geräte von Brother und Canon. Diese USB-IDs benötigen Sie eventuell noch.

Abbildung 2: Mit “lsusb” und “scanimage -L” finden Sie raus, ob Linux Ihren USB-Scanner überhaupt bemerkt hat.
Spannend wird dann der Versuch, mit XSane auf das Gerät zuzugreifen. Sie starten das Programm durch Eingabe von xsane (wahlweise in der Shell oder in den mit [Alt]+[F2] geöffneten Schnellstartdialog). Jetzt gibt es zunächst drei Möglichkeiten:
- XSane erkennt keine Scanner und bricht direkt mit einer Fehlermeldung ab.
- XSane erkennt genau einen Scanner und zeigt seine Benutzeroberfläche.
- XSane erkennt mehrere Scanner und lässt Sie auswählen, welches Gerät Sie verwenden möchten. Nach der Auswahl erscheint die Benutzeroberfläche. (Wollen Sie im laufenden Betrieb den Scanner wechseln, beenden Sie XSane und starten das Programm neu.)
In den Fällen 2 und 3 können Sie schließlich – eventuell nach Überprüfung, dass der richtige Papiereinzug ausgewählt ist – probeweise im Hauptfenster auf Scannen oder im Vorschaufenster auf Vorschauscan klicken. Wenn dann alles funktioniert (Abbildung 3), sind Sie fertig und können den Rest des Artikels auslassen.
Klappt das Scannen nicht, prüfen Sie, ob Sie zur Gruppe der berechtigten Benutzer gehören – das ist bei OpenSuse die Gruppe lp und bei Kubuntu die Gruppe scanner. Geben Sie in einem Terminalfenster id ein, um sich alle Gruppenmitgliedschaften anzeigen zu lassen:
$ id uid=1000(esser) gid=100(users) Gruppen=100(users),6(disk),7(lp),483(vboxusers)
Auf diesem OpenSuse-System ist der Benutzer in der richtigen Gruppe. Ist das nicht der Fall, beheben Sie das Problem wie folgt: Fügen Sie über die Benutzer- und Gruppenverwaltung Ihrer Distribution sich selbst (und eventuell weitere Benutzer, die den Scanner verwenden wollen) zur Gruppe
- scanner (Kubuntu) bzw.
- lp (OpenSuse) hinzu. Freunde der Kommandozeile erledigen das auch schnell mit
sudo usermod -a -G scanner username
(unter Kubuntu) bzw. mit
sudo usermod -a -G lp username
(unter OpenSuse). Danach müssen Sie sich ab- und wieder anmelden, damit die Änderung greift. Probieren Sie dann erneut, ob Sie scannen können – wenn nicht, lesen Sie beim letzten Abschnitt Rechteprobleme beheben weiter.
Somit bleibt nun nur noch das Szenario, dass XSane Ihren Scanner gar nicht erkennt – es fehlt also der nötige Treiber.
Konfiguration
Beispielhaft spielen wir die Einrichtung für ein Gerät von HP durch. Geplant war auch die Betrachtung eines weiteren Geräts von Brother, aber die nötigen Schritte für die Installation der vom Hersteller bereitgestellten Treiber sind dermaßen komplex und fehleranfällig, dass wir davon Abstand genommen haben. Generell empfehlen wir bei den problematischeren Geräten, einen Blick auf das kostenpflichtige Programm VueScan zu werfen, das wir ab Seite 46 vorstellen.
Scanner-Schnittstelle
Bevor wir in die Konfiguration einsteigen, steht ein kleiner Hinweis auf dem Programm: Wenn Sie ein Multifunktionsgerät besitzen oder kaufen möchten, sollten Sie zunächst prüfen, ob der Hersteller die klassische Scanfunktion über den PC überhaupt anbietet. Viele Geräte gehen heute davon aus, dass sie nicht vom Computer angesprochen werden – sie scannen eigenständig und verschicken die generierte Bild- oder PDF-Datei per E-Mail. Bei HP heißt diese Funktion “Digital Sending Technology”. Auf der Website des HPLIP-Projektes weist HP ausdrücklich darauf hin, dass es unter Linux keine SANE-Unterstützung für Geräte gibt, die diese Technik beherrschen [1] (Abbildung 4). Wer darauf besteht, von seinem System aus mit SANE zu scannen, sollte um solche Geräte also lieber einen Bogen machen.

Abbildung 4: Größere Multifunktionsgeräte von HP unterstützen die “Digital Sending Technology” – Linux-Treiber für solche Geräte gibt es meist nicht.
Wie SANE funktioniert
SANE Ist die Abkürzung für “Scanner Access Now Easy”: Die Software hat das Ziel, den Zugriff auf Scanner und Linux für Endanwender möglichst leicht zu gestalten. Sie sehen von SANE in der Regel nur die grafische Benutzeroberfläche, etwa in Form des Programms XSane. Unter der Haube ist SANE jedoch ein komplexes Gebilde: Ihm liegt eine Bibliothek zugrunde, welche die wichtigsten, zentralen Funktionen rund um das Thema Scannen anbietet. Zugriff auf Scanner erfolgt über so genannte Plug-ins: Das sind “Übersetzer”, welche die gescannten Daten von den Geräten annehmen und sie über ein standardisiertes Protokoll an Anwendungen weiterreichen. Das grafische Frontend, das Sie nutzen – also z. B. XSane – bereitet diese vom Plug-in gelieferten Daten auf und zeigt Ihnen die eingelesenen Inhalte an.
Das modulare Design von SANE ist von Vorteil für Hardwarehersteller: Sie müssen nicht die komplette Scanner-Unterstützung für Linux selbst bauen, sondern lediglich ein SANE-kompatibles Plug-in beisteuern, das mit der Hardware reden kann.
Genau diesem Prinzip folgt die im Artikel vorgestellte Lösung: Über das von HPLIP installierte SANE-Plug-in spricht die SANE-Bibliothek den Scannerteil eines Multifunktionsgeräts an und steuert den Scanvorgang. Dabei beherrscht das SANE-Plug-in von HPLIP den Zugriff via USB und über eine Netzwerkverbindung.
Andere Hersteller
Die in diesem Artikel für HP-Scanner gezeigten Schritte lassen sich leider nicht problemlos auf die Geräte anderer Hersteller übertragen: Hier hängt es stets davon ab, ob der jeweilige Hersteller einen mit SANE kompatiblen Treiber im Programm hat (oder SANE das Gerät von Haus aus unterstützt). Das SANE-Projekt bietet auf seiner Website eine Liste der nutzbaren und getesteten Geräte.
Brother bietet zwar SANE-Treiber an [4], deren Einrichtung erfordert aber ein tiefer gehendes Verständnis der SANE-Konfiguration und das manuelle Erzeugen oder Verändern mehrerer Konfigurationsdateien. Bei Samsung gibt es den Samsung Unified Linux Driver, der ebenfalls einen SANE-Treiber enthält [2]. Canon bietet keine SANE-Treiber an, hat aber eine eigene Applikation [3] im Programm, mit der sich Canon-Scanner unter Linux nutzen lassen. Auch für manche Geräte von Kyocera findet sich ein SANE-Treiber; da allerdings alle aktuellen Geräte des Herstellers eine Scan-und-Sende-Funktion haben, ist dieser praktisch kaum noch relevant.
SANE startklar machen
Damit sich SANE mit Geräten von HP produktiv nutzen lässt, steht zunächst die Installation von SANE unter Kubuntu 16.04 oder OpenSuse 42.1 auf dem Programm. Beiden Distributionen liegen passende Pakete bei, die Sie über die Paketverwaltung einspielen müssen. Im vorherigen Artikel zur Druckereinrichtung haben wir beschrieben, wie Sie die HPLIP-Pakete auf beiden Distributionen installieren. Sie brauchen diese auch zum Scannen, die allgemeinen SANE-Pakete haben Sie bereits zu Beginn des Artikels eingespielt.
Den Scanner einrichten: HPLIP
Im Artikel zur Druckereinrichtung haben wir das binäre Plug-in für HP-Drucker und -Multifunktionsgeräte beschrieben. Viele Multifunktionsgeräte von HP benötigen es auch für die Scanfunktion, so dass Sie es wie im Druckerartikel beschrieben installieren sollten, falls Sie ein Multifunktionsgerät von HP benutzen.
Unter Ubuntu und OpenSuse richten Sie nach der Installation der Pakete den Scanner mit hp-setup ein: Das Programm rufen Sie aus einem mit [Alt]+[F2] und konsole geöffneten Terminalfenster auf. Üblicherweise findet das Werkzeug den Scanner automatisch, und zwar unabhängig davon, ob es sich um einen USB- oder einen Netzwerkscanner handelt. Wenn Sie mit der Einrichtung über hp-setup fertig sind, ist der Scanner in die lokale SANE-Konfiguration integriert. Nach dem Start von XSane über das KDE-Menü sollte der Zugriff funktionieren (Abbildung 5).

Abbildung 5: XSane ist eines der Standardprogramme, mit denen Sie unter Linux Daten von einem angeschlossenen Scanner auslesen können.
Rechteprobleme beheben
Sollten Sie trotz durchgeführter Konfiguration keinen Zugriff auf den USB-Scanner bekommen oder diesen gar nicht sehen, kann das an fehlerhaften Zugriffsrechten für das Gerät liegen. Unter Ubuntu können Sie diese in der Datei /lib/udev/rules.d/40-libsane.rules, bei OpenSuse in /etc/udev/rules.d/55-libsane.rules verändern: Dort sollte für Ihren Scanner eine Zeile der Form
ATTRS{idVendor}=="04f9", ATTRS{idProduct}=="00ab", MODE="0660", GROUP="scanner", ENV{libsane_matched}="yes"
(Kubuntu) bzw.
ATTRS{idVendor}=="04f9", ATTRS{idProduct}=="00ab", MODE="0660", GROUP="lp", ENV{libsane_matched}="yes"
(OpenSuse; einziger Unterschied: lp statt scanner) stehen, wobei Sie die beiden vierstelligen IDs hinter idVendor und idProduct (also 04f9 und 00ab) durch die Werte ersetzen, die lsusb als vorderen und hinteren Teil der USB-ID ausgibt (siehe oben). In der OpenSuse-Datei könnte es bereits einen passenden Eintrag geben, weil dort sehr viele Geräte vorkonfiguriert sind; bei Kubuntu ist es wahrscheinlicher, dass Sie den Eintrag selbst anlegen müssen.
Gelingt trotz aller Anstrengungen die Einrichtung und Inbetriebnahme nicht, probieren Sie das ab Seite 46 vorgestellte Programm VueScan aus: Das kostet zwar 40 Euro, kann aber viele Scanner (auch über das Netzwerk) ohne jegliche Konfigurationsarbeit in Betrieb nehmen.
Infos
[1] Digital Sending Technology bei HP: http://hplipopensource.com/node/302
[2] Samsung Unified Linux Driver: http://www.samsung.com/de/support/category/pcperipheralsprinter/printer
[3] Canon Scanner unter Linux: http://www.canon-europe.com/support/consumer_products/product_ranges/printers/pixma/
[4] Brother-Treiber: http://support.brother.com/g/b/countrytop.aspx?c=de&lang=de


