Professional Documents
Culture Documents
22.11.2004
17:45 Uhr
Seite 23
CUPS
PORTADA
EL ABC de la Impresin
Compartir una impresora entre usuarios mltiples puede ahorrarnos dinero y recursos. Conectemos nuestras impresoras a un servidor de sistemas CUPS para dar acceso a usuarios de Apple e incluso de Microsoft.
BY TIM SCHRMANN
os ordenadores desfasados que han sido reemplazados por nuevos equipos son ideales como servidores de impresin en red. No slo se recicla as equipos considerados obsoletos, sino que un servidor de impresin no solo permite a mltiples usuarios compartir una impresora, si no que adems un ordenador dedicado a la impresin descarga parte del trabajo de nuestro equipo, permitindole procesar sus propias tareas a la velocidad mxima. En algunas redes domsticas, distintos usuarios enviaran trabajos a impresoras diferentes. Mientras el padre puede mandar una carta a la impresora lser los nios pueden estar mandando las fotos de su ltima fiesta de cumpleaos o imsgenes descargadas de Internet a la impresora de inyeccin. Esto no es muy diferente del escenario que vemos en algunas empresas donde los Sistemas Comunes Unix de Impresin (Common Unix Printing System CUPS) permiten el acceso a cualquier impresora de la red a clientes de Linux, Microsoft y Apple.
Primeros pasos
Dos pasos son necesarios para ejecutar CUPS en un red. Primero necesitamos configurar los ordenadores a los que las impresoras estn conectadas. Estas mquinas pueden ser equipos de sobremesa normales o servidores dedicados que no necesitan GUI. Las distros actuales instalarn CUPS habitualmente como parte de la configuracin original o proporcionarn herramientas de configuracin que podemos utilizar tras terminar la configuracin general. Este ltimo tipo normalmente configura CUPS para que se ejecute al iniciar el sistema. Si nuestro sistema no dispone de CUPS o queremos actualizar la versin podemos descargarnos el cdigo fuente desde la web de CUPS [1]. Antes de CUPS, las distribuciones solan trabajar con sistemas menos potentes como BSD o LPRng. Ambos son difciles de integrar en un entorno de red. Si tenemos una distribucin antigua deberamos considerar reemplazar el sistema de impresin antiguo por CUPS. La
documentacin de CUPS nos proporciona ms informacin al respecto. Ver [2]. No es necesario modificar nuestras aplicaciones para usar CUPS. Nuestros programas interactuaran con CUPS de forma natural (es el caso de aplicaciones KDE) o usaran lo que se ha dado en llamar comandos de impresin del sistema V o Berkley. Estas son las herramientas de la lnea de comandos lp y lpr. CUPS proporciona versiones compatibles de estos programas. Estos comandos simples son tiles si necesitamos enviar un archivo a un servidor remoto usando slo la lnea de comandos. El manual de usuario del software CUPS [2] proporciona detalles al respecto de estos comandos.
www.linuxmagazine.com.es
Nmero 01
23
023-027_cups
22.11.2004
17:45 Uhr
Seite 24
PORTADA
CUPS
Figura 1: La anotacin Allow permite al ordenador con la direccin IP 192.168.0.16 acceder la web remotamente.
Figura 2: La pgina de bienvenida del interfaz web del demonio CUPS. Suponemos que la configuracin de privilegios de accesos correcta.
Printing Protocol, IPP [3]). IPP es una extensin del Protocolo de Transporte de Hiper - Texto (Hyptertext Transport Protocol, HTTP), usado para transferir pginas Web a travs de Internet. Un ordenador, conocido como cliente en el lenguaje CUPS, enva datos de impresin al servidor CUPS. El demonio cupsd, que se est ejecutando en segundo plano, acepta los datos y realiza algunos procesos adicionales antes de enviar los datos a la salida de la impresora. En otras palabras, cupsd es el ncleo del sistema CUPS. Podemos acceder al demonio a travs de nuestro navegador web escribiendo http:// localhost:631. Simplemente debemos reemplazar localhost en esta URL
con el nombre del anfitrin de nuestro ordenador CUPS. localhost se reserva para la mquina local. CUPS no permite el acceso externo a la configuracin por defecto, por lo que debemos lanzar el navegador localmente en el sistema que estemos configurando. Si deseamos permitir el acceso externo debemos editar el archivo de configuracin /etc/cups/ cupsd.conf. Buscaremos secciones que empiecen por <Location /...> y finalicen por</Location> (ver figura 1). Las etiquetas de localizacin contienen detalles respecto a como CUPS debe controlar el acceso a varias secciones. <Location /> se refiere al men principal y <Location /admin> al objeto Administration. Aadiendo Allow
From 192.168.0.16 permitimos al ordenador con direccin ip 192.168.0.16 acceder al interfaz. Por motivos de seguridad no se recomienda permitir el acceso con contraseas en blanco. La FAQ de CUPS [4] proporciona una visin general sobre los privilegios de acceso. El interfaz Web permite a los usuarios configurar y gestionar CUPS (ver Figura 2). Tambin podemos ver los trabajos de la cola de impresin y administrarlos, cancelndolos, parndolos y rearrancndolos, si tenemos los permisos necesarios. El comando lpstat nos proporciona algunas funcionalidades. Si nuestra distribucin tiene un programa de configuracin para establecer impresoras es preferible usar este programa. Por ejem-
24
Nmero 01
www.linuxmagazine.com.es
023-027_cups
22.11.2004
17:45 Uhr
Seite 25
CUPS
PORTADA
Figura 3: La entrada de la configuracin CUPS del centro de control KDE. Pulsaremos el espacio libre para mostrar ms opciones tiles como funciones para reiniciar el demonio. Figura 4: El acceso Printers lista las colas de impresin que CUPS reconoce incluyendo sus URIs (dispositivos URI).
plo, Suse Linux tiene la herramienta YaST. Existe una alternativa basada en la lnea de comandos, lpadmin, que tiene pocas opciones adicionales a las mencionadas hasta ahora [2]. Si no nos gusta ninguna de estas opciones podemos optar por uno de los muchos programas de configuracin de terceros. Las versiones ms nuevas de KDE tienen componentes para estar tareas. Los encontraremos en el centro de control bajo Hardware|Printers (ver figura 3). Usaremos el interfaz Web en los siguientes ejemplos. El acceso Printers en el interfaz nos da acceso a la lista de la cola de impresin (figura 4). Cada cola tiene un nombre y especificaciones individuales. Podemos asignar mltiples colas a una impresora o inter-
faz. Al interfaz al que los documentos de una cola de impresin sern enviados se define por el Identificador de Recursos Uniformes (Uniform Resource Identifier, URI). La notacin tiene un aspecto similar al nombre de una pgina Web: parallel:/dev/lp0 por ejemplo para el primero puerto paralelo, o usb:/dev/usb/lp0 para el primer puerto USB. El comando lpinfo -v nos proporciona una lista de los interfaces disponibles. Volveremos al asunto de los URI ms tarde. Para crear una nueva cola de impresin seleccionaremos Administration en nuestro visor web y pulsaremos Add Printer. Entonces introduciremos su nombre en el apartado name. El nmero mximo de caracteres es de 127. La siguiente pantalla nos indica que debemos
seleccionar el interfaz al que nuestra impresora est conectada, el modelo de la impresora y, finalmente, el filtro GhostScript apropiado. Los siguientes pasos suponen que CUPS ha sido configurado correctamente en cualquier ordenador (servidor) al que ha sido conectado la impresora. Podemos imprimir una pgina de pruebas en la ventana del visualizador pulsando Printers|Print Test Page.
Figura 5a: Configuracin de impresoras remotas en Suse Linux 8.2. Primero le decimos a YaST que queremos acceder a una impresora remota que usa IPP
Figura 5b: a continuacin introducimos el nombre del anfitrin y el recordatorio del URI para completar la configuracin.
www.linuxmagazine.com.es
Nmero 01
25
023-027_cups
22.11.2004
17:45 Uhr
Seite 26
PORTADA
CUPS
CUPS. Cada ajuste ocupa una lnea y para evitar ejecutar el esta compuesta de una palabra clave y demonio CUPS en los su valor. Debemos mirar en [2] para clientes. Esto significa echar un vistazo a los valores. El archivo modificar el archivo de contienen explicaciones cortas y ejempconfiguracin /etc/ los. cups/client.conf. BusSi estamos configurando la retranscamos la lnea que misin necesitamos las lneas que comienza con Serverempiezan por Browse. El valor de BrowName. Puede que tengseInterval define el intervalo en segunamos que quitar la dos en el que el servidor retransmitir almohadilla (#). Escribisus datos de configuracin. Por ejemplo, mos un espacio y BrowseAddress 192.168.0.255 enva los despus el nombre o, datos a cualquier equipo en la subred mejor, la direccin IP Figura 6: Tras habilitar el transporte, solo el equipo con IP 192.168.0.20 192.168.0. del servidor que procenecesitar un demonio de impresin. Todos los trabajos de impresin Polling es una alternativa til a examisar los trabajos de sern enviados a esta mquina. nar. En este caso el cliente recupera su impresin despus de la configuracin desde el servidor. Desde el palabra ServerName (ver figura 6). tarea en segundo plano. Algunas lado del cliente el archivo cupsd.conf fija La tercera forma es probablemente la distribuciones slo ejecutan el demonio el valor de la palabra clave BrowsePoll ms conveniente. Cada demonio CUPS automticamente al iniciar el sistema del nombre o direccin IP del servidor. retransmite a travs de la red su configusi una impresora ha sido configurada Disponemos de mltiples entradas de racin. Los clientes que reciben la seal en la mquina. YaST en Suse Linux 9 BrowsePoll que permiten al cliente buspueden usar inmediatamente sus colas. tiene una opcin para configurar el sercar mltiples servidores. Si activamos La ventaja de este procedimiento es una vidor ms tarde. Para hacerlo, selecBrowseRelay, se indica al ordenador que configuracin extremadamente sencilla. cionamos Change|Advanced y luego transmita cualquier informacin que Simplemente configuramos una nueva CUPS Server. Si tenemos una distro aprenda mediante polling a todos los impresora en la mquina a la que esta cuya programa de configuracin no equipos de la subred. conectada para permitir que cualquier nos permite esto debemos escribir mquina en la red pueda acceder a ella. un archivo de comandos de inicio CUPS Reloaded Por supuesto la retransmisin no es el de CUPS y aadirlo los niveles de ejecumtodo ms seguro. Cualquier ordecin 3 y 5 en nuestro directorio Necesitamos reiniciar el demonio CUPS nador que reciba la seal puede acceder /etc/init.d/. tras cambiar el archivo cupsd.conf. El a la impresora. En el peor de los casos comando para hacer esto depende de Introduccin de la Impresora esto puede permitir a todo Internet nuestro distribucin. Los usuarios de imprimir en nuestra impresora. la naveSuse Linux pueden usar /etc/init.d/cups Necesitamos introducir los detalles de la gacin est activado en los paquetes de restart. Si usamos la herramienta YaST impresora en el cliente para permitirle CUPS antiguos, pero las nuevas verpara cambiar la configuracin tambin encontrar esa impresora en la red. Para siones no transmiten por defecto. se encarga de reiniciar el demonio. El hacer esto debemos lanzar el interfaz La herramienta de configuracin nos dialogo KDE Print dispondr de una lista Web como hemos descrito con anterioripermite definir las dad. Seleccionamos el Internet Printing opciones de la retransProtocol (IPP) como el dispositivo misin. De nuevo esto (Device). Despus introducimos la URI significa usar YaST en de la impresora remota, por ejemplo Suse Linux. El objeto ipp://myserver/printers/myprinter. Redel men que necesitaemplazaremos myserver con el nombre o mos est localizado en la direccin IP de nuestro servidor de Change/Advanced/ impresin y myprinter con el nombre de CUPS Server Settings nuestra cola de impresin. El programa (ver figura 7). Para conde configuracin proporcionado con la figurar un servidor para mayora de distribuciones tiene opciones retransmitir manualsimilares (las figuras 5a y 5b muestran mente debemos modiSuse Linux). Repetimos este proceso ficar el archivo de conpara cada cola de impresin externa. Es figuracin /etc/cups/ evidente que este procedimiento es farcupsd.conf. Las lneas ragoso si tenemos un gran nmero de que empiezan con el impresoras. Parece lgico configurar Figura 7: Habilitacin de examinar en Suses YaSt. En nuestro ejemplo, signo numrico (#) CUPS de forma que use un servidor los detalles de la impresora conectada son retransmitidos a la subred sern ignoradas por remoto de impresin para cada trabajo 192.168.0.
26
Nmero 01
www.linuxmagazine.com.es
023-027_cups
22.11.2004
17:45 Uhr
Seite 27
CUPS
PORTADA
de impresoras desde este momento (ver figura 8). Si examinar parece no funcionar debemos comprobar la configuracin del host. Puede que necesitemos aadir /etc/hosts para que la retransmisin funcione.
En el caso de preferir el controlador de impresin original se hace necesario configurar una nueva cola de impresin en nuestro servidor CUPS. Seleccionamos el dispositivo raw como el modelo de impresin. Esto indica a CUPS que debe enviar los datos entrantes directamente al puerto de salida. Debemos saber que los ordenadores sin los controladores originales no sern capaces de generar resultados tiles en nuestra impresora. Los servidores Samba 2.2 o superior automticamente exportan el controlador apropiado cuando un cliente Windows intenta imprimir. De la forma que se usa en los siguientes ejemplos, cupsaddsmb solo puede soportar contro-
problema a impresoras compartidas por equipos que corren Windows de Microsoft. Nuestra distribucin debe configurar el back-end correctamente. Si no es as, haremos su para acceder a root e introduciremos el siguiente comando ln -s 'which smbspool' /usr/ lib/cups/backend/smb. Esto nos permite configurar la impresora como cualquier otra en el servidor CUPS. En lugar de una direccin del tipo ipp://... usaremos una entrada como smb://workgroup/ server/sharename. Si la impresora est conectada a un equipo con NT o Windows 9x con contraseas necesitaremos suministrarlas: smb://user:password@ workgroup/server/sharename.
Figura 8: Tras completar la configuracin, el dialogo de impresin de KDE debe tener un a lista de las impresoras remotas y sus detalles.
Windows 2000/XP tambin dispone de soporte IPP. Cualquier otra versin necesita la versin 2.0.6 o superior de Samba. Debemos aadir las siguientes 2 lneas a la seccin [Global] del archivo de configuracin smb.conf: printing = cups y printcap name = cups. Las distribuciones actuales deben tener esta configuracin por defecto. Los clientes de Windows necesitan un controlador de impresora capaz de generar Post-Script como el Apple LaserWriter.
GLOSARIO
IPP El Protocolo de Impresin de Internet fue creado por el Grupo de Trabajo de Impresin. Si bien esta basado en HTTP 1.1, utiliza el puerto 631 en lugar del 80. De hecho, los 2 protocolos estn tan relacionados que las implementaciones IPP pueden ser accedidas de forma nativta a travs de HTTP. La URI de la impresora ser en este caso HTTP://servername:631/... en lugar de IPP:// servername/...
ladores Adobe [6] PostScript o controladores desde su propia pagina de inicio. Los controladores Adobe estn disponibles solo como archivos EXE. Primero necesitaremos ejecutar programas como Winzip para extraerlos a una mquina Windows. Debemos guardar los controladores en el directorio /usr/ share/cups/drivers. Los nombre de los archivos deben ser escritos en maysculas. Ahora debemos modificar la configuracin Samba para permitir al servidor de archivos exportar controladores de impresin. La documentacin de Samba proporciona informacin al respecto. cupsaddsmb -U root -a exportar nuestras impresoras. Estos llevar nuestros controladores al servidor Samba. Debemos saber que cupsaddsmb utiliza la cuenta de root para copiar los archivos con el programa smbclient. Debemos asegurarnos, por tanto, de que Samba permite el acceso a esta cuenta. Samba dispone de un nuevo back-end CUPS llamados smbspool que permite a equipos Linux acceder sin ningn tipo de
RECURSOS
[1] Proyecto CUPS: http://www.cups.org [2] Documentacin CUPS: http://localhost:631 [3] IPP: http://www.pwg.org/ipp/ [4] CUPS FAQ: http://www.danka.de/printpro/faq.html [5] Netatalk: http://netatalk.sourceforge.net [6] Adobe: http://www.adobe.com
www.linuxmagazine.com.es
Nmero 01
27