Actualizado el 12 de Marzo del 2019 (Publicado el 28 de Enero del 2018)
1.429 visualizaciones desde el 28 de Enero del 2018
150,4 KB
23 paginas
Curso avanzado de Linux
Impresoras. Sistema CUPS
Rafael Varela Pet
Unidad de Sistemas
Área de Tecnologías de la Información y Comunicaciones
Universidad de Santiago de Compostela
Curso avanzado de GNU/Linux
CUPS
● CUPS: Common UNIX Printing System
● Usa protocolo IPP (Internet Printing Protocol) -
Funciona sobre HTTP
● Desde Febrero de 2007 el código es propiedad de
Apple, aunque parece que seguirá siendo liberado
bajo licencia GPL2/LGPL2
● Versión 1.2.7 en Debian Etch
Curso avanzado de GNU/Linux
CUPS
● Terminología:
– Jobs: un trabajo enviado a la impresora
– Classes: agrupaciones de impresoras
– Filters: procesan los trabajos antes de enviar a la impresora
– Backends: envían el trabajo a la impresora empleando en
sistema de comunicación apropiado (IPP, USB, SMB, ...)
– Drivers: filtros específicos para una determinada impresora
Curso avanzado de GNU/Linux
CUPS
● CUPS puede actuar como
– cliente: lanza peticiones a otros servidores de
impresión
– servidor: acepta peticiones de programas de usuario y
de otros CUPS
● Instalación: paquete cupsys
● Configuración en /etc/cups/
– cupsd.conf: configuración del servidor
– printers.conf: definición de impresoras
Curso avanzado de GNU/Linux
Drivers. Foomatic
● Integra controladores de impresoras con los
“spoolers” habituales en UNIX: CUPS, LPRng,
LPD, etc.
● Base de datos en
– www.linuxprinting.org
– http://www.linux-foundation.org/en/OpenPrinting/Database/Foomatic
● Listado de compatibilidad de impresoras
– http://www.openprinting.org/printer_list.cgi
Curso avanzado de GNU/Linux
Drivers. Foomatic
● Se basa en un script (foomatic-rip) que convierte
Postscript (y otros lenguajes) al lenguaje nativo
de la impresora
● El fichero .PPD (Postscript Printer Definition)
describe como debe hacerse la conversión
● Paquetes:
– foomatic-db: base de datos de drivers de impresora
distribuidos por linuxprinting.org
– foomatic-db-gutenprint: drivers soportados por el
backend Gutenprint
Curso avanzado de GNU/Linux
Administración
● Administración en línea de comandos y vía web
● Vía web:
http://localhost:631
● Habilitar SSL:
– Los certificados de servidor se generan la primera vez
que nos conectamos
– Ver bugs #370407 y #370450 en caso de problemas
Curso avanzado de GNU/Linux
Administración
● Administración en línea de comandos
(paquete cupsys-client)
– lpstat
– lpadmin, lpoptions
– lpinfo
– accept, reject
– cupsenable, cupsdisable
Curso avanzado de GNU/Linux
Administración
● Ver dispositivos disponibles y drivers:
lpinfo v
network socket
direct usb://hp/photosmart%207150?serial=...
network http
network ipp
network lpd
direct parallel:/dev/lp0
file cupspdf:/
● Ver estado del sistema CUPS
lpstat a
PhotoSmart7150 aceptando peticiones desde lun
14 ene 2008 20:19:46 CET
Curso avanzado de GNU/Linux
Administración. lpadmin
● Añadir una impresora:
lpadmin p DeskJet E \
v parallel:/dev/lp1 \
P deskjet.ppd
● -E: activa impresora
● -v: URI del dispositivo
● -P: establece el PPD a emplear (ver /usr/share/ppd)
● Añadir una impresora a una clase
lpadmin p DeskJet c impresoras_color
cupsenable impresoras_color
● Eliminar impresora o clase:
/usr/sbin/lpadmin x DeskJet
Curso avanzado de GNU/Linux
Administración. lpoptions
● Establecer impresora predeterminada:
lpoptions d PhotoSmart7150
● Imprime opciones de la impresora
lpoptions p PhotoSmart7150 l
● Establece opciones de la impresora
lpoptions o PrintoutMode=Draft \
p PhotoSmart7150
Curso avanzado de GNU/Linux
Administración
● Habilitar/deshabilitar impresora:
/usr/bin/cupsenable nombre_impresora
/usr/bin/cupsdisable nombre_impresora
(acepta trabajos pero no imprime)
● Rechazar trabajos:
/usr/sbin/accept nombre_impresora
/usr/sbin/reject nombre_impresora
● Permitir solo a ciertos usuarios:
/usr/sbin/lpadmin p nombre_impresora \
u allow:alumno
Curso avanzado de GNU/Linux
Compatibilidad BSD
● CUPS dispone de comandos compatibles BSD
(lpr, lpq, lprm)
● Instalar paquete cupsys-bsd
● Ejemplos:
– Ver cola de una impresora:
● lpq -P PhotoSmart-7150
– Borrar trabajo número 1
● lprm 1
– Imprimir fichero:
● lpr -P PhotoSmart-7150 /etc/motd
Curso avanzado de GNU/Linux
CUPS como cliente
● Lanza trabajos a otros servidores (ipp, lpd, etc.)
● Ejemplo de impresora remota:
lpadmin p impresora E \
v ipp://server/printers/epson24
● Detecta automáticamente las impresoras que se
encuentren en la misma subred. Ver directivas:
– Browsing
– BrowseAddress, BrowsePoll
– BrowseAllow, BrowseDeny
Curso avanzado de GNU/Linux
Detección de impresoras en red
● Browsing: activa o desactiva la función de
detección de impresoras
● BrowseAddress: especifica a dónde se envía
información sobre nuestras impresoras
● BrowseAllow, BrowseDeny: permiten o deniegan
los paquetes procedentes de un determinado
origen
● Para detectar impresoras en un destino específico:
BrowsePoll 192.0.2.2:631
Curso avanzado de GNU/Linux
Imprimir en servidores
Windows
● 2 alternativas:
– Protocolos “clásicos” de Microsoft. Usamos el paquete
samba-client
– IPP
● SAMBA: Empleamos URIs de este tipo:
– smb://workgroup/server/sharename
– smb://server/sharename
– smb://user:pass@workgroup/server/sharename
– smb://user:pass@server/sharename
Curso avanzado de GNU/Linux
Imprimir en servidores
Windows
● Windows 2000 y 2003 Server pueden actuar
como servidores IPP
● Es necesario instalar IIS y configurarlo
adecuadamente
● Se accede usando URIs de este tipo:
http://windowsserver:80/printers/printersharename/.printer
(“printersharename” es el nombre con el que se ha
compartido la impresora)
Curso avanzado de GNU/Linux
Clientes Windows
● Windows 2000 soporta IPP como cliente
● Añadimos la impresora con esta URI
http://servidorCUPS:631/printer/impresora
● Los clientes pueden descargar automáticamente
los drivers desde un recurso compartido, vía
SAMBA
● Dos métodos para instalar drivers
– Emplear un cliente Windows
– Usar la api RPC de Samba
Curso avanzado de GNU/Linux
Clientes Windows
● Instalación desde un cliente Windows
– En smb.conf
● Revisar en [print$]
write list = root, @administradores
read only = no
● Dar permisos en /var/lib/samba/printers
– Desde el cliente Windows, entrar en “impresoras y
faxes” en el servidor Debian y abrir las propiedades de
la impresora a instalar
● Instalación mediante RPC: Ver página del
manual de cupsaddsmb
Curso avanzado de GNU/Linux
GNOME
● Utilidades de administración:
– gnome-cups-manager (menú del sistema ->Escritorio
-> Administración->Printing)
– foomatic-gui (menú del sistema -> Aplicaciones ->
Herramientas del sistema ->Printers)
Curso avanzado de GNU/Linux
CUPS como generador PDF
● Instalar paquete cups-pdf
– Configuración en /etc/cups-pdf/cups-pdf.conf
– Podemos postprocesar los PDFs ajustando el valor
PostProcessing
● Salida de los trabajos por defecto:
– Anónimos en /var/spool/cups-pdf/ANONYMOUS/
– Usuarios identificados en ~/PDF/
– Emplear PPD:
/usr/share/ppd/cups-pdf/PostscriptColor.ppd
Curso avanzado de GNU/Linux
CUPS como generador PDF
● Añadir impresora virtual
lpadmin p imprimePDF E \
v cupspdf: \
P /usr/share/ppd/cupspdf/PostscriptColor.ppd
● Imprimir un fichero:
lpr P imprimePDF /etc/motd
● Visualizarlo
evince ~/PDF/_motd_.pdf
Curso avanzado de GNU/Linux
Referencias
● http://www.cups.org/
● http://www.linux-foundation.org/en/OpenPrinting
● http://www.linuxprinting.org/kpfeifle/SambaPrintHOWTO
● http://en.wikipedia.org/wiki/Common_Unix_Printing_Syste
m
Curso avanzado de GNU/Linux
Comentarios de: Curso avanzado de Linux Impresoras. Sistema CUPS (0)
No hay comentarios