sane + cups: otra taza de impresión
Habiendo ya instalado correctamente la impresora tanto en Windows como en Linux con el servidor de CUPS y los drivers de hplip y foomatic (pssst, en la página anterior), es la hora del scanner (que es algo que jamás debería ser usado como título para un programa de televisión, ni radio, ni nada, sin importar su tema ni nada). Vamos desde el principio.
Para controlar los scanners en Linux existe SANE, que en efecto es bastante fácil de instalar y usar. De hecho, Kooka, el programa de escaneo que viene con KDE 3.5.x, es un frontend de sane, y hay una enorme cantidad de otros frontends que funcionan haciendo cada uno cosas ligeramente diferentes y teniendo más o menos las mismas opciones pero con diferentes sabores (como todo en Linux, no?). Si se va a tener el scanner enchufado al computador en que se usa, la verdad es que no hay nada que hacer más que enchufarlo. Así que vamos entonces a la próxima página par… qué? Ah, claro. En mi caso, el scanner no iba a estar enchufado al computaor en donde se iba a usar.
Afortunadamente, para eso existe un programa especial, saned, que permite disponer del scanner a través de la red prácticamente con cualquier scanner hijo de vecino.
El funcionamiento de saned es de lo más interesante, la verdad. Cuando un cliente pide usar algún servicio del scanner, sane, corriendo en ese computador, se conecta a través de la red con un super server (en mi caso, xinetd) que detecta la conexión y lanza saned en el servidor. Trivial, tal como se manifiesta en el cuadro explicativo:

Y la verdad es que la configuración de saned no es ni siquiera tan complicada. Para dejarlo corriendo basta seguir los siguientes pasos, tomados en gran parte de aquí (aunque con algunas modificaciones, ojo! No cometan mis mismos errores!):
sudo apt-get update
sudo apt-get dist-upgrade
antes de hacer cualquier cosa. Ahora sí.
saned está incluido en un paquete llamado sane-utils, por lo que
sudo apt-get install sane-utils
Si no han instalado sane, por supuesto, es hora de hacerlo también.
root después de haber enchufado y prendido el scanner:
scanimage -L
Si todo está bien, ese comando debería imprimir el nombre de su impresora. Si no funciona, y están seguros de estar corriéndolo como root entonces hay algo mal con la manera en la que tienen enchufado el scanner. En mi caso, no fue ni siquiera necesario correrlo como root para que funcionara, así que YMMV.
saned, cosa de decirle que tipo de conexiones entrantes debe aceptar. Para hacerlo, hay dos archivos que hay que modificar: uno en el servidor y uno en el cliente. En el servidor basta con modificar el archivo /etc/sane.d/saned.conf cosa de que contenga las direcciones de los computadores cliente que se van a conectar a él. En el cliente, por el contrario, hay que modificar /etc/sane.d/net.conf agregándole la dirección ip del servidor. Listo!/etc/services añadiéndole la siguiente línea:
sane-port 6566/tcp # SANE network scanner daemon
saned espera que exista un usuario y un grupo saned que sean los que hagan correr el programa saned (confuso, lo sé). Asegúrense de que después de haber instalado saned este haya creado correctamente el usuario y el grupo. Si es así, el output degroups saned
debería ser algo como
saned : saned
Sin embargo, es necesario también que el usuario saned sea parte del grupo scanner, para tener acceso al dispositivo. Para incluirlo en el grupo, basta con correr (como root) el siguiente comando:
usermod -a -G scanner saned
Si todo salió bien, entonces groups saned debería reflejar este cambio.1.
saned, y esa configuración depende de cuál sea el super server que usen.
- si están usando
inetdtienen que poner la siguiente línea en su/etc/inetd.conf:sane-port stream tcp nowait saned.saned /usr/sbin/saned saned
- si, por el contrario, están usando
xinetd, como yo, deben poner lo siguiente en su/etc/xinet.conf:
# default: off
# description: The sane server accepts requests
# for network access to a local scanner via the
# network.
service sane-port
{
port = 6566
socket_type = stream
wait = no
user = saned
group = saned
server = /usr/sbin/saned
groups = yes
}
Si se fijan bien, esta versión tiene una línea que no está en la versión sugerida por el man page de saned: la que dice groups = yes. Eso es porque, tal como sale aquí, por alguna razón xinetd sólo se queda con un grupo por usuario, a menos que se le diga explícitamente2. Este detallito fue la fuente de todos mis dolores de cabeza tratando de hacer funcionar este dichoso daemon, y si a los encargados de escribirle el man page se les ocurriera explicar que su maldita recomendación lleva a un callejón sin salida, todo esto habría sido completamente indoloro. Pero bueno…
Una vez hecho todo eso, y asegurándose de reiniciar el super server para que la configuración nueva empiece a correr, ejecutar
scanimage -L
en el cliente debería tener como output lo mismo que en el servidor. Si es así, felicitaciones. Sólo falta empezar a usar alguno de los muchos frontends que hay para sane, tanto para Linux como para Windows, y ponerse a escanear!
Nos vemos!
- Es posible que tengan que reiniciar su equipo para que estos cambios surjan efecto. No entiendo bien cómo funciona el asunto, pero parece que es la manera más fácil de asegurarse de que UDEV cargue bien la información recién modificada. Esto, por supuesto, si su distro usa UDEV. [volver]
- La alternativa a esto sería cambiar la línea en la que se especifica el grupo como “saned” por otra en la que se diga desde un comienzo que será “scanner”, pero cuando lo hice no lo hice así, así que no sé si eso funcione. [volver]
Pages: 1 2
September 1st, 2008 at 11:40 am
Bueno:
Encuentro interesante el How-To, pero debo reconocer que yo estoy intentando depender cada vez menos del papel y puede ser por eso que mi impresora tiene como 11 años de edad y aun funciona y la sigo ocupando. Cuesta un poc encontrarle las tintas, pero funciona re bien.
Eso.
Saludos.
Alberto.
September 3rd, 2008 at 12:44 am
una cosa es preferir no usar papel, otra muy diferente es no tener la posibilidad de usarlo.
y la gracia en mi caso por lo menos es que ahora puedo empezar a depender menos del papel porque tengo un scanner!
hasta puedo dejar de depender de los cables!