Instalacja brother DCP-165C na systemie z ARM i dodanie do CUPS

Postaram się pokazać na przykładzie NanoPi NEO (wersja z 256MB RAM) zainstalować brother DCP-165C, aby móc na niej coś wydrukować.

na początek należy zainstalować cups:

apt -y install cups

oraz dodać architekturę i386:

dpkg --add-architecture i386

instalujemy:

dcp165clpr-1.1.2-2.i386.deb
dcp165ccupswrapper-1.1.2-2.i386.deb

są to sterowniki od producenta, możemy je znaleźć u producenta lub dodaję je tutaj:

https://bucket.linuxsystems.ovh/DCP165C/dcp165clpr-1.1.2-2.i386.deb

https://bucket.linuxsystems.ovh/DCP165C/dcp165ccupswrapper-1.1.2-2.i386.deb

Teraz gdy mamy to zainstalowane musimy zainstalować emulację i386:

apt install -y qemu binfmt-support qemu-user-static

Oraz musimy skopiować pliki z katalogu /lib/i386-linux-gnu/ z komputera który ma architecturę i386 (nie arm) i wysłać do nanoPi (np. za pomocą SCP) i także wkleić do katalogu /lib/i386-linux-gnu/ (jeżeli nie masz takiej możliwości – katalog ten jest dostępny stąd: https://bucket.linuxsystems.ovh/DCP165C/i386_lib.tar.gz ), oraz musimy mieć plik ld-linux.so.2 z katalogu /lib ( do pobrania stąd: https://bucket.linuxsystems.ovh/DCP165C/ld-linux.so.2 ) Podłączamy drukarkę po kablu USB do naszego NanoPi i przechodzimy do CUPS (port 631) i dodajemy nową drukarę:

Administrator -> Add printer -> tutaj pyta o hasło do użytkownika root, więc podajemy login i hasło użytkownika root -> wybieramy naszego brother -> Dalej i potem można wybrać model lub wybrać plik ppd, my podajemy mu plik ppd, który pobierzemy stąd:

https://bucket.linuxsystems.ovh/DCP165C/dcp165c.ppd

Potem dalej, dalej…

teraz przy próbie wydrukowania jakiegoś pliku (testowałem na stronie testowej pakietu CUPS) będziemy mieli błąd (w plikach /var/log/cups/*log) w postaci:

/usr/local/Brother/Printer/dcp165c/lpd/filterdcp165c: 45: /usr/local/Brother/Printer/dcp165c/lpd/brdcp165cfilter: Exec format error

Trzeba teraz przejść do następujących plików i dodać do nich: /usr/bin/qemu-i386-static ( zamiast vim podstaw swój ulubiony edytor tekstu):

vim /usr/local/Brother/Printer/dcp165c/lpd/filterdcp165c

szukamy linijki:

                eval cat $INPUT_TEMP | $PSCONV $PSCONV_OP | $BRCONV $BRCONV_OP

i dopisujemy:

/usr/bin/qemu-i386-static

a więc powinno wyglądać to tak:

                eval cat $INPUT_TEMP | $PSCONV $PSCONV_OP | /usr/bin/qemu-i386-static $BRCONV $BRCONV_OP

I później próbujemy drukować.

Jak dobrze pamiętam – niestety opis powstał dużo później niż to robiłem – drukarka powinna działać poprawnie w CUPS i powinna być możliwość udostępnienia tej drukarki po sieci dla innych użytkowników.

Jakby były jakieś jeszcze błędy proszę o komentarz, postaram się zaktualizować opis, bądź pomóc jeżeli będzie taka możliwość.