El acceso a escáneres de imágenes en FreeBSD funciona gracias a la API SANE (siglas de «Scanner Access Now Easy», «el acceso a escáneres ahora es fácil»), disponible en la Colección de Ports de FreeBSD. SANE utiliza también ciertos controladores de FreeBSD para acceder al hardware del escáner.
FreeBSD puede utilizar tanto escáneres SCSI como USB. Asegúrese de que el suyo funciona con SANE antes de intentar ningún tipo de configuración. SANE tiene una lista de dispositivos soportados donde encontrará información actualizada sobre hasta dónde funciona el escáner y su estatus. La página de manual de uscanner(4) incluye una listas de escáneres USB que funcionan con SANE.
Como ya se ha dicho tanto los interfaces USB como las SCSI funcionan. Según sea el interfaz de su escáner necesitará un tipo diferente de controlador:
El kernel GENERIC
incluye por
omisión los controladores de dispositivo necesarios
para poder usar escáneres USB. Si va a personalizar
su kernel asegúrese de que esto está en el
fichero de configuración del mismo:
device usb device uhci device ohci device uscanner
Según cual sea el chipset de su placa base
tendrá que usar device uhci
o
device ohci
, aunque si tiene ambos
no tendrá problemas por eso.
Si por cualquier motivo no quiere recompilar su
kernel y su kernel no es el
GENERIC
puede cargar el módulo
controlador de dispositivo uscanner(4) con
kldload(8):
#
kldload uscanner
Si quiere cargar este módulo cada vez que arranque
el sistema debe añadir la siguiente
línea a
/boot/loader.conf
:
uscanner_load="YES"
Tras reiniciar con el kernel correcto (o una vez que el módulo esté cargado) conecte su escáner USB. Debe aparecer en el «buffer» de mensajes del sistema (dmesg(8)) un mensaje una línea como la siguiente:
uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2
La línea del ejemplo muestra que nuestro
escáner está utilizando el nodo de
dispositivo/dev/uscanner0
.
Si su escáner tiene un interfaz SCSI es importante
saber qué controladora SCSI incorpora.
El chipset SCSI que tenga influirá en la
configuración del kernel que tenga que
personalizar. El kernel GENERIC
tiene controladores de dispositivo para las controladoras
SCSI más comunes. Consulte el fichero
NOTES
y añada la
línea correcta al fichero de configuración
de su kernel. Tendrá que añadir
también la siguiente línea:
device scbus device pass
Una vez compilado e instalado el kernel correctamente tiene ya que ver sus nuevos dispositivos en el «buffer» de mensajes del sistema:
pass2 at aic0 bus 0 target 2 lun 0 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device pass2: 3.300MB/s transfers
Si su escáner estaba apagado durante el arranque puede forzar manualmente la detección si ejecuta una búsqueda de buses SCSI con camcontrol(8):
#
camcontrol rescan all
Re-scan of bus 0 was successful Re-scan of bus 1 was successful Re-scan of bus 2 was successful Re-scan of bus 3 was successful
El escáner aparecerá en la lista de dispositivos SCSI:
#
camcontrol devlist
<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0) <IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1) <AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3) <PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)
Tiene todos los detalles sobre los dispositivos SCSI en las páginas de manual de scsi(4) y camcontrol(8).
El sistema SANE se divide en dos partes: los «backends» (graphics/sane-backends) y los «frontends» (graphics/sane-frontends). Los «backends» facilitan el acceso al escáner propiamente dicho. La lista de dispositivos que funcionan con SANE le dirá qué «backend» hará funcionar su escáner de imágenes. No hay más remedio que identificar correctamente el «backend» de su escáner para poder usarlo. Los «frontends» ofrecen una interfaz gráfica para escanear (xscanimage).
Lo primero que hay que hacer es instalar el port
o package de graphics/sane-backends. Después
ejecute la orden sane-find-scanner
para comprobar el funcionamiento de la detección
de escáneres del sistema
SANE:
#
sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3
En la salida de la orden anterior se le mostrará el tipo de interfaz del escáner y el nodo de dispositivo a través del cual el sistema accede a él. Es posible que no aparezcan la marca y el modelo, pero eso no tiene importancia.
Algunos escáneres USB necesitan que les instale un «firmware»; esto se explica en la página de manual del «backend» correspondiente. También debe leer las páginas de manual sane-find-scanner(1) y sane(7).
Ahora hay que comprobar que el «frontend» de
escaneo puede identificar el escáner. Por omisión
los «backends» de
SANE incorporan una herramienta de
línea de órdenes llamada scanimage(1), que
le mostrará una lista de dispositivos e incluso una
captura de imagen desde la shell. La opción
-L
muestra una lista de escáners:
#
scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner
Si el software no lanza ningún mensaje, o si
el mensaje indica que no se han encontrado escáneres
significa que scanimage(1) no puede identificar su
escáner. Si este es el caso tendrá que
editar el fichero de configuración del
«backend»y definir en él el
escáner que quiera utilizar. Encontrará
todos los ficheros de configuración de los
«backends» en el directorio /usr/local/etc/sane.d/
. Este
problema con la identificación del hardware
es relativamente frecuente con ciertos modelos de
escáneres USB.
Por ejemplo, con el escáner que hemos usado en
la Sección 7.6.2.1, “Interfaz USB” la orden
sane-find-scanner
nos da la siguiente
información:
#
sane-find-scanner -q
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0
El escáner ha sido detectado sin problemas, utiliza el
interfaz USB y está conectado al nodo de dispositivo
/dev/uscanner0
. Ahora comprobaremos
que podemos identificar correctamente el escáner:
#
scanimage -L
No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages).
No hemos podido identificar el escáner, así
que hemos de editar el fichero
/usr/local/etc/sane.d/epson.conf
. Estamos
usando el modelo de escáner EPSON
Perfection® 1650,
así que ya sabemos que el escáner utilizará
el «backend» epson
. Lea
atentamente los comentarios que hay en los ficheros de
configuración de los «backends». Lo que
hay que hacer es muy sencillo: basta con comentar las
líneas en las que aparecen interfaces que no sean el
perfecto para su escáner. En nuestro caso comentaremos
todas las líneas que comiencen por
scsi
puesto que nuestro escáner
tiene interfaz USB. Después de esto hay que
añadir una lína al final del fichero declarando
el interfaz y el nodo de dispositivo que se van a usar. En
el caso del ejemplo esto es lo que añadimos:
usb /dev/uscanner0
Por favor, lea los comentarios que encontrará en el fichero de configuración del «backend» y la pángina de manual de del «backend» si necesita más información sobre la sintaxis que debe usar. Hecho esto podemos verificar si ya podemos identificar el escáner:
#
scanimage -L
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner
Hemos identificado nuestro escáner USB. Ni tiene
importancia si la marca y modelo que hemos visto no coinciden
con nuestro escáner. Lo único realmente
importante es el campo
`epson:/dev/uscanner0'
, que nos da
el nombre correcto del «backend» y el
nodo de dispositivo correcto.
Una vez que scanimage -L
llega a ver
al escáner hemos terminado con la configuración.
El dispositivo está listo para escanear
imángenes.
scanimage(1) permite ejecutar una captura de imágen desde la línea de órdenes, pero siempre es mejor utilizar un interfaz gráfico de usuario para estas tareas. SANE ofrece un interfaz gráfico simple pero eficiente: xscanimage (graphics/sane-frontends).
Otro «frontend» gráfico para escanear que se ha hecho muy popular es Xsane (graphics/xsane). Este «frontend» tiene características muy avanzadas como varios modos de escaneo (fotocopia, fax, etc.), corrección de color, escaneo de imágenes por lotes, etc. Ambas aplicaciones pueden utilizarse además como «plugins» de GIMP.
Todo lo que se ha mostrado en esta sección
se ha ejecutado con privilegios de
root
. Lo normal es que haya otros usuarios
que tengan que tener acceso al escáner. Un usuario
que quiera usar el escáner tiene que tener acceso
de lectura y escritura al nodo de dispositivo que usa
el escáner. Por ejemplo, nuestro escáner
USB utiliza el nodo de dispositivo
/dev/uscanner0
propiedad del grupo
operator
. Al añadir al usuario
al
grupo joe
operator
éste podrá
acceder al esc´ner:
#
pw groupmod operator -m joe
Para más información sobre el uso de
pw(8) lea su página de manual. Tendrá
también que configurar correctamente los permisos de
escritura (0660 o 0664) en el nodo de dispositivo
/dev/uscanner0
; por omisión los
miembros del grupo operator
sólo
tienen acceso de lectura en este nodo de dispositivo.
Añada las siguientes líneas al fichero
lines to the /etc/devfs.rules
:
[system=5] add path uscanner0 mode 660
Ahora añada lo siguiente a
/etc/rc.conf
y reinicie la
máquina:
devfs_system_ruleset="system"
Para más información sobre lo que acaba de leer consulte la página de manual de devfs(8).
Por seguridad debería pensarse dos veces
el hecho mismo de añadir cualquier usuario
a un grupo y muy especialmente al grupo
operator
.
Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Si tiene dudas sobre FreeBSD consulte la
documentación antes de escribir a la lista
<questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a
<doc@FreeBSD.org>.