11.3. Configuración Básica

Para efecto de utilizar impresoras con el sistema de cola LPD, es necesario que se instale físicamente la impresora y el software de LPD. Este documento describe estos dos niveles de configuración:

11.3.1. Configuración Simple de una Impresora

La presente sección le mostrará como instalar físicamente la impresora, así como el software de LPD para usar dicha impresora. Le mostrará lo básico de:

Si usted esta instalando una impresora que utiliza protocolos de red para imprimir en lugar de una conexión directa a su puerto serial o paralelo, vea la sección Impresoras con Interfaces de Red para Secuencia de Datos.

Aun cuando esta sección se llama “Configuración Simple de una Impresora”, puede resultar un tanto complicada. Conseguir que su impresora trabaje con su ordenador y con la cola de impresión LPD es la parte más compleja. Las opciones avanzadas, tal como imprimir encabezados y crear cuentas, son sencillas una vez que su impresora está trabajando.

11.3.1.1. Instalación Física

Esta sección le informa sobre varias fomras en que puede usted conectar la impresora a su PC. Se describen los tipos de puertos y cables, así como la configuración que debe tener en su kernel, para permitir que FreeBSD se pueda comunicar con su impresora.

Si ya ha conectado su impresora y ha impreso exitosamente trabajando en otro sistema operativo, probablemente desee brincar a la sección Configuración del Software.

11.3.1.1.1. Puertos y Cables

Practicamente cualquier impresora que adquiera hoy en día para PC, cuenta con soporte para una o ambas interfaces que se presentan a continuación:

  • La interfaz serial, utiliza el puerto serial de su computadora para enviar datos a la impresora. La interfaz serial es común en la industria de la computación y los cables existen disponibles facilmente e incluso sencillos de hacer. En ocasiones las interfaces seriales requieren de cables especiales y posiblemente cierta configuración compleja de opciones de comunicación.

  • La interfaz en paralelo utiliza el puerto paralelo de su computadora para enviar datos a la impresora. Las interfaces en paralelo son comunes en el mercado de las PCs. Los cables son fáciles de conseguir, pero un poco más complicados de hacer a mano. Normalmente no existen opciones de comunicación, haciendo su configuración mucho más sencilla.

    En ocasiones las interfaces en paralelo son conocidas como interfaces “Centronics”, en virtud del tipo de conector en la impresora.

En términos generales los interfaces seriales son más lentos que las interfaces en paralelo. Por otro lado los interfaces en paralelo sólo ofrecen comunicación de una vía (de la computadora a la impresora), mientras que los seriales ofrecen de dos vías. Gran cantidad de recientes impresoras y puertos paralelos, pueden comunicarse en ambas direcciones bajo FreeBSD, cuando se utiliza un cable compatible con IEEE1284.

Normalmente, el único escenario donde requiere de una comunicación de ambas vías con la impresora, es cuando la impresora maneja PostScript. Las impresoras que manejan PostScript detallan gran cantidad de información. De hecho, los trabajos PostScript, son programas enviados a la impresora; los cuales no requieren de papel y pueden enviar la salida directamente a la computadora. PostScript utiliza una comunicación de dos vías, para informar al ordenador de los problemas que se puedan presentar, tal como errores en los programas PostScript o papeles atascados. Sus usuarios pueden apreciar este tipo de información. Más allá de esto, la mejor forma de contabilizar con impresoras PostScript, es utilizando dos vías de comunicación: usted solicita a la impresora el conteo de impresiones (esto es, todas las impresiones hechas en su vida), posteriormente envia el trabajo del usuario y repite la solicitud de conteo. Resta los dos valores obtenidos y sabra cuanto debe cobrar al usuario por uso de papel.

11.3.1.1.2. Puertos Paralelos

Para conectar una impresora usando el puerto en paralelo, conecte el cable Centronics entre la impresora y la computadora. Las instrucciones que vienen con su impresora, con su computadora o ambas, deben ser una buena guía para llevar esto a cabo.

Recuerde cual es el puerto en paralelo que utilizó en su computadora. Para FreeBSD, el primer puerto paralelo es /dev/lpt0, el segundo puerto es /dev/lpt1 y así sucesivamente.

11.3.1.1.3. Puertos Seriales

Para conectar una impresora, usando el puerto serial, conecte el cable apropiado entre la impresora y el ordenador. Las instrucciones que vienen con su impresora, computadora o ambas, deben ser suficientes para llevar esto a cabo.

Si usted no esta seguro de cual es el “cable serial apropiado”, puede intentar alguna de las siguientes alternativas:

  • Un cable de módem conecta cada pin del conector de un extremo, con el conector del otro extremo, de manera directa. Este tipo de cable también se le conoce como cable “DTE-a-DCE”.

  • Un cablde de módem-nulo conecta de fomra directa algunos pins, algunos otros son compartidos (envia datos para recibir datos, por ejemplo), y algunos otros internamente son deshabilitados en los conectores. Este tipo de cable también se le conoce como cable “DTE-a-DTE”.

  • Un cable de impresora serial, sólo es requerido por algunas impresoras poco comunes, es similar al cable de módem-nulo, pero este envia señales a su contraparte, en lugar de que internamente se deshabilite.

También es necesario que configure los parámetros de comunicación para la impresora, nomralmente esto lo realiza desde los controles de la misma o interruptores DIP en la impresora. Selecciones el bps (bits por segundo y en ocasiones llamado velocidad de baudio) más alto, que tanto su ordenador como impresora soporten. Seleccione 7 u 8 bits de datos; la paridad establezcala en: ninguna, igual o aleatoria y 1 o 2 en bits de paro. También seleccione un protocolo para el control de flujo, que puede ser: ninguno o XON/XOFF (también conocido como “in-band” o “software”). Recuerde las opciones que haya seleccionado en esta parte, para la configuración del software, que veremos en la siguiente sección.

11.3.1.2. Configuración del Software

La presente sección describe la configuración necesaria para poder imprimir usando el sistema de cola LPD, bajo FreeBSD.

Aqui presentamos un resumen de los pasos necesarios:

  1. Configure su kernel, si es necesario, para habilitar el uso del puerto al que esta conectado su impresora. En la sección Configuración del Kernel encontrará toda la información necesaria, para llevar esto a cabo.

  2. Establecer en modo de comunicación el puerto en paralelo, si es que esta usando dicho puerto. La sección Estableciendo el Modo de Comunicación en el Puerto en Paralelo le da detalles al respecto.

  3. Compruebe si el sistema operativo puede enviar datos a la impresora. La sección Verificando la Comunicación con la Impresora le puede dar detalles sobre como hacer esto.

  4. Configurar LPD para su uso con la impresora, modificando el fichero /etc/printcap. Posteriormente en este capítulo, veremos como se lleva a cabo esto.

11.3.1.2.1. Configuración del Kernel

El kernel del sistema operativo es compilado para trabajar con ciertos dispositivos. El puerto serial o paralelo de su computadora es parte de los dispositivos que debe incluirse en la compilación del kernel. Por lo tanto, puede que sea necesario recompilar el kernel incluyendo el soporte para el o los puertos serial y/o paralelo, si es que el kernel no cuente ya con dicho soporte.

Para averiguar si el kernel que tiene instalado actualmente, cuenta con soporte para el puerto serial, teclee lo siguiente:

# dmesg | grep sioN

Donde N es el numero de puerto serial, comenzando desde cero. Si observa una salida similar a la siguiente:

sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A

entonces su kernel ya cuenta con soporte para el puerto.

Para averiguar si su kernel cuenta con soporte para el puerto en paralelo, teclee:

# dmesg | grep lptN

Donde N es el numero de puerto serial, comenzando desde cero. Si observa una salida similar a la siguiente:

lpt0 at 0x378-0x37f on isa

entonces su kernel cuenta con soporte para el puerto.

Puede que sea necesario recompilar su kernel, para efecto de que su kernel cuente con el soporte para el puerto serial o paralelo que este utilizando su impresora.

Para añadir soporte para el puerto serial, vea la sección en Configuración del Kernel. Para añadir soporte para el puerto paralelo, vea esa sección y la siguiente sección.

11.3.1.3. Añadiendo Dispositivos de Puertos en /dev

Aun cuando el kernel cuente con el soporte de comunicaciones para puertos seriales o en paralelo, aun deberá de contar con las interfaces necesarias en su sistema, por medio de las cuales el sistema puede enviar y recibir los datos. En el directorio /dev es donde encontrará dichas interfaces en su sistema.

Para añadir una entrada, para sus puertos, en el directorio /dev deberá:

  1. Cambiar de usuario a root con el comando su(1). Ingresar la contraseña de root cuando le sea solicitada.

  2. Cambiar su posición al directorio /dev de la siguiente forma:

    # cd /dev
    
  3. Teclear:

    # ./MAKEDEV PUERTO
    

    Donde PUERTO es la entrada del dispositivo que desea crear. Puede utilizar lpt0 para el primer puerto en paralelo, lpt1 para el segundo puerto, y así sucesivamente, para el primer puerto serial puede utilizar ttyd0, y para el segundo ttyd1 y así sucesivamente.

  4. Teclee:

    # ls -l PUERTO
    

    para asegurarase de que la entrada del dispositivo correspondiente se ha creado.

11.3.1.3.1. Configurando el modo de Comunicación para el Puerto Paralelo

Cuando utiliza el puerto paralelo, puede seleccionar si FreeBSD va a utilizar un modo de comunicación por medio de interruptores o a petición, con la impresora.

  • El método por medio de interruptores es el método que utiliza el kernel GENERICO de FreeBSD. Con este método el sistema operativo utiliza un IRQ para determinar si la impresora esta lista para recibir datos.

  • El método a petición le indica al sistema operativo que constantemente le pregunte a la impresora si esta lista para recibir datos. Una vez que ha obtenido respuesta, el kernel comienza a transferir los datos.

Normalmente el método por medio de interruptores es más rápido, pero nos ocupa un preciado IRQ. Se sabe que algunas impresoras nuevas de HP no funcionan muy bien con este método aparentemente debido (sin que aun se entienda el por que) a un problema de tiempos. Estas impresoras necesitan el método a petición. Es conveniente que utilice el método que se ajuste a sus necesidades. Algunas impresoras funcionan en ambos métodos, pero son dolorosamente lentas usando el método por medio de interruptores.

Para establecer el método de comunicación, puede hacerlo de dos formas: configurando su kernel o bien, utilizando el programa lptcontrol(8).

Para establecerlo configurando su kernel, deberá:

  1. Editar su fichero de configuración del kernel. Busque una línea que contenga lpt0, si esta no existe añadala. Si esta configurando su segundo puerto en paralelo, use lpt1. Para un tercer puerto paralelo utilice lpt2 y así sucesivamente.

    • Si desea utilizar el modo por medio de interruptor, añada el especificador de irq:

      device lpt0 at isa? port? tty irq N vector lptintr
      

      Donde N es el numero de IRQ del puerto paralelo de su computadora.

    • Si desea utilizar el modo a petición, no necesita agregar el especificador de irq:

      device lpt0 at isa? port? tty vector lptintr
      
  2. Guarde el fichero. Posteriormente termine el proceso de configuración, recompilación e instalación del kernel, después reinicie el sistema. Vea Configuración del Kernel para más información al respecto.

Para establecer el modo de comunicación usando lptcontrol(8):

  1. Teclee:

    # lptcontrol -i -d /dev/lptN
    

    para indicar el modo por medio de interruptor para lptN.

  2. Teclee:

    # lptcontrol -p -d /dev/lptN
    

    para establecer el modo a petición para lptN.

Estos comandos los podría incluir en su fichero /etc/rc.local para que el sistema reconozca estos modos cada vez que inicia el sistema. Vea lptcontrol(8) para más información al respecto.

11.3.1.3.2. Verificando la Comunicación de la Impresora

Antes de proceder a configurar el sistema de cola de impresión, es conveniente verificar que nuestro sistema operativo pueda enviar datos exitosamente a nuestra impresora. Es mucho más sencillo detectar errores cuando se configura por separado el método de comunicación y el sistema de cola de impresión.

Para probar nuestra impresora, enviaremos un poco de texto. Para impresoras que inmediatamente pueden imprimir caracteres, el programa lptest(1) es perfecto: este genera todos los 96 caracteres ASCII imprimibles en 96 líneas.

Para impresoras PostScript (o de otro lenguaje de impresión), vamos a necesitar una prueba más sofisticada. Un pequeño programa PostScript, como el siguiente, será suficiente:

%!PS
100 100 moveto 300 300 lineto stroke
310 310 moveto /Helvetica findfont 12 scalefont setfont
(Is this thing working?) show
showpage

El código PostScript descrito puede guardarse en un fichero y usarse en el ejemplo que aparece en la siguiente sección.

Nota: Cuando este documento se refiere a lenguaje de impresión, se asume lenguaje como PostScript y no el PCL de Hewlett Packard. Aun cuando PCL tiene gran funcionalidad, pueden acabar mezclandose caracteres de escape con el texto plano, y ese es el tipo de lenguaje de impresión, para el cual necesitaremos realizar ajustes especiales.

11.3.1.3.2.1. Verificando Impresoras en Paralelo

Esta sección le indica como comprobar la comunicación de una impresora en paralelo, bajo FreeBSD.

Para probar una impresora en paralelo:

  1. Cambiar a root con el comando su(1)

  2. Enviar datos a la impresora.

    • Si la impresora puede imprimir texto plano, usar el comando lptest(1). Teclee:

      # lptest > /dev/lptN
      

      Donde N es el numero del puerto en paralelo, comenzando desde cero.

    • Si la impresora utiliza PostScript u otro lenguaje de impresión, entonces envie un pequeño programa a la impresora. Teclee:

      # cat > /dev/lptN
      

      Posteriormente, línea por línea teclee el programa, cuidadosamente en virtud de que no puede editar una línea ya que presionado la tecla RETURN o ENTER. Una vez que ha terminado de introducir el programa, presiona las teclas CONTROL+D, o cualquier tecla que funcione para efecto de especificar un fin de fichero.

      Otra manera de hacer esto, es guardar el programa en un fichero y teclear:

      # cat fcihero > /dev/lptN
      

      Donde fichero es el nombre del fichero que le dio al programa, que desea enviar a imprimir.

En este punto debe ver alguna impresión. No se preocupe si el texto no aparece bien; es algo que arreglaremos más adelante.

11.3.1.3.2.2. Verificando una Impresora Serial

Esta sección explica como verificar la comunicación, bajo FreeBSD, de una impresora conectada al puerto serial.

Para probar una impresora conectada el puerto serial:

  1. Cambiar a root usando su(1).

  2. Edite el fichero /etc/remote. Añadiendo la siguiente entrada:

    printer:dv=/dev/puerto:br#bps:pa=paridad
    

    Donde puerto es el dispositivo usado por el puerto serial (ttyd0, ttyd1, etc.), bps se refiere a la velocidad, en bits-por-segundo, a la que se comunica la impresora, y paridad es la paridad requerida por la impresora (ya sea even, odd, none o zero).

    Nota: N de T: Las opciones de paridad se han dejado en inglés, en virtud de que así deberán especificarse en la configuración.

    He aqui un ejemplo para una impresora conectada por medio de un puerto serial, el tercer puerto a 19200 bps, sin paridad:

    printer:dv=/dev/ttyd2:br#19200:pa=none
    
  3. Conectarse a la impresora por medio de tip(1). Teclee:

    # tip printer
    

    Si este paso no funciona, edite nuevamente el fichero /etc/remote e intente utilizando /dev/cuaaN en lugar de utilizar /dev/ttydN.

  4. Envio de datos a la impresora.

    • Si la impresora puede imprimir texto plano, entonces utilice lptest(1). Teclee:

      % $lptest
      
    • Si es una impresora PostScript o que utilice otro lenguaje, entonces envie un pequeño programa a la impresora. Teclee el programa, línea por línea, muy cuidadosamente ya que algunas teclas, como la de retroceso son significativas para la impresora. Puede ser que también necesite un caracter especial para marcar el fin-de-fichero y que la impresora sepa que ha recibido el programa completo. Para impresoras PostScript, utilice las teclas CONTROL+D.

      Otra variante es, guardar el programa en un fichero y teclear:

      % >fichero
      

      Donde fichero es el nombre del fichero que contiene el programa. Una vez que tip(1) envia el programa, presione la tecla correspondiente a fin de archivo.

Usted debe ver algo de impresión. No se preocupe si el texto no se ve del todo bien; posteriormente arreglaremos esto.

11.3.1.4. Habilitando la Cola de Impresión: El fichero /etc/printcap

En este punto, su impresora debe estar conectada, su kernel configurado con el soporte de comunicación, y debe haber podido enviar datos a su impresora. Ahora estamos listos para configurar LPD para controlar el accesos a nuestra impresora.

Para efecto de configurar LPD, es necesario editar el fichero /etc/printcap. El sistema de cola de LPD lee este fichero cada vez que se utiliza, de tal forma que los cambios que se realicen en este fichero, surten efecto inmediatamente.

El formato que mantiene el fichero printcap(5) es muy concreto. Utilice su editor de texto favorito para hacer cambios en /etc/printcap. El formato es idéntico al que guardan los ficheros que describen capacidades, tal como /usr/share/misc/termcap y /etc/remote. Para ver mayor información con respecto al formato, vea la página de ayuda cgetent(3).

De un modo simple, la configuración de una cola consiste en los siguientes pasos:

  1. Seleccione un nombre (y algunos alias convenientes) para la impresora, y especifíquelos en el fichero /etc/printcap ; vea la sección Nombrando la Impresora para más información al respecto.

  2. Desactive el encabezado de páginas (el cual esta activado por default), al insertar la característica sh; vea la sección Eliminando las Páginas de Encabezados para más información al respecto.

  3. Cree un directorio para la cola, y especifique su ubicación con la característica sd; vea la sección Creando el Directorio de la Cola para mayor información.

  4. Ubique el dispositivo /dev a usar por la impresora e indiquelo en el fichero /etc/printcap con la característica lp; vea la sección Identificando el Dispositivo de Impresión para mayor información. Así mismo, si la impresora esta conectada a un dispositivo serial, utilice las características fs, fc, xs y xc para establecer los parámetros de comunicación; esto se detalla en la sección Configurando los Parámetros de Comunicación de la Cola de Impresión.

  5. Instalar un filtro de entrada de texto plano; vea la sección Instalando un Filtro de Texto para más detalles.

  6. Probar la configuración, al imprimir algo con el comando lpr(1). Para más detalles vea las secciones Probando la Configuración y Resolución de Problemas.

Nota: Las impresoras basadas en un lenjuaje, tal como PostScript, no pueden imprimir texto plano directamente. Los pasos de configuración mencionados anteriormente, así como las siguientes secciones, asumen que si usted cuenta con una impresora de este tipo, sólo va a imprimir ficheros que la impresora puede manejar.

Normalmente los usuarios esperan poder imprimir texto plano a cualquier impresora conectada al sistema. Los programas que usan como interfaz de impresión a LPD, asumen lo mismo. Si usted cuenta con una impresora basada en lenguaje y desea poder imprimir en el lenguaje de la impresora así como texto plano, es importante considerar que debe añadir un paso adicional a los mencionados anteriormente: instalar un programa de conversión detexto-plano-a-PostScript (u otro lenguaje). La sección Acomodando Trabajos de Texto Plano en Impresoras PostScript le indica como debe hacerse esto.

11.3.1.4.1. Nombrando la Impresora

El primer paso (sencillo) es escojer un nombre para su impresora. En realidad no importa mucho si este nombre es funcional o un tanto abstracto, en virtud de que usted podrá asignar alias para la impresora.

Cuando menos una de las impresoras señaladas en el fichero /etc/printcap debe contar con el alias lp. Este es el nombre de la impresora por default. Si los usuarios del sistema no cuentan con la variable de entorno PRINTER o bien no especifican en la línea de comando, al ejecutar cualquier comando de LPD, el nombre de la impresora a utilizar, entonces lp será la impresora por default a utilizar.

También, como práctica común, se suele asignar el último alias a la descripción completa de la impresora, incluyendo marca y modelo.

Una vez que ha seleccionado un nombre y algunos aliases, ingreselos en el fichero /etc/printcap. El nombre de la impresora deberá colocarse en la columna izquierda máxima. Separe cada alias con una barra vertical e incluya dos puntos después del último alias.

En el siguiente ejemplo, comenzaremos con el esqueleto del fichero /etc/printcap, que define dos impresoras (una de matriz Diablo 630 y una impresora laser PostScript Panasonic KX-P4455):

#
#  Fichero /etc/printcap para el host rose
#
rattan|line|diablo|lp|Diablo 630 Line Printer:

bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:

En este caso, la primer impresora se llama rattan y tiene como aliases line, diablo, lp, y Diablo 630 Line Printer. Dado que tiene el alias lp, tambié se considera la impresora por default. La segunda impresora se llama bamboo, y cuenta con los aliases ps, PS, S, panasonic, y Panasonic KX-P4455 PostScript v51.4.

11.3.1.4.2. Eliminando las Páginas de Encabezados

El sistema de cola de impresión LPD, por default, imprimirá una página de encabezado para cada trabajo. Esta página contiene el nombre del usuario que solicitó la impresión, el host del cual se envio el trabajo y el nombre del trabajo, todo en letras grandes. Desafortunadamente, todo esta impresión extra, interfiere con el trabajo de depuración de la configuración básica de la impresora, por lo que vamos a deshabilitar esta opción.

Para eliminar las páginas de encabezado, añada shen la entrada de la impresora del fichero /etc/printcap. He aqui un ejemplo del fichero /etc/printcap con sh incluida en él:

#
#  FIchero /etc/printcap para el  host rose - sin paginas de encabezado
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
        :sh:

bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
        :sh:

Note como hemos utilizado el formato correcto: donde la primer línea comienza en la primer columna de la izquierda y las líneas subsecuentes estan cuentan con sangría de un solo tabulador (TAB). Cada línea termina con una diagonal invertida, excepto la última.

11.3.1.4.3. Creando el Directorio de la Cola

El siguiente paso en la configuración de la cola, es crear el directorio de cola de impresión, un directorio en el cual residen los trabajos de impresión hasta que son llevados a cabo, y donde otros ficheros de soporte se localizan.

Dada la naturaleza variante de los directorios de cola, es costumbre que estos se localicen en /var/spool. No es necesario respaldar el contenido de estos directorios, ya que rehacerlos es tan simple como ejecutar mkdir(1).

También es una buena costumbre crear el directorio con el mismo nombre que tenga la impresora, como se muestra a continuación:

# mkdir /var/spool/nombre-impresora

Aunque si cuenta con bastantes impresoras en su red, puede que desee crear todos los directorios de cola, bajo un sólo directorio reservado para todas aquellas que imprimen usando LPD. En nuestro ejemplo haremos esto con nuestras dos impresoras de ejemplo rattan y bamboo:

# mkdir /var/spool/lpd
# mkdir /var/spool/lpd/rattan
# mkdir /var/spool/lpd/bamboo

Nota: Si a usted le preocupa la privacidad de los trabajos que imprimen los usuarios, puede que desee proteger el directorio de cola, de tal forma que no sea de acceso público. Los directorios de cola deben pertenecer al usuario daemon y grupo daemon, y debe contar con permisos de lectura, escritura y navegación por estos y nadie más. Haremos esto para nuestros ejemplos:

# chown daemon:daemon /var/spool/lpd/rattan
# chown daemon:daemon /var/spool/lpd/bamboo
# chmod 770 /var/spool/lpd/rattan
# chmod 770 /var/spool/lpd/bamboo

Finalmente, debe indicar a LPD acerca de estos directorios, en el fichero /etc/printcap. Esta indicación se hace por medio de la característica sd :

#
#  Fichero /etc/printcap para el host rose - incluyendo directorios de cola
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
        :sh:sd=/var/spool/lpd/rattan:

bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
        :sh:sd=/var/spool/lpd/bamboo:

Notese que el nombre de la impresora inicia en la primer columna mientras que el resto debe contar con sangría de un tabulador y todas las líneas, excepto la última, terminar con una diagonal invertida.

En el caso de que usted no especifique directorio alguno con sd, el sistema de cola usara como default /var/spool/lpd .

11.3.1.4.4. Identificando el Dispositivo de Impresión

En la sección Añadiendo Dispositivos de Puertos en /dev, vimos que dispositivo bajo el directorio /dev iba a utilizar FreeBSD para comunicarse con la impresora. Ahora le indicaremos esto a LPD. Cuando el sistema de cola tiene un trabajo por imprimir, abrirá el dispositivo especificado en nombre del programa filtro (reponsable de pasar los datos a la impresora).

Para efecto de indicar esto, en la entrada de la impresora en el fichero /etc/printcap, usaremos la característica lp.

En el ejemplo que hemos visto, asumiremos que rattan esta conectada al primer puerto paralelo, y bamboo en el sexto puerto serial; he aqui lo que tendriamos que añadir a /etc/printcap:

#
#  Fichero /etc/printcap para el host rose - identificando los dispositivos a usar
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
        :sh:sd=/var/spool/lpd/rattan:\
        :lp=/dev/lpt0:

bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
        :sh:sd=/var/spool/lpd/bamboo:\
        :lp=/dev/ttyd5:

Si usted no indica la característica lp en el fichero /etc/printcap, LPD usará el dispositivo /dev/lp por default. El dispositivo /dev/lp actualmente no existe en FreeBSD.

Si la impresora que esta instalando esta conectada a un puerto en paralelo, puede saltar la siguiente parte y dirijirse a la sección Instalando un Filtro de Texto. De otra manera, asegurese de seguir las instrucciones de la siguiente sección.

11.3.1.4.5. Configurando los Parámetros de Comunicación del la Cola de Impresión

Para impresoras conectadas a un puerto serial, LPD puede especificar la velocidad de bps, la paridad, y otros parámetros de comunicación en lugar del programa filtro que manda los datos a la impresora. Esto es una ventaja dado lo siguiente:

  • Le permite probar diferentes parámetros de comunicación, con el simple hecho de modificar el fichero /etc/printcap; con lo cual no es necesario recompilar el programa filtro.

  • Habilita el sistema de cola de impresión para hacer uso del mismo programa filtro, para varias impresoras que pueden contar con diferentes configuraciones de comunicación.

Para efecto de controlar los parámetros de comunicación por medio de un puerto serial, con la característica lp, en el fichero /etc/printcap, utilizarmos lo siguiente:

br#bps-velocidad

Establece la velocidad de comunicación del dispositivo, donde bps-velocidad puede ser 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, o 38400 bits-por-segundo.

fc#limpiar-bits

Limpia la marca de bits, donde limpiar-bits afecta en la estructura de sgttyb una vez que se ha entablado la comunicación con el dispositivo.

fs#establece-bits

Establece la marca de bits establece-bits en la estructura de sgttyb.

xc#limpia-bits

Limpieza del modo bits, de forma local limpia-bits una vez que se ha abierto la comunicación con el dispositivo.

xs#establece-bits

Establece el modo bits, de forma local establece-bits.

Para mayor información con respecto al uso de las caractrística de bits: fc, fs, xc, y xs, vea el fichero /usr/include/sys/ioctl_compat.h.

Cuando LPD abre el canal de comunicación con el dispositivo especificado por lp, lee la marca de bits en la estructura sgttyb; limpia cualquier bit en la característica fc y establece bits en la característica fs, para posteriormente aplicar la configuración resultante. El mismo procedimiento se sigue en el modo de bits local.

Ahora añadamos la impresora de ejemplo que esta conectada al puerto serial numero seis. La velocidad de bps la estableceremos en 38400 bps. Para las marcas de bits usaremos TANDEM, ANYP, LITOUT, FLUSHO, y PASS8. Para el modo local de bits, estableceremos LITOUT y PASS8 :

bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
        :sh:sd=/var/spool/lpd/bamboo:\
        :lp=/dev/ttyd5:fs#0x82000c1:xs#0x820:

11.3.1.4.6. Instalando un Filtro de Texto

Ahora estamos listos para indicarle a LPD que filtro de texto debe utilizar para enviar los trabajos a la impresora. Un filtro de texto, también conocido como filtro de entrada, es un programa que ejecuta LPD cuando tiene un trabajo para imprimir. Cuando LPD ejecuta el filtro de texto para una impresora, configura de manera estandar la entrada para el trabajo a imprimir, y la salida estandar a la impresora indicada en la característica lp. El filtro espera leer el trabajo de la entrada estandar, hacer el trabajo de traducción necesario para la impresora, y enviar los resultados a la salida estandar, lo cual será impreso. Para mayor información en los filtros de texto, vea la sección Como Trabajan los Filtros.

En el caso de nuestro ejemplo, el filtro de texto puede ser un pequeño script que sólo ejecute /bin/cat para enviar el trabajo a la impresora. FreeBSD cuenta con otro filtro llamado lpf que controla los caracteres de regreso y subrayado en impresoras que pueden presentar problemas con dichos caracteres. Y desde luego, usted puede utilizar cualquier filtro que desee. El filtro lpf se describe a detalle en la sección titulada lpf: un Filtro de Texto.

En primer lugar hagamos del script /usr/local/libexec/if-simple un simple filtro de texto. Introduzca el siguiente texto en un fichero, con su eitor de texto favorito:

#!/bin/sh
#
# if-simple - Filtro de texto simple para lpd
# Instalado en la ruta /usr/local/libexec/if-simple
#
# Simplemente copia stdin a stdout.  Ignora todos los argumentos del filtro.

/bin/cat && exit 0
exit 2

Haga el fichero ejecutable:

# chmod 555 /usr/local/libexec/if-simple

Ahora indiquele a LPD que lo use, al añadirlo con la característica if, en el fichero /etc/printcap. Este filtro, lo vamos a añadir en ambas impresoras de nuestro ejemplo, en el fichero /etc/printcap:

#
#  Fichero /etc/printcap para host rose - añadiendo el filtro de texto
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
        :sh:sd=/var/spool/lpd/rattan:\ 
        :lp=/dev/lpt0:\
        :if=/usr/local/libexec/if-simple:

bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
        :sh:sd=/var/spool/lpd/bamboo:\
        :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:\
        :if=/usr/local/libexec/if-simple:

11.3.1.4.7. Encienda LPD

lpd(8) se puede correr desde /etc/rc, controlado por la variable lpd_enable. Esta variable por default esta deshabilitada con NO. Si usted no cuenta con esta línea, añadala de la siguiente forma:

lpd_enable="YES"

al fichero /etc/rc.conf, y posteriormente puede reiniciar su sistema o ejecutar lpd(8).

# lpd

11.3.1.4.8. Probando la Configuración

Usted ha llegado al fin de una configuración sencilla de LPD. Desafortunadamente, aun no es momento de una felicitación, dado que aun debemos probar la configuración y resolver cualquier problema que se presente. Para efecto de probar la configuración, intente imprimir algo. Para imprimir con el sistema LPD, utilice el comando lpr(1), el cual envia el trabajo para su impresión.

Puede combinar lpr(1) con el programa lptest(1), el cual se ve en la sección Verificando la Comunicación con la impresora, para generar un texto de prueba.

Simplemente para probar la configuración de LPD, intente:

Teclee:

# lptest 20 5 | lpr -Pnombre-impresora

Donde nombre-impresora es uno de los nombres (o alias) que aparecen especificados en el fichero /etc/printcap para las impresoras. Para probar con la impresora por default, teclee lpr(1) sin la opción -P. Nuevamente, si esta probando una impresora que espera recibir PostScript, envie un programa PostScript en ese lenguaje, en lugar de usar lptest(1). Puede hacer esto poniendo el programa en un fichero y tecleando lpr fichero.

Para una impresora PostScript, usted debe visualizar el resultado del programa. Si esta usando lptest(1), entonces su resultado debe verse algo similar a lo siguiente:

!"#$%&'()*+,-./01234
"#$%&'()*+,-./012345
#$%&'()*+,-./0123456
$%&'()*+,-./01234567
%&'()*+,-./012345678

Para más pruebas de la impresora, intente descargar programas más largos (para impresoras basadas en un lenguaje) o ejecutar lptest(1) con diferentes opciones. Por ejemplo lptest 80 60 producirá 60 líneas de 80 caracteres cada una.

Si la impresora no funcionó, vea la sección Resolución de Problemas.

Éste y otros documentos pueden obtenerse en ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para preguntas acerca de FreeBSD, leer la documentación antes de contactar con la lista <questions@FreeBSD.org>.
Para preguntas acerca de esta documentación, e-mail a <doc@FreeBSD.org>.