In breve:devi estrarre il file ppd dal driver linux
lungo:
PRIMA
- Vai al sito web di Brothers Driver e cerca DCP195:http://support.brother.com
- Scarica la versione Linux deb del "driver della stampante CUPSwrapper (pacchetto deb)"
- Apri il file deb con uno strumento di compressione e segui il percorso fino a "dcp195ccupswrapper-1.1.3-1.i386/opt/brother/Printers/dcp195c/cupswrapper"
- Estrai il file "brother_dcp195c_printer_en.ppd"
SECONDO
- Apri l'interfaccia web delle tazze tramite
https://192.168.1.2:631/admin
[sostituisci l'ip con i pi] - Fai clic su "Aggiungi stampante" Seleziona "Brother DCP-195C (Brother DCP-195C)" e premi "continua"
- Modifica le informazioni imminenti se necessario, seleziona "condividi stampante" e premi "continua"
- In "Oppure fornisci un file PPD" cerca il file "brother_dcp195c_printer_en.ppd" estratto e caricalo Segui i passaggi successivi...fatto
Successivamente, la stampante era disponibile, ma con un errore:"File "/usr/lib/cups/filter/brlpdwrapperdcp195c" non disponibile "Poiché ho installato il driver sul mio laptop Ubuntu, ho potuto semplicemente copiare il file dal mio laptop in / usr/lib/cups/filter/ al pi
Successivamente, il mio portatile potrebbe trovare la stampante
Puoi far funzionare il driver i386 sul Raspberry Pi tramite l'emulazione, anche se ha un set di istruzioni diverso. È molto lento e ci vogliono minuti prima che arrivi la stampa, ma funziona.
Ho trovato il suggerimento in questo post del forum:https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=15526&start=25#p708038
Passaggio 1:installa il driver come indicato nella documentazione Brother
Dovresti avere una directory come /opt/brother/Printers/dcp195c/lpd
con il filtro binario brdcp195cfilter
. Questo binario è chiamato dal filterdcp195c
script di shell proprio accanto ad esso nella stessa directory.
Credo che ora offrano uno script di installazione, ma l'ho fatto senza. Ci sono istruzioni da qualche parte su ciò che deve essere preinstallato.
Passaggio 2:fai funzionare l'emulazione i386
Questo sta seguendo i passaggi su https://wiki.debian.org/QemuUserEmulation
Alla fine del passaggio 2, dovresti essere in grado di eseguire i binari i386 proprio come i normali binari. In ps ax
, mostreranno
Installa Qemu
Installa i pacchetti qemu
, binfmt-support
e qemu-user-static
.
Esegui update-binfmts --display
per vedere quali formati binari sono supportati. Dovrebbero essere abilitati automaticamente su Raspbian e Debian.
Installa le librerie di supporto x86
Su Raspbian, aggiungi una riga come questa al tuo /etc/apt/sources.list
:
## Debian i386
deb [arch=i386] http://http.debian.net/debian stable main contrib non-free
Va bene anche un altro repository Debian.
Il repository Raspbian non ha binari x86, quindi aggiungi un [arch=armhf]
line alle righe esistenti che iniziano con deb
. Le righe che iniziano con deb-src
può essere mantenuto così com'è.
Dì a Raspbian che vuoi un sistema multiarch con pacchetti i386 e ottieni i386 libc. Per il update
passo per funzionare, dovrai importare e fidarti delle chiavi Debian GPG per la gestione dei pacchetti.
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386
A questo punto, dovresti essere in grado di eseguire brdcp195cfilter
binario fornito con il driver:
$ ./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 !!
Se vedi questo output, ha funzionato. Il Error: invalid option !!
la riga è brdcp195cfilter
lamentarsi che avresti dovuto passare argomenti.
Facoltativo:rimuovi ld.so
messaggio di errore
Raspbian usa /etc/ld.so.preload
per precaricare il libarmmem
libreria in tutti i processi. La libreria sostituisce alcune costose routine di memoria con routine più veloci scritte in assembly ARM, ma non è strettamente necessaria per eseguire Raspbian.
È sicuro ignorare l'avviso, ma anche rimuovere o commentare quella riga da /etc/ld.so.preload
. L'avviso verrà visualizzato nei log degli errori di CUPS se non disabilitato.
Passaggio 3:fallo funzionare con CUPS
Dovresti avere un'installazione di CUPS seguendo le istruzioni dal sito web di Brother.
Connessione USB instabile
Sul mio Raspberry, il dmesg
log stava alternando rapidamente queste righe ad un certo punto:
[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
Ciò che mi ha risolto è stato passare a localhost:631
(l'interfaccia web di CUPS) e modificare la stampante nella sezione "Stampanti" in modo che utilizzi il dispositivo USB riconosciuto da CUPS anziché il usb://dev/usb/lp0
dispositivo.
Lascia che la stampante riceva i dati a una velocità normale
brdcp195cfilter
è una fase del processo di stampa che riceve un'enorme bitmap di input e la converte in qualcosa che successivamente viene reindirizzato al dispositivo della stampante. Ho misurato una dimensione di input di ~90 MB per un semplice messaggio "Ciao mondo" nella parte superiore della pagina.
L'emulazione sul Raspberry non è abbastanza veloce per tenere il passo con l'alimentazione della stampante con i dati. La stampa funziona, ma ho sentito rumori malsani dai motori della stampante attivi durante l'attesa dei dati.
Per risolvere questo problema, installa l'utility sponge
dal moreutils
package e modifica filterdcp195c
in modo che l'output di $BRCONV $BRCONV_OP
(ovvero brdcp195cfilter
) viene convogliato tramite sponge
. Dovrebbero esserci tre righe all'interno dei casi "PostScript", "PDF" e "*" alla fine del file, che terminano con ... | $BRCONV $BRCONV_OP | sponge
.
Ciò che fa è assorbire tutto l'output dal processo di conversione di lunga durata e inviarlo alla stampante tutto in una volta solo quando il convertitore è terminato. In questo modo, l'avvio della stampa richiede più tempo, ma la stampante riceve i dati a una velocità normale.
(sponge
memorizza i dati che memorizza nel buffer in una directory temporanea, quindi non sei limitato dalla RAM del Raspberry Pi)