El procedimiento a seguir para escanear en Linux es el siguiente:
- Soporte en el kernel.
- Cargar los módulos.
- Comprobar el dispositivo /dev/scanner.
- Configurar el driver Sane
- Escanear.
Equivalencias en Windows: Software OEM.
Recursos
- Scanner HOWTO: tldp.org/HOWTO/Scanner-HOWTO/
Soporte en el kernel
El kernel tiene que soportar el dispositivo que utilice nuestro escáner:
- Escáners puerto paralelo (HP ScanJet 3200C): puerto paralelo.
- Escáners USB (Epson Perfection 1650): soporte USB genérico y para nuestro puerto USB (en este caso, el módulo USB es usb-uhci).
- Escáners SCSI (Mustek ScanMagic 4830S): soporte SCSI genérico y para nuestra tarjeta SCSI (en este caso, el módulo para la tarjeta SCSI DTC-NCR5380 es g_NCR5380).
Cargar los módulos
Cargaremos los módulos con modconf para que se actualice el archivo /etc/modules y se carguen al iniciar.
- Escáners puerto paralelo (HP ScanJet 3200C): módulos parport.o, parport_pc.o, ppdev.o.
- Escáners USB (Epson Perfection 1650): módulos usbcore.o, scanner.o, usb-uhci.o.
- Escáners SCSI (Mustek ScanMagic 4830S): módulos scsi_mod, sg, g_NCR5380 (con los parámetros: ncr_addr=0×280 dtc_3181e=1).
Comprobar el dispositivo /dev/scanner
Comprobaremos que existe el dispositivo /dev/scanner y que apunta al dispositivo adecuado (si no existe, crearlo):
- Escáners puerto paralelo (HP ScanJet 3200C): debe apuntar a /dev/parport0:
# ln -s /dev/parport0 /dev/scanner
- Escáners USB (Epson Perfection 1650): debe apuntar a /dev/usb/scanner0:
# ln -s /dev/usb/scanner0 /dev/scanner
- Escáners SCSI (Mustek ScanMagic 4830S): debe apuntar a /dev/sg0:
# ln -s /dev/sg0 /dev/scanner
Configurar el driver Sane
En Windows los escáners utilizan los drivers TWAIN, mientras que en Linux es Sane (Scanner Access Now Easy, sane-project.org, paquete sane) quien se encarga de proporcionarnos el driver del escáner junto con el manual correspondiente.
- Buscaremos el driver Sane:
- Escáners puerto paralelo (HP ScanJet 3200C):
Model Interface Status Comment Backend Manual page ScanJet Parport good works umax_pp sane-umax_pp 3200C (EPP) 1220P (v1)
- Escáners USB (Epson Perfection 1650):
Model Interface Status Comment Backend Manual page Perfecton USB complete epson sane-epson 1650 (v0.2.42)
- Escáners SCSI (Mustek ScanMagic 4830S):
Model Interface Status Comment Backend Manual page ScanMagic SCSI untested VM3575 teco2 sane-teco2 4830S (v2.09)
- Escáners puerto paralelo (HP ScanJet 3200C):
- Debemos añadir el nombre del driver Sane (Backend) de nuestro escáner al
fichero /etc/sane.d/dll.conf. Por ejemplo, para un HP ScanJet 3200C en puerto
paralelo cuyo driver Sane es umax_pp haremos:
# echo umax_pp >> /etc/sane.d/dll.conf
- Comprobaremos que en el fichero de configuración del driver Sane se especifica el puerto
al que debe apuntar /dev/scanner:
- Escáners puerto paralelo (HP ScanJet 3200C): en el fichero de configuración
del driver /etc/sane.d/umax_pp.conf debemos incluir o descomentar la línea:
/dev/parport0
- Escáners USB (Epson Perfection 1650): en el fichero de configuración del
driver /etc/sane.d/epson.conf debemos incluir o descomentar la línea:
usb /dev/usb/scanner0
- Escáners SCSI (Mustek ScanMagic 4830S): en el fichero de configuración del
driver /etc/sane.d/teco2.conf debemos incluir o descomentar la línea:
scsi FS /dev/scanner
- Escáners puerto paralelo (HP ScanJet 3200C): en el fichero de configuración
del driver /etc/sane.d/umax_pp.conf debemos incluir o descomentar la línea:
- Le decimos a Sane que busque el escáner:
# sane-find-scanner
Si detecta el escáner veremos algo como:
- Escáners puerto paralelo (HP ScanJet 3200C):
found scanner "HP 3200 C" at /dev/scanner found scanner "HP 3200 C" at /dev/parport0
- Escáners USB (Epson Perfection 1650):
found USB scanner (product=0x0110) at /dev/scanner found USB scanner (product=0x0110) at /dev/usb/scanner0
- Escáners SCSI (Mustek ScanMagic 4830S):
found SCSI scanner "Flatbed Scanner 1.03" at /dev/scanner found SCSI scanner "Flatbed Scanner 1.03" at /dev/sg0
Y a continuación el mensaje:
# Your scanner was detected. It may or not be supported by SANE # Try scanimage -L and read the backend's manpage.
- Escáners puerto paralelo (HP ScanJet 3200C):
- Para comprobar que Sane soporta el escáner, haremos:
# scanadf -L
Si lo soporta veremos algo similar a:
device epson:/dev/usb/scanner0 is a Epson GT-8200 flatbed scanner
- En el fichero /etc/sane.d/saned.conf incluiremos las IPs de las máquinas
a las que queramos dar acceso al escáner. En nuestro caso sólo daremos acceso
al ordenador donde está conectado el escáner.
# echo 192.168.0.3 >> /etc/sane.d/saned.conf
Escanear en Linux
En Linux el backend para escanear es Sane y los backend para OCR (Optical Character Recognition) son gOCR y GNU-Ocrad. Disponemos de varios frontales gráficos para estos programas:
- Kooka (paquete kooka): frontal gráfico de KDE para Sane, gOCR y GNU-Ocrad.
- Xsane (paquete xsane) + gOCR-Tk (paquete gocr-tk): Xsane es un frontal de Sane y gOCR-tk un frontal de gOCR. The GIMP permite adquirir imágenes mediante Xsane.
Hola, muy bueno el articulo. Sería bueno que lo complementen con lo de los permisos para que todos los usuarios puedan usar el scanner. (yo configuré mi scanjet 3200c como indican acá pero solo me funciona en root)
Hola…
soy novato en eso de linux, aunque voy usando comandos que encuentro por ahí. Ahora después de instalar Kubuntu hardy el sistema no encuentra mi scanner. Canoscan N670U. No aparece ni con “sane-find-scanner” ni “scanimage -L”. He visto tu artículo sobre scanner y como no he encontrado nada util en Internet he decidido pedirte ayuda…
Que puedo hacer??
Buen Día, yo ya hice que detectara el scaner mediante “scanimage -L” pero ya después e tratado de localizarlo mediante el paquete xsane de ubuntu 8.10 y aún me dice que no hay scaner, no se si haya puesto mi IP incorrecto.
Haber si alguien me puede ayudar por favor.
Hola, agradezco aportar alhuna idea, en la red lo que hay es para gurus, y es algo parco para no iniciados.
Gracias.
De todas manras lo que me ocurre es que no detecto mi escaner USB de pentax (Dsmobile 600)
Mpodrias echar una mano?
Gracias