Dziś będzie o wykorzystaniu Raspberry Pi jako serwer wydruku (print serwer), dzięki czemu z podłączonej do Pi drukarki (USB) będzie mógł korzystać każdy komputer w naszej sieci.

Common UNIX Printing System (CUPS)

CUPS to system/program, który umożliwia nam m.in. relatywnie wygodne udostępnienie (i zarządzanie) drukarek podłączonych do komputera z systemem LINUX innym urządzeniom w sieli LAN.

CUPS (Common UNIX Printing System) – jest nowoczesnym, przenośnym systemem obsługi urządzeń drukujących dla systemów bazujących na architekturze UNIX. CUPS został wydany przez firmę Easy Software Products na licencji GNU GPL. W lutym 2007 roku został wykupiony (razem z ESP) przez firmę Apple Inc., co jednak nie miało wpływu na zmianę licencjonowania.

Źródło: Wikipedia

CUPS na Raspberry Pi

Oczywiście opisana tu metoda powinna zadziałać również na innych systemach (zwłaszcza z rodziny Debian/Ubuntu), to ja skoncentruję się tu na Raspberry Pi, bo dzięki małym rozmiarom i znikomemu zapotrzebowaniu na energię wydaje się to idealne urządzenie do tego zadania (w domu, lub małym biurze – bo w firmie drukującej tysiące stron może zabraknąć Pi mocy).

Instalacja

By zainstalować program CUPS (i wszystkie potrzebne pakiety dodatkowe) wystarczy skorzystać z komendy:

sudo apt-get install cups
Warto też zainstalować i konfiguraować serwer plików (Samba), co przyda się zwłaszcza gdy korzystacie z systemu Windows.

Można jeszcze zainstalować dodatkowe pakiety, m.in. „python-cups” i „cups-pdf” – wprawdzie nie są wymagane, ale mogą się kiedyś przydać:

  • python-cups – „pomost” między CUPS a Pythonen
  • cups-pdf – „wirtualna drukarka”, zapisuje do plików PDF

Konfiguracja

Usługę chyba najlepiej najprościej skonfigurować za pośrednictwem strony WWW, w tym celu na Raspberry Pi (w przeglądarce) wystarczy wpisać jeden z adresów:

  • http://localhost:631
  • http://127.0.0.1:631

raspberry-pi_cups_01

Jeśli łączycie się z Pi zdanie (np. po SSH) można skorzystać z VNC lub X11.

Zdalny dostęp do zarządzania

Można też aktywować zdalny dostęp do zarządzania usługą – tak by połączenie z panelem zarządzania (WWW) móc wykonać z każdego komputera w sieci lokalnej.

Można to zrobić minimum na 3 sposoby:

Poprzez stronę WWW na Raspberry Pi

Najpierw – jak opisane wyżej – należy połączyć się z poziomu Raspberry Pi z usługą i w zakładce Administration/Administracja aktywować odpowiednią opcję:

raspberry-pi_cups_02

Server Settings: Allow remote administration

Edytując plik konfiguracyjny

W tym celu można skorzystać z komendy:

sudo nano /etc/cups/cupsd.conf

Różnice w pliku z aktywnym zarządzaniem zdalnym (po lewej) i bez (po prawej):

raspberry-pi_cups_03

Po zmianach należy uruchomić ponownie usługę:

sudo /etc/init.d/cups restart

Za pomocą komend z konsoli

Można też skorzystać z 2 komend wpisanych prosto w konsoli (chyba najszybsza metoda):

sudo cupsctl --remote-admin
sudo cupsctl --remote-any

I również w typ wypadku należy wykonać restart usługi za pomocą polecenia:

sudo /etc/init.d/cups restart

Od teraz można zarządzać usługą z dowolnego komputera w sieci lokalnej, wystarczy jako adres strony podać:

http://IP_RaspberryPi:631

CUPS – dodawanie nowej drukarki

W większości chyba przypadków dodawanie nowej drukarki nie powinno sprawić trudności, i sprowadza się do „kilku kliknięć” na stronie WWW zarządzania usługą.

Po wejściu na stronę WWW przechodzimy do zakładki Administration/Administracja i wybieramy „wyszukiwanie nowych drukarek”:

raspberry-pi_cups_04

Na tym etapie prawdopodobnie zostaniecie poproszeni o podanie loginu i hasła dla konta „root”.

Jeśli mamy szczęście (a raczej relatywnie „standardową” drukarkę) po chwili powinniśmy na liście zobaczyć znalezione drukarki podpięte do Raspberry Pi:

raspberry-pi_cups_05

Jeśli system nie wykryje Waszej drukarki – możecie spróbować dodać ją „ręcznie”, w poprzednim kroku wybierając „dodaj drukarkę”.

Teraz wystarczy kliknąć „dodaj drukarkę” by przejść do kreatora/ustawień:

raspberry-pi_cups_06

To możemy ustawić m.in.:

  • Nazwa drukarki – może zawierać wszystkie drukowalne znaki, oprócz „/”, „#” i spacji
  • Opis – Tu właściwie mamy dowolność jeśli chodzi o znaki/treść
  • Położenie – Tu również bez większych ograniczeń

Następnie klikamy „kontynuuj”:

raspberry-pi_cups_06b

Teraz albo wybieramy producenta a następnie model drukarki z listy, albo korzystamy z dostarczonego przez producenta drukarki pliku PPD.

Następnie klikamy „dodaj drukarkę”.

Jeśli wszystko przebiegnie prawidłowo – pojawi się ekran standardowych ustawień wydruku, z m.in.:

  • Wybór formatu papieru
  • Oszczędność tuszu/tonera

CUPS – Zarządzenie drukarkami

Zarządzanie dodanymi drukarkami jest również proste, jak dodawanie drukarki – i również większość rzeczy można zrobić z poziomu przeglądarki.

W tym celu wystarczy przejść do zakładki „Drukarki”:

raspberry-pi_cups_07

I na liście dostępnych (dodanych) drukarek wybrać te, którą chcemy zarządzać:

raspberry-pi_cups_07b

Zarządzanie usługą CUPS

Na koniec kilka podstawowych komend związanych z usługą:

Start

sudo /etc/init.d/cups start

Stop

sudo /etc/init.d/cups stop

Restart

sudo /etc/init.d/cups restart

Plik konfiguracyjny

sudo nano /etc/cups/cupsd.conf

Zarządzanie z poziomu konsoli: lpadmin i cupsctl

Dodawanie drukarki na komputerze (Windows)

Z racji tego, że na co dzień pracuje na komputerze z systemem Windows – to na jego przykładzie będzie jak szybko dodać drukarkę podłączoną do Raspberry Pi (i dodaną do usługi CUPS) do „naszego komputera”. W tym miejscu przyda się też wcześniej zainstalowana i skonfigurowana „Samba”.

W tym celu zazwyczaj wystarczy skorzystać z opcji „Uruchom”:

  • Start > Uruchom

lub:

  • Klawisz „WIndows” + R

I wpisać adres IP Raspberry Pi do której podłączona jest drukarka:

\\IP_RaspberryPi

Powinno się pojawić okno w którym będzie też (oprócz np. folderów udostępnionych w sieci) widoczna drukarka:

raspberry-pi_cups_win7

Wystarczy teraz kliknąć na niej prawym klawiszem myszy i wybrać „Połącz” – oczywiście może być potrzebny sterownik, ale to już nie powinno być problemem ;-)

A gdy nie drukuje…

Czasem może się zdarzyć, że wszystko jest ustawione prawidłowo – a mimo to nie można nic wydrukować z komputera.

Zdarzyło nam się to wprawdzie raz – ale warto odnotować, bo może ktoś jeszcze będzie miał taki problem.

Objawy:

  • Strona testowa z CUPSa drukuje się OK
  • Strona testowa z systemu Windows również drukuje się OK
  • Wydruk dokumentów „idzie do CUPSa”, ale gdzieś tam po drodze znika…

Rozwiązaniem problemu okazało się wyłączenie „zaawansowanych funkcji drukowania” we właściwościach drukarki:

raspberry-pi_cups_win7_01

Co ciekawe – wcześniej ten zestaw (ten system/komputer + ta drukarka + ten sterownik + ta Raspberry Pi) działał „z marszu” bez problemów.

Zobacz wszystkie artykuły z serii „Raspberry Pi”

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk