SOLVED: Permissions for Brother DS720D mobile scanner

e-flat minor 853

New Member
Credits
296
Edit: I figured out how to get it working.

I found the answer in this forum:


A non-free backend issue
A recent change to libsane in Debian may impact on the ability of third-party software to initiate scanning with a frontend. Some packages from some of the vendors above are likely to put files in the wrong place due to this change, leading to scanimage -L giving a negative report. The misplaced vendor backend files are often put somewhere like /usr/lib/sane or /usr/lib64/sane/. Copying them to /usr/lib/x86_64-linux-gnu/sane or /usr/lib/i386-linux-gnu/sane/ is one way of dealing with the issue.

In my case, copying the libraries and creating symlinks enabled sane to find my scanner.

cp /usr/lib64/sane/libsane-brother3.so.1.0.7 /usr/lib/x86_64-linux-gnu/sane/.

cd /usr/lib/x86_64-linux-gnu/sane/
ln -s libsane-brother3.so.1.0.7 libsane-brother3.so.1
ln -s libsane-brother3.so.1 libsane-brother3.so
[snip]

The Brother driver install put the file in /opt/brother/scanner/brscan5/libsane-brother5.so.1.0.7

I needed to use sudo. I copied /opt/brother/scanner/brscan5/libsane-brother5.so.1.0.7 to /lib/x86_64-linux-gnu/sane/libsane-brother5.so.1.0.7
$ sudo cp -a /opt/brother/scanner/brscan5/libsane-brother5.so.1.0.7 /lib/x86_64-linux-gnu/sane
Then
$ sudo ln -s libsane-brother5.so.1.0.7 libsane-brother5.so.1
$ sudo ln -s libsane-brother5.so.1 libsane-brother5.so


Simple Scan found my scanner.

*****

I am running 64-bit Debian 10. I bought a Brother DS Mobile 720D USB scanner because it has drivers for Debian available on the Brother Web site:

I update my system the first of each month. I have SANE installed.

I followed the instructions, connected the device and installed the AMD64 driver. I connected the scanner and opened Simple Scan. The scanner was not visible to the program with Document | Preferences. This is my problem to be solved.

I went to the Debian Wiki scanner page:
and read. Down the page is a section on Brother Non-free Scanner Backends. None of the links works any longer, except the link to a generic model search.

This is how Brother said to install the Brother drivers:
$ sudo dpkg -i --force-all libsane-dsseries_1.0.5-1_amd64.deb

dpkg shows:
$ dpkg -l | grep Brother
ii brscan5 1.2.6-0 amd64 Brother Scanner Driver brscan5
ii libsane-dsseries 1.0.5-1 amd64 Brother DS-series scanners driver
ii printer-driver-brlaser 4-1 amd64 printer driver for (some) Brother laser printers
ii printer-driver-ptouch 1.4.2-3 amd64 printer driver Brother P-touch label printers

I'm not sure what else this does, but it did create these two files in /etc/udev/rules.d :
50-Brother_DSScanner.rules
KERNEL=="sg[0-9]*", ATTRS{type}=="0", ATTRS{vendor}=="Brother", ATTRS{model}=="DS-620", MODE="0666", GROUP="users"
KERNEL=="sg[0-9]*", ATTRS{type}=="0", ATTRS{vendor}=="Brother", ATTRS{model}=="DS-720D", MODE="0666", GROUP="users"
KERNEL=="sg[0-9]*", ATTRS{type}=="0", ATTRS{vendor}=="Brother", ATTRS{model}=="DS-820W", MODE="0666", GROUP="users"
KERNEL=="sg[0-9]*", ATTRS{type}=="0", ATTRS{vendor}=="Brother", ATTRS{model}=="DS-920DW", MODE="0666", GROUP="users"

[eof]

60-brother-mfp-brscan5-1.0.2-2.rules
#
# udev rules sample for Brother MFP
# version 1.0.2-0
#
# Copyright (C) 2012-2016 Brother. Industries, Ltd.
#
# copy to /etc/udev/rules.d or /lib/udev/rules.d
#

ACTION!="add", GOTO="brother_mfp_end"

SUBSYSTEM=="usb", GOTO="brother_mfp_udev_1"
SUBSYSTEM!="usb_device", GOTO="brother_mfp_end"
LABEL="brother_mfp_udev_1"


SYSFS{idVendor}=="04f9", GOTO="brother_mfp_udev_2"
ATTRS{idVendor}=="04f9", GOTO="brother_mfp_udev_2"
GOTO="brother_mfp_end"
LABEL="brother_mfp_udev_2"

# ATTRS{bInterfaceNumber}=="01", GOTO="brother_mfp_udev_3"
# ATTRS{bInterfaceNumber}=="02", GOTO="brother_mfp_udev_3"
# ATTRS{bInterfaceNumber}=="03", GOTO="brother_mfp_udev_3"
# GOTO="brother_mfp_end"
# LABEL="brother_mfp_udev_3"

ATTRS{bInterfaceClass}!="0ff", GOTO="brother_mfp_end"
ATTRS{bInterfaceSubClass}!="0ff", GOTO="brother_mfp_end"
ATTRS{bInterfaceProtocol}!="0ff", GOTO="brother_mfp_end"

#MODE="0666"
#GROUP="scanner"
ENV{libsane_matched}="yes"
#SYMLINK+="scanner-%k"


LABEL="brother_mfp_end"

[eof]

I don't know enough to understand these. I read down the Wiki page. It said to run lsusb next.

lsusb sees the scanner:
$ lsusb
<snip>
Bus 005 Device 032: ID 04f9:60e2 Brother Industries, Ltd
Then the Wiki page said to run sane-find-scanner run from home:
$ sane-find-scanner
# sane-find-scanner will now attempt to detect your scanner. If the
# result is different from what you expected, first make sure your
# scanner is powered up and properly connected to your computer.
# No SCSI scanners found. If you expected something different, make sure that
# you have loaded a kernel SCSI driver for your SCSI adapter.
could not open USB device 0x1d6b/0x0001 at 009:001: Access denied (insufficient permissions)
could not open USB device 0x0bda/0x0129 at 003:004: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0002 at 003:001: Access denied (insufficient permissions)
could not open USB device 0x04ca/0x300b at 007:004: Access denied (insufficient permissions)
could not open USB device 0x0458/0x003a at 007:002: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0001 at 007:001: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0002 at 001:001: Access denied (insufficient permissions)
could not open USB device 0x04ca/0x007d at 006:002: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0001 at 006:001: Access denied (insufficient permissions)
could not open USB device 0x1058/0x0748 at 008:002: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0003 at 008:001: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0002 at 005:001: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0003 at 004:001: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0002 at 002:001: Access denied (insufficient permissions)
# No USB scanners found. If you expected something different, make sure that
# you have loaded a kernel driver for your USB host controller and have setup
# the USB system correctly. See man sane-usb for details.
# Not checking for parallel port scanners.
# Most Scanners connected to the parallel port or other proprietary ports
# can't be detected by this program.
# You may want to run this program as root to find all devices. Once you
# found the scanner devices, be sure to adjust access permissions as
# necessary.

The Wiki page says: "If access to this device had also been denied (as was access to the other USB devices) the permissions on the USB bus would have had to be looked at."

The Wiki next says to run scanimage:
$ sudo scanimage -L
[bjnp] create_broadcast_socket: ERROR - bind socket to local address failed - Address already in use
device `dsseries:usb:0x04F9:0x60E0' is a BROTHER DS-720D sheetfed scanner

The next section of the Wiki page is about permissions. I understand I need to change them to allow access, but I don't understand how.
Quote:
A user wishing to access and use a scanner must have permission to access a scanner device file and to use a device on the USB bus. Under Debian's default init system,systemd, and with libpam-systemd installed, the correct permissions are set up by /lib/udev/rules.d/70-uaccess.rules to facilitate scanner detection by SANE's backends when the scanner is plugged in.​

I have systemd and libpam-systemd installed. I have the 70-uaccess.rules file in the proper directory. But I'm not sure what to do next.

I have the sane-usb man open in a terminal. It discusses udev, but I don't understand what to do. The file 50-Brother_DSScanner.rules, listed above in this messge, is in both /lib/udev/rules.d/ and /etc/uder/rules.d.
When I run $ sudo sane-find-scanner I get
$ sudo sane-find-scanner
# sane-find-scanner will now attempt to detect your scanner. If the
# result is different from what you expected, first make sure your
# scanner is powered up and properly connected to your computer.
# No SCSI scanners found. If you expected something different, make sure that
# you have loaded a kernel SCSI driver for your SCSI adapter.
found USB scanner (vendor=0x0bda [Generic], product=0x0129 [USB2.0-CRW]) at libusb:003:004
could not fetch string descriptor: Pipe error
could not fetch string descriptor: Pipe error
# Your USB scanner was (probably) detected. It may or may not be supported by
# SANE. Try scanimage -L and read the backend's manpage.
I can see the device in /dev/bus/usb/003/004
Screenshot from 2021-07-10 08-45-54.png

Suggestions of what to do next? Thank you.
 
Last edited:
$100 Digital Ocean Credit
Get a free VM to test out Linux!


Latest posts

Top