martes, 28 de marzo de 2006

Inutilidad Publica 2.

Ahhhh... la samsung ML-1610... impresora laser monocrómo, compacta, rápida, eficiente... económica por donde se le mire... ideal para empresas y oficinas... que no tengan una red windows...

¿¿Notan algo extraño en lo anterior??

Sip... en una oficina lo mas normal es que hayan redes windows... el problema es que el driver de esta impresorita viene con una pequeña falla.... no se puede usar realmente en entornos de red convencionales a la windows...

¿¿Por que sera cabashero??

Simple: El driver sontenido en los archivos SLUG.DLL y SLUG1.DLL, son guardados en el directorio de drivers compartidos de impresora (¿¿Sabían que windows comparte una carpeta por defecto con todos los drivers de impresoras que tengan, pero que no se hace realmente publica hasta que indican que se comparta??.. sip... esta carpeta esta en %Systemroot%/System32/Spool/drivers, bajo el token print$)... el problema es que estos drivers son marcados como "en uso" despues de la primera impresión, hasta que la maquina se apaga, y eso produce problemas... muuuchos problemas...

Lo que pasa ("es que la vaca esta borrachaa... ta borracha.. ta borracha") es que cuando un cliente windows se conecta a una impresora compartida en red, el cliente primero verifica que los drivers que estan instalados sean realmente los ultimos... Y cuando el cliente intenta verificar el par de DLL's que mencione... no puede accesarlos, ya que estan ocupados... eso produce una demora enorme (particularmente en Office) y un aumento de trafico por la red (Windows intentara hacerlo muuuuuuuchas veces, en 1 segundo)... Si se van al log de windows... en el apartado "Sistema", veran unas cuantas advertencias (mas o menos unas 30-40 y contando... se generan cada segundo hasta matar el proceso spoolv.exe) que contendran un evento numero 20, producido por el servicio impresoras, y que advertira que "El documento (Omitido), Windows NT x86 perteneciente a Version-3 ha caducado en (lista de archivos del driver... es larga). La cola de impresión estuvo esperando %5 milisegundos y no recibió ningún dato. "... Este último error esta siendo algo mas o menos común en maquinas 2000/XP... apuesto a que M$ cambio algo y no le aviso a nadie... lo usual... El cuento es que esto hara que cada impresion y configuracion de la impresora se demora hasta el punto de verte obligado a reiniciar la mquina cliente (la maquina donde esta la impresora no tendrá problemas)...

Lindo ¿No?.

Eso sucede cuando la impresora se comparte de la forma convencional, usando el wizard de windows para conectarse a la impresora de red... La solucion a este problema (y al tema de los eventos) es usar el metodo poco ortodoxo de stargeizer para compartir impresoras... funciona en la mayoría de los casos y es lindo XD. jajajaja

El cuento es mas o menos así: Primero se debe configurar la impresora en la maquina donde la impresora va conectada directamente... se comparte de la forma habitual, pero OJO... cuando le den el nombre a la impresora, denle un nombre corto.. el ideal es que sea menos de 15 Carácteres... con ese nombre tienen que tener en mente que windows 2000/XP harán pública la impresora usando el formato UNC como //Servidor/Nombre (Ahora y en adelante, cambien el "/" por "\"... blogger tiene problemas con los "\\") , (Por ejemplo, si el servidor se llama "Secretaria", y le colocan a la impresora el nombre "Carta", la impresora quedara identificada como //Secretaria/Carta, en formato UNC)...

Ahora el trabajo que se debe hacer en el equipo CLIENTE:

Deben instalar los drivers en el cliente, "TAL CUAL" lo harian si la impresora estuviera conectada directamente a el... algunos tipos de drivers nececitan que la impresora este realmente conectada al equipo, pero siempre pueden omitir el paso y dejar que el instalador instale los archivos... una vez que los drivers estén instalados... veran en la carpeta de impresoras que esta la impresora... pero esta instalada "Localmente"... esa es la IDEA. (¿¿Alguien dijo redundante?? XD)

Ahora el truco: Vayan a la propiedades de la impresora, y en la pestaña "PUERTOS", apareceran unos botones... hagan click sobre "LOCAL PORT" (si hacen click sobre "Puerto local", lo mas probable es que se les caiga... Bug de windows si es que lo tienen), y en la ventana que aparezca, click sobre "PUERTO NUEVO"... en el cuadro que aparece, escriban la direccion UNC que tenían en el principio... en el ejemplo //Secretaria/Carta (No olviden que deben cambiar las "/" por "\"... blogger a veces es problematico XD)... le dan al boton "Aceptar" en todas las ventanas restantes para cerrar todo.. y Voila... impresora compartida localmente en red lista para usar y abusar como mejor les plazca, sin problemas de drivers idiotas...

Ahora si la Secretaria es una idiota o no... ese es otro cuento..

Saludos

J.
Desde luego este fue otro servicio de inutilidad publica... Probablemente no tengan este problema, pero si lo tienen en alguna parte, ya saben como arreglarlo... y NO... Google no ofrece este tipo de soluciones para el problema... Es una caracteristica muy poco documentada, pero que esta bajo nuestras narices... ahhh... M$ y su politica de no documentar o documentar mal...

10 comentarios:

Anónimo dijo...

ta buena la solucion, me quedo una duda, tu solucion se aplica para evitar tener problemas al instalar el driver a traves de la red?, o es para evitar problemas de acceso a la impresora(o sea despues de instalarla a traves de la red tener problemas en el uso)?, yo creo que lo primero lo segundo me aprece muy tonto, pero con windows nunca se sabe...

Saludos

J. dijo...

Es para evitar problemas al accesar la impresora, usando drivers mal hechos/no actualizados para el uso en red windows, como el de la Samsung ML-1610...

Hay mas impresoras con el problema... pero el caso concreto es el que me consta en un 100%.

J.

Leonard "Nik" Petit-Breuilh dijo...

De echo algunas HP basadas en GDI como la LJ1000 o la antigua HP Deskjet 800 tenían el mismo problema.
El bloqueo de esas DLL no es en esas impresoras una falla del driver, si no el echo que en esas chungas dll está ¡la mitad de la Firmware de la impresora!. Basicamente esas impresoras (no se si será el caso con la Samsung) hacen todo el rendering (y en el caso de la LJ1000, realmente todo ya que esa maquina NO TIENE FIRMWARE!) en la CPU del PC (a travez de la API de GDI, que está diseñada para renderear a la pantalla y no a un dispositivo compartido), y luego envian comandos de bajo nivel (en el caso particular de Samsung, con un lenguaje propietario llamado Samsung Printer Language, que no es mas que un Wrapper de GDI, un pelito mas rapido) al motor de impresión, por lo general solo un Bitmap y un par de chuchadas más, Todo en pro de abaratar costos. No son como otras máquinas que reciben comandos en un lenguaje de alto nivel como PCL o PostScript.
Por esto, estas impresoras son marqueteadas como "Laser's personales", osea en terminos de soporte: "Si ud. la pone en una red, no nos hacemos responsables de nada".
Lo mejor es chantarle un Print Server (de esos baratos, funcionan mejor) e instalar el Driver localmente en cada pc.

Leonard "Nik" Petit-Breuilh dijo...

Resumiendo:
Si no quieres problemas, comprate un a impresora que en la parte de "lenguaje de impresora" diga PCL o Postscript.

Y nada de "emulación PCL" por que esa se hace en el PC.

J. dijo...

En todo caso...

En el caso de la samsung, el driver no es firmware. Funciona como corresponde con windows 2000 Sp2 y Xp sp1a.. instalen algo mas nuevo con esos drivers y tendran lios que te los encargo...

Y en cuanto a PCL... sorpresa sorporesa... el manual de la samsung dice "nativa PCL"... mirando el driver y sus opciones uno se da cuenta que es "EMULADA PCL"...

En resumen.. no compren una Samsung... no vale la pena.

J.

Leonard "Nik" Petit-Breuilh dijo...

No es "firmware" propiamente tal pero cumple una funcion de las firmware de las impresoras un poco mas grandes (las PCL, PostScript y/o ESC/P): La rasterización. Esta es realizada por GDI y luego el bitmap resultante es enviado a la impresora.

La Laserjet 1000 (que afortunadamente ya no se fabrica) si tenía la Firmware en el driver. Eso si que era terrible :P

Anónimo dijo...

Tu solucion es mas que excelente, tengo este problema hace mas de 1 mes y no sabia como solucionarlo todo paso cuando converti en windows 2000 todos los equipos de la red, entonces comenzaron los problemas con una HP Laserjet 1022, asi que voy a probar tu metodo.-

J. dijo...

Intente en www.samsung.com -> Printers -> escoja su modelo -> Drivers.

J.

Anónimo dijo...

Viejo muchas gracias por la informacion, tenia este problema: en la oficina tenemos la ML1610 conectada a un computador el cual la tiene compartida para otros 4 computadores, pero solo en 2 funcionaba bien, en los otros nunca se pudo instalar, probe tu solucion y todo esta perfecto, muchas gracias.

Anónimo dijo...

Excelente 0 problemas funciono impecable , está solución. Muy agradecido..LuisMR