DPD Impresión
De Gleducar, http://www.gleducar.org.ar
Tabla de contenidos |
¿Qué es CUPS?
Extraído de la web de CUPS: "El 'Common UNIX Printing System' ("CUPS") es una solución multiplataforma de impresión para todos los entornos UNIX. Está basado en el "Protocolo de impresión de internet" y proporciona servicios completos de impresión a la mayor parte de las impresoras Postscript. CUPS se distribuye bajo la licencia GNU GPL..." Aunque hay otros paquetes de impresión como LPRNG, CUPS es muy popular y relativamente fácil de usar.
Instalación de CUPS
Paquetes
Necesitas como mínimo CUPS y Ghostscript:
# apt-get install cups ghostscript
- cups - La versión actual de CUPS
- ghostscript - Un intérprete del lenguaje Postscript
Algunos de estos paquetes de driver, depende de tu modelo de impresora. Si no estás seguro, instala gimp-print.
- gutenprint (antes llamado gimp-print) - Una colección de drivers de alta calidad para impresoras Canon, Epson, Lexmark, Sony, Olympus, y PCL para ser utilizados con Ghostscript, CUPS, Foomatic, y Gimp.
- foomatic, foomatic-db, foomatic-db-engine, foomatic-db-ppd y foomatic-filters - Foomatic es un sistema de base de datos sobre controladores para integrar drivers libres de impresoras con los habituales spoolers bajo Unix
- Instalar foomatic-filters suele resolver tus problemas si en el archivo error.log aparece el error "stopped with status 22!"
- hplip - Driver para HP Linux inkjet. Da soporte para DeskJet, OfficeJet, Photosmart, Business Inkjet y algunos modelo de impresora LaserJet.
- cups-pdf - Un interesante paquete que te permite crear una impresora virtual PDF que genera PDF con todo lo que le mandas.
Si tu impresora está conectada a una impresora de red utilizando el protocolo samba o si el sistema va a ser un servidor de impresión para clientes Windows:
# apt-get install samba
Descarga de los PPD para la impresora
Dependiendo de tu impresora, este paso es opcional y puede no ser necesario ya que la instalación estándar de CUPS ya dispone de unos cuantos archivos PPD (Postscript Printer Description). Es más, los paquetes foomatic-filters, gimp-print y hplip tambén incluyen una serie de archivos PPD que serán detectados automáticamente por CUPS.
Aquí tienes una explicación de lo que es un archivo PPD de la web Linux Printing: "El fabricante da un archivo PPD de cada impresora PostScript que tiene toda la información específica de la impresora sobre el modelo particular: Las capacidades básicas de la impresora así como si la impresora es en color, tipos de letra, nivel de PostScript, etc., y especialmente las opciones ajustables por el usuario, como el tamaño del papel, resolución, etc."
- Para conseguir el PPD para tu impresora, ve a http://www.linuxprinting.org/printer_list.cgi y selecciona el fabricante y modelo de tu impresora.
- Ahora, necesitas mover el archivo al directorio de cups para que pueda detectarlo. Si estás en el directorio al que descargaste el PPD, puedes ejecutar el comando:
# mv your_printer.ppd /usr/share/cups/model/
Si no encuentras tu impresora en el sitio web, puedes probar con modelos parecidos o utilizar un driver de impresora general. Tan solo busca en google o pregunta a tu fabricante (que tengas suerte si haces esto).
Configuración de Cups
Opciones
Ahora que cups está instalado, tienes varias opciones para configurarlo. Siempre puedes utilizar la línea de comandos. De la misma manera, varios escritorios como Gnome y KDE tiene útiles programas para administrar tus impresoras. Sin embargo, para hacer este proceso fácil para la mayor cantidad posible de usuarios, vamos a usar la interface web que nos brinda CUPS.
Ten en cuenta que si tienes pensado conectarte a una impresora de red en lugar de una enchufada a tu ordenador directamente, tal vez deberías ir primero a a la sección de impresoras compartidas. La compartición entre impresoras de Linux a Linux es muy fácil de configurar. De Windows a Linux y viceversa requiere más esfuerzo, pero también es faćil.
Módulos del kernel
Antes de poder utilizar la interface web de CUPS, debemos instalar los módulos del kernel apropiados.
- Impresoras USB
Si quieres utilizar una impresora USB con un kernel 2.6.x, escribe este comando:
# modprobe usblp
Si es una impresora USB y un kernel 2.4.x kernel, el siguiente:
# modprobe printer
Esto asume que estás utilizando un kernel de los de Arch Linux. Si te has compilado uno a medida necesitarás ejecutar esto antes:
# modprobe usbcore
Cuando hayas cargado los módulos, debes encender la impresora y comprobar si el kernel la detecta ejecutando:
# tail /var/log/messages.log
o
# dmesg | tail
Debe aparecer algo como:
Feb 19 20:17:11 kernel: printer.c: usblp0: <tooltip>XQXUSBXQX|XQX(Universal Serial Bus) Puerto Serie UniversalXQX</tooltip> Bidirectional printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920 Feb 19 20:17:11 kernel: printer.c: v0.13: <tooltip>XQXUSBXQX|XQX(Universal Serial Bus) Puerto Serie UniversalXQX</tooltip> Printer Device Class driver
Impresoras por puerto paralelo
Si vas a utilizar una impresora por puerto paralelo, la configuración es muy parecida. Para el kernel 2.6.x:
# modprobe lp
Y después, tantosi es un kernel 2.4.x como si es un 2.6.x:
# modprobe parport # modprobe parport_pc
Una vez más, para comprobar si vamos bien:
# tail /var/log/messages.log
o
# dmesg | tail
Debe aparecer algo como:
# lp0: using parport0 (polling).
Demonio de CUPS
Con el módulo cargado, ya estás listo para iniciar el demonio de CUPS. Para hacerlo, ejecuta:
# /etc/init.d/cups start
Interface Web y tool kit.
Cuando el demonio se esté ejecutando, la interface web estará disponible. Abre tu navegador y ve a:
o instala el GUI "Gnome Cups Manager" (lee Apéndice: A.1 Interfaces alternativas para CUPS)
Desde aquí, todo lo que debes hacer es seguir los pasos de los asistentes para añadir una impresora. Para configurar mi impresora Samsung ML-1250, empecé por pulsar sobre Manage Printers, y después en Add Printer. Entonces me preguntó el usuario y la contraseña, y ahí puse el usuario root y su contraseña. Puse 'ml1250' como nombre de la impresora, 'Mi casa' como location y 'Peter's Samsung ML-1250 Laster Printer' en descripción. Después hay que seleccionar el dispositivo. Como mi impresora es una USB, seleccioné USB Printer #1. El nombre de mi impresora se veía también al lado de USB Printer #1, así que míralo. Por último, simplemente elegí el driver apropiado y la instalación se completó.
Una vez hecho esto, puedes comprobar la configuración pulsando el botón 'Print Test Page'.
Compartir impresión
Linux a Linux
Una vez que tengas configurado CUPS en tu servidor de impresión Linux, compartir la impresora con otro Linux es relativamente fácil. Hay muchas formas de configurarlo, pero aquí se describirá la forma manual. En el servidor (la que administra la impresora y que la tiene conectada) simplemente debes editar el archivo /etc/cups/cupsd.conf y permitir el acceso al servidor modificando las líneas pertinentes. Por ejemplo:
<Location /> Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From 10.0.0.* </Location>
Así se añade permiso a la IP de la máquina cliente con el 'Allow From ip_cliente'. Después de hacer las modificaciones al archivo, se reinicia el CUPS con:
# /etc/init.d/cups restart
En la máquina cliente, se edita el /etc/cups/client.conf y se indica en la opción ServerName la ip del servidor o su nombre. Por ejemplo, si el nombre del servidor es 'beast' en el client.conf se indica así:
ServerName beast
Después habrá que ejecutar el siguiente comando para actualizar el cliente:
# lpq
La respuesta debe ser algo como esto:
ml1250 is ready no entries
Hay más formas de configurarlo, incluyendo una configuración automática que se describe detalladamente en http://localhost:631/sam.html#CLIENT_SETUP (este enlace funcionará en el servidor).
Cuando se te pregunte por el nombre de usuario y contraseña utiliza 'root' y su clave y después sigue las instrucciones de http://www.digitalhermit.com/linux/printing/ Si es una impresora TCP/IP usa Jetdirect
Esto servirá para la compartición de impresoras entre máquinas con Linux.
Linux a Windows
Si estás conectado a un servidor de impresión Windows (o cualquier otro servidor de impresión que soporte Samba), puedes saltarte la sección sobre los módulos del kernel. Todo lo que tienes que hacer es iniciar del demonio CUPS y completar la interface web como se describe en la sección 3.3 y 3.4. Antes de esto, necesitas activar el backend de CUPS para Samba. Puedes hacerlo con el siguiente comando:
# ln -s `which smbspool` /usr/lib/cups/backend/smb
Oberva que el carácter de antes es ` (debajo de ~ en los teclados estándar US) y no '. Después de esto, deberás reiniciar CUPS con el comando especificado en la sección anterior. Más tarde, simplemente entra en la interface web de CUPS como root y añade una impresora. En device, debe haber una opción que indique algo de Windows Printer Via Samba. Para device location introduce:
smb://username:password@hostname/printer_name
O sin contraseña:
smb://username@hostname/printer_name
Asegúrate de que el usuario tenga acceso a la impresora en la máquina con Windows. Selecciona el drivers apropiado. Si la máquina está en un dominio, asegúrate de que el nombre de usuario incluye el dominio. (p.e.: DOMAIN\User)
Nota: si tu red tiene muchas impresoras utiliza "lpoptions -d nombre_de_tu_impresora_predeterminada" para seleccionar tu impresora preferida.
Windows a Linux
A veces, puede que quieras dejar que una máquina con Windows se conecte a tu Linux. Hay varias formas de hacerlo y con la que estoy más familiarizado es la que utiliza Samba. Para hacerlo, deberás editar el /etc/samba/smb.conf para permitir el acceso a tus impresoras. Tu smb.conf podría ser algo como esto:
[global]
workgroup = Heroes
server string = Arch Linux Print Server
security = user
[printers]
comment = All Printers
path = /var/spool/samba
browseable = yes
# to allow user 'guest account' to print.
guest ok = no
writable = no
printable = yes
create mode = 0700
write list = @adm root neocephas
Esto debería bastar para compartir tu impresora, pero podrías querer añadir una entrada individual para la impresora:
[ML1250]
comment = Samsung ML-1250 Laser Printer
printer=ml1250
path = /var/spool/samba
printing = cups
printable = yes
printer admin = @admin root neocephas
user client driver = yes
# to allow user 'guest account' to print.
guest ok = no
writable = no
write list = @adm root neocephas
valid users = @adm root neocephas
Observa que en mi configuración hice esto para que los usuarios deban tener una cuenta válida para acceder a la impresora. Para una impresora pública pon el 'guest ok' en 'yes' y quita la línea 'valid users'. Para añadir cuentas tendrás que crear una cuenta normal Linux y después configurar una contraseña Samba en el servidor. Por ejemplo:
# useradd neocephas # smbpasswd -a neocephas
Después de configurar las cuentas que necesites, tendrás que crear el directorio spool para samba:
# mkdir /var/spool/samba # chmod 777 /var/spool/samba
Lo siguiente que necesitarás cambiar es /etc/cups/mime.convs y /etc/cups/mime.types:
mime.convs:
# La siguiente línea se encuentra cerca del final del fichero. Quita la almohadilla para descomentarla. application/octet-stream application/vnd.cups-raw 0 -
mime.types:
# También cerca del final del fichero. application/octet-stream
Los cambios en mime.convs y mime.types se necesitan para hacer que CUPS imprima docuemntos de la Microsoft Office. Mucha gente lo necesitará.
Después de esto reinicia el demonio Samba:
# /etc/init.d/samba restart
Como es lógico hay muchos trucos y optimizaciones que se pueden hacer configurando un servidor de impresión Samba, así que te aconsejo mirar la documentación de Samba y CUPS para conseguir más ayuda. El archivo smb.conf.example también tiene algunos buenos ejemplos que puedes querer examinar.
Windows 2000 y Windows XP a Linux
Para las versiones más modernas de Windows una manera alternativa de conectar con tu servidor de impresión Linux es utilizar el protocolo CUPS directamente. El cliente Windows necesitará utilizar Windows 2000 o Windows XP. Debes estar seguro de que has dado permiso a los clientes para acceder al servidor de impresión editando la configuración de la localización según lo especificado en la sección 4.1.
En la máquina Windows, ve al panel de control de la impresora y selecciona 'Añadir una nueva impresora'. Después selecciona dar una url. En la url pon la dirección de tu impresora:
http://dirección_ip_del_host:631/printers/nombre_de_la_impresora
donde dirección_ip_del_host es la dirección del servidor Linux y nombre_de_la_impresora es el nombre de la impresora a la que te quieres conectar. Después de esto, instala los drivers de Windows para la impresora. Si has configurado el servidor CUPS para que utilice sus propios drivers de impresora, entonces sólo debes seleccionar una impresora genérica postscript para el cliente Windows. Una vez hecho esto, puedes probar la impresora imprimiendo una página de prueba.
Cualquier otro a Linux, Linux a cualquier otro
Más imformación sobre trabajar en CUPS con otros sistema de impresión se puede encontrar en la página de manual de CUPS, p.e. en http://localhost:631/sam.html#PRINTING_OTHER
Apéndice
Interfaces alternativas para CUPS
Si estás utilizando GNOME, puedes administrar y configurar tu impresora con gnome-cups-manager.
Este paquete está disponible a través de pacman si tienes el repositorio "community" activado en /etc/pacman.conf
apt-get install gnome-cups-manager
También está disponible en AUR.
Los usuarios de KDE pueden modificar sus impresoras desde el Centro de Control.
En cualquiera de los dos casos para ampliar información deberás ir a la documentación del escritorio correspondiente.
También existe gtklp. Está en el repositorio "extra".
apt-get install gtklp
Recursos y fuentes
Aquí tienes una lista de webs que te pueden ser útiles:
- Documentación oficial de CUPS de tu ordenador http://localhost:631/documentation.html
- Web oficial de CUPS - http://www.cups.org/
- Linux Printing - http://www.linuxprinting.org/
- Trucos y sugerencias sobre problemas comunes con CUPS - http://home.nyc.rr.com/computertaijutsu/cups.html
- Guía de impresión de Gentoo - http://www.gentoo.org/doc/en/printing-howto.xml
- Foro de usuarios Arch Linux en español - http://www.archlinux.com.ar/foros/