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ść.