Kurz:Sie müssen die ppd-Datei aus dem Linux-Treiber extrahieren
lang:
ZUERST
- Gehen Sie zur Brother-Treiber-Website und suchen Sie nach DCP195:http://support.brother.com
- Laden Sie die Linux-Deb-Version des "CUPSwrapper-Druckertreibers (Deb-Paket)" herunter
- Öffnen Sie die deb-Datei mit einem Komprimierungstool und folgen Sie dem Pfad nach unten zu "dcp195ccupswrapper-1.1.3-1.i386/opt/brother/Printers/dcp195c/cupswrapper"
- Extrahieren Sie die Datei „brother_dcp195c_printer_en.ppd“
ZWEITE
- Öffnen Sie das Cups-Webinterface über
https://192.168.1.2:631/admin
[IP durch Pi ersetzen] - Klicken Sie auf „Drucker hinzufügen“. Wählen Sie „Brother DCP-195C (Brother DCP-195C)“ und klicken Sie auf „Weiter“
- Bearbeiten Sie ggf. die anstehenden Informationen, aktivieren Sie "Drucker freigeben" und drücken Sie auf "Weiter"
- Navigieren Sie unter "Oder stellen Sie eine PPD-Datei bereit" zur extrahierten Datei "brother_dcp195c_printer_en.ppd" und laden Sie sie hoch. Folgen Sie den nächsten Schritten ... fertig
Danach war der Drucker verfügbar, aber mit einem Fehler:"Datei "/usr/lib/cups/filter/brlpdwrapperdcp195c" nicht verfügbar" Da ich den Treiber auf meinem Ubuntu-Laptop installiert habe, konnte ich die Datei einfach von meinem Laptop unter / kopieren usr/lib/cups/filter/ zum pi
Danach konnte mein Laptop den Drucker
findenSie können den i386-Treiber durch Emulation auf dem Raspberry Pi zum Laufen bringen, obwohl er einen anderen Befehlssatz hat. Es ist sehr langsam und dauert Minuten, bis der Ausdruck ankommt, aber es funktioniert.
Ich habe den Hinweis in diesem Forumsbeitrag gefunden:https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=15526&start=25#p708038
Schritt 1:Installieren Sie den Treiber gemäß den Anweisungen in der Brother-Dokumentation
Sie sollten ein Verzeichnis wie /opt/brother/Printers/dcp195c/lpd
haben mit der Filterbinärdatei brdcp195cfilter
. Diese Binärdatei wird von filterdcp195c
aufgerufen Shell-Skript direkt daneben im selben Verzeichnis.
Ich glaube, sie bieten jetzt ein Installationsskript an, aber ich habe darauf verzichtet. Irgendwo gibt es eine Anleitung was vorinstalliert werden muss.
Schritt 2:Bringen Sie die i386-Emulation zum Laufen
Dies folgt den Schritten unter https://wiki.debian.org/QemuUserEmulation
Am Ende von Schritt 2 sollten Sie in der Lage sein, i386-Binärdateien wie normale Binärdateien auszuführen. In ps ax
, sie zeigen
Qemu installieren
Installieren Sie die Pakete qemu
, binfmt-support
und qemu-user-static
.
Führen Sie update-binfmts --display
aus um zu sehen, welche Binärformate unterstützt werden. Sie sollten auf Raspbian und Debian automatisch aktiviert werden.
Installieren Sie x86-Unterstützungsbibliotheken
Fügen Sie auf Raspbian eine Zeile wie diese zu Ihrem /etc/apt/sources.list
hinzu :
## Debian i386
deb [arch=i386] http://http.debian.net/debian stable main contrib non-free
Ein anderes Debian-Repository reicht auch aus.
Das Raspbian-Repository enthält keine x86-Binärdateien, fügen Sie also [arch=armhf]
hinzu Linie zu Ihren bestehenden Linien beginnend mit deb
. Die Zeilen, die mit deb-src
beginnen kann unverändert beibehalten werden.
Teilen Sie Raspbian mit, dass Sie ein Multiarch-System mit i386-Paketen wünschen, und holen Sie sich die i386-libc. Für update
Schritt zur Arbeit müssen Sie die Debian-GPG-Schlüssel für die Paketverwaltung importieren und ihnen vertrauen.
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386
An diesem Punkt sollten Sie in der Lage sein, brdcp195cfilter
auszuführen Binärdatei, die mit dem Treiber geliefert wird:
$ ./brdcp195cfilter
ERROR: ld.so: object '/usr/lib/arm-linux-gnueabihf/libarmmem.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
Error: invalid option !!
Wenn Sie diese Ausgabe sehen, hat es funktioniert. Die Error: invalid option !!
Zeile ist brdcp195cfilter
sich darüber beschweren, dass Sie Argumente hätten übergeben sollen.
Optional:Entfernen Sie ld.so
Fehlermeldung
Raspbian verwendet /etc/ld.so.preload
um den libarmmem
vorab zu laden Bibliothek in alle Prozesse. Die Bibliothek ersetzt einige teure Speicherroutinen durch schnellere Routinen, die in ARM-Assembler geschrieben wurden, ist aber nicht unbedingt erforderlich, um Raspbian auszuführen.
Es ist sicher, die Warnung zu ignorieren, aber auch diese Zeile aus /etc/ld.so.preload
zu entfernen oder auszukommentieren . Die Warnung wird in den CUPS-Fehlerprotokollen angezeigt, wenn sie nicht deaktiviert ist.
Schritt 3:Mit CUPS zum Laufen bringen
Sie sollten eine CUPS-Installation haben, indem Sie den Anweisungen auf der Brother-Website folgen.
Flaue USB-Verbindung
Auf meinem Raspberry die dmesg
log wechselte irgendwann schnell zwischen diesen Zeilen:
[58981.586842] usblp0: removed
[59222.794260] usblp 1-1.3:1.0: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x04F9 pid 0x0222
Was es für mich behoben hat, war, zu localhost:631
zu gehen (die CUPS-Weboberfläche) und ändern Sie den Drucker im Abschnitt "Drucker" so, dass er das von CUPS erkannte USB-Gerät anstelle von usb://dev/usb/lp0
verwendet Gerät.
Lassen Sie den Drucker Daten mit normaler Geschwindigkeit empfangen
brdcp195cfilter
ist ein Schritt im Druckprozess, der eine riesige Eingabe-Bitmap empfängt und sie in etwas umwandelt, das später an das Druckergerät weitergeleitet wird. Ich habe eine Eingabegröße von ca. 90 MB für eine einfache "Hallo Welt"-Nachricht oben auf der Seite gemessen.
Die Emulation auf dem Raspberry ist nicht schnell genug, um den Drucker mit Daten zu füttern. Der Druck funktioniert, aber ich habe ungesunde Geräusche von den aktiven Druckermotoren gehört, während ich auf Daten wartete.
Um dies zu beheben, installieren Sie das Dienstprogramm sponge
aus dem moreutils
Paket und bearbeiten Sie filterdcp195c
sodass die Ausgabe von $BRCONV $BRCONV_OP
(alias brdcp195cfilter
) wird durch sponge
geleitet . Am Ende der Datei sollten in den Fällen „PostScript“, „PDF“ und „*“ drei Zeilen vorhanden sein, die auf ... | $BRCONV $BRCONV_OP | sponge
enden .
Dadurch wird die gesamte Ausgabe des lang andauernden Konvertierungsprozesses verschlungen und nur dann auf einmal an den Drucker gesendet, wenn die Konvertierung abgeschlossen ist. Dadurch dauert es länger, bis der Druck startet, aber der Drucker empfängt seine Daten in normaler Geschwindigkeit.
(sponge
speichert die Daten, die es zwischenspeichert, in einem temporären Verzeichnis, sodass Sie nicht durch den Arbeitsspeicher des Raspberry Pi eingeschränkt sind)