Sterownik i386 działa na Raspberry Pi poprzez emulację, nawet jeśli ma inny zestaw instrukcji. Jest bardzo powolny i trwa kilka minut, zanim nadejdzie wydruk, ale działa.
Znalazłem podpowiedź w tym poście na forum: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=15526&start=25#p708038
Krok 1: Zainstaluj sterownik zgodnie z instrukcjami w dokumentacji Brother
Powinieneś mieć katalog taki jak /opt/brother/Printers/dcp195c/lpd
z binarnym filtrem brdcp195cfilter
. Ten plik binarny jest wywoływany przez filterdcp195c
skrypt powłoki tuż obok niego w tym samym katalogu.
Wierzę, że oferują teraz skrypt instalacyjny, ale zrobiłem to bez. Gdzieś znajdują się instrukcje, które muszą zostać preinstalowane.
Krok 2: Uzyskaj działanie emulacji i386
To jest zgodne z krokami w https://wiki.debian.org/QemuUserEmulation
Pod koniec kroku 2 powinieneś być w stanie uruchomić binaria i386, tak jak zwykłe pliki binarne. W ps ax
, pokażą się
Zainstaluj Qemu
Zainstaluj pakiety qemu
, binfmt-support
i qemu-user-static
.
Biegać update-binfmts --display
aby zobaczyć, które formaty binarne są obsługiwane.
Powinny być automatycznie włączone w Raspbian i Debian.
Zainstaluj biblioteki obsługi x86
Na Raspbian dodaj linię do tej /etc/apt/sources.list
:
## Debian i386
deb [arch=i386] http://http.debian.net/debian stable main contrib non-free
Inne repozytorium Debiana również będzie działać.
Repozytorium Raspbian nie ma plików binarnych x86, więc dodaj [arch=armhf]
linia do istniejących linii zaczynając od deb
. Linie zaczynające się od deb-src
może być utrzymany bez zmian.
Powiedz Raspbianowi, że chcesz mieć system wieloparametrowy z pakietami i386 i pobierz libc i386. Dla update
krok do pracy, musisz zaimportować i zaufać kluczom Debian GPG do zarządzania pakietami.
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386
W tym momencie powinieneś być w stanie wykonać brdcp195cfilter
plik binarny dostarczany ze sterownikiem:
$ ./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 !!
Jeśli zobaczysz to wyjście, zadziałało. The Error: invalid option !!
linia jest brdcp195cfilter
narzekając, że powinieneś przekazać argumenty.
Opcjonalne: Usuń ld.so
Komunikat o błędzie
Raspbian używa /etc/ld.so.preload
wstępnie załadować libarmmem
biblioteka do wszystkich procesów. Biblioteka zastępuje niektóre drogie procedury pamięci szybszymi procedurami zapisanymi w zespole ARM, ale nie jest konieczne do uruchomienia Raspbian.
Można bezpiecznie zignorować to ostrzeżenie, ale również bezpiecznie usunąć lub skomentować tę linię /etc/ld.so.preload
. Ostrzeżenie pojawi się w dziennikach błędów CUPS, jeśli nie zostanie wyłączone.
Krok 3: Zrób to z CUPS
Powinieneś mieć instalację CUPS zgodnie z instrukcjami ze strony internetowej Brother.
Błędne połączenie USB
Na mojej malinowej dmesg
dziennik zmieniał się szybko między tymi liniami w pewnym momencie:
[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
To, co naprawiło to dla mnie, to iść do localhost:631
(interfejs WWW CUPS) i zmodyfikuj drukarkę w sekcji „Drukarki”, aby korzystała z urządzenia USB rozpoznanego przez CUPS, a nie usb://dev/usb/lp0
urządzenie.
Pozwól drukarce otrzymywać dane z normalną prędkością
brdcp195cfilter
to krok w procesie drukowania, który otrzymuje ogromną bitmapę wejściową i konwertuje ją na coś, co później jest przesyłane do drukarki. Zmierzyłem rozmiar wejściowy ~ 90 MB dla prostego komunikatu „Witaj świecie” na górze strony.
Emulacja w Raspberry nie jest wystarczająco szybka, aby nadążyć za podawaniem danych do drukarki. Druk działa, ale słyszałem niezdrowe odgłosy z silników drukarki, które były aktywne podczas oczekiwania na dane.
Aby to naprawić, zainstaluj narzędzie sponge
z moreutils
pakuj i edytuj filterdcp195c
tak, że wyjście $BRCONV $BRCONV_OP
(znany jako. brdcp195cfilter
) jest jednak wyrzucony sponge
. W końcu „PostScript”, „PDF” i „*” na końcu pliku powinny znajdować się trzy linie, kończące się na ... | $BRCONV $BRCONV_OP | sponge
.
Ma to na celu pochłonięcie wszystkich danych wyjściowych z długotrwałego procesu konwertera i wysyłanie go do drukarki tylko raz, gdy konwerter jest gotowy. W ten sposób drukowanie trwa dłużej, ale drukarka odbiera dane w normalnym tempie.
( sponge
przechowuje dane buforowane w tymczasowym katalogu, więc nie jesteś ograniczony przez RAM Raspberry Pi