Escáners en Linux

El procedimiento a seguir para escanear en Linux es el siguiente:

  1. Soporte en el kernel.
  2. Cargar los módulos.
  3. Comprobar el dispositivo /dev/scanner.
  4. Configurar el driver Sane
  5. Escanear.

Equivalencias en Windows: Software OEM.

Recursos

Soporte en el kernel

El kernel tiene que soportar el dispositivo que utilice nuestro escáner:

  1. Escáners puerto paralelo (HP ScanJet 3200C): puerto paralelo.
  2. 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).
  3. 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.

  1. Escáners puerto paralelo (HP ScanJet 3200C): módulos parport.o, parport_pc.o, ppdev.o.
  2. Escáners USB (Epson Perfection 1650): módulos usbcore.o, scanner.o, usb-uhci.o.
  3. 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):

  1. Escáners puerto paralelo (HP ScanJet 3200C): debe apuntar a /dev/parport0:
    # ln -s /dev/parport0 /dev/scanner
  2. Escáners USB (Epson Perfection 1650): debe apuntar a /dev/usb/scanner0:
    # ln -s /dev/usb/scanner0 /dev/scanner
  3. 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.

  1. Buscaremos el driver Sane:
    1. 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)
    2. Escáners USB (Epson Perfection 1650):
      Model     Interface Status   Comment Backend   Manual page
      Perfecton USB       complete         epson     sane-epson
      1650                                 (v0.2.42)
    3. Escáners SCSI (Mustek ScanMagic 4830S):
      Model     Interface Status   Comment Backend   Manual page
      ScanMagic SCSI      untested VM3575  teco2     sane-teco2
      4830S                                (v2.09)
  2. 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
  3. Comprobaremos que en el fichero de configuración del driver Sane se especifica el puerto al que debe apuntar /dev/scanner:
    1. 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
    2. 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
    3. 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
  4. Le decimos a Sane que busque el escáner:
    # sane-find-scanner

    Si detecta el escáner veremos algo como:

    1. Escáners puerto paralelo (HP ScanJet 3200C):
      found scanner "HP 3200 C" at /dev/scanner
      found scanner "HP 3200 C" at /dev/parport0
    2. Escáners USB (Epson Perfection 1650):
      found USB scanner (product=0x0110) at /dev/scanner
      found USB scanner (product=0x0110) at /dev/usb/scanner0
    3. 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.
  5. 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
  6. 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.

    Kooka

  • 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.

    Xsane

Artículos en la categoría "Gráficos"

  1. Screenshot (capturar pantalla) en Linux
  2. Cámaras de fotos en Linux
  3. Escáners en Linux
  4. Editor de fotos en Linux
  5. Editor tipo Paint en Linux
  6. Editor de iconos en Linux
  7. Visor de imágenes en Linux
  8. Organizador de imágenes en Linux
  9. ASCII art en Linux
  10. Fractales en Linux
  11. Visor de comics en Linux
  12. Editor de gráficos vectoriales en Linux
  13. Reproductor Flash en Linux
  14. De bitmap a gráfico vectorial en Linux
  15. Diseño 3D en Linux
  16. Fuentes en Linux
  17. Diagramas de flujo en Linux
  18. Etiquetas en Linux

4 Comments:

  1. 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)

  2. 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??

  3. 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.

  4. Es la primera vez que encuentro algo completo

    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