Impresión

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Printing and the translation is 66% complete.
Outdated translations are marked like this.

Este documento cubre la instalación y mantenimiento de impresoras mediante CUPS y Samba. Cubre la instalación local y la instalación en red y contiene instrucciones acerca de cómo usar impresoras compartidas desde otros sistemas operativos. Para obtener más información acerca del uso de las órdenes lp o lpr para imprimir documentos, leer la excelente documentación del proyecto CUPS.

La impresión y Gentoo Linux

Utilizar las herramientas adecuadas

Linux ofrece buen soporte para las impresoras. La herramienta adecuada para este trabajo es CUPS (Common Unix Printing System). Desde el comienzo de este proyecto allá por 1999, la instalación y el mantenimiento de CUPS ha mejorado sustancialmente.

En este documento mostraremos como usar CUPS para configurar una impresora local o en red. No se entrará en mucho detalle ya que el proyecto dispone de un magnífica documentación para un uso avanzado.

Instalación

Núcleo

Cuando un usuario quiere instalar una impresora en un sistema, el primer paso es saber cómo se conecta la impresora al sistema. ¿Lo hace a través de un puerto local como LPT o USB, o está en red?. En este último caso, ¿Utiliza el protocolo de impresión de Internet (IPP) o el protocolo CIFS de Microsoft Windows (Compartir recursos en Microsoft Windows)?

La siguientes secciones indican la configuración mínima de núcleo que se necesita para conectar una impresora en Gentoo. Por supuesto, esto depende de cómo se va a conectar la impresora al sistema, por lo que para mayor comodidad se han separado las indicaciones.

Ir a /usr/src/linux y lanzar make menuconfig para entrar en la configuración del núcleo. Si se ha utilizado genkernel para configurar el núcleo, entonces se deberían realizar estos pasos para asegurarse de que se no ha olvidado nada. No se puede confiar únicamente en genkernel para configurar todo dentro del sistema de forma automática. La impresión es un área en la que es complicado ajustar todo de forma automática.

En los siguientes ejemplos de configuración se ha añadido el soporte necesario en el núcleo, no como módulos. No es obligatorio construir el núcleo de esta forma. Si se desea soporte modular, simplemente ¡No olvide que después se deben cargar los módulos apropiados!.

Ahora vaya a la sección apropiada 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 activar previamente el soporte para el puerto paralelo, exactamente "PC-style parallel port support" (a menos que se esté utilizan un sistema SPARC), después de ésto, habilitaremos el soporte para una impresora a través del puerto paralelo.

KERNEL Configuración para una impresora conectada al puerto paralelo
'"`UNIQ--pre-00000001-QINU`"'
Nota
Algunos usuarios podrían activar otras opciones en la sección Parallel port support. Hay que comprobar la opción de ayuda (Help) en la configuración del núcleo para más información.

¡Eso es todo! Salir de la configuración del núcleo y reconstruirlo.

Ahora continúe con CUPS.

Impresora conectada localmente (USB)

CUPS soporta la impresión USB con el ajuste USE USB habilitado. Esto utiliza la biblioteca libusb para el soporte de USB en el espacio de usuario.

Algunos paquetes de software antiguos pueden requerir soporte de impresora USB dentro del núcleo. Se se construye como módulos, éste debería llamarse usblp:

KERNEL Soporte para USB para impresoras
Symbol: USB_PRINTER [=n]
Type  :tristate
Prompt: USB Printer support
  Location:
    -> Device Drivers
      -> USB support (USB_SUPPORT [=y])
(1)     -> Support for Host-side USB (USB [=y])
  Defined at drivers/usb/class/Kconfig:21
  Depends on: USB_SUPPORT [=y] && USB [=y]

Sin embargo, la utilización del soporte para impresoras USB dentro del núcleo se considera obsoleto. Hacer esto sólo cuando sea estrictamente necesario.

Nota
When using a USB to parallel port adapter, CUPS will not be able to detect the printer. As a workaround, add the printer using a different connection type and then change the DeviceURI directive in printers.conf and restart the cupsd service:
ARCHIVO /etc/cups/printers.confModify DeviceURI
# DeviceURI usb:/dev/usb/lp0  replace this line with
DeviceURI parallel:/dev/usb/lp0

Impresora conectada de forma remota (IPP y LPD)

Para poder conectar a una impresora remota a través del protocolo de impresión de Internet (Internet Printing Protocol) o el protocolo del demonio de impresora de línea el núcleo necesita soporte de red. Asumiendo que el núcleo ya lo tiene, continúe con CUPS.

Impresora conectada de forma remota (CIFS)

El núcleo debe ofrecer soporte para CIFS:

KERNEL Configuración de impresora CIFS
'"`UNIQ--pre-00000008-QINU`"'

Una vez se ha completado la configuración para CIFS, salga de la configuración del núcleo y reconstrúyalo. No hay que olvidar copiar la imagen del núcleo a la localización /boot (y no olvidar montar /boot si es necesario) y actualizar la configuración del cargador de arranque antes de reiniciar el sistema. Observe las órdenes que se deben lanzar como root en el paso Impresora conectada localmente (LPT) de arriba para sbar cómo realizar estos pasos.

Ahora continúe con los siguientes pasos del proceso de instalación de CUPS.

Ajustes USE

CUPS dispone de algunas características opcionales que pueden se de su interés. Para activar o desactivar estas características, usaremos los ajustes USE asociados a las mismas.

USE flags for net-print/cups The Common Unix Printing System

+ssl Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
X Add support for X11
acl Add support for Access Control Lists
dbus Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
kerberos Add kerberos support
openssl Use dev-libs/openssl instead of net-libs/gnutls for TLS support
pam Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
static-libs Build static versions of dynamic libraries as well
systemd Enable use of systemd-specific libraries and features like socket activation or session tracking
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
usb Add USB support to applications that have optional USB support (e.g. cups)
xinetd Add support for the xinetd super-server
zeroconf Support for DNS Service Discovery (DNS-SD)

Compruebe los ajustes USE actuales. Para desviarse de los ajustes actuales solo para CUPS, añáda los deseados al fichero /etc/portage/package.use.

root #emerge -pv net-print/cups
[ebuild N     ] net-print/cups-1.7.3  USE="X acl dbus pam ssl threads usb -debug -gnutls -java -kerberos -lprng-compat -python (-selinux) -static-libs -systemd -xinetd -zeroconf" ABI_X86="(64) (-32) (-x32)" LINGUAS="ca es fr it ja pt_BR ru" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7" 0 kB

Emerge

Cuando esté satisfecho con el resultado, pídale a Portage que instale CUPS:

root #emerge --ask net-print/cups

Software adicional

Samba

Para habilitar el soporte para SAMBA, se necesita instalar net-fs/samba con soporte para CUPS. Actualice el fichero o directorio /etc/portage/package.use para habilitar el ajuste USE cups:

ARCHIVO /etc/portage/package.useHabilitar el ajuste USE cups para samba
net-fs/samba cups

A continuación (re)instale Samba:

root #emerge --ask net-fs/samba

Avahi

CUPS uses Avahi internally when built with the zeroconf USE flag to scan for printers on the local network. To use Avahi hostnames to connect to networked printers, set up .local hostname resolution and restart the CUPS service. CUPS and cups-filters need to be built with the zeroconf USE flag as well. Use the driverless command for listing available printers.

user $driverless list

Configuración

Grupo de impresión

Cualquier usuario que necesite imprimir debe añadirse al grupo lp:

root #gpasswd -a username lp

Para poder añadir y editar impresoras a través de la interfaz web de CUPS, cualquier usuario autorizado debe pertenecer al grupo lpadmin:

root #gpasswd -a username lpadmin

Servicio

OpenRC

Si la impresora está conectada localmente al sistema y necesita estar disponible en cada inicio, se necesita cargar el demonio de CUPS cada vez que se arranca el sistema. Asegúrese de que la impresora está conectada y alimentada antes de que se arranque el demonio de CUPS.

root #service cupsd start
root #rc-update add cupsd default

systemd

Para iniciar el demonio de CUPS de forma inmediata y hacer que arranque cuando el sistema se inicie, lanzar:

root #systemctl start cups.service
root #systemctl enable cups.service

Interfaz HTTP

Una vez se ha arrancado el servicio, los usuario autenticados pueden añadir impresoras, root está disponible por defecto y cualquier miembro del grupo lpadmin. Abrir la siguiente URL en un navegador Web:

http://localhost:631/

Ficheros

La configuración por defecto del servidor CUPS localizada en /etc/cups/cupsd.conf es suficiente para la mayoría de los usuarios. Sin embargo, algunos usuarios podrían necesitar cambios a la configuración de CUPS.

En las siguientes secciones se cubren algunos cambios que se necesitan a menudo:

  • Permitimos a otros sistemas que utilicen la impresora conectada a esta estación de trabajo Linux.
  • Concedemos acceso a la administración de CUPS desde sistemas remotos.
  • Configuramos CUPS para que ofrezca soporte a los controladores PCL de Windows. Esto se recomienda para que los sistemas Windows puedan utilizar una impresora compartida con SAMBA ya que la mayoría de los controladores Windows son PCL.
  • Configuramos este sistema para que utilice una impresora conectada a otro sistema (no a través de un recurso Windows compartido).

Acceso a impresoras remotas

Para que otros sistemas utilicen su impresora a través de IPP, se necesita permitir explícitamente el acceso a la impresora en el fichero /etc/cups/cupsd.conf. No necesitará realizar este cambio para compartir su impresora mediante SAMBA.

Abra el fichero /etc/cups/cupsd.conf con el editor de texto preferido y añada una línea Allow para el sistema o los sistemas que deberían acceder a la impresora. En el ejemplo de abajo, se concede acceso a la impresora desde localhost y desde cualquier sistema cuya dirección IP comience por 192.168.0.

ARCHIVO /etc/cups/cupsd.confPermitir acceso remote a la impresora
<Location />
  Order allow,deny
  Allow localhost
  Allow from 192.168.0.*
</Location>

Esta línea difunde información de navegación a los clientes de la red. Esto hará que los usuarios sepan que la impresora está disponible.

ARCHIVO /etc/cups/cupsd.confInformación de difusión
BrowseAddress 192.168.0.*:631

También se necesita especificar en qué puerto escucha CUPS de modo que responderá a las peticiones desde otras máquinas de la red:

ARCHIVO /etc/cups/cupsd.confConfiguración del puerto
Listen *:631
#Listen localhost:631

The CUPS server reject a hostname or server alias in the HTTP request with "Bad request" message. It works with IP-addresses by default. So if you want to print or browse CUPS interface by using a hostname or domain, add the ServerAlias parameter:

ARCHIVO /etc/cups/cupsd.confServer alias configuration
ServerAlias *

Administración remota de CUPS

Si se necesita realizar una administración remota, entonces se necesita conceder acceso a otros sistemas aparte del equipo local. Edite el fichero /etc/cups/cupsd.conf y conceda acceso de forma explícita a todos los sistemas que necesiten acceso. Por ejemplo, para permitir el acceso a un sistema con dirección IP 192.168.0.3:

ARCHIVO /etc/cups/cupsd.confPermitir acceso remoto
<Location /admin>
(...)
  Encryption Required
  Order allow,deny
  Allow localhost
  Allow 192.168.0.3
</Location>

No olvide reiniciar el demonio de CUPS después de realizar los cambios a /etc/cups/cupsd.conf. Para ello lance la orden /etc/init.d/cupsd restart.

Habilitar soporte para los controladores PCL de Windows

Los controladores PCL envían datos en crudo al servidor de impresión. Para activar el soporte de dichos datos en CUPS, se debe editar /usr/share/cups/mime/mime.types y eliminar los comentarios de la línea application/octet-stream si no están eliminados ya. A continuación, editar /usr/share/cups/mime/mime.convs y hacer lo mismo si no está hecho ya.

ARCHIVO /usr/share/cups/mime/mime.typesHabilitar el soporte para impresión en crudo
application/octet-stream
ARCHIVO /usr/share/cups/mime/mime.convs
application/octet-stream application/vnd.cups-raw 0 -

No olvide reiniciar el demonio de CUPS después de aplicar estos cambios. Para ello, lance /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 el sistema de forma para que use la impresora remota modificando el fichero /etc/cups/client.conf.

Si asumimos que la impresora está conectada a un sistema llamado printserver.mydomain , abra /etc/cups/client.conf con el editor de texto preferido y ajuste la directiva ServerName:

ARCHIVO /etc/cups/client.conf
# (Sustituya servidorimpresion.midominio por el nombre de su servidor de impresión)
ServerName servidorimpresion.midominio

El sistema remoto tendrá una configuración por defecto de la impresora que se utilizará. Para cambiar la impresora por defecto, utilice la orden lpoptions:

En primer lugar, liste las impresoras disponibles:

root #lpstat -a
hpljet5p accepting requests since Jan 01 00:00
hpdjet510 accepting requests since Jan 01 00:00

Defina la impresora HP LaserJet 5P como impresora por defecto:

root #lpoptions -d hpljet5p

Configurar una impresora

Introducción

Si la impresora que se desea configurar está disponible de forma remota a través de un servidor de impresión distinto (pero que está corriendo CUPS), entonces no se necesita seguir las siguientes instrucciones. En su lugar, lea cómo Configurar una impresora remota .

Detectar la impresora

Si se conectó una impresora USB o al puerto paralelo cuando se inició el sistema Linux, se podría recuperar información del núcleo indicando que se detectó la impresora satisfactoriamente. Esto es una mera indicación de que se ha detectado la impresora y no un requisito.

user $dmesg | grep -i print
parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series

Para una impresora USB:

user $lsusb
(...)
Bus 001 Device 007: ID 03f0:1004 Hewlett-Packard DeskJet 970c/970cse


The lpinfo command can be used in order to list all connected printers:

root #lpinfo -v
network ipp
network http
network socket
network https
network ipps
network lpd
network lpd://BRW67890ABCDEF/BINARY_P1

Running lpinfo -l -v will give a more verbose output.


Listing available drivers

Para listar todos los controladores disponibles, lanzar la siguiente orden:

root #lpinfo -m

lpinfo no muestra mucha información y su uso puede resultar complicado. Si se tienen problemas, leer man lpinfo para obtener más información.

Instalar la impresora

Para instalar la impresora en el sistema, lance un navegador e introduzca la dirección http://localhost:631. Se debería mostrar la interfaz web de CUPS, desde la que se pueden realizar todas las tareas administrativas.

Nota
Si se utiliza una conexión HTTPS a CUPS, la primera vez que se accede a la interfaz puede llevar algo de tiempo hasta que aparezca la página. Esto es debido a que la primera petición dispara la generación de certificados SSL de CUPS que puede ser un trabajo que lleve su tiempo.

Vaya a Administración e introduzca la información de acceso de root y la contraseña del equipo. Entonces, cuando acceda al interfaz de administración, haga clic en Añadir impresora. Se mostrará una nueva pantalla en la que se permite introducir la siguiente información:

  • El nombre de la cola de impresión, un nombre corto pero descriptivo que utilizarán 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 se puede mostrar el título hpljet5p.
  • La localización, una descripción de dónde se encuentra localizada físicamente la impresora (por ejemplo "dormitorio" o "en la cocina al lado del lavavajillas", etc.). Esto se hace así para ayudar en el mantenimiento de varias impresoras.
  • La descripción es una descripción completa de la impresora. Una descripción frecuente es el nombre completo de la impresora (por ejemplo "HP LaserJet 5P").

La siguiente pantalla solicita el dispositivo en el que escucha la impresora. Se mostrará la posibilidad de elegir entre varios dispositivos. La siguiente tabla muestra algunos de ellos, pero esta lista no es exhaustiva.

Dispositivo Descripción
AppSocket/HP JetDirect Este dispositivo especial permite acceder a impresoras en red a través de un zócalo HP JetDirect. Solo las impresoras específicas incluyen soporte para esta opción.
Internet Printing Protocol (IPP o HTTP) Utilizar esta opción para acceder a la imprsora remota a través del protocolo IPP bien directamente (IPP) o a través de HTTP.
Equipo o impresora LPD/LPR Seleccione ésta opción si la impresora es remota y está conectada a un servidor LPD/LPR.
Puerto paralelo #1 Seleccionada cuando la impresora es local y está conectada a un puerto paralelo (LPT). Cuando la impresora se detecta automáticamente su nombre se añade al dispositivo.
Impresora USB #1 Seleccionada cuando la impresora es local y está conectada a un puerto USB. Se debería añadir el nombre de la impresora al nombre del dispositivo de forma automática.

Si se está instalando una impresora remota, se le pedirá la URL de la impresora:

  • Un servidor de impresión necesita una sintaxis lpd://nombredeservidor/queue.
  • Un servidor de impresión HP JetDirect necesita una sintaxis socket://nombredeservidor.
  • Una impresora IPP necesita una sintaxis ipp://nombredeservidor/printers/nombredeimpresora o http://nombredeservidor:631/printers/nombredeimpresora.

A continuación seleccione el fabricante de la impresora y en la pantalla siguiente junto con el modelo y el número en la pantalla subsiguiente. Para muchas impresoras puede encontrar múltiples controladores. Seleccione uno o busque en la Lista de impresoras de OpenPrinting uno más adecuado. Los controladores se pueden cambiar fácilmente más tarde.

Una vez haya seleccionado el controlador, CUPS se informará de que la impresora se ha añadido satisfactoriamente al sistema. Navegue a la página de administración de la impresora y seleccione Configurar impresora para modificar los ajustes de la misma (resolución, formato de página, ...).

Probar y reconfigurar la impresora

Para verificar que la impresora está funcionando correctamente vaya a la página de administración de impresoras, seleccione la impresora y haga clic en Imprimir página de prueba.

Si la impresora no parece funcionar correctamente, pulse en Modificar impresora para reconfigurar la impresora. Se mostrarán las mismas pantallas que aparecieron durante la primera instalación, sin embargo, la configuración por defecto ahora será la configuración actual.

Si la impresora no funciona, puede obtener alguna pista echando un vistazo al fichero al registro de errores de CUPS localizado en /var/log/cups/error_log. En el siguiente ejemplo se muestra un error en los permisos, probablemente debido a un ajuste Allow inadecuado en el fichero /etc/cups/cupsd.conf.

root #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, visite la lista de impresoras en OpenPrinting. Se debe seleccionar la marca y el tipo o modelo de la impresora para encontrar el controlador que recomiendan en este sitio. Por ejemplo, para la HP LaserJet 5P nos recomiendan el controlador ljet4.

Descargue el archivo PPD y colóquelo en /usr/share/cups/model, luego lance /etc/init.d/cupsd restart como root. Esto proporcionará el controlador a través de la interfaz web de CUPS. Ahora reconfigure la impresora como se ha descrito anteriormente.

Enabling job accounting in for Xerox printers

High-end Xerox printers (often a gray, cabinet sized device) use XCPT PDL, and XML based, and poorly documented XPIF ticketing instruction format.

XCPT filter in Cups never made it to a release grade, and the work on it was eventually dropped and all XPIF must be input into a PPD manually. Luckily, it's largely a direct copy of IPP, using XML syntax. After peeking into docs available online, we can craft an arbitrary XPIF command using corresponding IPP attributes.

To configure XPIF solely for ticketing/accounting, drop the following into any PPD:

CÓDIGO XPIF code for inserting a user id
*JCLBegin:"<1B>%-12345X@PJL JOB<0A>"

*% Base JCL key code option
*JCLOpenUI JCLPasscode/Key Code: PickOne
*OrderDependency: 10 JCLSetup *JCLPasscode
*JCLPasscode None/No Code: ""
*JCLCloseUI: *JCLPasscode

*% Custom JCL key code option
*CustomJCLPasscode True: "@PJL XCPT <?xml version=<22>1.0<22> encoding=<22>UTF-8<22>?>
  @PJL XCPT <!DOCTYPE xpif SYSTEM <22>xpif-v02074.dtd<22><3E>
  @PJL XCPT <xpif version=<22>1.0<22> cpss-version=<22>2.07<22> xml:lang=<22>en-US<22><3E>
  @PJL XCPT          <job-template-attributes>
  @PJL XCPT <09><09><3C>job-accounting-user-id syntax=<22>name<22> xml:space=<22>preserve<22><3E>\1<3C>/job-accounting-user-id>
  @PJL XCPT          </job-template-attributes>
  @PJL XCPT </xpif>"
*ParamCustomJCLPasscode Code/Key Code: 1 password 0 16

*JCLEnd:"<1B>%-12345X@PJL EOJ<0A><1B>%-12345X<0A>"

It will draw a dropdown box in any printing ui compliant with CUPS PPD extensions to enter the id.

The long term solution would still be for Xerox to fully publish XPIF, and XCPT specifications, to allow for a proper XPIF cups filter to be developed.

Usar controladores especiales de la impresora

Introducción

Algunas impresoras requieren controladores específicos u ofrecen características adicionales que no se habilitan a través del proceso normal de configuración (descrito arriba). En este capítulo mostramos una selección de impresoras y como se consigue hacerlas funcionar en Gentoo Linux.

Controlador Gutenprint

Los controladores gutenprint son controladores de código abierto de gran calidad para varias impresoras Canon, Epson, HP, Lexmark, Sony, Olympus y PCL que ofrecen soporte CUPS. También ofrecen soporte para ghostscript, El Gimp y otras aplicaciones.

El árbol Portage de Gentoo contiene un ebuild para los controladores gutenprint. Para instalarlos, lanzar emerge gutenprint. Observar que este ebuild requiere de varios ajustes USE. Se deben habilitar al menos cups y ppds para que los controladores gutenprint funcionen correctamente.

root #emerge --ask net-print/gutenprint

Cuando el proceso de emerge haya finalizado, los controladores gutenprint estarán disponibles a través de la interfaz web de CUPS.

Controlador HPLIP

Lea el artículo sobre el Controlador HPLIP

Lexmark driver

Most Lexmark printers are handled by their "Universal Printer Driver":

root #emerge --ask net-print/lexmark-upd-ppd

Once this is installed, there is a single Lexmark driver available in the CUPS setup wizard that should work with most printers and MFDs.

Controlador PNM2PPA

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

Si el sitio OpenPrinting informa que el controlador pnm2ppa es la mejor opción, entonces se necesita instalar el filtro net-print/pnm2ppa en el sistema:

root #emerge --ask net-print/pnm2ppa

Una vez instalado, descargue el fichero PPD de la impresora desde el sitio OpenPrinting y colóquelo en el directorio /usr/share/cups/model. A continuación configure la impresora siguiendo los pasos indicados arriba.

Controlador SpliX

SpliX es un conjunto de controladores CUPS para impresoras SPL (Samsung Printer Language). Aunque también existen controladores SpliX en OpenPrinting, el paquete net-print/splix permite una instalación de estos controladores rápida y gestionada por portage. Para instalarlos lance:

root #emerge --ask net-print/splix

y reinicie cupsd.

Controladores de impresora Brother

Canon printer drivers

See the specific pages:

Imprimir desde y hacia Microsoft Windows

Nota
Leer la Guía Samba/CUPS para obtener información más detallada acerca de cómo configurar CUPS con Samba.

Configurar un cliente Windows para IPP

Microsoft Windows ofrece soporte para IPP (Los usuarios de Windows 9x y ME necesitarán instalarlo por separado). Para instalar una impresora en Windows conectada a un sistema Linux bajo Windows, lance el asistente Añadir Impresora y seleccione Impresora en Red. Cuando se solicite el URI, use la sintaxis http://nombredeservidor:631/printers/queue.

Configurar un cliente Windows para una impresora compartida a través de Samba

Para compartir la impresora en la red CIFS, se debe instalar y configurar SAMBA adecuadamente. Los pasos para realizarlo están fuera del alcance de este artículo, sin embargo, se tratará brevemente la configuración de impresoras compartidas a través de SAMBA.

Abra /etc/samba/smb.conf con el editor de texto preferido y añada la sección [printers]:

CÓDIGO Añadir una 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

Navegue al principio del fichero smb.conf hasta que esté en la sección [global]. Localice la entrada printcap name y los ajustes printing y defínalos como cups (mire el ejemplo de abajo):

CÓDIGO Cambiar la sección [global] de smb.conf
[global]
  (...)
  printcap name = cups
  printing = cups

Asegúrese de habilitar el soporte pcl para windows en CUPS. A continuación reinicie el servicio smb para que los cambios tengan efecto.

Configurar un cliente Linux para un servidor de impresión Windows

En primer lugar, asegúrese de que la impresora está compartida en los sistemas Windows y que se ha hecho emerge de net-fs/samba con el ajuste USE cups habilitado tal y como se ha indicado arriba.

Para encontrar el URI de la impresora deseada, lanzar la siguiente orden y sustituir server por el equipo en el que se van a buscar las impresoras compartidas con samba:

user $smbclient -N '\\servidor\'

En la interfaz web de CUPS, configure la impresora tal y como se ha descrito anteriormente. Observe que CUPS ha añadido otro dispositivo llamado Windows Printer via SAMBA. Selecciónelo y utilice la sintaxis smb://nombredeusuario:contraseña@grupodetrabajo/servidor/nombredeimpresora o smb://servidor/nombredeimpresora para el URI.

Importante
Los caracteres especiales de la URI mostrada arriba se deben codificar. Por ejemplo:

smb://BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6

se convierte en:

smb://BEN-DESKTOP/HP%20Color%20LaserJet%20CP1510%20series%20PCL6

Se puede obtener la cadena de caracteres que debe introducir lanzando la siguiente orden:

user $python2 -c 'import urllib; print "smb://" + urllib.quote("BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6")'

Aplicaciones relacionadas con la impresión

Introducción

Hay muchas herramientas que pueden ayudar a configurar una impresora, usar filtros adicionales de impresión, añadir características a las capacidades de la impresora, etc. Este capítulo muestra algunas de ellas. Tenga cuidado porque la lista no es exhaustiva y no se pretende exponer cada herramienta con mucho detalle.

Gtk-LP. Una herramienta de configuración de impresión basada en GTK

Con net-print/gtklp, se puede instalar, modificar y configurar la impresora desde una aplicación Gtk independiente. Esta aplicación emplea CUPS y ofrece todas las capacidades estándar de CUPS. Definitivamente merece la pena echarle un vistazo si la interfaz web de CUPS no es del agrado del usuario o necesita una aplicación independiente para sus rutinas diarias de impresión.

Instalarlo de la siguiente forma:

root #emerge --ask net-print/gtklp

Herramienta de configuración de la impresora para KDE 4

KDE 4 también dispone de una herramienta de configuración de la impresora llamada kde-apps/print-manager. Funciona con CUPS y ofrece una interfaz amigable para configurar las impresoras. Instalarla de la siguiente forma:

root #emerge --ask kde-apps/print-manager

Eliminación

Ajustes USE

Se deben modificar los paquetes que están instalados actualmente con el ajuste USE cups. Buscar dentro de /etc/portage/package.use para ver si hay paquetes que tienen explícitamente definido el ajuste USE cups y eliminarlo.

Puede que sea necesario a continuación eliminar el valor cups de la variable USE dentro de /etc/portage/make.conf si se ha definido previamente.

Desinstalación

root #emerge --ask --depclean --verbose net-print/cups

Por último, se debe limpiar el sistema eliminando los paquetes que ya no son necesarios como resultado de la eliminación de CUPS.

root #emerge --ask --depclean

Resolución de problemas

Debugging

See archlinux wiki

Error: Unable to convert file 0 to printable format

Si tiene problemas al imprimir y se muestra el siguiente mensaje en /var/log/cups/error_log:

CÓDIGO Error log
Unable to convert file 0 to printable format

Haga emerge de nuevo de app-text/ghostscript-gpl con el ajuste USE cups. Puede, bien añadir cups a los ajustes USE del sistema en /etc/portage/make.conf o puede habilitarlos solo para ghostscript-gpl como se muestra a continuación:

root #echo "app-text/ghostscript-gpl cups" >> /etc/portage/package.use

A continuación lanzar emerge app-text/ghostscript-gpl. Cuando haya terminado la compilación, asegúrese de reiniciar cupsd a continuación.

Cuando se utilice OpenRC:

root #service cupsd restart

Cuando se utilice systemd:

root #systemctl restart cups

USB printer is not detected

Assuming that cups is built with the usb USE flag, verify that the printer's character device has the correct permissions. For example:

user $lsusb Bus 002 Device 058: ID 04e8:3297 Samsung Electronics Co., Ltd ML-191x/ML-252x Laser Printer

There should be a character device for this printer at /dev/bus/usb/002/058.

user $ls -l /dev/bus/usb/002/058 crw-rw-r-- 1 root android 189, 185 Apr 16 05:55 /dev/bus/usb/002/058

In this example, /lib64/udev/rules.d/80-android.rules over-zealously modified the permissions. This is bug #644636. Lets try fixing them:

root #chgrp lp /dev/bus/usb/002/058
root #chmod 660 /dev/bus/usb/002/058

Now we should see:

user $ls -l /dev/bus/usb/002/058 crw-rw---- 1 root lp 189, 185 Apr 16 05:55 /dev/bus/usb/002/058

The printer likely is detected now. You should be able to add it, configure it (provided that you have a working driver) and print a test page. This implies a permissions problem. Assuming that your system uses udev/eudev for managing its /dev directory, you can make this change permanent by making a udev file:

ARCHIVO /etc/udev/rules.d/99-printer.rulesCustom Udev Rule
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="3297", MODE="0660", GROUP="lp"

Our device is "ID 04e8:3297" according to the earlier lsusb output. We split that into idVendor and idProduct as demonstrated in the example. Now udev should ensure that the correct permissions are set at every boot and at every hotplug.

See also

Recursos externos


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Sven Vermeulen (SwifT) ,
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.