Bociek PLD - Pisarz
I. Informacje podstawowe
II. Instalacja
III. Podręcznik użytkownika
IV. Podręcznik administratora
Usługi dostępne w PLD
CUPS - Popularny system druku dla Uniksa
V. Tworzenie PLD - Praktyczny poradnik
VI. O podręczniku
O tej książce
Spis treści
Inne wersje tego dokumentu
HTML (jeden plik)
Odnośniki
Tworzymy dokumentację PLD
Strona PLD
Listy dyskusyjne PLD

CUPS - Popularny system druku dla Uniksa

<- ->
 

Wstęp

CUPS jest nowoczesnym i uniwersalnym systemem druku dla systemów uniksowych. Może być stosowany zarówno do drukowania lokalnego jak i do drukowania w sieci - obsługuje domyślnie protokół IPP. Po poprawnym skonfigurowaniu urządzenia będziemy mogli drukować z niemal każdego programu, CUPS akceptuje wywołania poleceń drukowania w stylu klasycznego systemu LPD.

System CUPS może być zarówno serwerem jak i klientem, o tym jaką funkcję będzie pełnić zainstalowane "urządzenie" decyduje wybór specjalnego sterownika interfejsu: backendu(poza IPP) i konfiguracji.

Instalacja

Podstawowa część CUPS:

$ poldek -i cups cups-clients

Następnie instalujemy jeden lub więcej kontrolerów interfejsów drukarki (protokół IPP nie wymaga backendu):

  • cups-backend-parallel - port równoległy (parallel port)

  • cups-backend-serial - port szeregowy RS-232 (serial port)

  • cups-backend-usb - port szeregowy USB (usb printer)

  • cups-backend-smb - drukowanie zdalne w sieci SMB

W przypadku drukarek nie obsługujących PostScriptu konieczne będą dodatkowe pakiety:

$ poldek -i cups-filter-pstoraster ghostscript-esp

Do zdalnej administracji (za pomocą HTTPS), konieczny będzie program openssl:

$ poldek -i openssl-tools

Czas uruchomić demona:

$ /etc/rc.d/init.d/cups start

Zarządzanie drukarkami

Operacje takie jak dodawanie, czy konfigurowanie drukarek mogą być dokonywane na kilka sposobów:

  • HTTP

    Popularnym sposobem jest konfiguracja przy pomocy przeglądarki internetowej, CUPS posiada wbudowany niewielki serwer WWW, z którym łączymy się dowolną przeglądarką na adres serwera i port 631 np.:

    $ lynx localhost:631

    Z poziomu tej strony mamy dostęp do wielu opcji administracyjnych: konfiguracji drukarek, zarządzania klasami, zadaniami druku i innymi. Ten sposób zarządzania systemem CUPS w niniejszej publikacji jest traktowany jako domyślny.

  • lpadmin

    lpadmin jest programem administracyjnym dostarczanym z CUPS-em, obsługiwany jest całkowicie z linii wiersza poleceń. Jest to narzędzie zaawansowane, przez co stosunkowo trudne w obsłudze, jego dokładny opis zawarto w dokumentacji.

  • Inne

    Dla CUPS powstały wygodne programy zarządzające przeznaczone działające w środowiskach GNOME i KDE. Szczególnie pozytywnie przedstawia się system-config-printer - wygodna aplikacja, której układ opcji przypomina konfigurację przez WWW.

Dodanie drukarki

W tym rozdziale przedstawiono ogólny opis instalacji urządzenia, szczegółowe informacje umieszczono w rozdziałach: Szczegóły dodawania drukarki lokalnej i Szczegóły dodawania drukarki zdalnej.

Możemy użyć programu system-config-printer lub narzędzia dostępnego przez stronę WWW:

$ lynx localhost:631

następnie przechodzimy do opcji Managle Printers -> Add Printer.

Określamy nazwę drukarki oraz opcjonalnie komentarz i lokalizację, następnie wybieramy jeden z dostępnych na liście kontrolerów interfejsów drukarki (backend). Na koniec wybieramy producenta i model drukarki.

System CUPS jest dostarczany z niewielką ilością sterowników drukarek, jednak nie należy się jednak martwić jeśli na liście nie odnajdziemy szukanego urządzenia. Coraz więcej producentów dostarcza ze sprzętem pliki PPD (w CUPS są używane również dla drukarek niepostcriptowych), możemy także skorzystać z bazy Foomatic zawierającej ogromną liczbę sterowników.

Sterowniki Foomatic możemy zainstalować w postaci zbiorczego pakietu sterowników danego producenta. Przykładowo jeśli chcemy zainstalować sterowniki drukarek firmy Samsung to instalujemy pakiet cups-foomatic-db-Samsung. Możemy również pobrać pojedyncze pliki PPD z z witryny http://www.linuxprinting.org, po wyszukaniu modelu drukarki (Driver Listings) należy kliknąć link download PPD w celu pobrania sterownika. Plik wskazujemy przy dodawaniu drukarki lub kopiujemy go do katalogu /usr/share/cups/model i uruchamiamy na nowo demona cupsd:

# /etc/rc.d/init.d/cups restart

Po tej operacji przeprowadzamy normalną instalację drukarki. Możemy ich wiele zainstalować, to do której będą trafiać dokumenty zależy od tego, którą z nich ustawimy jako domyślną.

Szczegóły dodawania drukarki lokalnej

Dodanie drukarki lokalnej dotyczy drukarek podłączonych bezpośrednio podłączonych do komputera, na którym zainstalowany jest CUPS, w tym wypadku interesują nas interfejsy: Parallel, Serial i USB. Zanim zaczniemy proces konfiguracji, musimy sie upewnić, że są załadowane odpowiednie moduły jądra (w przeciwnym wypadku dany backend może być nieaktywny).

Drukarka podłączona do portu równoległego będzie wymagała modułów lp, parport i parport_pc. Moduł lp dopisujemy do pliku /etc/modules, jeśli nie używamy udeva to pozostałe moduły także. Drukarki podłączane pod port LPT są dostępne za pomocą urządzeń /dev/lp*. W przypadku drukarek USB konieczny będzie moduł usblp oraz rzecz jasna moduł kontrolera USB, urządzenia te będą dostępne za pomocą /dev/usb/lp*. Więcej o modułach jądra i ich zarządzaniu odnajdziemy w tym dokumencie.

CUPS od wersji 1.3 wymaga zdefiniowania opcji Group w pliku /etc/cups/cupsd.conf, która wskazuje jaki użytkownik ma być używany dla uruchamiania zewnętrznych programów - w tym backendów. Jako że urządzenia w katalogu /dev mają grupę ustawioną na lp, taką też podamy jako wartość parametru:

Group lp

Dalszą instalację przeprowadzamy zgodnie z zaprezentowanym wcześniej opisem Dodanie drukarki.

Szczegóły dodawania drukarki zdalnej

  • IPP

    Aby CUPS było klientem IPP musimy dodać drukarkę z backendem IPP oraz podać prawidłowy URI zasobu, jako producenta wybieramy Raw, zaś jako model Raw Queue. URI powinno mieć następującą postać:

    ipp://{$serwer}/printers/{$drukarka}

    ($serwer to nazwa lub IP serwera druku, zaś $drukarka to nazwa drukarki). Adres taki może wyglądać następująco:

    ipp://10.0.0.3/printers/laserowa

  • SMB

    Jedyne co musimy zrobić to dodać drukarkę z użyciem odpowiedniego backendu - Windows Printer via SAMBA i podać prawidłowy URI, na koniec musimy wskazać sterownik danej drukarki. W przypadku systemów MS z serii 95/98/Me URI powinno mieć następującą postać:

    smb://{$serwer}/{$drukarka}

    ($serwer to nazwa lub IP serwera druku, zaś $drukarka to nazwa drukarki). Adres taki może wyglądać następująco:

    smb://wodzu/laserowa

    W przypadku systemów z serii NT (NT4, 2000, XP Professional) może być konieczne podanie konta użytkownika i hasła:

    smb://{$użytkownik}:{$hasło}@{$serwer}/{$drukarka}

    np.:

    smb://jasio:mojehasło@wodzu/laserowa

Konfiguracja serwera

Aby udostępnić w sieci zainstalowaną drukarkę, musimy odpowiednio skonfigurować demona cupsd, jego konfiguracja jest przechowywana w pliku /etc/cups/cupsd.conf.

Domyślnie CUPS pozwala jedynie na drukowanie lokalne, aby uzyskać dostęp z sieci musimy dokonać zmian w pliku konfiguracji. Należy odszukać sekcję oznaczoną znacznikami <Location /></Location>. Dostęp z innych maszyn konfigurujemy za pomocą opcji Allow From {$klient} ($klient to nazwa lub adres IP lub klasa adresów, którym udostępniamy drukarkę). Poniższy przykład przedstawia udostępnienie drukarek dla lokalnego interfejsu i maszyny o adresie 10.0.0.12.

<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 10.0.0.12
</Location>

Jeśli chcemy mieć możliwość zdalnej administracji za pośrednictwem HTTP/HTTPS powinniśmy dodatkowo ustawić dostęp (zgodnie z powyższymi wskazówkami) dla sekcji: /admin, /admin/conf.

  • IPP

    Protokół IPP jest używany domyślnie przez CUPS i nie wymaga żadnych dodatkowych przygotowań.

  • SMB

    W systemie musi być zainstalowany i działający pakiet Samba. Aby systemy Microsoftu mogły "widzieć" drukarki CUPS należy dokonać modyfikacji w głównym pliku konfiguracji Samby - /etc/samba/smb.conf. Należy usunąć z niego wszystkie opcje dotyczące druku z sekcji [global], zaś w ich miejsce wstawić poniższe linijki:

    printing = cups
    printcap name = cups

    Na koniec należy przygotować sekcję drukarek. Prosty przykład pliku konfiguracji pakietu Samba może wyglądać następująco:

    [global]
       netbios name = shilka
       workgroup = pod_cisami
       security = share
    
       printing = cups
       printcap name = cups
    
    [printers]
       comment = Drukarki
       printable = yes
       path = /var/spool/samba

    Jako, że Windows pre-formatuje dokumenty zanim wyśle je przez sieć do drukarki, musimy nauczyć CUPS'a odpowiednio takie pre-formatowane dokumenty obsługiwać. W tym celu musimy wyedytować plik /etc/cups/mime.convs i odkomentować w nim linijkę

    application/octet-stream        application/vnd.cups-raw        0       -
    

    w pliku /etc/cups/mime.types zaś, należy odkomentować linijkę

    application/octet-stream
    

    Po tych operacjach wymagany jest oczywiście restart usługi CUPS.

    # /etc/rc.d/init.d/cups restart

Przy tak skonfigurowanym serwerze drukarkę w MS Windows dodajemy standardowo, musimy jedynie samemu dostarczyć odpowiedni sterownik. Istnieje możliwość umieszczenia takiego sterownika na serwerze Samba, wymaga to jednak dodatkowych operacji konfiguracyjnych. Więcej na ten temat odnajdziemy w dokumentacji Samby.

Zarządzanie kolejką druku

Zarządzanie wydrukami jest możliwe z poziomu przeglądarki internetowej, programów dla X-Window oraz z poziomu linii wiersza poleceń. Z pośród tych ostatnich mamy do dyspozycji: lpstat, lpmove, cancel, lpq oraz lprm. Programy te znajdują się w pakiecie cups-clients.

Test drukarki i rozwiązywanie problemów

Drukarka powinna działać od razu po zainstalowaniu, można to przetestować z poziomu panelu konfiguracji drukarki drukując stronę testową. W razie problemów pierwszą rzeczą jaką należy zrobić to przejrzeć plik rejestrowania błędów (log): /var/log/cups/error_log. Jeśli ciągle nie możemy odnaleźć źródła problemu możemy spróbować włączyć wysoki poziom raportowania błędów. Dokonujemy to przez edycję w pliku /etc/cups/cupsd.conf i przestawienie ustawienia opcji "LogLevel" z "info " na "debug" lub " debug2" np.:

LogLevel debug2

Kiedy rozwiążemy problem należy przywrócić poprzedni poziom raportowania ze względu na szybki przyrost objętości logów. Po każdej modyfikacji pliku konfiguracji należy przeładować demona:

# /etc/rc.d/init.d/cups restart

 
&lt;- ->