Si tienes impresoras conectadas a clientes Windows 95/98 o NT 4.0, esas impresoras pueden ser también accedidas desde Samba. Samba viene equipado con una herramienta llamada smbprint que puede ser usada para enviar trabajos de impresión a impresoras Windows. Para poder usar esto, sin embargo, necesitas configurar la impresora como recurso compartido en la máquina cliente. Si no la tienes compartida, hazlo desde la Ventana de Impresoras, como ves en la Figura 7.7.
Figure: La Ventana de Impresoras.
|
|
Selecciona una impresora que esté localmente conectada (por ejemplo, la nuestra en la impresora Canon), presiona el botón derecho del ratón, y selecciona 'Compartir'. Esto te llevará a la ventana de compartición de recursos de las Propiedades de la Impresora, como muestra la Figura 7.8. Si quieres hacerla disponible para todo el mundo en tu red, como la impresora por defecto para usuarios anónimos, introduce una contraseña en blanco.
Figure: Ventana de Compartición de Impresora.
|
|
Una vez hecho esto, puedes añadir tu impresora a la lista de impresoras por defecto y Samba puede hacerla disponible al resto de equipos de la red. Para hacer la instalación en Unix más sencilla, la distribución Samba proporciona dos scripts de ejemplo: smbprint y smbprint.sysv. El primero funciona con impresoras tipo BSD; el segundo es el utilizado para impresoras System V.
Impresoras BSD
Hay dos pasos necesarios para que un sistema Unix BSD reconozca una impresora remota:
- Colocar una entrada para la impresora en el fichero /etc/printcap (o equivalente).
- Colocar un fichero configuración en el directorio /var/spool para esa impresora.
Primero, edita tu fichero /etc/printcap y añade una entrada para la impresora remota. Advierte que el filtro de entrada (if) necesita apuntar al programa smbprint si la máquina está sobre Windows 95/98. El siguiente conjunto de líneas iría en una máquina Linux machine:
laserjet:\
:sd=/var/spool/lpd/laser:\
# spool directory
:mx#0:\
# maximum file size (none)
:sh:\
# surpress burst header (no)
:if=/usr/local/samba/bin/smbprint:
# text filter
Una vez hecho esto, necesitas crear un fichero de configuración en el directorio de colas (spool) que especificaste con el anterior parámetro sd (puede que necesites crear dicho directorio). El fichero debe tener el nombre .config y debería contener la siguiente información:
- El nombre NetBIOS de la máquina Windows que tiene la impresora.
- El nombre del servicio que representa a la impresora.
- La contraseña usada para acceder al servicio.
Los dos últimos parámetros fueron configurados en el cuadro de Compartición de la máquina Windows. En este caso, el fichero .config debería tener tres líneas:
server = phoenix
service = CANON
password =
</FONT></PRE>
<P><FONT size=2>Una vez hecho esto, reinicia el server Samba e intenta imprimir usando cualquier programa Unix. </FONT></P>
<H2><FONT size=2>Impresoras System V </FONT></H2>
<P><FONT size=2>Enviar trabajos de impresión a una impresora Unix System V es algo más sencillo. Aquí, necesitas obtener el script <SPAN class=textit>smbprint.sysv</SPAN> del directorio <SPAN class=textit>/usr/local/samba/examples/printing</SPAN> y hacer lo siguiente: </FONT>
<P><FONT size=2></FONT>
<UL>
<LI><FONT size=2>Cambia los parámetros <SPAN class=textit>server</SPAN>, <SPAN class=textit>service</SPAN>, y <SPAN class=textit>password</SPAN> en el script para que coincidan con la máquina NetBIOS, su impresora compartida, y su password, respectivamente. Por ejemplo, las siguientes entradas deberían ser correctas para el servicio del ejemplo que pusimos antes: </FONT></LI></UL>
<P><FONT size=2></FONT><PRE><FONT size=2>server = phoenix
service = CANON
password =
- Ejecuta los siguientes comandos, que crearán una referencia para la impresora en el fichero de capacidades de impresora. Advierte que la nueva entrada de impresora Unix se llama canon_ printer:
# lpadmin -p canon_printer -v /dev/null -i./smbprint.sysv
# enable canon_printer
# accept canon_printer
Una vez hayas hecho esto, reinicia los demonios Samba e intenta imprimir usando cualquier programa Unix. Deberías poder enviar datos a una impresora de un cliente Windows a través de la red.
Opciones de Impresión de Samba
La Tabla 7.2 resume las opciones de impresión de Samba.
Table: Opciones de Configuración de Impresoras.
|
Table: Opciones de Configuración de Impresoras.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
no |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
printing
La opción de configuración printing le indica a Samba algo acerca de vuestro sistema de impresión Unix, en éste caso qué intérprete o parseador de impresión utilizar. Con Unix, hay varias familias diferentes de comadnos para control de impresión y control de estado de impresión. Samba soporta siete tipos diferentes, como ves en la Tabla 7.3.
Table: Tipos de Impresión.
| Variable |
Definición |
| BSD |
Berkeley Unix system
|
| SYSV |
System V
|
| AIX |
AIX Operating System (IBM)
|
| HPUX |
Hewlett-Packard Unix
|
| QNX |
QNX Realtime Operating System (QNX)
|
| LPRNG |
LPR Next Generation (Powell)
|
| SOFTQ |
SOFTQ system
|
| PLP
|
Portable Line Printer (Powell)
|
El valor para esta opción será uno de los siete posibles. Por ejemplo:
El valor por defecto para esta opción es 'Dependiente de Sistema' y se configura cuando Samba es compilado por vez primera. Para la mayoría de sistemas, el script configure automáticamente detectará el sistema de impresión a ser usado y lo configurará adecuadamente en el Makefile de Samba. Sin embargo, si tu sistema es PLP, LPRNG, o QNX, necesitarás especificarlo explícitamente en el Makefile o en el recurso de impresión.
Los tipos de sistemas más comunes son BSD y SYSV. Cada una de las impresoras en un sistema BSD Unix están descritas en el fichero de capacidades de impresoras (normalmente /etc/printcap).
Estableciendo la opción de configuración printing automáticamente se establecen también al menos otras tres opciones de impresión para el servicio en cuestión: print command, lpq command, y lprm command. Si estás ejecutando Sambasobre un sistema que no tiene soporte para ninguno de estos estilos de impresión, simplemente establece el valor para cada uno de estos comandos manualmente.
printable
La opción printable debe establecerse a yes en orden a marcar un recurso como servicio de impresión. Si esta opción no se establece, el recurso será tratado como una unidad de disco. Puedes configurar esta opción así:
[printer1]
printable = yes
printer
Esta opción, también llamada printer name, especifica el nombre de la impresora en el servidor a la cual el recurso apunta. Esta opción no tiene valor por defecto y debería ser configurada explícitamente en el fichero de configuración, aunque los sistemas Unix por sí solos frecuentemente reconocen un nombre por defecto tal como lp para una impresora. Por ejemplo:
[deskjet]
printer = hpdkjet1
printer driver
La opción printer driver establece la cadena que Samba usa para indicarle a Windows cuál es la impresora. Si esta opción se configura correctamente, El Asistentee de Configuración de Impresoras de Windows ya sabrá cuál es la impresora, haciendo su instalación más simple para los usuarios finales gracias a un diálogo menos que se les tiene que presentar. La cadena dad debería coincidir con la cadena que se muestra en el Asistente de Impresoras, como se ve en la Figura 7.9. Por ejemplo, una impresora Apple LaserWriter normalmente usa 'Apple LaserWriter'; una Hewlett Packard Deskjet 560C usa 'HP DeskJet 560C Printer'.
Figure: El Diálogo de Inserción de nueva Impresora en Windows 98.
|
|
printer driver file
Esta opción global da la localización del fichero driver de la impresora Windows 95/98, el cual es necesario para proporcionar los drivers de la impresora a los clientes que usen un impresora Samba. El valor por defecto para esta opción es /usr/local/samba/lib/printers.def. Puedes machacar este valor por defecto como sigue:
[deskjet]
printer driver file = /var/printers/printers.def
printer driver location
Esta opción especifica un recurso que contiene drivers de impresoras Windows 95 y 98 y ficheros de definición. No hay valor por defecto. Puedes especificar la localización como una ruta de red. Una aproximación frecuente es usar un recurso en tu propia máquina, como se muestra aquí:
[deskjet]
printer driver location = \\%L\PRINTER$
lpq cache time
Esta opción te permite establecer el número de segundos durante los cuales Samba recordará el estado actual de la impresora. Una vez este tiempo transcurra, Samba ejecutará un comando lpq (o el que hayas especificado en la opción lpq command) para tener información de última mano acerca del estado. Por defecto se establece a 10 segundos, pero puede ser incrementado si tu comando lpq se toma un tiempo inusualmente largo en ejecutarse o tienes muchos clientes. El siguiente ejemplo establece el tiempo a 30 segundos:
[deskjet]
lpq cache time = 30
postscript
La opción postscript fuerza a la impresora a tratar todos los datos enviados como si fueran Postscript. Esto se ahce precediendo los caracteres %! al principio de la primera línea de cada trabajo. Se usa normalmente con PCs que inserten un ^D (control-D o 'marca de fin de fichero') al principio de la primera línea de un fichero PostScript. Esto, obviamente, no convierte a una impresora no-PostScript en una PostScript. El valor por defecto para esta opción es 'no'. Puedes cambiar el valor así:
[deskjet]
postscript = yes
print command, lpq command, lprm command, lppause command, lpresume command
Estas opciones le indican a Samba qué comandos Unix usar para controlar y enviar datos a la impresora. Los comandos Unix que se ven involucrados aquí son: lpr (send to Line PRinter), lpq (List Printer Queue), lprm (Line printer ReMove), y opcionalmente lppause y lpresume. Samba proporciona una opción nominada para cada uno de estos comandos, para el caso de que necesites modificar cualquiera de los valores por defecto del sistema. Por ejemplo:
lpq command = /usr/ucb/lpq %p
Esto establecería como comando lpq al ejecutable /usr/ucb/lpq. Similarmente:
lprm command = /usr/local/lprm -P%p %j
indicaría usar como comando de eliminación de trabajos al ejecutable /usr/local/lprm, y le proporciona el número de trabajo de impresión mediante la variable %j.
Los valores por defecto para cada una de estas opciones son dependientes del valor de la opción printing. La Tabla 7.4 muestra los comandos por defecto para cada una de las opciones de impresión. El sistema de impresión más popular es el BSD.
Table: Comandos por defecto para varios comandos de impresión.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Normalmente no es necesario modificar estas opciones en Samba, con la posible excepción de print command. Esta opción puede que sea necesacio definirla explícitamente si tu sistema de impresión no tiene una opción -r (eliminar tras imprimir) en el comando de impresión. Por ejemplo:
/usr/local/lpr -P%p %s; /bin/rm %s
Con un mínimo de juiciosa programación, estas opciones de smb.conf también se pueden usar par depuración de errores:
print command = cat %s >>/tmp/printlog; lpr -r -P%p %s
Por ejemplo, esta configuración puede verificar qué ficheros están actualmente siendo enviados al servidor Samba. Si los hay, sus contenidos se mostrarán en el fichero /tmp/printlog.
Tras BSD, el siguiente sistema de impresión más popular es SYSV (o System V), además de algunas variantes SYSV para IBM's AIX y Hewlett-Packard HP-UX. Este sistema no tiene un fichero /etc/printcap. En su lugar, la opción printcap file puede configurarse con un apropiado comando lpstat. Esto le dice a Samba que obtenga una lista de impresoras desde el comando lpstat. Alternativamente, puedes establecer la opción de coniguración global printcap name al nombre de una un fichero printcap desmilitarizado (dummy) que tú proporciones. En este último caso, el fichero debe contener una serie de líneas como estas:
lp|print1|My Printer 1
print2|My Printer 2
print3|My Printer 3
Cada línea nomina un impresora, y proporciona alias para ella. En este ejemplo, la primera impresora es llamada lp, print1, o My Printer 1, cualquiera que el usuario prefiera usar es válida. El primer nombre será usado en lugar de %p en cualquier comando que Samba ejecute para esa impresora.
Dos tipos adicionales de impresión son también soportados por Samba: LPRNG (LPR New Generation) y PLP (Public Line Printer). Estos son sistemas de dominio público y Open Source, y son utilizados por muchos sitios con problemas de adquisición de licencias de software. En adición, los sistemas SOFTQ y QNX también son soportados por Samba.
load printers
Esta opción le dice a Sambaque cree recursos para todos los nombres de impresoras conocidos y los cargue en la lista de navegación. Samba creará y listará un recurso de impresión por cada nombre de impresora en /etc/printcap (o equivaente de tu sistema). Por ejemplo, si tu fichero printcap se parece a este7.3:
lp:\
:sd=/var/spool/lpd/lp:\
# directorio de cola
:mx#0:\
# tamaño máximo fichero (ninguno)
:sh:\
# surpress burst header (no)
:lp=/dev/lp1:\
# nombre dispositivo para salida
:if=/var/spool/lpd/lp/filter:
# texto filtro
laser:\
:sd=/var/spool/lpd/laser:\
# directorio de cola
:mx#0:\
# tamaño máximo fichero (ninguno)
:sh:\
# surpress burst header (no)
:lp=/dev/laser:\
# nombre dispositivo para salida
:if=/var/spool/lpd/lp/filter:
# texto filtro
y tú especificas:
load printers = yes
Los recursos [lp] y [laser] serán creados automáticamente como recursos válidos de impresión cuando se inicie Samba. Ambos recursos tomarán las opciones de configuración especificadas en la sección [printers] para configurarse a sí mismos, y estarán disponibles en la lista de navegación para el servidor Samba.
printcap name
Si la opción printcap name (también llamada printcap) aparece en un recurso de impresión, Samba usará el fichero especificado como fichero de capacidades de impresión del sistema. Este es normalmente /etc/printcap. sin embargo, puedes cambiarlo a otro fichero que contenga sólo las impresoras que quieras dar a compartir sobre la red. El valor debe ser el nomrbe de un fichero de capacidades de impresoras completamente cualificado en el servidor:
[deskjet]
printcap name = /usr/local/printcap
min print space
Esta opción establece la cantidad de espacio de cola que debe estar disponible en disco antes de que se permita la impresión. Estableciendo dicho valor a cero (por defecto) se desactiva la opción; estebleciendo cualquier otro número se establece la cantidad de espacio libre requerida en kilobytes. Esta opción te ayuda a evitar tener trabajos de impresión ocupando el espacio libre restante del disco, lo cual puede provocar que caigan otros procesos:
[deskjet]
min print space = 4000
queuepause command
Esta opción especifica un comando que le dice a Samba cómo pausar una cola de impresión por completo, no sólo un único trabajo. El valor por defecto depende del tipo de sistema de impresión escogido. No deberías necesitar modificar este valor.
queueresume command
Esta opción especifica un comando que le dice a Samba cómo reactivar una cola de impresión interrumpida al completo. El valor por defecto depende del tipo de sistema de impresión escogido. No deberías necesitar modificar este valor.
... este7.3
- Hemos colocado comentarios par el caso de que no te hayas metido nunca conn este fichero.