imprimiendo con cups en freebsd

7
Imprimiendo con CUPS en FreeBSD Autor: Pedro Moreno Fecha: 9 de Agosto del 2003. Por que CUPS Tenia tiempo que deseaba echar a volar mi impresora en mi Freebsd 4.6, una hp deskjet 695c. Pero no me habia metido mucho con ese aspecto, y viendo como todo lo que me indicaba el handbook no me llevaba a nada, solo obtenia unas cuantas letras impresas, la impresora se ponia a sacar hojas en blanco como loca, hacia ruido, etc. Y mejor me dedicaba a realizar otras tareas mas fructiferas en mi S.O. 4.6 CUPS se basa en dos formas muy estandarizados para llevar a cabo su labor, uno de ellos es el estilo System V el cual usa el programa lp y el otro es el tipo Berkeley el cual usa el programa lpr. Creo que muchos hemos pasado por eso, por ello hace poco empeze mi investigación sobre el tema y me dije "La echo a volar por que la echo a Volar", con esto me encontre en la Web 2 programas muy usados en el mundo Unix, unos de ellos es CUPS y el otro Apsfilter. En ambos sitios se encuentra gran información sobre su instalación, configuración y uso. Y como es normal los ejemplos mostrados estan montados en Linux(ni modo, el marketing lo pide $$$), por ello si hacemos todo lo que dicen sus manuales nos vamos a encontrar con muchos resultados desagradables. Asi es que voy a tratar de aclarar lo mas que se pueda para que se les haga mas sencillo su implementación y uso. Ahora se preguntaran, ¿Cual es mejor de ambos programas :-? Bueno no tengo las pruebas para esto, eso ustedes lo descubríran en algun momento, lo que si les podría decir que ambos estan en los ports de Freebsd y que ambos pueden manejar infinidad de impresoras, pero de varios sitios que he visitado se recomienda usar CUPS , pero aqui le paro para no entrar en detalle. Ahora una cosa que me hizo elegir CUPS sobre Apsfilter es la documentación que tiene, me gusto mucho CUPS por que tiene un manual para el administrador como para el usuario normal. Esto gano su confianza. Ademas que se puede administrar el servidor desde una navegador web, KDE lo utiliza como sistema base de impresión. No voy a tomar el tema de como configurar el sistema de impresion en KDE ya que para empezar yo no lo uso, esta muy bonito pero tuve muchos problemas con el y opte por uno mas liviano y manejable como es WindowMaker ;-). Como dije anteriormente este articulo se basa en Freebsd 4.6 Stable el cual tiene conectado una impresora HP deskjet 695c en el puerto paralelo /dev/lpt0, por ello antes de continuar me gustaria que le echen in vistazo a el articulo publicado en este mismo sitio titulado "Impresoras Paralelo Freebsd" y hacer todo lo que dice ahi, si su impresora hace algun ruido o responde con algo creo que vamos bien. Y la versión de CUPS que viene en mis ports es la 1.1.14 y la instalacion se debe hacer como el usuario que todo lo puede root. Un punto que me gustaria aclarar y que a mi me trai de cabeza es ¿Que es una impresora PostScript :-? Bien existen dos tipos de impresoras, las llamadas Line Printers o Impresoras de Linea, estas solo pueden imprimir arhivos de Texto y las PostScript Printers o impresoras

Upload: aalejosd

Post on 27-Dec-2015

26 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Imprimiendo Con CUPS en FreeBSD

Imprimiendo con CUPS en FreeBSD

Autor: Pedro Moreno Fecha: 9 de Agosto del 2003.

Por que CUPS

Tenia tiempo que deseaba echar a volar mi impresora en mi Freebsd 4.6, una hp deskjet695c. Pero no me habia metido mucho con ese aspecto, y viendo como todo lo que me indicabael handbook no me llevaba a nada, solo obtenia unas cuantas letras impresas, la impresora seponia a sacar hojas en blanco como loca, hacia ruido, etc. Y mejor me dedicaba a realizar otrastareas mas fructiferas en mi S.O. 4.6

CUPS se basa en dos formas muy estandarizados para llevar a cabo su labor, uno de ellos es elestilo System V el cual usa el programa lp y el otro es el tipo Berkeley el cual usa el programalpr. Creo que muchos hemos pasado por eso, por ello hace poco empeze mi investigación sobreel tema y me dije "La echo a volar por que la echo a Volar", con esto me encontre en la Web 2programas muy usados en el mundo Unix, unos de ellos es CUPS y el otro Apsfilter. Enambos sitios se encuentra gran información sobre su instalación, configuración y uso. Y como esnormal los ejemplos mostrados estan montados en Linux(ni modo, el marketing lo pide $$$),por ello si hacemos todo lo que dicen sus manuales nos vamos a encontrar con muchosresultados desagradables. Asi es que voy a tratar de aclarar lo mas que se pueda para que se leshaga mas sencillo su implementación y uso.

Ahora se preguntaran, ¿Cual es mejor de ambos programas :-? Bueno no tengo las pruebas paraesto, eso ustedes lo descubríran en algun momento, lo que si les podría decir que ambos estan enlos ports de Freebsd y que ambos pueden manejar infinidad de impresoras, pero de varios sitiosque he visitado se recomienda usar CUPS , pero aqui le paro para no entrar en detalle. Ahora unacosa que me hizo elegir CUPS sobre Apsfilter es la documentación que tiene, me gustomucho CUPS por que tiene un manual para el administrador como para el usuario normal. Estogano su confianza. Ademas que se puede administrar el servidor desde una navegador web, KDElo utiliza como sistema base de impresión. No voy a tomar el tema de como configurar el sistemade impresion en KDE ya que para empezar yo no lo uso, esta muy bonito pero tuve muchosproblemas con el y opte por uno mas liviano y manejable como es WindowMaker ;-).

Como dije anteriormente este articulo se basa en Freebsd 4.6 Stable el cual tiene conectadouna impresora HP deskjet 695c en el puerto paralelo /dev/lpt0, por ello antes de continuarme gustaria que le echen in vistazo a el articulo publicado en este mismo sitio titulado"Impresoras Paralelo Freebsd" y hacer todo lo que dice ahi, si su impresora hace algun ruido oresponde con algo creo que vamos bien. Y la versión de CUPS que viene en mis ports es la1.1.14 y la instalacion se debe hacer como el usuario que todo lo puede root.

Un punto que me gustaria aclarar y que a mi me trai de cabeza es ¿Que es una impresoraPostScript :-? Bien existen dos tipos de impresoras, las llamadas Line Printers o Impresoras deLinea, estas solo pueden imprimir arhivos de Texto y las PostScript Printers o impresoras

Page 2: Imprimiendo Con CUPS en FreeBSD

PostScript son las que ademas de poder imprimir texto pueden tambien imprimir imagenes. Porlo tanto mi impresora es una PostScript y soporta la version 3 de Postscript.

Bueno creo que ya tecle mucho y no he hecho nada productivo, vamos a entrarle a los trancazos.Siganme los buenos...

Instalando CUPS

Como puntos importantes aparte de cups, si deseamos poder imprimir archivos de imagenes,CUPS debe tener los filtros para ello, el no trae todo, si asi fuera perderia rendimiento. Por ellonecesitamos instalar la librerias JPEG, PNG, TIFF y ZLIB, busquenlos en sus ports, ahi vienencasi todas. Sino, entonces los pueden bajar de los ports de Freebsd, no van a tener problemas.Entramos como root al sistema y ejecutar la aplicación que se usa para configurar el sistema oinstalar programas que es la que nos interesa en este momento:

# /stand/sysinstall

Una vez que logramos instalarlo vamos a observar que este mosquetero no viene solo, debemosconfirmar que todos los programas que arrastra se instalaron junto con el, para ello verificamosusando el programa pkg_info:

# pkg_info

Este nos desplegara todos los programas instalados en nuestro sistema, y si tenemos muchos y nologramos verlo, utilizaremos el comando GREP para filtrar texo asi:

pkg_info | grep cups

el cual nos debe arrojar lo siguiente:

cups-1.1.14 cups-base-1.1.14 cups-lpr-1.1.14

Si no tenemos estos tres mosqueteros, entonces ahi que buscarlos he instarlos cada uno viene porseparado, se deberian instalar juntos pero "no todo en la vida es color de rosa". Si la tareaanterior se a completado con exito, entonces pasar a la siguiente fase.

¿Donde se instalo CUPS?

Ahora una vez que hemos instalado CUPS es conveniente saber donde coloca sus archivos deconfiguración ya que si deseamos modificarlos necesitamos saber donde estan o no :-?. Segun elhandbook el directorio por defecto es /usr/local/ pero este mosquetero no solo tiene archivos deconfiguración sino tambien debe manejar colas, errores y como podran intuirlo no los colocadonde mismo, Freebsd tiene directorios para ello, por ello para saber donde esta CUPS vamosa buscarlo ejecutando el programa find asi:

#find -v -option / cups*

Estos son los directorios a los que debemos ponerles atención:

Page 3: Imprimiendo Con CUPS en FreeBSD

a) /usr/local/etc/cups/ b) /usr/local/bin/ c) /usr/local/sbin/ d) /var/spool/cups/ e) /var/log/cups/

a)Contiene los archivos de configuración, si han usado Apache y han visto sus archivos deconfiguración, pues que bien ya que son parecidos, nos se van a sorprender, de lo contrariotampoco ya que son muy explicativos y faciles de digerir, los principales seran: cupsd.conf,client.conf, printers.conf, ademas que vienen archivos de ejemplo de cada uno de ellos.

b)Aqui tenemos programas que remplazan a varios de los que se encuentran en /usr/bin comoson: lp, lpoptions, lppasswd, lpq, lpr, lprm, lpstat. Estos son los que debemosusar en vez de los que tenemos en /usr/bin.

c)Aqui tenemos mas programas para manejar nuestra impresora como: lpadmin, lpc, lprm,lpq, lpinfo, lpmove, ya saben sin desean mas informacion tenemos man.

d)Archivos para manejar la cola de impresión.

e)Archivos log, como error_log, access_log, page_log, los cuales no les debemos perder la pistaya que si llenan y no nos damos cuenta no se lo que pasaria :-?.

Y si tenemos problemas con CUPS, el archivo error_log nos seria de gran ayuda. Por elmomento no vamos a entrar en detalles en ellos ya que por defecto esta configurado para podertrabajar sin problemas, pero seria bueno que les hecharan un ojo para ver si algo les interesa B-).

Ejecutando el bsdemonio cupsd

Como solo hemos instalado el programa, aun no esta corriendo en nuestro sistema, para ellodebemos ejecutarlo, y como este demonio no se instala en los directorios por defecto de losprincipales programas debemos buscarlo, y esto se hace de una manera muy facil:

# whereis cupsd

/usr/local/sbin/cupsd

Entonces lo ejecutamos asi:

# /usr/local/sbin/cupsd

No nos debe arrojar ningun mensaje a nuestra pantalla de lo contrario checar y si no les parececorrecto entonces debemos empezar a investigar a que se debe ese mensaje. Una vez que loejecutamos checamos si esta en realidad corriendo asi:

# ps -ax | grep cuspd

PID name prog 140 ?? Ss 0:00.10 /usr/local/sbin/cupsd

Ahora si tenemos a CUPS a toda maquina, si deseamos que se ejecute cada que iniciemos nuestro

Page 4: Imprimiendo Con CUPS en FreeBSD

sistema, debemos de crear un script, en lo cual yo todavia no tengo experiencia pero si alguienpuede darnos uno y explicarlo se lo agradeceriamos, CUPS trae un ejemplo pero todavia no leentiendo bien, creo que por ahi podriamos comenzar. Ahora es hora de pasar a la siguiente fase.

Agregando nuestra primera impresora en CUPS

Esta es una de las cosas que me agrado tanto de este mosquetero, como tiene soporte para elprotocolo IPP (Protocolo de Impresión Para Internet), por ello podemos administrar nuestrasimpresoras ya sea desde nustra misma red local como desde Internet, este tema no lo tocare yaque yo solo lo uso en mi casa pero no importa podemos de todos modos usar el navegador quemas nos agrade para esa tarea a nivel local.

Para entrar al adminstrador de cups debemos usar el puerto por defecto para IPP 631 asi:

http://localhost:631/admin/

En el archivo cupsd.conf podemos indicarle cual puerto deseamos usar para ingresar al sitio deladministrador, ademas de ello podemos usar un sistema de encriptación para mayor seguridad,pero esa es otra historia. Una vez que solicitamos la pagina del admistrador nos solicitara laclave de root y su password, si no se lo damos correcto nos sacara instantaneamente.

La pagina es muy sencilla, no hay nada que no este claro, lo que vamos hacer es dar de altanuestra impresora, CUPS tiene infinidad de controladores para un amplio rango de impresorasdesde impresoras de linea como HP, Epson de 9 y 24 pines, Stylus Color, Stylus Photo Color,etc. Si les interesa crear un controlador personalizado tambien en su sitio encontraraninformación de como hacerlo.

Estos son los pasos a seguir para agregar su primera impresora, aqui supongo que ya estamos enla pagina del administrador, entonces:

1; Buscar el Link que dice "Add a New Printer" lo que es igual a Agregar Nueva Impresora. Estonos va a pedir los siguientes datos:

Name: --->Nombre, Nick o Apodo que deseamos darle a nuestra impresora. Este nombre debeser unico, como "deskjet1".Location: --->Lugar fisico de la impresora. Ustedes eligan, en mi caso es "Debajo de MiEscritorio".Description: --->Una breve descripcion de la impresora como "HP Deskjet 695c PuertoParalelo".

Ya que terminamos este paso, entonces le damos un click en el Link "Continue".

2;Indicar por que medio esta conectado nuestra impresora, las opciones que tenemos son:

Device: USB HP JetDirectHTTP o IPP LPD/LPR ParaleloSERIAL

Page 5: Imprimiendo Con CUPS en FreeBSD

Ya que le decimos por que medio esta conectada entonces de nuevo presionamos el Link"Continue".

3; Luego debemos indicar que modelo de impresora tenemos, aqui podemos ver los que soporta:

Model/Driver For Your Printer:RawDymoEpson HPOkidaka

Como lo mia es una HP, ya se imaginaran cual elegi. Y continuamos.

4; Ahora dependiendo lo que elegimos en paso 3, el nos mostrara los controladores que tienepara ese tipo de modelo. Para HP muestra los siguientes:

Model: HP Deskjet Series CUPS v1.1(en)HP Laserjet Series CUPS v1.1(en)HP New Deskjet Series CUPS v1.1(en)

Yo elegi el nuevo, la opcion 3 que es el nuevo controlador, pero de todos modos probe elprimero y me funciono.

Continuamos y nos debe informar que todo se hizo con exito. Buscamos un link por abajo quedice "Printer", este enlace nos lleva a una pagina que nos muestra la información de la o lasimpresoras que tenemos dadas de alta en el servidor CUPS. Nos dice el nombre, descripcion enfin toda la información que hemos dado de alta. Ahora vamos a imprimir nuestra rigorosa paginade prueba, buscar el link que dice "Print Test Page". Para este entonces su impresora ya debeestar haciendo algo de ruido y su impresora ya debe estar hechandole tinta a la hoja.

Empiezen a jugar con las opciones que tienen en el navegador para que le pierdan el miedo.

Agregando la impresora como variable del sistema

Esto nos facilitara mucho el trabajo desde shell con la impresora , yo uso csh su archivo deconfiguración se encuentra en / y se llama .cshrc, lo editamos con su editor favorito, que en micaso es ee, y agregamos esta linea:

setenv PRINTER deskjet1

Recuerden el nombre o "Name" que le dimos a la impresora.

Salvamos el archivo y reiniciamos el shell para que vuelva a leer el archivo de configuración asi:

# kill -s HUP PID_Del_Shell

Probamos la variable:

# echo $PRINTER

Page 6: Imprimiendo Con CUPS en FreeBSD

deskjet1

Listo, mas adelante van a ver como nos vamos a ahorrar teclasos desde el shell.

Imprimiendo desde el Shell

Muchas veces lo visual no nos permite sacarle el maximo a las aplicaciones por ello es necesariousar el shell. Por ello tambien CUPS tiene varios comandos que le ayudan, los mas importantesson lpr o lp, pero no vamos a usar los del kernel sino los que instalo CUPS, puedes retornaratras al subtema que dice "Donde se instalo CUPS", para que entiendan lo que les digo. Paraimprimir una pagina usando uno de estos dos comandos se hace asi:

# /usr/local/bin/lpr Nombre_Del_Archivo

o

# /usr/local/bin/lp Nombre_Del_Archivo

Si no creamos la variable del sistema PRINTER entonces estos comandos nos van a marcarerrores, ya que por default la impresora se llama lp y nos diria algo asi cuando los ejecutemos:

/dev/lp not created

Por ello es bueno hacerlo, pero si les gusta teclear de mas adelante.

Ahora si deseamos ver una lista de nuestras impresoras disponibles:

# lpstat -p -d

Si deseamos imprimir a una impresora en especial con lpr o lp:

# /usr/local/bin/lpr -p Nombre_de_Impresora Nombre_del_Archivo

o

# /usr/local/bin/lp -d Nombre_de_Impresora Nombre_de_archivo

Para imprimir varias hojas de un archivo:

# /usr/local/bin/lpr -#NumerodeCopias Nombre_del_archivo

o

# /usr/local/bin/lp -n NumeroDeCopias NombredelArchivo

Cuando quieran ver la actividad o Status de la impresora:

# lpstat

deskjet1 paisano 2048

Nos da todos los que estan en la cola. Si queremos ver el que se esta imprimiendo en especial:

Page 7: Imprimiendo Con CUPS en FreeBSD

# lpstat -p

Si usamos al opcion -o -p veremos los de la cola y el actual.

# lpstat -o -p

Todo esto lo podemos hacer desde el navegador, pero no tenemos todo el poder de estoscomandos como con el shell. Ahora si deseamos cancelar algun trabajo en especial o hasta el quese esta imprimiendo, podemos usar los comandos cancel(1) o lprm(1) y se hace asi:

# cancel Id_Del_Trabajo

o

# lprm Id_Del_Trabajo

Los Id de los trabajos a cancelar nos lo dan los comandos lp o lpstat.

Imprimiendo desde el Modo Grafico

Como punto final en cuanto a comandos, si ustedes desean imprimir desde algun programa enmodo grafico como Nedit o Xpdf cuando estos programas nos abren la famosa ventana deimpresión, por defecto traen el comando lpr, o lp y alguna opción de ellos y si nosotros pordefecto suponemos que va a imprimir, nos vamos a llevar un buen chasco. Por ello debemoscambiar el comando por el nuevo comando, por ejemplo:

# lpr -r

por

# /usr/local/bin/lpr

o

# /usr/local/bin/lp

Nos Vemos

Creo que es todo lo que yo he hecho para poder imprimir con mi impresora, CUPS me tienecontento. Hay algunos puntos que todavia no me quedan claros, por ejemplo como ejecutar eldemonio cupsd desde el arranque del sistema, algunas otras opciones no he tenido necesidad deutilizar, otro punto es como imprimir los archivos .bmp, pero espero pronto llenar esos huecos ysi alguien nos puede hechar la mano seria muy bueno. Seria tambien productivo hacer unaspruebas con Apsfilter y ver un tutorial por aca, no les parece :-?. Cualquier error que ustedesencuentren o algo concepto o comando mal usado, me gustaria me lo hicieran saber para prontocorregirlo, actualizarlo y asi crear un documento completo. Espero les sirva tanto como a mi meha servido.