📡eSCL, WSD, TWAIN, WIA & Co.
SANE ist nicht die einzige Art, einen Scanner anzusprechen. Moderne Multifunktionsgeräte scannen treiberlos über HTTP, Windows und macOS haben eigene Schnittstellen – und SANE kann über Backends wie airscan und escl alle treiberlosen Geräte nutzen.
🍏eSCL (AirScan) Schritt für Schritt
1 · Gerät finden (mDNS / DNS-SD)
Frage (Multicast 224.0.0.251:5353): PTR _uscan._tcp.local ?
Antwort:
PTR _uscan._tcp.local → Buero-MFP._uscan._tcp.local
SRV Buero-MFP._uscan._tcp.local → scanner.example.org:80
A scanner.example.org → 192.0.2.40
TXT rs=eSCL vers=2.63 pdl=application/pdf,image/jpeg
cs=color,grayscale,binary is=platen,adf duplex=TScanner kündigen sich per Multicast-DNS als _uscan._tcp an (mit TLS: _uscans._tcp). Der TXT-Eintrag rs nennt den Basispfad der Schnittstelle, cs/is/pdl Farbmodi, Quellen und Dateiformate.
Gekürztes Beispiel mit erfundenem Gerät (scanner.example.org, 192.0.2.40).
⚖️Vergleich der Schnittstellen
| Schnittstelle | Plattform | Technik | Netzwerk / Suche | Besonderheit |
|---|---|---|---|---|
| SANE | Linux, BSD, Unix (auch macOS) | C-Bibliothek: Frontend ↔ libsane ↔ Backend | saned / net-Backend (TCP 6566) | Backend je Gerätefamilie; Bedienung und Treiber strikt getrennt |
| eSCL (AirScan) | geräteseitig; Clients unter macOS, iOS, Linux, Android (Mopria) | HTTP(S) + XML, Bild als JPEG/PDF/PNG | mDNS/DNS-SD _uscan._tcp | treiberlos; von Apple eingeführt, Spezifikation von der Mopria Alliance veröffentlicht |
| WSD (WS-Scan) | Windows ab Vista, Linux über sane-airscan | SOAP über HTTP | WS-Discovery (UDP 3702, Multicast) | treiberlos, Teil von Microsofts „Web Services on Devices“ |
| TWAIN | Windows, macOS | Data Source Manager lädt „Data Source“ (Herstellertreiber, meist mit eigener Oberfläche) | nur über Hersteller-Lösungen | seit 1992; TWAIN Working Group; neuer: TWAIN Direct (treiberlos) |
| WIA | Windows (ab Me/XP, WIA 2.0 ab Vista) | COM-Schnittstelle, Windows-Dialog „Windows-Fax und -Scan“ | über WSD-Geräte | Microsofts Standard-Bildaufnahme-API |
| ImageCaptureCore | macOS | Objective-C/Swift-Framework (ICDeviceBrowser, ICScannerDevice) | Bonjour (eSCL) | Grundlage von „Digitale Bilder“ (Image Capture) und Vorschau-Import |
🔌USB-Geräteklassen
| Klasse / Unterklasse / Protokoll | Bedeutung | Folge für Scanner |
|---|---|---|
| 0xFF | herstellerspezifisch | Die meisten klassischen Scanner. Das Befehlsprotokoll ist nicht genormt – ein SANE-Backend muss es kennen (oft durch Mitschneiden des USB-Verkehrs ermittelt). |
| 0x07 / 0x01 / 0x04 | Drucker, Protokoll IPP over USB | Moderne Multifunktionsgeräte: HTTP über USB. Der Dienst ipp-usb stellt das Gerät lokal als Netzwerkgerät bereit – dann funktionieren eSCL-Backends auch per Kabel. |
| 0x06 | Still Image (PTP) | Vor allem Digitalkameras; unter SANE über das gphoto2-Backend bzw. direkt mit libgphoto2. |
$ lsusb -v -d 1234:5678 | grep -E 'bInterface(Class|SubClass|Protocol)'
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 4
… ← IPP over USB: ipp-usb + eSCL möglich
(Gerät und IDs erfunden)🧰Treibersituation unter Linux
✅ sane-backends
Die freien Backends unterstützen sehr viele Geräte. Die Liste der unterstützten Geräte auf sane-project.org bewertet jedes Modell (complete, good, basic, minimal, untested, unsupported).
📦 Herstellertreiber
Einige Hersteller liefern eigene SANE-Backends, oft unfrei und nur für x86: z. B. HPLIP (hpaio) von HP, brscan von Brother, Epson Scan 2 von Epson. Sie tragen sich über /etc/sane.d/dll.d/ ein.
🌐 Treiberlos
Neue Multifunktionsgeräte mit AirPrint/Mopria-Logo können fast immer eSCL – per WLAN/LAN direkt, per USB mit ipp-usb. Dann braucht man gar keinen Gerätetreiber mehr.