Scanner not recognized, part 2

Scanner is Brother ADS1000W and I tried following the recipe laid out in this post. Commands with # done as root, $ as user.

Installed the rpm from Brother:

# rpm -ihv --nodeps brscan4-0.4.8-1.x86_64.rpm
# lsusb

Bus 003 Device 004: ID 04f9:60a6 Brother Industries, Ltd ADS-1000W

# scanimage -V

scanimage (sane-backends) 1.0.27; backend version 1.0.27

# 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).

# 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 fetch string descriptor: Pipe error

found USB scanner (vendor=0x04f9 [Brother], product=0x60a6 [ADS-1000W]) at libusb:003:004

Your USB scanner was (probably) detected. It may or may not be supported by
SANE. Try scanimage -L and read the backend’s manpage.

# ls -alh /dev/bus/usb/003/004

crw-rw-r-- 1 root root 189, 259 Sep 25 21:31 /dev/bus/usb/003/004

# mkdir -p /etc/udev/rules.d/
# vi /etc/udev/rules.d/myscanner.rules

ATTRS{idVendor}=="04f9", MODE="0660", GROUP="plugdev", ENV{libsane_matched}="yes"

$ sudo usermod -a -G plugdev $USER
# udevadm control --reload-rules
# udevadm trigger
$ ls -alh /dev/bus/usb/003/004

crw-rw---- 1 root plugdev 189, 259 Sep 25 21:47 /dev/bus/usb/003/004

# scanimage -L still does not see the scanner.

Maybe I missed something? I have never scanned anything in linux before and this is the tool we used to scan receipts and official documents. I’m not sure how to even “scan” in linux, looks like I’ll try to install gscan2pdf ??

Thanks,
Chris

Solved: I made the scanner talk wirelessly to the networked drive. The Clear server doesn’t need to be involved.

I see you’ve moved past this issue, but in case anyone else runs into this:

  1. Make sure you logout and back in after doing usermod so that your login session has the new group.
  2. Check /usr/lib/udev/rules.d/60-libsane.rules to see whether your scanner is actually supported, and if the manufacturer/vendor ID aren’t included, double-check sane-project.org for more information.

In the case of this scanner, I found that the vendor-provided driver is required, as you noticed. The RPM and DEB packages are built with a lot of assumptions about where the distribution keeps various files, and they’re unfortunately not applicable to Clear Linux.

Here is a draft process to add external backend drivers.

Create a temporary directory

mkdir /tmp/brscan

Extract the driver there

rpm2cpio brscan4-0.4.2-1.x86_64.rpm | (cd /tmp/brscan; cpio -idmv)

In there, ./opt/brother/scanner/brscan4/setupSaneScan4 attempts to do the initial setup. Specifically, it tries to add the brother4 backend to Sane’s external driver list. It will fail, but you can accomplish the same thing like this:

sudo mkdir -p /etc/sane.d/dll.d/
echo brother4 | sudo tee /etc/sane.d/dll.d/brother4

It also tries to install its library in /usr/lib64. This is reserved for Clear Linux-provided content, so it could be removed by swupd at any point. Instead, we’ll put it in a user-owned location:

sudo mkdir -p /usr/local/lib64/sane
sudo cp -p usr/lib64/sane/* /usr/local/lib64/sane/

There are two absolute symlinks in that directory that will be pointing to the wrong place (/usr/lib64/sane), so we’ll have to fix them up by hand:

cd /usr/local/lib64/sane
sudo ln -sf libsane-brother4.so.1.0.7 libsane-brother4.so
sudo ln -sf libsane-brother4.so.1.0.7 libsane-brother4.so.1

By default, libsane won’t know to look for additional backends here. If we add this directory to LD_LIBRARY_PATH, however, it will be searched.

sudo LD_LIBRARY_PATH=/usr/local/lib64/sane scanimage -L
1 Like