scanning only works under "sudo"
When I try to scan, using simple-scan, the UI says Failed to scan -- Unable to connect to scanner
. When I run it from the command line I get:
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, I have already done:
joel@home:~$ sudo chmod a+rwx /dev/bus/usb
joel@home:~$ sudo chmod a+rwx /dev/bus/usb/*
If I run under sudo
:
joel@home:~$ sudo simple-scan
it works.
How can I get simple-scan to work without sudo?
Solution 1:
Chances are that saned
doesn't think you're allowed to connect to it. See the Permissions Issues section of the Ubuntu Scanning How-to for details.
Solution 2:
I had a similar problem (Ubuntu 11.04 - Natty Narwhal): Scanning as root works fine, scanning as user – no go. scanimage -L
and sane-find-scanner
found and identified the the scanner correctly, even when run as normal user. `simple-scan -d both as root and normal user didn't show up anything useful in terms of missing group right, missing files or drivers.
Eventually this link worked for me.
The solution was editing these files:
/lib/udev/rules.d/40-libsane.rules
/etc/udev/rules.d/55-libsane.rules
Not sure if both needed to be edited, I applied all changes as described. Very important: REBOOT after editing.
Solution 3:
I solved it by adding this line to /etc/rc.local
(before exit 0
):
chmod -R a+w /dev/bus/usb
and editing/creating the following 2 files:
/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
then rebooting.
It's working, but I still would like a more secure way of solving this.
Solution 4:
Edit the following:
/etc/default/saned
And change the:
RUN_AS_USER=saned
to
RUN_AS_USER=root
Restart and test again – this should be working.