IMPRESIÓN EN LINUX |
4.13 Introducción
La mayoría de los sistemas se encuadran en dos diferenciados: ATT y BSD (Berkeley Software Distribution). Varios
sistemas soportan ambos modelos o alguna variación de estos.
4.13.1 El subsistema de Impresión
El subsistema de impresión, ya sea ATT o BSD está compuesto de:
. Ficheros de configuración. Generalmente ASCII
. Ficheros de trazas
. Programas de interfaz con el usuario
. Demonios. Programas servidores
. Colas. Generalmente directorios con mecanismos de acceso compartido
. Programas de administración (altas, bajas, etc.)
FICHEROS DE CONFIGURACIÓN
Desafortunadamente no existe un único fichero de configuración del sistema de impresión, por lo que nos veremos obligados
a modificar varios ficheros. Al igual que otros servicios, el subsistema de impresión está obligado a cumplir unas
mínimas medidas de seguridad, además de permitir diversas configuraciones del mismo (impresoras en red compartidas,
perfiles de usuario, etc.) /etc/printcap
FICHEROS DE TRAZAS (LOGS)
En estos ficheros queda registrado el uso que los usuarios hacen del susbsistema de impresión, así como los distintos
fallos del servicio. /var/log/lpd
PROGRAMAS DE INTERFAZ CON EL USUARIO
Estos programas van a permitir a usuario del sistema enviar un trabajo al subsistema de impresión. Todos estos
programas deberán permitir que el usuario pueda elegir la impresora a la que enviar el trabajo, conocer el estado de
un trabajo, borrar un trabajo, etc. lpr, lpq, lprm
DEMONIOS
Los demonios son los encargados de supervisar el envio de un trabajo a la impresora, además de garantizar el acceso
compartido a las impresoras. /usr/sbin/lpd
COLAS (SPOOL)
Generalmente son directorios propios del subsistema de impresión y sirven para almacenar los trabajos encargados
por los usuarios. Suele existir una cola por cada impresora conectada al sistema. /var/spool/lpd
PROGRAMAS DE ADMINISTRACIÓN
La mayoría de los sistemas UNIX disponen de programas que permiten una gestión integral del subsistema de impresión.
Si no existiese un programa de gestión, sería muy recomendable que el administrador implementase uno. lpc
4.13.2 Gestión de la Impresión en BSD
Este sistema de impresión es el más extendido y está soportado por la mayoría de los sistemas UNIX.(además
soporta impresión remota -redes-)
El sistema BSD permite la utilización de impresoras remotas, es decir, permite el envío de un trabajo desde un
ordenador a una impresora conectada en otro ordenador. Cuando se utiliza este esquema de funcionamiento, el demonio de
impresión es el encargado de supervisar el envío y la recepción del trabajo.
Como es lógico, para poder realizar impresiones remotas es necesario configurar los sistemas para que admitan este
tipo de funcionalidad. Además, se deberá establecer una relación de confianza entre ambos sistemas.
En los sistemas de impresión BSD el demonio es el porgrama /usr/sbin/lpd que se suele arrancar desde
algún fichero de arranque situado en el directorio /etc/rc.d/rc?.d (donde '?' indica un nivel de ejecución).
lpd saca de la cola de impresión los trabajos que el usuario ha ido solicitando mediante el comando lpr (interfaz de usuario).
lpr no sólo encola el fichero que va a ser impreso sino que además incluye información de cómo
tiene que llevarse a cabo la impresión (impresora destino, uso de filtros, tipo de formato, etc.). Toda esta información
se suele suministrar al comando lpr a través de distintis parámetros en la línea de comandos. lpr suele crear
dos ficheros:
. cf<JOB_ID> Fichero de control Contiene el login del usuario, impresora remota, etc.
. df<JOB_ID> Fichero de datos. Contiene la información a imprimir.
4.13.3 Comandos del sistema de Impresión BSD
lpr Añade un trabajo en la cola de la impresora especificada. Cada trabajo dispone de un JOB ID, que es único
y permitirá al usuario conocer el estado del trabajo.
OPCIONES : -p IMPRESORA_HP
lprm Permite borrar un trabajo. Es necesario proporcionar el JOB ID de los trabajos a cancelar.
OPCIONES : -p IMPRESORA_HP
lpq Estado de la impresión. Permite conocer si un trabajo está encolado o existe algún error en el subsistema de
impresión.
lpc Es un comando de administrador. Permite parar y arrancar el demonio (lpd), hacer que una impresora
no admita trabajos, obtener una descripción de algún error, etc.
OPCIONES :
status Comprobar estado
clean Borrado de ficheros
start/stop Arrancar / Parar una impresora
up/down Paradas temporales
enable/disable Poner el spool en on/off
abort Parar inmediatamente el demonio
quit Salir del programa
4.13.4 Ficheros de configuración
El principal fichero d configuración es /etc/printcap en el que se configuran todas las impresoras
disponibles y sus diferentes características (ficheros de trazas, fichero de dispositivo, tamaño máximo de los
ficheros a imprimir, etc.). Este fichero es utilizado tanto por el porgrama de usuario (envio de trabajos) como
por el demonio de impresión.
A continuación se incluye una configuración típica de /etc/printcap:
lp | lp0 | Impresora Laser:\ :sd=/var/spool/lpd/lp:\ :mx#0:\ :sh:\ :rm=printer.decker.ix.com:\ :rp:=\ :if=/var/spool/lpd/lp/filter: lp1 | Impresora matricial:\ :sd=/var/spool/lpd/lp1:\ :af=/var/log/lp1.acct:\ :br=9600:\ :mx#0:\ :lf=/var/log/lp1.log:\ :lp=/dev/tty01: |
Las colas de impresión o spools son directorios, existiendo uno por cada impresora definida en el sistema.
En un instante dado, el subsistema de impresión solo puede estar procesando un trabajo por cada impresora. Como los usuarios
pueden solicitar varios trabajos a la vez, es necesario disponer de espacio en disco para almacenarlos.
Los directorios de spool suelen ser propiedad del usuario daemon y grupo daemon (usuario y grupo especiales
del sistema propietarios del subsistema de impresión).
Para crear un spool podríamos utilizar el siguiente fragmento de código shell:
#cd /var/spool/lpd #mkdir IMPRESORA_HP #chown daemon IMPRESORA_HP #chgrp daemon IMPRESORA_HP #chmod 755 IMPRESORA_HP |
Existen dos ficheros en los que se pueden especificar permisos para que usuarios de otros ordenadores de la red
puedan imprimir en las impresoras definidas en el sistema:
/etc/hosts.lpd : Este fichero es específico del subsistema de impresión. En él se enumeran los nombres
de los ordenadores desde los que se puede encolar trabajos de impresión.
Un ejemplo podría ser:
paraiso.ix.com sol.ix.com luna.ix.com love.ix.com |
4.13.7 Incorporación de una nueva Impresora
La receta básica es
"Utilizar algún programa del sistema para incorporar nuevas impresoras"
En caso de no disponer de un programa de gestión de impresoras se pueden seguir los pasos:
1. Conectar la impresora a un puerto de comunicaciones del sistema (serie o paralelo)
2. Si se conecta la impresora a un puerto serie, comprobar que no hay arrancado un proceso getty por el
puerto (fichero /etc/inittab)
3. Asegurese que el demonio lpd está arrancado. Si no está arrancado, añadir un fichero de arranque(etc/rc.d) de
acuerdo al nivel de ejecución del sistema. (vea la sección 4.2)
4. Añadir una entrada en el fichero /etc/printcap (campos básicos sd, lp, br, mx)
5. Crear el directorio spool
6. Crear los distintos ficheros de traza y contabilidad:
#touch /var/log/IMPRESORA_HP.log #touch /var/log/IMPRESORA_HP.acct |
4.13.8 Problemas con la impresora
Si se ha instalado una nueva impresora y no funciona, pueden realizarse las siguienets comprobaciones:
1. ¿Está bien el cableado?
Si la impresora está conectada al ordenador mediante una conexión serie (RS232), es muy posible que el cable
no tenga todas las señales conectadas. Consultar el manual de la impresora para ver que tipo de cable necesita.
2. ¿Existe algún proceso getty por el puerto o línea (/dev/tty??) de la impresora?
Si la línea de conexión es serie, es muy posible que anteriormente se hubiera usado como línea de conexión al sistema. (Ejemplo
ps -ef | grep tty05)
3. ¿Está bien la configuración de la impresora en el fichero /etc/printcap?
En algunas ocasiones existe algún error de sintaxis (falta un carácter ':' o un retorno de carro). También
suele suceder que se ha escrito mal el nombre de un directorio.
4. ¿Está arrancado el demonio lpd (Ejemplo : ps -ef | grep lpd)?
5. ¿Está funcionando correctamente el susbsistema de impresión (lpc status all)?
6. ¿Se encolan los trabajos de impresión (lpd) (Ejemplo: ls -l /var/spool/IMPERSORA_HP)?
7. ¿Has marcado un fichero demasiado grande (Comprobar campo mx de /etc/printcap)?
8. ¿Están bien los permisos de impresión remota, etc/hosts.lpd y /etc/hosts.equiv)?