Gruniversal Blog

Technisches und Persönliches

Samsung Xpress C480W unter Linux Mint 19

In den beiden letzten Beiträgen habe ich gezeigt, wie überwiegend reibungslos mein Update auf Linux Mint 19 sowie die Nacharbeiten hierzu waren.

Damit war ich zufrieden, ahnte aber noch nicht, dass sich hieraus noch eine echte “Linux Story” entwickeln würde. Damit meine ich eine Geschichte, bei der man auf ein technisches Problem stößt – meist im Zusammenhang mit Hardware – und bis zum Ende nicht weiß, ob man es lösen kann oder sich neue Hardware besorgen muss.

Konkret war mir beim Check der verschiedenen Workflows, die ich so gelegentlich nutze, aufgefallen, dass mein Multifunktionsdrucker nicht mehr als Scanner erkannt wurde. Daraus entspann sich dann ein wechselhafter und lehrreicher Abend.

Mein Samsung Xpress C480W

Bevor ich zur Beschreibung meiner Erlebnisse komme, hier kurz zum Gerät und warum ich mich damals dafür entschieden habe. Dazu muss man wissen, dass ich zuhause nur gelegentlich drucke und mit bestehenden Tintenstrahldruckern ständig das Problem eingetrockneter Patronen hatte. Irgendwann habe ich dann entschieden, dass ich auf einen Laserdrucker umsteigen möchte um dieses Problem zu vermeiden und letztlich Geld und Aufwand zur Besorgung immer neuer Patronen einzusparen.

Für den Samsung Xpress C480W sprach letztlich eine Kombination von Preis und Funktionsausstattung sowie guten Kritiken. Neben der Druckfunktion gibt es einen Scanner und somit kann das Gerät auch mal schnell ohne PC was kopieren.

Da ich damals schon mit Linux unterwegs war, war zudem der Linux-Support ein wichtiges Argument. Der Drucker bringt schließlich wenig, wenn er nicht mit dem Betriebssystem zusammenarbeitet. Dazu gab es seitens des Herstellers und auch von Nutzern grünes Licht. Das hatte bisher auch anstandlos geklappt. Bis zum Update.

Linux Support durch Samsung

In so einem Fall führt der erste Weg natürlich auf die Herstellerseite. Normalerweise werden dort die aktuellsten Treiber und Hinweise zur Einrichtung angeboten. Also hab ich die Samsung Seite aufgerufen und bin auf der Produkt Support Seite für den Drucker entsprechend fündig geworden:

Printing & Scan Driver for Linux, 14.66 MB, gz, MULTI LANGUAGE
27 Oct, 2015, V1.00.36_00.91 http://downloadcenter.samsung.com/content/DR/201510/20151027103428932/uld_v1.00.36_00.91.tar.gz

Ok, nicht ganz taufrisch, aber damit kann man arbeiten. Die Installationsanleitung ist auch eher überschaubar, im Grunde muss nur eine mitgelieferte install.sh ausgeführt werden. Die Installation ist schnell erledigt und nach einem Neustart, müsste ja nun alles klappen, oder? Hmm.. “Computer sagt nein”

Und nun? Vielleicht lässt sich ein passender Treiber auf anderem Weg beschaffen?

Linux Support durch HP

Relativ schnell habe ich herausgefunden, dass das Druckergeschäft von Samsung 2016 an HP verkauft wurde. Seit der Übernahme findet sich auch ein entsprechender Support auf deren Website. Na das klingt doch vielversprechend. Samsung hat 2016 nach dem Verkauf ihre Webseite nicht weiter aktualisiert, aber da nun HP übernommen hat, werde ich dort sicher aktuelle Treiber finden, die die Lösung bringen. Und tatsächlich findet sich im Support Bereich eine entsprechende Support Seite für meinen Drucker:

Samsung Linux Print and Scan Driver
V1.00.39_01.17, 14.8 MB, 1. Sept. 2017
https://ftp.hp.com/pub/softlib/software13/printers/SS/SL-M4580FX/uld_V1.00.39_01.17.tar.gz

Der Treiber ist grundsätzlich der gleiche, nur drei Versionsnummern weiter und etwa zwei Jahre jünger als der Samsung Treiber. Auch die Installation ist genau identisch.

Leider ist der Treiber etwa ein Jahr älter als das dem Linux Mint 19 zugrunde liegende Ubuntu 18.04, welches im April 2018 erschien. Insofern verwundert es nicht, dass der Treiber leider auch nicht passt.

Damit komme ich nicht weiter. Es wird also Zeit etwas tiefer zu graben.

Scannen unter Linux über sane

Zunächst einmal muss das diagnostische Besteck bereitgelegt werden. Für Scanner ist unter Linux sane zuständig. Dafür gibt es mit xsane eine nützliche GUI sowie mit simple-scan eine weitere, sehr vereinfachte GUI. Die können auch über die Kommandozeile aufgerufen werden und geben dann ggf. nützliche Fehlermeldungen.

Zudem gibt es mit sane-find-scanner ein Tool, welches – nomen est omen – zum Suchen von Scannern genutzt werden kann. Dabei werden sowohl SCSI als auch USB-Scanner erkannt. Nützlich kann auch lsusb sein, damit kann man erkennen, ob ein USB-Gerät grundsätzlich im Betriebssystem angemeldet ist. Und mit scanimage gibt es ein Tool, welches scannen auf der Kommandozeile ermöglicht. Hier ist vor allem scanimage -L nützlich um gefundene Drucker aufzulisten.

Die genannten Tools lassen sich leicht auf diese Weise installieren:

$ sudo apt install sane xsane sane-utils libsane

Wichtig ist noch, dass der Scanner natürlich dafür an sein muss und zudem muss der ausführende Nutzer in der Gruppe lp sein. Hier hilft notfalls ein adduser %u lp oder man führt alles direkt als root aus. Hier meine Ergebnisse:

$ sudo lsusb
...
Bus 005 Device 005: ID 04e8:347e Samsung Electronics Co., Ltd
...

$ sudo sane-find-scanner
...
found USB scanner (vendor=0x04e8 [Samsung Electronics Co., Ltd.], product=0x347e [C48x Series]) at libusb:005:005
...

$ sudo scanimage -L
device 'smfp:usb;04e8;347e;08GNB8KJ2B00CMV' is a Samsung C48x Series on USB Scanner

Der Scanner wird also grundsätzlich erkannt, trotzdem arbeitet er nicht korrekt. Es liegt offenbar ein Treiberproblem vor und es gibt keinen passenden Herstellertreiber.

Es scheint ich brauche die Hilfe der Linux-Community!

Die Weisheit der Vielen

An dieser Stelle beginnt innerhalb einer echten “Linux Story” der wirklich spannende Teil. Gibt es da draußen Menschen, die schon vor einem ähnlichen Problem standen? Wie haben die es gelöst und am wichtigsten: wurde es online dokumentiert?

Zum Glück ist die Linux Community riesig und sofern man nicht auf völlig exotische Hardware setzt, ist die Chance oft ganz gut eine Lösung zu finden. Manchmal stellt man aber auch nur fest, dass das Problem zwar bekannt ist, aber niemand das Ticket aktuell bearbeitet und man die Wahl hat dies selbst zu tun. Im schlimmsten Fall findet man gar nichts und muss mit der Ungewissheit leben.

Die Größe der Community kann hierbei auch zum Problem werden, wenn es darum geht innerhalb der Wissensmenge spezifische Informationen für die eigene Situation zu finden. Hier kann man schnell viel Zeit liegen lassen. Wenn man interessiert ist etwas zu lernen, lohnt es sich aber in aller Regel. Praktisch “bug driven self learning” :)

Manipulation der xerox.mfp

Eine solche spezifische Quelle habe ich in den Ubuntu Foren gefunden. Ein Nutzer mit der selben Problematik konnte sie offenbar lösen, indem er in der xerox_mfp.conf eine Zeile ergänzt hat. Auch in einem ArchLinux-Wiki wurde das empfohlen und schien bei einem Nutzer geholfen zu haben. Das ist also einen Versuch wert.

$ sudo cp /etc/sane.d/xerox_mfp.conf /etc/sane.d/xerox_mfp.conf.default
$ sudo vim /etc/sane.d/xerox_mfp.conf
#xerox_mfp.conf
# all entries are sorted in USB IDs numerical order

# dg: 29.03.2020 - added for samsung xpress c480w
usb 0x04e8 0x347e

Nach einem Reboot um sicherzugehen, dass die Konfiguration gelesen wird, habe ich damit erneut per xscan versucht zu scannen und tatsächlich rattert der Drucker kurz los, aber leider macht er trotzdem nicht das, was er tun soll. Verdammt! :(

Ok, hilft nichts. Also die Änderung zurück und weiter suchen.

SULDR – Treiber von bchemnet.com

Glücklicherweise bin ich dann in einem Ubuntu-Forum auf einen weiteren Beitrag zum Samsung C480W gestoßen. Neben einem Hinweis auf die xerox_mfp.conf findet sich dort auch noch ein interessanter Link: http://bchemnet.com/suldr/

Hinweis auf bchemnet.com in einem Forum

Unter diesem Link bietet jemand Treiber für verschiedene Samsung Drucker an. Tatsächlich ist es sehr schwer zu ermitteln wer genau, aber nach diesem Beitrag in den Ubuntu-Foren wird es wohl der Nutzer tweedledee sein.

Das ganze nennt sich “Samsung Unified Linux Driver Repository” (kurz SULDR) und bietet unter anderem auch ein Forum und eine lange Liste an unterstützten Geräten. Außerdem gibt es eine Anleitung, wie alles zu benutzen ist. Die wesentlichen Punkte zum Vorgehen gibt es aber auch schon auf der Hauptseite.

Als erstes habe ich die Paketquellen entsprechend um das Repository erweitert:

$ sudo vim /etc/apt/sources.list.d/suldr_samsung_mfp_driver.list
deb https://www.bchemnet.com/suldr/ debian extra

Weiterhin muss noch der Keyring installiert werden, der als direkter Download auf der Seite verfügbar ist. Danach kann man mit apt auf die Treiber zugreifen:

$ sudo apt-get update
...
$ sudo apt-get install suld-driver2-1.00.36

Ich habe mich aus der Liste der Treiber für den entschieden bei dem laut Changelog zuletzt Änderungen an meinem Druckermodell vorgenommen wurden. Im Zweifel sollte man laut Empfehlung sich für den aktuellsten Treiber (1.00.39) entscheiden.

Ok, das wäre dann der dritte Treiberversuch. Mal schauen ob das funktioniert.

Also Neustart.. und?! Geht! Drucken, Scannen, einwandfrei! :)

Never change a running system

Nach diesem Erfolg hab ich mich noch etwas schlau gemacht um noch besser zu verstehen, was hier eigentlich passiert. Sehr hilfreich dazu war auch ein Beitrag im SULDR-Forum vom Maintainer.

Sinngemäß sagt er, das HP den Support für Samsung Drucker aus wirtschaftlichen Gründen nicht weiter fortsetzt und durch Weiterentwicklungen im Linux-System (u.a. bei CUPS) die Treiber in Zukunft immer weniger funktionieren werden.

Das sind also eher schlechte Aussichten, dass es mir auch in Zukunft gelingen wird den Drucker bei jedem Update wieder betriebsbereit zu machen. Es könnte sein, dass ich durch ein Update die Hardware nicht mehr nutzen kann.

Um diesem Szenario vorzubeugen, erscheint es mir sinnvoll, die fürs Drucken und Scannen wesentlichen Pakete für Updates zu sperren, sie also auf dem aktuellen Stand zu halten. Das ist beispielsweise im Synaptic oder über apt möglich.

Pakete in Synaptic sperren

Mit apt habe ich daher folgende Pakete auf halten gesetzt:

$ sudo apt hold sane xsane sane-utils libsane suld-* cups-* printer-driver-*

Die Liste aller gehaltenen Pakete kann über apt held ausgegeben werden. Um die Sperre später wieder zu entfernen, nutzt man apt unhold. Das wird aber sicher für einige Zeit nicht mein Anliegen sein.

Fazit und Dank

Für den Moment bin ich froh, dass erstmal alles wieder läuft. Die “Linux Story” ging in diesem Fall positiv aus und besonders freue ich mich über Leute wie tweedledee, die entsprechende Ressourcen zur Verfügung stellen und damit sicher hunderten von Linux-Nutzern eine Erfolgsgeschichte bescheren.

Es zeigt sich, dass es sich oft lohnt dran zu bleiben und das Problem immer weiter einzukreisen. Ich kann aber auch verstehen, dass solche Geschichten Leute von Linux eher abschrecken, weil es ihnen zu viel “Gebastel” ist und viel persönlichen Zeiteinsatz sowie Kenntnis des Betriebssystems erfordert.

Ich seh das so: zumindest hat man bei Linux alle Möglichkeiten einzugreifen und ist dem Vorgehen der Hersteller – wie in diesem Fall HP – nicht komplett ausgeliefert. Ob man sich dafür entscheidet, muss jeder selbst wissen. Aufgeben ist auch OK :)

Zurück

Linux Mint 19 Update – Nachträge und neue Baustellen

Nächster Beitrag

Mein Entwicklungsworkflow

  1. Du hast mein Leben gerettet! Unglaublich!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Präsentiert von WordPress & Theme erstellt von Anders Norén