el escaneo solo funciona bajo "sudo" (Ubuntu)

16

Cuando trato de escanear, usando simple-scan, la IU dice Failed to scan -- Unable to connect to scanner. Cuando lo ejecuto desde la línea de comando me sale:

joel@home:/usr/bin$ simple-scan -d
** (simple-scan:6554): DEBUG: Starting Simple Scan 2.32.0.1, PID=6554
** (simple-scan:6554): DEBUG: Restoring window to 600x400 pixels
** (simple-scan:6554): DEBUG: sane_init () -> SANE_STATUS_GOOD
** (simple-scan:6554): DEBUG: SANE version 1.0.22
** (simple-scan:6554): DEBUG: Requesting redetection of scan devices
** (simple-scan:6554): DEBUG: Processing request
** (simple-scan:6554): DEBUG: Requesting scan at 300 dpi from device '(null)'
** (simple-scan:6554): DEBUG: scanner_scan ("(null)", 300, SCAN_SINGLE)
** (simple-scan:6554): DEBUG: sane_get_devices () -> SANE_STATUS_GOOD
** (simple-scan:6554): DEBUG: Device: name="brother2:bus4;dev1" vendor="Brother" model="MFC-210C" type="USB scanner"
** (simple-scan:6554): DEBUG: Processing request
** (simple-scan:6554): DEBUG: sane_open ("brother2:bus4;dev1") -> SANE_STATUS_IO_ERROR

** (simple-scan:6554): WARNING **: Unable to get open device: Error during device I/O

FYI, ya he hecho:

joel@home:~$ sudo chmod a+rwx /dev/bus/usb
joel@home:~$ sudo chmod a+rwx /dev/bus/usb/*

Si corro bajo sudo:

joel@home:~$ sudo simple-scan

funciona.

¿Cómo puedo hacer que el escaneo simple funcione sin sudo?

JoelFan
fuente

Respuestas:

7

Lo más probable es que sanedno piense que puede conectarse. Consulte la sección Problemas de permisos de Ubuntu Scanning How-to para obtener más detalles.

Flimzy
fuente
2
Parece que todas las cuentas de usuario no se agregan al grupo de escáner. Solía sudo adduser username scannery luego necesitas cerrar sesión y volver a iniciar sesión para que el sistema operativo note la pertenencia al grupo.
KayEss
No funciono para mi. Creo recordar que la única forma de hacerlo era usando sudo y una versión de texto, no un simple escaneo. Seguirá buscando
Dennis
La sugerencia de KayEss ("sudo adduser username scanner") funcionó para mi instalación de Raspbian.
smashuu
5

Tuve un problema similar (Ubuntu 11.04 - Natty Narwhal): escanear como root funciona bien, escanear como usuario, no hay problema. scanimage -Ly sane-find-scannerencontró e identificó el escáner correctamente, incluso cuando se ejecuta como usuario normal. `simple-scan -d tanto como usuario root como usuario normal no mostró nada útil en términos de grupo faltante, archivos o controladores faltantes.

Finalmente, este enlace funcionó para mí .

La solución fue editar estos archivos:

  • /lib/udev/rules.d/40-libsane.rules
  • /etc/udev/rules.d/55-libsane.rules

No estoy seguro si ambos necesitan ser editados, apliqué todos los cambios como se describe. Muy importante: reiniciar después de editar.

ehw
fuente
2

Lo resolví agregando esta línea a /etc/rc.local(antes exit 0):

chmod -R a+w /dev/bus/usb

y editar / crear los siguientes 2 archivos:

/etc/xinetd.d/saned:

service saned 
{
socket_type = stream
server = /usr/sbin/saned
protocol = tcp
user = root
group = root
wait = no
disable = no
}

/etc/default/saned:

# Defaults for the saned initscript, from sane-utils

# Set to yes to start saned
RUN=yes

# Set to the user saned should run as
RUN_AS_USER=root

luego reiniciando.

Está funcionando, pero todavía me gustaría una forma más segura de resolver esto.

JoelFan
fuente
2

Edite lo siguiente:

/etc/default/saned

Y cambia el:

RUN_AS_USER=saned

a

RUN_AS_USER=root

Reinicie y pruebe nuevamente, esto debería estar funcionando.

fti
fuente
2
Algo me dice que esta no es una solución deseable desde el punto de vista de la seguridad.
Kazark
2

sudo adduser YOURNONROOTUSERNAME lp

para asegurarse de que el escáner pertenece al grupo lp :

sudo sane-find-scanner

escáner USB encontrado (proveedor = 0x04f9, producto = 0x02a5) en libusb: 001: 002

ls -al / dev / bus / usb / 001/002

crw-rw-r-- 1 root lp 189, 1 nov 24 12:43 / dev / bus / usb / 001/002

Lavd
fuente
0

Tuve exactamente el mismo problema y esto funciona para mí y es tan simple como eso. Realmente copié del sitio web de Brother que resolvió los problemas de mi escáner:

  1. Abrir /lib/udev/rules.d/40-libsane.rulesarchivo

  2. Agregue las dos líneas siguientes al final de la lista de dispositivos. (Antes de la línea # The following rule will disable ...):

    # Brother scanners

    ATTRS{idVendor}=="04f9", ENV{libsane_matched}="yes"

Chock CHin Li
fuente
0

Debe agregar su nombre de usuario al grupo lp y luego reiniciar (o sudo ldconfig). Todo debería estar funcionando.

Esto funcionó para mí porque si corres lsusbpara obtener el número de bus USB de tu impresora / escáner (el mío era 005) y luego ll /dev/bus/usb/005verás que root es el propietario y lp es el grupo, ambos tienen permisos de lectura y escritura.

usuario540188
fuente
¿cómo add your username to the lp group ?
0

También tuve el mismo problema con mi Epson EcoTank 2500. Entré en la terminal y encontré la identificación del producto lsusb. Para el EcoTank 2500 es 1105.

Luego

Open /lib/udev/rules.d/40-libsane.rules file.

Luego busqué esa identificación de producto con gedit y no pude encontrarla. Así que agregué en la parte inferior (dejando un espacio y escribiéndolo en MAYÚSCULAS para saber que fui yo quien lo cambió).

# MY EPSON ECOTANK ET-2500

ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="1105", ENV{libsane_matched}="yes"

Luego hice lo mismo en 40-iscan.rules (está en la misma carpeta) Finalmente reinicié. Hola presto .... ahhhh! Mi trabajo aquí está hecho.

Linuxli
fuente