Linux

CUPS

Leerdoelen

  • Kennismaking met printing
  • Introductie CUPS

CUPS

  • CUPS is een printserver
  • Neemt printjobs aan
  • Slaat ze op
  • Verwerkt ze
  • En stuurt ze naar de printer

CUPS - Geschiedenis (1)

  • Voorheen The Common UNIX Printing System
  • Michael Sweet - Easy Software Products
    • Begonnen aan CUPS in 1997
    • Eerste public beta in 1999
  • OpenSource printing systeem
  • "overgenomen" door Apple in 2007
  • Michael Sweet verlaat Apple eind 2019

CUPS - Geschiedenis (2)

CUPS onderdelen

  • Scheduler - waar een applicatie tegen praat
  • Filters - die de conversie doen
  • Backends - die tegen de printer(s) praat

Scheduler

  • Is het proces waar een applicatie tegen praat
  • Praat IPP op port 631 of LDP op port 515

Filters

  • Omzetten van formaten
  • Gebruikt veel postscript (ghostscript)
  • Rasterformaten

Backends

  • Stuurt de job naar de printer
  • parallel, serial, and USB ports
  • PDF Virtual Printing - Print to File
  • Network: IPP, JetDirect (AppSocket), Line Printer Daemon (LPD), SMB protocols

CUPS op Debian

CUPS installatie

sudo apt-get install cups
  • Extra software die je kan installeren:
    • cups-pdf: Print document naar bestand
    • hplip: Print naar lokale HP printer of fax

CUPS processen

  • cups.service - CUPS Scheduler
  • cups-browsed.service
    • Make remote CUPS printers available locally
    • Gebruikt Bonjour
  • Bekijk met journalctl de logs

CUPS process test

  • sudo ss -tulp
  • sudo journalctl -u cups
  • Alleen start en stop info, geen proces informatie
  • Zoek het PID op:
  • ps -C cupsd
  • Waar logt CUPS:
  • sudo pslog <PID>
    • In /var/log/cups

CUPS configuratie

  • Pas /etc/cups/cupsd.conf aan (als root):
    • # Listen 127.0.0.1:631
      Listen 631
    • Voeg aan Location / een allow regel toe
    • Zorg dat het er ongeveer zo uit ziet:
      <Location />
        Order allow,deny
        Allow @LOCAL
        Allow from 192.168.1.*
      </Location>
    • Pas het IP-adres aan aan je eigen IP adres
    • Doe hetzelfde voor de Location /Admin:
      <Location /admin>
        Order allow,deny
        Allow @LOCAL
        Allow from 192.168.1.*
      </Location>
      

Test de setup

  • sudo systemctl restart cups
  • Test het luisteren op alle interfaces:
  • ss -tul
  • Moet deze regel bevatten:
  • tcp  LISTEN  0  4096  0.0.0.0:ipp  0.0.0.0:*
  • Geef in je browser op: https://ip.van.je.server:631

Werken met CUPS

Web Interface

  • Administration: beheer van printers
  • Classes: Groepering van printers
  • Jobs: Taken die uitgevoerd zijn of moeten worden
  • Printers: Overzicht van printers

CUPS Administration

CUPS Add Printer

CUPS Add Printer

  • cups-pdf: Print document naar bestand
  • hplip: Print naar lokale HP printer of fax
  • Installeer printer-driver-cups-pdf
  • Reload de Add Printer pagina

CUPS Add PDF printer

CUPS Printers PDF

CUPS PDF printer

Delen van een Printer

  • Administration → Modify Printer
  • Klik Continue
  • Bij Sharing: zet een vinkje
  • Klik Continue
  • Klik Modify Printer

Connect Windows to printer

  • Open Windows Settings
  • Select BlueTooth & Devices
  • Select Printers & Scanners
  • Klik Add Device

Detected printer

  • Klik Add Device

Extra printer

  • Heb geduld...
  • Print Test Page

Controle op CUPS

Completed Jobs

  • In CUPS selecteer Jobs
  • Klik op Show Completed Jobs

Zoek de PDF

ls /var/log/cups/
sudo tail /var/log/cups/cups-pdf-PDF_log
grep --binary-files=text <filepath en name>

Samenvatting

  • We hebben kennis gemaakt met CUPS
    • Het Linux printing systeem
  • We hebben een printer geconfigureerd
  • En we hebben geprint vanaf Windows naar CUPS
  • We hebben gezien dat printen een complexe aangelegenheid is