Gentoo Logo

Guía de Impresión Gentoo

Contenido:

1. Impresión y Gentoo Linux

Usar las Herramientas Adecuadas

Linux tiene un excelente soporte de impresoras; la herramienta adecuada para ello se llama CUPS (Sistema Común de Impresión Unix). Desde el comienzo del proyecto, en 1999, la instalación y mantenimiento de CUPS ha mejorado drásticamente.

En este documento cubriremos cómo usar CUPS para configurar una impresora local o en red. No lo haremos con gran detalle dado que el proyecto dispone de una excelente documentación disponible para un uso más avanzado.

2. Configurar el Núcleo

Introducción

Cuando se quiera instalar una impresora en el sistema, debe saberse el tipo de conexión que dicha impresora usará. Puede ser a través de un puerto local como el paralelo (LPT) o bien a través del Bus Serie Universal (USB) o ¿está en red? Si lo está, ¿usa el protocolo de impresión internet (IPP) o bien lo hace a través del protocolo de Microsoft Windows SMB-CIFS (Compartir de Microsoft Windows)?

Las siguientes secciones explican la configuración mínima del núcleo requerida. Por supuesto, ello depende de la conexión que vaya a tener la impresora al sistema, así pues, hemos separado las instrucciones en virtud a la misma:

Así pues, pasamos a /usr/src/linux y ejecutamos make menuconfig para configurar el núcleo. Si se usó genkernel para configurarlo, deben seguirse estas indicaciones también para comprobar que no falta ningún requisito.

En los siguientes ejemplos de configuración, añadiremos el soporte necesario integrado en el núcleo, no como módulos. Ésto no es obligatorio; si se desea puede añadirse soporte modular. En cuyo caso, no hay que olvidar cargar los módulos necesarios después. También emplearemos una configuración del núcleo 2.6 como ejemplo; los usuarios del núcleo 2.4 deben encontrar las directivas para configurar el núcleo en otra parte.

Ahora, nos dirigimos a la sección adecuada para configurar (o comprobar) el núcleo.

Impresora Conectada Localmente (LPT)

El puerto LPT se usa normalmente para identificar el puerto paralelo de la impresora. Es necesario habilitar previamente el soporte para el puerto paralelo, exactamente "PC-style parallel port support" (excepto si se es un usuario de SPARC), después de lo cual habilitaremos el soporte para una impresora a través del puerto paralelo (parallel printer support).

Listado de Código 2.1: Configuración de una impresora por el puerto paralelo

Device Drivers -->
  <*> Parallel port support
  <*>   PC-style hardware

Device Drivers -->
  Character Devices -->
    <*> Parallel printer support

Algunos usuarios necesitarán habilitar otras opciones en la sección Parallel port support. Hay que ver la opción de ayuda (Help) en la configuración del núcleo para más información.

Eso es todo; salimos de la configuración del núcleo y lo compilamos. No hay que olvidar copiar la imagen del núcleo a /boot (ni montar la partición /boot en caso de ser necesario) y, por supuesto, actualizar la configuración del gestor de inicio (grub o lilo) antes de reiniciar el sistema.

Ahora continuamos con Instalar y Configurar CUPS.

Impresora Conectada Localmente (USB)

Para habilitar la impresión USB, necesitamos soporte USB y soporte para impresora USB.

Listado de Código 2.2: Configuración de la impresora por puerto USB

Device Drivers -->
  USB Support -->
    <*> Support for Host-side USB
    (...)
    --- USB Host Controller Drivers
    (Hay que seleccionar el HCD que use el sistema. Si no se sabe cuál
     hay que seleccionar, puede ejecutarse "lspci -v | grep HCI" desde otra
     terminal)
    <*> EHCI HCD (USB 2.0) support ( ó )
    <*> OHCI HCD support           ( ó )
    <*> UHCI HCD (most Intel and VIA) support
    (...)
    <*> USB Printer support

Eso es todo; salimos de la configuración del núcleo y lo compilamos. No hay que olvidar copiar la imagen del núcleo a /boot (ni montar la partición /boot en caso de ser necesario) y, por supuesto, actualizar la configuración del gestor de inicio (grub o lilo) antes de reiniciar el sistema.

Ahora continuamos con Instalar y Configurar CUPS.

Impresora Conectada Remotamente (IPP)

Para poder conectar a una impresora remotamente a través del protocolo de impresión Internet (Internet Printing Protocol) el núcleo tan sólo necesita soporte de red. Asumiendo que el núcleo ya lo tendrá, continuamos con Instalar y Configurar CUPS.

Impresora Conectada Remotamente (SMB-CIFS)

El núcleo deberá soportar SMB CIFS:

Listado de Código 2.3: Configuración de impresora SMB-CIFS

File systems -->
  Network File Systems -->
    <*> SMB file system support (to mount Windows shares etc.)
    <*> CIFS support (advanced network file system for Samba, Windows and other CIFS compliant servers)

Eso es todo; salimos de la configuración del núcleo y lo compilamos. No hay que olvidar copiar la imagen del núcleo a /boot (ni montar la partición /boot en caso de ser necesario) y, por supuesto, actualizar la configuración del gestor de inicio (grub o lilo) antes de reiniciar el sistema.

Ahora continuamos con Instalar y Configurar CUPS.

3. Instalar y Configurar CUPS

Instalación

Instalar CUPS con Gentoo es muy sencillo. CUPS dispone de algunas características opcionales que pueden interesarnos. Para habilitar o inhabilitar estas características, usaremos los parámetros USE asociados a las mismas.

Parámetro USE Efecto en CUPS
nls Habilita el soporte para el lenguaje nacional. Con nls, CUPS será capaz de proporcionarnos mensajes en nuestro idioma, con lo cual podremos disfrutar de CUPS en nuestra lengua materna.
pam Si se necesita autenticación de los trabajos de impresión a través de los módulos de autenticación de conexión (Pluggable Authentication Modules), con este parámetro se activará el soporte PAM para CUPS.
samba Si se quieren compartir impresoras conectadas localmente con sistemas Windows en nuestra red usando el protocolo SMB-CIFS, o si se quieren usar impresoras compartidas desde sistemas Windows, será necesario añadir soporte SAMBA.
slp En un entorno en el que la impresora puede hacerse disponible como un servicio. Con el Protocolo de Localización de Servicios se pueden localizar y configurar servicios en nuestro sistema de forma muy sencilla. Hay que habilitar este parámetro USE si la impresora está disponible como servicio o si se pretende hacerla disponible como tal.
ssl Si se desea autenticación remota y/o privacidad, se necesita soporte para la capa de conexión segura (Secure Socket Layer), que permitirá el cifrado de sesiones de impresión. El soporte para la capa de conexión segura deberá estar habilitado en todos los sistemas que participen en la red.

Comprobemos los parámetros USE actuales. Si queremos modificar alguno de ellos tan sólo para CUPS, añadiremos los adecuados en /etc/portage/package.use.

Listado de Código 3.1: Configuración de parámetros USE para CUPS

# emerge -pv cups
[ebuild N     ] net-print/cups-1.1.23-r1  +nls +pam -samba -slp +ssl 0 kB

(Para añadir soporte SAMBA a CUPS, por ejemplo)
# vim /etc/portage/package.use
net-print/cups samba

Si estamos satisfechos con el resultado, dejamos que Portage instale CUPS.

Listado de Código 3.2: Instalación de CUPS

# emerge cups

El proceso de compilación puede informarnos acerca de la necesidad de ejecutar rc-update add coldplug default. Si vamos a emplear una impresora USB y se ha añadido todo el soporte necesario como módulos, esto permitirá cargar automáticamente todos los módulos USB del núcleo necesarios al inicio.

Si la impresora está conectada localmente en el sistema, es necesario cargar CUPS automáticamente al iniciarlo. Debemos asegurarnos de que la impresora está conectada y funcionando antes de iniciar CUPS.

Listado de Código 3.3: Iniciando CUPS automáticamente

# /etc/init.d/cupsd start
# rc-update add cupsd default

Configuración

La configuración por defecto de CUPS en /etc/cups/cupsd.conf será suficiente para la mayoría de usuarios. De cualquier forma, algunos de ellos necesitarán realizar algunos cambios en la configuración de CUPS.

En las siguientes secciones, cubriremos algunos de los cambios que son necesarios a menudo:

Acceso a una impresora remota

Si queremos que otros sistemas empleen nuestra impresora a través de IPP (protocolo de impresión internet) es necesario conceder permiso para acceder a la impresora explícitamente en /etc/cups/cupsd.conf. Si se quiere compartir la impresora usando SAMBA, este cambio no es necesario.

Abrimos /etc/cups/cupsd.conf con nuestro editor y añadimos una línea Allow para el o los sistemas que deben poder llegar a nuestra impresora. En el siguiente ejemplo, concedemos acceso a la impresora a todo sistema cuya dirección IP empiece por 192.168.0.

Listado de Código 3.4: Permitir acceso remoto a la impresora

<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.*
</Location>

Administración remota de CUPS

Si estamos interesados en la administración remota, necesitaremos proporcionar acceso a otros sistemas, no sólo al sistema local, para la administración de CUPS. Editamos /etc/cups/cupsd.conf y permitimos el acceso a los sistemas deseados. Por ejemplo, para permitir el acceso al sistema con la dirección IP 192.168.0.3:

Listado de Código 3.5: Permitir el acceso remoto en /etc/cups/cupsd.conf

<Location /admin>
(...)
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.3
</Location>

No debemos olvidar reiniciar CUPS después de hacer modificaciones al archivo /etc/cups/cupsd.conf ejecutando /etc/init.d/cupsd restart.

Habilitar soporte para los controladores PCL Windows

Los controladores PCL envían datos en crudo al servidor de impresión. Para habilitar el soporte de dichos datos en CUPS, necesitaremos editar /etc/cups/mime.types y descomentar la línea application/octet-stream. Después editaremos también /etc/cups/mime.convs y quitaremos el comentario a application/octet-stream.

Listado de Código 3.6: Habilitar la impresión de datos en modo directo

# vim /etc/cups/mime.types
(Quitamos el comentario a la línea para que muestre:)
application/octet-stream

# vim /etc/cups/mime.convs
(Quitamos el comentario a la línea para que muestre:)
application/octet-stream     application/vnd.cups-raw    0    -

No debemos olvidar reiniciar CUPS después de hacer cambios a /etc/cups/cupsd.conf ejecutando /etc/init.d/cupsd restart.

Configurar una impresora remota

Si las impresoras están conectadas a un servidor de impresión CUPS remoto, se puede configurar de forma muy sencilla nuestro sistema para que use la impresora remota, modificando el archivo /etc/cups/client.conf.

Asumiendo que la impresora está conectada a un sistema llamado printserver.mydomain, abrimos con un editor /etc/cups/client.conf y añadimos la directiva ServerName:

Listado de Código 3.7: Modificación de client.conf

# vim /etc/cups/client.conf


(Hay que sustituir printserver.mydomain con el nombre adecuado del servidor de
impresión)

ServerName printserver.mydomain

El sistema remoto tendrá una configuración por defecto de la impresora que emplearemos. Si deseamos cambiar la impresora por defecto, usaremos lpoptions:

Listado de Código 3.8: Cambiar la impresora por defecto

(Primero veamos una lista de las impresoras disponibles)
# lpstat -a
hpljet5p accepting requests since Jan 01 00:00
hpdjet510 accepting requests since Jan 01 00:00


(Configuramos la impresora HP LaserJet 5P como impresora por defecto:)

# lpoptions -d hpljet5p

4. Configurar la impresora

Introducción

Si la impresora que queremos configurar está disponible remotamente a través de un servidor de impresión (ejecutando CUPS) no necesitaremos seguir estas instrucciones. En su lugar, seguiremos estas otras Configurar una impresora remota.

Detectar la Impresora

Si se tiene una impresora USB o la impresora conectada al puerto paralelo estaban funcionando cuando se inició el sistema Linux, podremos encontrar información del núcleo diciéndonos que detectó la impresora satisfactoriamente. De cualquier forma esto es sólo una indicación y no un requisito.

Listado de Código 4.1: Obteniendo información del núcleo

(Para una impresora por el puerto paralelo)
$ dmesg | grep -i print
parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series

(Para una impresora por el puerto USB)
$ lsusb
(...)
Bus 001 Device 007: ID 03f0:1004 Hewlett-Packard DeskJet 970c/970cse

Instalar la impresora

Para tener la impresora instalada en el sistema, lanzamos nuestro navegador e introducimos la dirección http://localhost:631 . Con lo cual aparecerá la interfaz web de CUPS, desde la que podremos realizar todas las tareas de administración.

Vamos a Tareas de administración y entramos con el usuario root y la contraseña pertinente. Cuando llegamos a la interfaz administrativa, hacemos click en Añadir impresora y nos encontraremos con una pantalla que nos permitirá introducir la siguiente información:

  • El Nombre de la cola de impresión, un breve pero descriptivo nombre usado en el sistema para identificar la impresora. Este nombre no debe contener ni espacios ni caracteres especiales. Por ejemplo, para la impresora HP LaserJet 5P podemos indicar hpljet5p.
  • La Ubicación, una descripción de dónde se encuentra localizada la impresora físicamente (por ejemplo, en mi habitación, o en la cocina encima del lavavajillas, ...). Esto es para ayudarnos a mantener varias impresoras.
  • La Descripción donde debemos añadir una completa descripción de la impresora. El uso más frecuente es añadir el nombre completo de la impresora (como "HP LaserJet 5P").

La siguiente pantalla nos pregunta acerca de la Conexión. Podremos elegir entre varios tipos. La siguiente tabla muestra algunos de ellos, pero no es exhaustiva.

Dispositivo Descripción
AppSocket/HP JetDirect Este dispositivo especial permite acceder a impresoras remotas a través de una conexión HP JetDirect. Sólo algunas impresoras específicas lo soportan.
Internet Printing Protocol (IPP o HTTP) Usaremos este para acceder a una impresora remota a través del protocolo de impresión internet, bien directamente (IPP) o bien a través de HTTP.
LPD/LPR Host or Printer Seleccionaremos este si la impresora es remota y está conectada a un servidor LPD/LPR.
Parallel Port #1 Seleccionaremos este cuando la impresora se encuentre conectada localmente al puerto paralelo (LPT). Cuando la impresora se detecta automáticamente se añadirá su nombre al dispositivo también.
USB Printer #1 Elegiremos este cuando la impresora esté conectada localmente a un puerto USB. El nombre de la impresora se anexará al nombre del dispositivo automáticamente.

Si se está instalando una impresora remota, se nos preguntará acerca de la URI de la impresora:

  • Un servidor de impresión LPD requiere la sintaxis lpd://hostname/queue
  • Una impresora HP JetDirect requiere la sintaxis socket://hostname
  • Una impresora IPP requiere la sintaxis http://hostname:631/ipp/queue o bien ipp://hostname/ipp/queue

A continuación seleccionamos el fabricante de la impresora y en la subsiguiente pantalla, el modelo y el número. Para muchas impresoras pueden encontrarse múltiples controladores. Puede seleccionarse uno en este momento o bien buscar en la Lista de impresoras LinuxPrinting.org uno más adecuado. Pueden cambiarse los controladores fácilmente posteriormente.

Una vez hayamos seleccionado el controlador, CUPS nos informará de que la impresora ha sido añadida satisfactoriamente al sistema. Ahora podemos seleccionar la opción Administrar impresoras en la interfaz de administración y seleccionar Configurar impresora para modificar los parámetros de la misma (resolución, formato de página, ...).

Comprobar y Reconfigurar la Impresora

Para verificar que la impresora está funcionando correctamente vamos a Administrar impresoras, seleccionamos la impresora y pulsamos en Imprimir página de prueba.

Si la impresora no parece funcionar correctamente, pulsaremos en Modificar impresora para reconfigurarla. Se nos mostrarán los mismos mensajes que aparecieron durante la primera instalación, pero la configuración por defecto será nuestra configuración ahora.

Si no se tiene idea de porqué la impresora no está funcionando, podemos obtener alguna pista comprobando el fichero /var/log/cups/error_log. En el siguiente ejemplo encontramos que hay un problema de permisos, probablemente debido a un parámetro Allow inadecuado en /etc/cups/cupsd.conf .

Listado de Código 4.2: Buscando errores CUPS

# tail /var/log/cups/error_log
(...)
E [11/Jun/2005:10:23:28 +0200] [Job 102] Unable to get printer status (client-error-forbidden)!

Instalar el Mejor Controlador

Existen muchos controladores de impresoras; para encontrar cuál de ellos ofrece el mayor rendimiento para nuestra impresora, visitamos la Lista de impresoras LinuxPrinting. Seleccionamos la marca y el tipo para ver el controlador que nos recomiendan. Por ejemplo, para la HP LaserJet 5P, en esta página nos recomiendan el controlador ljet4.

Descargamos el archivo PPD y lo colocamos en /usr/share/cups/model. Esto nos proporcionará el controlador a través de la interfaz web de CUPS. Ahora reconfiguramos la impresora como se ha descrito anteriormente.

5. Uso de Controladores Especiales para la Impresora

Introducción

Algunas impresoras requieren controladores específicos para proporcionar características adicionales que no se proporcionan siguiendo el método de configuración descrito anteriormente. En este capítulo explicamos cómo hacer funcionar algunas de estas impresoras bajo Gentoo Linux.

Cubriremos las siguientes impresoras y/o controladores:

Controlador Gimp-Print

Los controladores gimp-print son de gran calidad, de código fuente abierto para varias impresoras Canon, Epson, HP, Lexmark, Sony, Olympus y PCL que soportan CUPS, ghostscript, El Gimp y otras aplicaciones.

El árbol portage de Gentoo contiene un ebuild para los controladores gimp-print. Tan sólo hay que usar emerge para instalarlos. Es importante hacer notar que el ebuild atiende a varios parámetros USE (como cups y ppds). ¡Es necesario habilitar como mínimo esos dos parámetros!

Listado de Código 5.1: Instalación de los controladores gimp-print

# emerge gimp-print

Cuando el proceso emerge concluya, los controladores Gimp-Print estarán disponibles a través de la interfaz web de CUPS.

Controlador HPLIP

El proyecto HPLIP incorpora el controlador hpijs e incluye soporte para escáner y herramientas para varios periféricos multi-función. Para que soporte la impresión, debemos habilitar el parámetro USE ppds.

Listado de Código 5.2: Instalación de los controladores hplip

(Compruebe que esté activado el parámetro USE ppds)
# emerge -vp hplip
These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] net-print/hplip-0.9.5  +X +cups +foomaticdb +ppds -qt -scanner -snmp +usb 9,255 kB 

Total size of downloads: 9,255 kB

# emerge hplip

Cuando el proceso emerge concluya, los controladores de impresión estarán disponibles a través de la interfaz web de CUPS.

Controlador PNM2PPA

PPA es una tecnología de HP orientada a enviar todo el procesamiento de bajo nivel al sistema, en lugar de a la impresora. Con lo cual las impresoras son menos caras, pero consumen muchos más recursos.

Si en el enlace de LinuxPrinting nos informan de que el controlador pnm2ppa es nuestra mejor opción, debemos instalar el filtro pnm2ppa en nuestro sistema:

Listado de Código 5.3: Instalación del filtro pnm2ppa

# emerge pnm2ppa

Una vez instalado, descargue el fichero PPD para su impresora desde el sitio Web LinuxPrinting y ubíquelo en el directorio /usr/share/cups/model. Luego, configure su impresora usando los pasos explicados anteriormente.

6. Imprimiendo desde y hacia Microsoft Windows

Configuración de un cliente Windows IPP

Microsoft Windows soporta IPP (Aunque los usuarios de Windows 9x y ME necesitarán instalarlo por separado). Para instalar una impresora conectada a nuestro sistema Linux bajo Windows, lanzamos el asistente Agregar impresora y seleccionamos impresora de red. Cuando nos pregunte acerca de la dirección URL de la impresora, usaremos la sintaxis http://hostname:631/printers/queue.

Hay que asegurarse de que los sistemas pueden acceder a la impresora.

Configuración de un Cliente Windows para una impresora compartida con Samba

Para compartir la impresora en la red SMB-CIFS, se debe tener SAMBA instalado y configurado correctamente. Cómo hacerlo escapa a las pretensiones de este documento, pero trataremos brevemente la configuración de impresoras compartidas SAMBA.

Abrimos /etc/samba/smb.conf con nuestro editor y añadimos una sección [printers] al mismo:

Listado de Código 6.1: Añadiendo la sección [printers]

[printers]
  comment      = All printers
  path         = /var/spool/samba
  browseable   = no
  guest ok     = no
  writable     = no
  printable    = yes
  public       = yes
  printer name = hpljet5p

Ahora vamos al principio del archivo smb.conf hasta que nos encontremos en la sección [global]. Localizamos los ajustes printcap name y printing y los dirigimos hacia cups:

Listado de Código 6.2: Modificaciones en la sección [global]

[global]
  (...)
  printcap name = cups
  printing      = cups

Hemos de asegurarnos de Habilitar soporte para los controladores PCL Windows en CUPS. Después reiniciamos el servicio smb para hacer las modificaciones efectivas.

Configuración de un Cliente Linux para un Servidor de Impresión Windows

Antes de nada, debemos asegurarnos de que la impresora está compartida en el sistema Windows.

Después, en la interfaz web de CUPS, configuraremos la impresora como se describió anteriormente. Notaremos que CUPS ha añadido otro controlador denominado Windows Printer vía SAMBA. Lo seleccionamos y usaremos la sintaxis smb://username:password@workgroup/server/printername o smb://server/printername para la URI.

7. Aplicaciones Relacionadas con la Impresión

Introducción

Existen muchas herramientas que nos ayudarán a configurar una impresora, usar filtros de impresión adicionales, añadir características adicionales de nuestra impresora, etc. En este capítulo mostramos una de ellas; por supuesto, no vamos a mostrar una lista exhaustiva ni vamos a cubrir la herramienta con gran detalle.

Gtk-LP - Una Herramienta de Configuración de Impresoras Gtk

Con Gtk-LP podemos instalar, modificar y configurar la impresora desde una aplicación Gtk. Emplea CUPS y proporciona toda la capacidad de CUPS. Merece la pena emplearla si no resulta de nuestro agrado la interfaz web de CUPS o necesitamos de una aplicación auto-suficiente para nuestras rutinas de impresión diarias.

Para instalarla, emerge gtklp:

Listado de Código 7.1: Instalación de Gtk-LP

# emerge gtklp


Imprimir

Actualizado 21 de noviembre, 2005

Sumario: Este documento cubre la instalación y mantenimiento de impresoras usando CUPS y Samba. Cubre la instalación local y la instalación en red y también muestra instrucciones acerca de cómo usar impresoras compartidas desde otros sistemas operativos.

Sven Vermeulen
Autor

John Christian Stoddart
Traductor

José Luis Rivero
Traductor

Fernando M. Bueno
Traductor

Donate to support our development efforts.

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

php|architect

php|architect

Copyright 2001-2005 Gentoo Foundation, Inc. Questions, Comments? Email www@gentoo.org.