[sane-devel] Ubuntu documentation

Steven Santos steven at simplycircus.com
Sun Jun 23 17:33:20 BST 2019

I am working on some new documentation for the various SANE issues in
Ubuntu 19.xx. I think this covers most of the known issues and work-arounds.

One issue I struggle with is the need of some scanners to get a
firmware update that it seems only root can do.  I am thinking of adding a
script to run sane as root every hour to deal with that (then the scanner
will work for normal users, as root did the firmware upload...) but that
has obvious implications.

Any and all feedback welcome.

=Use the most up-to-date repository=
Many SANE issues can be resolved by using the most up-to-date version of
SANE.  You can add the SANE projects Ubuntu repository by running the
following commands:

: sudo add-apt-repository 'deb
launchpad.net/~rolfbensch/+archive/ubuntu/sane-git main'

: sudo apt update

: sudo apt upgrade

= The USB3 Issue =
One of the most common issues Ubuntu users are having with scanners on SANE
involves the use of USB3 ports.  The easiest solution is to move your
scanner to a USB2 port.  If that is not possible, try running the following

'$ SANE_USB_WORKAROUND=1 simple-scan'

If simple-scan works as expected, you can edit the
/etc/systemd/user.conf file to change this environmental condition as

: sudo nano /etc/systemd/user.conf

and at the bottom of the file add the line:

: DefaultEnvironment=SANE_USB_WORKAROUND=1

=The sym link and udev tricks=
Sane drivers are usually located under /usr/lib/sane/, however, the system
also looks for them under the /usr/lib/x86_64-linux-gnu/sane directory.
Many scanner issues can be resolved by placing the proper sym links.

Likewise, Ubuntu 18.04 and above require the proper udev rules.  The
following are the work-arounds for specific brands and models.  If your
brand and model is not listed, the same techniques may give you a template
for getting your scanner to work.

== Brother ==

Most Brother DCP and MFP's work with the latest Brother drivers (09/13/2018
or later), however these should be installed using the install script and
following the manufacturer directions found on the download page to the
letter. If you need to update a driver (say, to the 01/21/2019 driver),
uninstall the old driver before installing the new one.

=== Installation ===

Step1. Download the tool.(linux-brprinter-installer-*.*.*-*.gz)

The tool will be downloaded into the default "Download" directory. (e.g.

: cd ~/Download

: gunzip linux-brprinter-installer-*.*.*-*.gz*

: sudo su
: bash linux-brprinter-installer-*.*.*-* {Brother machine name} *

The driver installation will start. Follow the installation screen

 When you see the message "Will you specify the DeviceURI ?",

 For USB Users: Choose N(No)
 For Network Users: Choose Y(Yes) and DeviceURI number.

The install process may take some time. Please wait until it is complete.

=== brscan, brscan2, brscan3 ===
If the above process does not work as expected, you can use the following
sym link and udev trick to get most Brother scanners operational.

: sudo ln -sfr /usr/lib64/libbr* /usr/lib/x86_64-linux-gnu
: sudo ln -sfr /usr/lib64/sane/libsane-brother*
: sudo touch /etc/udev/rules.d/59-udev-local.rules
: sudo nano /etc/udev/rules.d/59-udev-local.rules

Add the following to that file:
: # Brother brscan devices
: ATTRS{idVendor}=="04f9", ATTRS{idProduct}=="*", MODE="0664",
GROUP="scanner", ENV{libsane_matched}="yes"

=== brscan4 ===
: apt-get update
: apt-get upgrade
: apt-get install libsane-extras

install brscan4 as per the instructions above.

: sudo ln -sfr /usr/lib64/sane/libsane-brother*
The following command  will give you the VendorId (04f9) and ProductID of
your scanner:
: lsusb

Create '/etc/udev/hwdb.d/brother4.hwdb' using the following command
: sudo touch /etc/udev/hwdb.d/brother4.hwdb

Use nano to enter the needed info into that file:
: sudo nano /etc/udev/hwdb.d/brother4.hwdb

The content of that file should be
: usb:v04f9pYYYY*
: libsane_matched=yes

Replacing YYYY with the product ID you got earlier.  The entry for the
Brother MFC-1910W would be "usb:v04f9p035d", where 04f9 is vendor ID, and
035d is the product ID.

edit '/etc/sane.d/dll.d/libsane-extras' to add the brother4 backend
: nano  /etc/sane.d/dll.d/libsane-extras
At the end of that file, add:
: brother4

== Epson ==

=== General ===
This fixes the majority of Epson scanners, however you may still need to
use the IScan work-around.

Start by installing the latest Epson 1.3.38 driver released 10-18-2018.
This driver uses the multiarch folders and works out of the box for many
Epson scanners.

If this does not work,

: sudo cp /usr/lib/sane/libsane-epk* /usr/lib/x86_64-linux-gnu/sane/
: sudo nano /etc/udev/rules.d/79-udev-epson.rules

'# chmod device EPSON group
# ACTION=="add", ATTRS{manufacturer}=="EPSON", DRIVERS=="usb",
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="*",
ATTRS{manufacturer}=="EPSON", DRIVERS=="usb", SUBSYSTEMS=="usb",
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="*", MODE="0777"'

For an Epson network scanner,
Edit the file /etc/sane.d/epson2.conf
Modify the line
net 192.168.xxx.yyy (to match your scanner IP)

=== Epson Iscan ===
: sudo ln -sfr /usr/lib/sane/libsane-epkowa* /usr/lib/x86_64-linux-gnu/sane
: sudo touch /etc/udev/rules.d/79-udev-epson.rules

# chmod device EPSON group
ATTRS{manufacturer}=="EPSON", DRIVERS=="usb", SUBSYSTEMS=="usb",
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="*", MODE="0777"

== Samsung ==
=== Samsung M2070 ===

: sudo ln -sfr /usr/lib/sane/libsane-smfp* /usr/lib/x86_64-linux-gnu/sane'
: sudo touch '/etc/udev/rules.d/59-smfp_samsung.rules

ATTRS{idProduct}=="2070", ENV{libsane_matched}="yes"

== Xerox ==
=== Xerox Workcentre 3225 ===
: sudo ln -sfr /usr/lib/sane/libsane-smfp* /usr/lib/x86_64-linux-gnu/sane
: sudo adduser $USER lp'
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/sane-devel/attachments/20190623/5601c142/attachment.html>

More information about the sane-devel mailing list