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-Printerpierwszą napotkaną, może ich być wiele, następnie w opcjiRequire userpo@SYSTEMdopisujemy 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 printerspowinniśmy dostrzec naszą drukarkę. Jeśli tak to wybieramy ją i klikamycontinue. Następnie zaznaczamy opcjęShare this printeri 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 sterowaniaczy wUstawieniach, wybieramy drukarkę klikamy na nią PPM z menu kontekstowego wybieramy opcjęWłaściwości drukarkinastępnie zakładkęZaawansowanew sekcjiSterownik, kilkamyNowy sterowniki 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 nazwyw 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*:631następnie pod nią dopisujemy opcjęServerAliasustawiają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