Raspberry Pi jako serwer wydruku
Jak to się mówi... Potrzeba jest matką wynalazków. W moim przypadku był to problem takiego rodzaju że na dwa komputery w biurze miałem jedną drukarkę. Dość starą drukarkę bo to HP LaserJet 1010 wydana w wrześniu 2003. Drukarka nie ma żadnych innych portów niż USB type B, i stała daleko od komputera a ja nie miałem tak długiego kabla żeby ją podłączyć. Więc wpadłem na pomysł aby podłączyć ją do Raspberry i zrobić z RPI serwer wydruku. Poniżej znajdują się czynność, które wykonywałem aby to skonfigurować.
- Instalacja aktualizacji oraz niezbednych pakietów.
$ sudo apt update $ sudo apt upgrade $ sudo apt install cups
- Umożliwienie dostępu z sieci do CUPS Raspberry Pi, w normalnych warunkach CUPS nasłuchuje tylko i wyłącznie na pętli zwrotnej.
$ sudo cupsctl --remote-admin --remote-any --share-printers
- Dodawnie uprawnień użytkownikom do zarządzania drukarkami.
W pliku /etc/cups/cupsd.conf odszukujemy sekcję
Limit CUPS-Add-Modify-Printer
pierwszą napotkaną, może ich być wiele, następnie w opcjiRequire user
po@SYSTEM
dopisujemy użytkownika, w tym przypadku będzie to pi. Zapisujemy plik i restartujemy usługę.$ sudo systemctl restart cups
- Dodawnie drukarki w systemie CUPS
W przeglądarce w pasku adresu, wpisujemy http://<adres_ip raspberry_pi>:631, klikamy na zakładkę
Administration
, następnie wybieramy opcjeAdd printer
. Zostanie poproszeni o dane logowania, używamy danych logowania z użytkownika pi. W sekcjiLocal printers
powinniśmy dostrzec naszą drukarkę. Jeśli tak to wybieramy ją i klikamycontinue
. Następnie zaznaczamy opcjęShare this printer
i klikamycontinue
. W opcjiModel
, wyszukujemy model podłączonej drukarki, jeśli nie możemy go znaleźć oznacza to że nie ma sterowników zainstalowanych do naszego urządzenia. Jeśli znaleźlismy naszą drukarkę możemy teraz przejść do punktu nr. 6. - Instalacja sterowników drukarki w systemie Linux.
Jeśli CUPS nie obsługuje naszej drukarki domyślnie, to pierwszą rzeczą jaką powinniśmy zrobić to odwiedzić stronę http://openprinting.org/printers. Znajdują się na niej otwarte sterowniki drukarek. Jeśli nie znaleźliśmy na niej nic odpowiedniego dla naszego urządzenia pozostaje, nam tylko strona producenta. Po zainstalowaniu sterownika, wracamy z powrotem do punktu 4. Uwaga! Drukarki HP przy wyborze sterownika HPLIP (sterownik własnościowy), należy instalować z poziomu oprogramowania sterownika. Po zainstalowaniu sterownika za pomocą polecenia:
$ sudo apt install hplip
Uruchamiamy kreator dodawania drukarek poleceniem:
$ sudo hp-setup -i
Kreator zapyta o typ połączania (usb, lan, lpt), a następnie automtycznie wykryje podłączoną drukarkę, lub poprosi o wybór urządzenia jeśli podłączyliśmy więcej niż jedno. Po tym kreator zapyta o instalację pluginu, jest on niezbędny do obsługi naszego urządzenia. Plugin zostanie pobrany ze strony HP, w trakcie możemy otrzymać błąd
Unable to receive key from keyserver
, nie jest to błąd krytyczny, musimy po prostu potwierdzić że chcemy pobrać wtyczkę bez weryfikacji źródła. Po zainstalowaniu wtyczki zostanie zapytanie o dodanie kolejki wydruku, opis oraz lokalizację drukarki. Na koniec zostaniemy zapytani o stronę testową. Warto to zrobić ponieważ od razu będzie wiadomo czy drukarka współpracuje z zainstalownym właśnie sterownikiem.Po wydrukowaniu strony testowej, drukarka powinna automatycznie pojawić się w panelu CUPS.
- Dodawanie drukarki w systemie Windows
Możliwe są dwa dojścia. Zauważyłem że np. drukarka HP LaserJet 1020, nie chcę drukować po zainstalowaniu za pomocą protokołu Bonjour firmy Apple. Mimo pojawiących się rzeczy w kolejce wydruku w panelu CUPS.
- Dojście nr. 1 - protokoł Bonjour:
Na naszym Windowsie instalujemy program Kreator drukarek Bonjour Po uruchomieniu powinien automatycznie odszukać drukarę, widniejącą pod: <nazwa_drukarki>@<nazwa_hosta_raspberry>. Następnie wybieramy sterownik, jeśli nie znaleźliśmy naszego możemy go załadować z dysku. Na razie wybierzmy jakiś generyczny sterownik, ponieważ program lub się tu wykrzaczyć i po prostu nieoczekiwanie zamknąć. Po dodaniu drukarki, przechodzimy do jej właściwości w
Panelu sterowania
czy wUstawieniach
, wybieramy drukarkę klikamy na nią PPM z menu kontekstowego wybieramy opcjęWłaściwości drukarki
następnie zakładkęZaawansowane
w sekcjiSterownik
, kilkamyNowy sterownik
i dopiero tutaj ładujemy nasz sterownik. Dla pewności drukujemy stronę testową. To dojście działa między innymi dla HP LaserJet 1010 na Windows 10. - Dojście nr. 2 - ręczna konfiguracja IPP:
Sposób może brzmieć skomplikowanie, jedak jest prostszy niż poprzedni... W aplecie
Urządzenia i drukarki
' panelu sterowania wybieramyDodaj drukarkę
następnie odnośnikDrukarki, której szukam nie ma na liście'
zaznaczamy opcjeWybierz drukarkę udostępnioną według nazwy
w poniższym okienku wpisujemy:http://<adres_ip_raspberry>:631/printers/<nazwa_drukarki_w_CUPS>
Potem klikamy przycisk
Dalej
, system powinien się skomunikować z drukarką i wyświetlić nam okienko wyboru sterowników. Wybieramy odpowiedni dla naszego urządzenia sterownik lub ładujemy go z dysku. Po zainstalowniu, drukujemy stronę testową.
- Dojście nr. 1 - protokoł Bonjour:
- Dostrajanie CUPS. (Opcjonalnie)
Nie będzie tu tego wiele. Ale dwie rzeczy rzucają się w oczy przy wykorzystywaniu serwera wydruku z RPI np. w firmie. Pierwsza z nich to korzystanie z nazwy FQDN zamiast z adresu IP, oraz logowanie do samego panelu administracyjnego, a nie tylko do funkcji zarządzania drukarkami.
- Przyjazna nazwa serwera wydruku.
W pliku konfiguracyjnym /etc/cups/cupsd.conf, edytujemy opcję
Listen
, ustawiając ją na*:631
następnie pod nią dopisujemy opcjęServerAlias
ustawiając ją na FQDN naszego serwera wydruku. Plik zapisujemy i restartujemy usługę.$ sudo systemctl restart cups
- Blokada nieautoryzowanego dostępu do panelu administracyjnego CUPS.
W pliku konfiguracyjnym, odnajdujemy sekcję
<Location /admin>
dopisujemy wewnątrz niej opcjęRequire user @SYSTEM pi
. Plik zapisujemy i restartujemy usługę.
- Przyjazna nazwa serwera wydruku.
To rozwiązanie działa... Do czasu. Po kilku miesiącach drukarka na każdą stronę wydruku, drukowała Stronę z napisem "Unsupported Personality: PCL". Pomogła zmiana sterownika z HPLIP na CUPS+Gutenprint, ale co ciekawe tylko na Debianie. Na innych systemach drukarka nie chciała w ogóle drukować na tym sterowniku. Po tych doświadczeniach stwierdzam że nie ma się co bawić w takie rozwiązania, lepiej kupić jakąś porządną drukarkę sieciową ze wsparciem zarówno dla systemów GNU/Linux jak MS Windows.
~xf0r3m