viernes, 19 de abril de 2013

Compartir impresora de Linux a Windows

Hola amigos blogueros,

Una ves más escribiendo un mini manual que espero les sea de utilidad.

¿ Cuál es el problema ?

Tengo en una computadora con OpenSuse 11.2 que tiene instalada una impresora y necesito que un par de computadoras con Windows 7 puedan hacer uso de la misma.

Es muy importante decirles que este manual fue probado con las siguientes versiones de paquetes:


samba-client-3.4.3-3.8.1.x86_64
samba-3.4.3-3.8.1.x86_64

Lo recalco porque con los paquetes que vienen en la distro por default nunca me pude conectar.

Si se están preguntando, ¿ Cómo se que versión de paquetes tengo ?
El comando es el siguiente:

rpm -qa | grep samba*

Ahora si, manos a la obra.


1.- Agregamos un usuario con el comando:

useradd -M -c "Usuario para imprimir desde Win" -s /sbin/nologin smbprint

2.- Eliminamos la clave del usuario creado:

passwd -d smbprint

3.- Editamos el archivo: smb.conf

vi /etc/samba/smb.conf

4.- Dentro de ese archivo verificamos que estén las siguientes líneas des-comentadas y si no están deben de agregarlas.

[global]

  printcap name = cups  
  printing = cups   
  security = share


[printers]   
  path = /var/tmp
  browseable = yes   
  printable = yes   
  public = yes   
  create mode = 0600   
  guest ok = yes   
  guest account = smbprint   


5.- Reiniciamos el samba:

/etc/init.d/smb restart


6.- Editamos el archivo: cups.conf

vi /etc/cups/cupsd.conf

7.- Agregamos la siguiente línea:

Listen 192.168.1.0:631

Ustedes deberán reemplazar con la dirección de red que estén usando.

8.- En el parámetro Location escribimos las siguientes líneas:

<Location />
  Allow 192.168.1.0
  Allow @IF(eth0)
  Allow 127.0.0.2
  Allow all
  Order allow, deny
</Location>

El parámetro Location ya debe de existir dentro del archivo de configuración, por lo que deben de reemplazar lo que está escrito adentro con lo que especifico arriba.

La variable eth0 deben de reemplazarla con la interfaz por donde se conecta a la red el equipo.

9.- Reiniciamos el cups:

/etc/init.d/cups restart

10.- Deben de instalar el driver de la impresora en la máquina Windows.

11.- Una ves que hemos realizado todos los pasos anteriores ya podemos buscar la máquina Linux desde Windows en mis sitios de red o en ejecutar \\192.168.1.X y veremos que aparece la impresora compartida.

Espero les sea de utilidad ahora, en un futuro o solo si lo quieren hacer por curiosidad.

Re-editado 04-Julio-2013

Les comento que a pesar de estar funcionando el procedimiento anterior, existía ocasiones en que los documentos no se imprimían, la verdad no me puse a identificar cuales no y cuales si, mas bien me necesitaba en buscar una solución y rápido.

Manos a la obra.

Luego de ver los logs me encontré con esta línea en el error_log del cups:

CUPS: client-error-document-format-not-supported

Googleando encontré este foro de fedora que me fue de gran ayuda: 

http://forums.fedoraforum.org/archive/index.php/t-180014.html

Básicamente la solución es descomentar una línea que está al final del archivo mime.convs.

Pasos:

En la máquina "servidor" donde está conectada la impresora accedemos a la carpeta del cups.
  • # cd /etc/cups
Editamos el archivo en cuestión.
  • # vi mime.convs
Buscamos la línea que está casi al final, en este caso el # no es para denotar la línea de comando sino que muestra que la línea está comentada dentro del archivo. 

  • # application/octet-stream      application/vnd.cups-raw        0       -
Lo único que hay que hacer es descomentar esa línea.
Guardamos el archivo.
Y por último reiniciamos el cups.

¿ Porque pasó este error ?

Al parecer cups no "entendía" algunos datos cuando se enviaba el documento y asumía que estaba corrupto, por eso no imprimía.

Si alguno de mis lectores nos comparte alguna explicación técnica de porque este error o porque esta solución se lo agradecería muchísimo.

Cualquier duda o comentario lo dejan por este medio o me envían un tweet a @Danny_Obando.

Hasta mi próximo post.

No hay comentarios:

Publicar un comentario