SANE
Ausbaufähige Anleitung
Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.
Anmerkung: Zu den vielfältigen Funktionen, welche SANE bei Scannern unterstützen kann - wie automatische Dokumenteneinzüge (ADF) - könnte noch berichtet oder der Artikel Scanner entsprechend ergänzt werden.
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.04 Jammy Jellyfish
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Scanner gibt es in vielen Ausführungen. Um die grundsätzlichen Funktionen eines Scanners wie zum Beispiel Auflösung, Schwarzweiß- / Graustufen- / Farbscans oder Sondertasten verwenden zu können, bedarf es eines Gerätetreibers. Ubuntu und generell Linux verwendet eine eigene offene Schnittstelle für Scanner, welche von den Herstellern unabhängig ist: die SANE Schnittstelle 🇬🇧. Diese Schnittstelle wurde als Standard nicht nur für Flachbettscanner, sondern auch für Handscanner, Video- und Stillkameras oder "Frame-Grabber" entwickelt.
Hinweis:
Mit Version SANE 1.0.31 wurde die Unterstützung für schwarzweiß (oder auch "lineart", "Strichzeichung") aus dem Funktionsumfang entfernt, kann also nicht mehr direkt eingesetzt werden!
Die generelle Verwendung eines Scanners - mit Hinweisen auf diverse Scanner und Scanprogramme - wird in den Artikeln Scanner und Scanner/Software beschrieben. In diesem Artikel wird eher auf die Konfiguration besonderer SANE-Funktionalitäten eingegangen.
Installation¶
Das benötigte Paket[1] libsane1 ist Bestandteil jeder Ubuntu-Installation. Falls es doch fehlen sollte,kann es installiert werden
libsane1
Befehl zum Installieren der Pakete:
sudo apt-get install libsane1
Oder mit apturl installieren, Link: apt://libsane1
PPA¶
Wer eine aktuellere Version von SANE benötigt, kann diese über ein PPA beziehen.
Adresszeile zum Hinzufügen des PPAs:
ppa:sane-project/sane-release
Hinweis!
Zusätzliche Fremdquellen können das System gefährden.
Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der PPA-Beschreibung des Eigentümers/Teams sane-project zu entnehmen.
Über die Aktualisierungsverwaltung bekommt man nun eine aktuelle SANE-Version.
Den letzten noch nicht freigegebenen Stand der Entwicklung erhält man über ppa:sane-project/sane-git.
Manuell¶
Die manuelle Installation von Sane wird im Artikel SANE/Kompilieren beschreiben. Dies ist z.B. immer dann sinnvoll, wenn der eigene Scanner von den SANE-Version aus den Paketquellen nicht oder unvollständig unterstützt wird. Eine Parallelinstallation mit der Version aus den Quellen ist möglich.
Wird mein Gerät von SANE unterstützt?¶
Scanner, welche das SANE-Projekt (Scanner Access Now Easy) 🇬🇧 unterstützt und direkt am Computer z.B. durch einen USB-, SCSI- oder PARALLEL(Drucker)-Anschluss angeschlossen sind, werden sofort erkannt und können benutzt werden. Nur in sehr seltenen Fällen muss oder kann man hier nachbessern.
Im Artikel Scanner wird im Abschnitt Hardware genauer darauf eingegangen.
Das SANE-Konzept unterscheidet sich wesentlich z.B. von den TWAIN-Scanner-Gerätetreibern 🇬🇧, wie sie für das Apple- und Windows-Betriebssystem entwickelt werden. SANE beruht auf der strikten Trennung der Kommunikation zwischen dem Scannertreiber (genannt Backend) und dem jeweils verwendeten Scanprogramm (genannt Frontend).
SANE ermöglicht durch diesen modularen Aufbau einen standardisierten Zugriff für beliebige Scanprogramme, seien es solche für die Kommandozeile [2], für die grafische Oberfläche und über Rechnergrenzen mit Hilfe eines Netzwerkes hinweg (Details dazu im Artikel SANE-Scanserver im Netzwerk). Dies ist mit TWAIN-Treibern natürlich auch möglich, hier sind Programm und Gerätetreiber jedoch viel enger verzahnt und jedes Programm eine Einzelentwicklung.
Hinweis:
Es gibt aus den eben genannten Gründen keine Möglichkeit, TWAIN-Treiber für den Betrieb von Scannern unter Linux zu verwenden. Umgekehrt ist die Realisierung des Zugriffs auf einen SANE-Scanner über eine TWAIN-Schnittstelle einfach: Mit SaneTwain 🇬🇧 gibt es ein Programm, welches den SANE-Scanner unter Windows verfügbar macht. Für den Mac gibt es das Projekt Twain-Sane 🇬🇧. Dies funktioniert auch im Netzwerk.
SANE-Scanner in der VirtualBox¶
Inzwischen ist auch das Betreiben eines SANE-fähigen USB-Scanners in einer VirtualBox (zumindest ab Version 3.1.6 PUEL) mit Ubuntu als Gastsystem ohne größere Probleme möglich. Wenn mit dem Befehl lsusb
auch im Gastsystem der Scanner angezeigt wird, sollte eine Konfiguration wie unter Scanner bzw. den entsprechenden Artikeln zum jeweiligen Backend beschrieben möglich sein; das gilt zumindest für das gt68xx-Backend. Falls der Scanner bei den USB-Einstellungen zur VirtualBox nicht auftaucht und im Gastsystem nicht angezeigt wird, hilft es ggf., bei den USB-Einstellungen zur VirtualBox einen leeren Filter zu erstellen; damit wird der Scanner auch im Gastsystem erkannt. Eine Alternative ist die Verwendung des net-Backends, wenn der Scanner nicht direkt erkannt wird.
Achtung!
Es sei an dieser Stelle darauf hingewiesen, dass besonders sehr neue oder "exotische" Scanner-Modelle - z.B. solche mit ausgefeilten Funktionen wie Einzelblatteinzügen, aufwendigen Negativ- oder Diascanfunktionen - selten unterstützt werden. Man sollte also auf jeden Fall vorher gründlich recherchieren und gegebenenfalls mit dem Notebook oder einer Ubuntu Live CD beim Händler das Gerät auf Kompatibilität testen. Die Enttäuschung könnte sonst groß sein.
Backend¶
Ein "Backend" ist der SANE-Gerätetreiber für einen bestimmten Scanner oder eine Gruppe von Scannern. Alle Backends werden über Dateien im Verzeichnis /etc/sane.d/ konfiguriert. Sie können mit einem Texteditor[3] mit Root-Rechten[4] bearbeitet werden.
Einzelne Backends werden über separate Dateien nach dem Muster /etc/sane.d/backendname.conf konfiguriert. Alle im System verfügbaren Backends sind global in der Datei /etc/sane.d/dll.conf aufgelistet. Aktive Treiber stehen jeweils in einer Zeile, inaktive sind mit einem Rautezeichen (#) am Anfang der Zeile auskommentiert.
Die Übersichtsseite 🇬🇧 der unterstützten Geräte auf der SANE-Homepage lässt die Suche nach Hersteller ("Manufacturer") oder dem Namen des "Backends" zu. Leider gibt es diese Seite nur in englischer Sprache. Man sollte nicht zögern, dem SANE-Team in Form eines Bug-Reports 🇬🇧 mitzuteilen, wenn man der Liste 🇬🇧 der unterstützten Geräte etwas hinzuzufügen hat. Das SANE-Projekt lebt wie alle anderen Open-Source-Projekte von der Rückmeldung.
Man sollte auch beachten, dass die in der verwendeten Ubuntu-Version installierte SANE-Version nicht zwangsläufig mit der aktuellen 🇬🇧 übereinstimmen muss. Ein Blick in die Paketverwaltung[1] oder die Ubuntu-Paketübersicht 🇬🇧 und die Version des Paketes libsane1 gibt hier nähere Auskunft.
Ein besonderes Backend ist das "net"-Backend. Es ermöglicht den "indirekten" Zugriff auf einen Scanner über den Scandaemon saned
. Dies wird im Artikel über die Einrichtung eines SANE-Scanservers ausführlich erläutert.
Externe Backends¶
Die meisten Hersteller liefern ihre Geräte leider nur mit "TWAIN"-Treibern für das Windows- oder Apple-Betriebssystem aus. In wenigen Fällen gibt es eigene Linux-Treiber für Produkte: Hewlett Packard zum Beispiel oder die Firmen Brother und Epson entwickeln eigene SANE-kompatible Backends.
Diese Backends von externen Herstellern haben jedoch noch nicht den Eingang in die offizielle SANE-Version gefunden. Der Grund hierfür liegt darin, dass sie zum Großteil keine quelloffene Software darstellen und deshalb nicht vom SANE-Projekt unterstützt werden können. Sie wurden deshalb im Unterprojekt "external backends" ausgelagert.
Die Liste der externen Backends 🇬🇧 verweist detailliert auf die Webseiten der einzelnen externen Backendprojekte. Sie gibt eine Übersicht der bekannten Funktionalitäten und Kompatibilitäten. Korrekturen und Hinweise zu den dortigen Tabellen kann man jederzeit an das SANE-Team in Form eines Bug Reports 🇬🇧 melden.
Wegen einer inkompatiblen Änderung in Ubuntu kann es vorkommen, dass solche Backends trotz erfolgreicher Installation nicht gefunden werden. Dies kann mit folgendem Befehl behoben werden:
for file in /usr/lib/sane/*; do sudo ln -s $file /usr/lib/x86_64-linux-gnu/sane/${file##*/}; done
Airscan/escl¶
Einige netzwerkfähige Scanner lassen sich ohne Netzwerkkonfiguration direkt über das escl-Backend 🇬🇧 betreiben, das mit SANE 1.0.29 Bestandteil von SANE geworden ist. Zur Verwendung in älteren Sane-Versionen gibt es eine Anleitung im Wiki: Howto/Scanner über Airscan einrichten.
Frontend¶
Als SANE-"Frontends" bezeichnet man alle Programme, welche über ein Backend auf einen Scanner zugreifen können. Dies sind Anwenderprogramme, die im Übersichtsartikel Scanner/Software aufgelistet und kurz beschrieben werden.
Aber auch besondere Spezialitäten sind darunter, wie der Netzwerk Scandaemon saned oder das Befehlszeilenprogramm scanadf 🇬🇧 für Dokumenteneinzugsscanner. Eine Übersicht findet man auf sane-project.gitalb.io 🇬🇧.
Das folgende Bild erläutert nochmals schematisch die Zusammenhänge zwischen Backend, Frontend und Scanner. Sich diesen Sachverhalt einzuprägen, kann zum späteren Verständnis der Konfiguration sehr hilfreich sein. Der Normalfall (Scanner direkt am Rechner angeschlossen) ist violett hervorgehoben.
Kommandozeilen-Frontend scanimage¶
Sane kann auch über das Terminal betrieben werden. Das Frontend dazu heißt scanimage
. Um zu sehen, welche Scanner erkannt werden, muss in ein Terminal folgender Befehl eingegeben werden:
scanimage -L
Um zu sehen, welche Funktionen der Scanner bereitstellt, muss folgender Befehl verwendet werden:
scanimage -A
Hierbei werden die verwendbaren Optionen gelistet, die der Scanner unterstützt.
Ein einfacher Test-Scan lässt sich folgendermaßen durchführen:
scanimage -T
Hierbei sollte der Scanner dann anlaufen und eine Ausgabe erzeugen.
Möchte man einen Scan mit Dateiausgabe erzeugen, wäre der Befehl z.B.
scanimage -d SCANNER-NAME --resolution AUFLÖSUNG --mode FARBMODUS > AUSGABEORT
Beispiel
scanimage -d "airscan:e1:HP ENVY 5640 series [EF100B]" --resolution 300 --mode color > ~/test-hp.ppm
Mit der Option -d
wird der gewünschte Scanner bestimmt, die Auflösung (resolution
) beträgt 300 dpi, der Scann wird in Farbe (color
) gemacht, die Ausgabe des Scans wird im Home-Ordner (~/) unter dem Namen test-hp.ppm (ppm=portable-pixmap) gespeichert.
Die verfügbaren Optionen von scanimage
lassen sich mit dem Befehl
man scanimage
anzeigen.
Fehlersuche¶
Häufig wird vergessen, dass der Benutzer Mitglied der Gruppen scanner
und saned
sein muss.
Fehler beim Öffnen des Gerätes¶
Ab 20.04 (Focal) wird ein fehlerhafter Daemon ausgeliefert. Diesen kann man bedenkenlos entfernen mit
sudo apt purge ippusbxd
Nach einem Neustart sollte es dann funktionieren.
Ab 22.04 (Jammy) wird ein fehlerhafter Daemon ausgeliefert. Diesen kann man bedenkenlos entfernen mit
sudo apt purge ipp-usb
Nach einem Neustart sollte es dann funktionieren.
Fehlender USB-Treiber¶
Ab 20.04 (Focal) ist ein für machen Scanner (u.a. Canon) erforderlicher USB-Treiber nicht standardmäßig installiert.
Dieser lässt sich einfach Installieren mit
libusb-0.1-4
Befehl zum Installieren der Pakete:
sudo apt-get install libusb-0.1-4
Oder mit apturl installieren, Link: apt://libusb-0.1-4
libsane nicht gefunden¶
Unter 24.04 kann es sein, dass der Treiber oder das Programm noch das alte Paket libsane zu installieren versucht, diese jedoch nicht gefunden werden kann. Unter 22.04 wurde dies noch als virtuelles Paket durch libsane1 bereitgestellt.
Um die Installation trotzdem abschließen zu können, kann man sich ein leeres Paket, auch Dummypaket genannt, installieren. Dazu kann man den Artikel Metapakete erstellen mit folgenden Anpassungen abarbeiten:
Ersetze „meta/meta-0.1“ durch „~/libsane/libsane-11.20“
Der Einfachheit halber werden für das leere Paket die meisten Dateien so belassen und nur eine Änderung an das Ende der Datei control eingetragen. Dabei wird:
Depends: ${shlibs:Depends}, ${misc:Depends}, Description: <insert up to 60 chars description> <Insert long description, indented with spaces.>
ersetzt durch:
Depends: libsane1 Description: leeres Paket für libsane Dies ist ein leeres Paket, dass die Abhängigkeit zu libsane erfüllt und das installierte Paket neuen Namens libsane1 erwartet (im Standard-Installationsumfang bereits enthalten). Sobald die Scanner-Treiber die unnütze Abhängigkeit auf den alten Namen nicht mehr einfordern, kann dieses Paket gefahrlos entfernt werden.
Nach dem Erstellen des Paketes dieses noch mit apt installieren:
#!/vorlage befehl sudo apt install ~/libsane/libsane_11.20-1_amd64.deb
Links¶
Wikiartikel zur Installation von Scannern und Scannersoftware:
Artikel der Zeitschrift c't aus dem Jahr 1999 🇩🇪 - Älterer, aber grundsätzlich wertvoller und stimmiger Artikel zum Thema
Scanning HowTo 🇬🇧 - Ubuntu Community Documentation
SANE GitHub-Homepage 🇬🇧 - Links aus der "
saned
"-Manpage.SANE Network Daemon 🇬🇧 - für Fortgeschrittene, gute Hinweise zum Absichern des saned (Passwortschutz) und zum Troubleshooting
SaneTwain 🇬🇧 - Windows Client für SANE-Server
Twain-Sane 🇬🇧 - Mac Client für SANE-Server