Guía de Impresión Gentoo
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
<*> 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
# 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
application/octet-stream
# vim /etc/cups/mime.convs
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
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 |
# lpstat -a
hpljet5p accepting requests since Jan 01 00:00
hpdjet510 accepting requests since Jan 01 00:00
# 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 |
$ dmesg | grep -i print
parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series
$ 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 |
# 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 -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
|
El contenido de este documento está registrado bajo los términos de
la licencia
Creative Commons - Reconocimiento / Compartir Igual
|