/work · v0.1.0 on GitHub
prindeck
Ein Linux-Controlpanel für den Brother MFC-L2710DW: Status und Toner über SNMP, Scannen über eSCL, Drucken über CUPS, alles in einem nativen Fenster und ganz ohne Vendor-Treiber.
Rust · Tauri 2 · eSCL · SNMP · CUPS
Problem
Brothers Client-Anwendung iPrint&Scan existiert für Windows und macOS, für Linux liefert der Hersteller nur Treiber: Druckertreiber, Scannertreiber, Scan-key-tool, alles deb-Pakete. Die Steuerung auf Linux verteilt sich danach auf das Webpanel im Browser, simple-scan und die lp-/scanimage-Kommandozeile. Ein Fenster, das Status, Verbrauch, Scan, Druck und Verlauf bündelt, fehlt.
Die Abkürzung über offene Protokolle liegt nahe: Das Gerät spricht eSCL über HTTP, SNMP für Zustand und Verbrauch und druckt über jede CUPS-Warteschlange. Keiner dieser Wege braucht ein Binärpaket des Herstellers.
Architektur: drei offene Protokolle
Der Status läuft über SNMP: ein gebündeltes GET pro Abfrage liest die Brother-OID-Tabelle, ein kleiner Parser macht aus den Binärdatensätzen Toner- und Trommelprozent, Seiten- und Duplexzähler und die verbleibenden Trommelseiten. Die Werte landen in lokalem SQLite und speisen das 90-Tage-Diagramm und eine Toner-Seitenschätzung aus der konfigurierten Kartuschenreichweite.
Scannen läuft über eSCL, dasselbe Protokoll, das auch sane-airscan spricht: Scan-Job per POST anlegen, Seiten abholen, Job per DELETE abbrechen. Flachbett oder 50-Blatt-Einzug, 100 bis 600 dpi, JPEG oder mehrseitiges PDF. Der Druckteil ersetzt das Systemdrucken nicht, er übergibt Dateien an die bestehende CUPS-Warteschlange und zeigt die Aufträge mit Abbrechen-Aktion.
Die Hülle ist Tauri 2: Rust für die Gerätekommunikation, TypeScript für das Fenster, WebKitGTK zum Rendern. Tray-Icon mit Statusfarbe, Hintergrundabfragen mit Benachrichtigungen bei niedrigem Verbrauch und Ausfällen, optionaler Autostart, eine Instanz.
Was das Gerät tatsächlich tut
Der MFC-L2710DW weicht an vier Stellen von der Spezifikation ab, und jede Abweichung steht inzwischen im Code: Die Auflösung 150 dpi existiert nicht, das Gerät setzt still 300 daraus. Die Farbkombination BlackAndWhite1 mit JPEG-Ausgabe beantwortet es mit HTTP 409, obwohl die Kombination in der Job-XML abbildbar ist. Den ganzen Einzugsstapel fügt die Firmware zu einem einzigen PDF zusammen, weshalb ein abgebrochener Auftrag die bereits empfangenen Seiten behält. Und das Tray-Icon braucht unter Linux ein Menü, sonst bleibt es unsichtbar; die Tauri-Dokumentation vermerkt, dass ein leeres genügt.
Gefunden hat alle vier ein Erkundungs-Durchlauf gegen das lebende Gerät, bevor die Anwendung existierte. Die schreibgeschützten Probe-Skripte für eSCL und SNMP liegen im Repository.
Umfang und Roadmap
Version 0.1.0 unterstützt genau ein Gerät, den MFC-L2710DW, denn das ist der Drucker, an dem jede Aussage geprüft wurde. Die Release Notes führen die rauen Kanten offen: Die Offline-Ansichten brauchen einen Aufräum-Durchgang, das .rpm folgt in v0.1.1, sieben der zehn Oberflächensprachen sind Community-Entwürfe.
Das Projekt ist solo gepflegt, MIT-lizenziert und nicht mit Brother verbunden. Die nächste Ausbaustufe, weitere Brother-MFC- und -DCP-Geräte, hängt am Interesse: „arrives sooner with every star“, wie das README es formuliert.