Zmagania z sterownikiem Brother'a pod Linux'em

• 5 minut aby przeczytać

Słowem wstępu..

Choć urządzenie o którym mowa będzie w dzisiejszym wpisie (Brother DCP-J515W) lata świetności ma już dawno za sobą (od tego czasu powstało wiele równie udanych konstrukcji tej firmy) jestem przekonany, że wciąż jest wiele osób posiadających ten konkretny model sprzętu które mają podobne o ile nie takie same problemy, stąd pomysł na dzisiejszy wpis.

Dzisiaj opiszę Wam moją walkę ze sterownikami Brother pod Ubuntu, generalnie ilekrośc zmieniam system (szczególnie na Linux’ie) pojawia się problem z sterownikami do wspomnianej drukarki. I wcale nie chodzi tu o to, że sterowników brakuje tylko nie do końca działają tak jak powinny. O ile zwykły sterownik drukarki Brother’a zazwyczaj działa bez zarzutu a jego instalacja jest step-by-step wyjaśniona w README o tyle sterownik odpowiadający za skaner (jest to drukarka wielofunkcyjna 3w1) prawie nigdy nie chce współpracować.

Znudzony tym stanem rzeczy i ciągłym zmaganiem się co jakiś czas z dokładnie tym samym problemem postanowiłem opisać co i jak w razie gdybym musiał powrócić do tego tematu za jakiś czas. Wydaje mi się, że przedstawione tutaj wskazówki są bez większego trudu w stanie zadziałać także pod innymi dystrybucjami stąd taki a nie inny tytuł.

Instalacja sterowników

Ok, zaczynajmy - instalacje przeprowadze na systemie Ubuntu 20.04, na początek musimy pobrać właściwe sterowniki ze strony producenta. Sterowniki dla DCP-J515W znajdziemy tutaj, z reguły aby było mniej problemu i całość przebiegła znacznie szybciej dobrze jest wybrać paczkę zawierającą wszystkie sterowniki (pierwsza opcja czyli Driver Install Tool).

Paczkę pobieramy oczywiście w formacie deb. Cała reszta sprowadza się do wykonania instrukcji która pojawia się zaraz po pobraniu pakietu.

  1. Przechodzimy do katalogu w którym znajduje się nasza paczka (z reguły Download / Pobrane) i otwieramy tam terminal (np. z GUI “Otwórz termianl tutaj”).
  2. Następnie wydajemy komendę: gunzip linux-brprinter-installer-*.*.*-*.gz, jeżeli nie mamy gunzip instalujemy sudo apt install gunzip.
  3. Po wypakowaniu przechodzimy na konto root’a, z pomocą polecenia: sudo su, podajemy hasło do naszego konta
  4. Wykonujemy z poziomu root’a ostatnie polecenie czyli wykonujemy wypakowany skrypt bash’a: bash linux-brprinter-installer-*.*.*-* DCP-J515W, na końcu którego podajemy nazwę naszej drukarki.
  5. Instalacja jest zależna od tego w jaki sposób chcemy skonfigurować naszą drukarkę (czy za pomocą LAN czy po USB). Przy pytaniu: “Will you specify the DeviceURI ?
    • Dla połączenia USB wybieramy: N(No)
    • Dla połączenia LAN wybieramy: Y(Yes) i podajemy adres do drukarki np. adres IP.

W moim przypadku drukarka jest na stałe podpięta do domowego WiFi i ma ustawiony statyczny adres, jeżeli chcecie zobaczyć jak przebiegał cały proces instalacji na moim przykładzie to możecie go sobie obejrzeć tutaj. Coś dla widzów tylko o mocnych nerwach czyli całe nagranie w terminalu :)

Rozwiązanie problemu z skanerem

Teraz czas na skaner, a właściwie jak sprawić aby podstawowe narzędzie dostępne w systemie Ubuntu (w tym przypadku Simple Scan / Proste skanowanie) do skanowania plików było w stanie poradzić sobie z obsługą naszej drukarki. Możemy to zrobić tworząc dowiązanie symboliczne do odpowiednich plików które zostają utworzone podczas instalacji sterowników do właściwego folderu.

Chodzi nam o to aby w folderze /usr/lib/x86_64-linux-gnu/sane pojawiły się pliki (a konkretniej jeden plik) wymagany do obsługi naszego skanera. Te pliki można znaleźć zaraz po instalacji sterowników Brother’a w folderze /usr/lib64/sane/.

Jeżeli przeanalizujemy sobie co znajduje się w folderze /usr/lib/x86_64-linux-gnu/sane to zobaczymy, że dokładnie wszystkie pliki tam wyglądają niemal identycznie [dowolna_nazwa].so.1 i jak się okazuje ma to niebagatelne znaczenie (o czym za chwile).

Zresztą wystaczy wejść do tego katalogu i wylistować pliki aby się przekonać: cd /usr/lib/x86_64-linux-gnu/sane a następnie wykonać zwykłe ls

Powinniśmy uzyskać podobny do poniższego rezulata:

libsane-hpaio.so.1.0.0            libsane-teco1.so.1
libsane-hpljm1005.so.1            libsane-teco1.so.1.0.29
libsane-hpljm1005.so.1.0.29       libsane-teco2.so.1
libsane-hpsj5s.so.1               libsane-teco2.so.1.0.29
libsane-hpsj5s.so.1.0.29          libsane-teco3.so.1
...

Natomiast gdy przejdziemy do naszego folderu w którym znajdują się potrzebne do działania skanera pliki i zrobimy dokładnie to samo tylko wraz opcją -l możemy dowiedzieć się co tak naprawdę jest grane, wykonujemy:

cd /usr/lib64/sane/ a potem ls -l i powinniśmy otrzymać coś takiego:

lrwxrwxrwx 1 root root     37 lut  4  2015 libsane-brother3.so -> /usr/lib64/sane/libsane-brother3.so.1
lrwxrwxrwx 1 root root     41 lut  4  2015 libsane-brother3.so.1 -> /usr/lib64/sane/libsane-brother3.so.1.0.7
-rwxr-xr-x 1 root root 111264 lut  4  2015 libsane-brother3.so.1.0.7

Jak można zauważyć pierwsze dwa “niby” pliki to linki symboliczne prowadzące tak naprawdę do jednego i tego samego libsane-brother3.so.1.0.7. To co musimy zrobić aby całość zadziałała to zrobić taki sam link tylko z innej lokalizacji. Wykonujemy więc:

sudo ln -s /usr/lib64/sane/libsane-brother3.so.1.0.7 /usr/lib/x86_64-linux-gnu/sane/libsane-brother3.so.1

No i tutaj warto zwrócić uwagę na nazwę pliku będącego linkiem jeżeli zmienimy nazwe pliku i zamiast .so.1 podamy zupełnie inną końcówkę (np. jedną z tych które były w folderze z sterownikami) całość nie zadziała i nasz skaner po uruchomieniu aplikacji wciąż nie zostanie rozpoznany i otrzymamy komunikat:

Simple Scan - finding scanner failed

Jeżeli natomiast udało nam się poprawnie podlinkować plik i nic nie zepsuliśmy na etapie instalacji sterowników, naszym oczom powinien się ukazać taki oto widok:

Simple Scan - found Brother scanner device

Oczywiście problem nie był taki błahy jak jego rozwiązanie a przekopanie się przez kilkadziesiąt forów i blogów trochę zajeło, rozwiązanie to oryginalnie znalazłem zupełnie przypadkowo tutaj.

TL;DR

Po instalacji oryginalnych sterowników ze strony producenta (w przypadku Ubuntu 20.04) całość sprowadza się do wydania polecenia:

sudo ln -s /usr/lib64/sane/libsane-brother3.so.1.0.7 /usr/lib/x86_64-linux-gnu/sane/libsane-brother3.so.1

Właściwie to wszystko prosto i bez zbędnych ceregieli, teraz po uruchomieniu programu Simple scan / Proste skanowanie nasz skaner powinien zostać poprawnie znaleziony.

Podumowując

Czasami warto nieco bardziej zgłębić temat i pobawić się pewnymi rzeczami nieco dłużej aby wypracować sobie właściwe dla nich rozwiązanie. Dajcie też znać czy tego typu wpisy uważacie za przydatne i czy chcielibyście więcej. Tymczasem trzymajcie się i do następnego razu!

Hardwarebrotherskanerdcp-j515w
comments powered by Disqus