GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Debian ARM und Brother DCP195C mit CUPS

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

finden

Sie 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)


Linux
  1. Tipps und Tricks zur Verwendung von CUPS zum Drucken unter Linux

  2. Beschleunigen Sie Apache mit mod_pagespeed und Memcached auf Debian 8

  3. Trimmen mit Lvm und Dm-Crypt?

  4. Richten Sie Apache und Php mit mod_fcgid auf Ubuntu/Debian ein

  5. Debian ARM und Brother DCP195C mit CUPS

Serverüberwachung mit Munin und Monit unter Debian 10

Virtuelles Hosting mit vsftpd und MySQL auf Debian Squeeze

Serverüberwachung mit Munin und Monit auf Debian 8 (Jessie)

So richten Sie Mailman mit Debian und ISPConfig ein

So installieren Sie das Discourse Forum unter Debian 10 mit Nginx und Let’s Encrypt

Erhalten Sie System- und Hardwaredetails mit uname und lscpu unter Debian