Scanner driver doesn't work for Brother DCP-J125

Hi, I am having the Brother printer model DCP-J125. The .rpm driver for the said model is available from here http://support.brother.com/g/b/downloadlist.aspx?c=us&lang=en&prod=dcpj125_all&os=127 printing driver however works well, but not for scanner.
I have downloaded scanner and scan-key tool driver (64bit), this model is under brscan3 type driver, installed both via zypper.

Run the test from yast2, the driver seems installed but the message given is ‘No scanner recognized by this driver’.

In terminal, the latest driver installed

yazid@linux-xocg:~> rpm -qa | grep brscan3brscan3-0.2.13-1.x86_64

The same method installed however worked well in Leap and the previous version but not in Tumbleweed.

Any suggestions if I did any mistake in installing the driver. Thanks.

Post:

zypper se -si brscan
lsusb

Is your Scanner visble with:
as User:

scanimage -L

as Root:

scanimage -L

You’re likely to be missing a udev rule to help with getting the scanner recognised.

Check the /etc/udev/rules.d/ directory for such a rules file matching your scanner device. If necessary, create a file (root privileges required)

sudo nano /etc/udev/rules.d/40-brother.rules

Add the following rule

 #Brother scanners
ATTR{idVendor}=="04f9", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"

Save when done. It is possible to be a bit more specific with the matching by including the product ID as well using ATTR{idProduct}==“0xxx” but this is not essential. When the scanner is next plugged in, it should then be recognised as a scanner.

Thanks for replying, here goes:

zypper se -si brscan
S | Name        | Type    | Version  | Arch   | Repository     
--+-------------+---------+----------+--------+------------------
i | brscan-skey | package | 0.2.4-1  | x86_64 | (System Packages)
i | brscan3     | package | 0.2.13-1 | x86_64 | (System Packages)

lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp. Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 04f9:0253 Brother Industries, Ltd DCP-J125
Bus 003 Device 002: ID 093a:2521 Pixart Imaging, Inc. Optical Mouse
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Normal user

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

superuser

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

Done withe the all above, created the entry into /etc/edec/rules.d
ATTR{idVendor}==“04f9” is the correct id based on

Bus 002 Device 002: ID 8087:8000 Intel Corp. Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: **ID 04f9**:0253 Brother Industries, Ltd DCP-J125
Bus 003 Device 002: ID 093a:2521 Pixart Imaging, Inc. Optical Mouse
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

In fact, the same entry above added before into /etc/udev/rules.d/55-libsane.rules but still no luck. Upon rebooting, run the test from yast2 and still get No scanner recognized by this driver.

Did you check/add the required udev rule yet?

You mean this rule?

 #Brother scanners
ATTR{idVendor}=="04f9", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"

If that is what you mean, I already added that as per you advice before.

Open a terminal and run

dmesg --follow

then plug in the multifunction device and capture the output. Post that output here.

Try running ‘sane-find-scanner’ as well.

Here are the output upon connecting the device from dmesg --follow

  345.696589] usb 1-6: new full-speed USB device number 4 using xhci_hcd  345.826426] usb 1-6: New USB device found, idVendor=04f9, idProduct=0253
  345.826430] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
  345.826433] usb 1-6: Product: DCP-J125
  345.826435] usb 1-6: Manufacturer: Brother
  345.826436] usb 1-6: SerialNumber: BROM0F120785
  345.863398] usblp 1-6:1.0: usblp0: USB Bidirectional printer dev 4 if 0 alt 0 proto 2 vid 0x04F9 pid 0x0253
  345.863493] usb-storage 1-6:1.2: USB Mass Storage device detected
  345.867645] scsi host7: usb-storage 1-6:1.2
  346.885311] scsi 7:0:0:0: Direct-Access     Brother  DCP-J125         1.00 PQ: 0 ANSI: 2
  346.885478] sd 7:0:0:0: Attached scsi generic sg3 type 0
  346.945528] sd 7:0:0:0: [sdd] Attached SCSI removable disk
  350.923278] usblp0: removed
  350.925489] usblp 1-6:1.0: usblp0: USB Bidirectional printer dev 4 if 0 alt 0 proto 2 vid 0x04F9 pid 0x0253
# 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 0x8087/0x8000 at 004:002: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0002 at 004:001: Access denied (insufficient permissions)
could not open USB device 0x8087/0x8008 at 003:002: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0002 at 003:001: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0003 at 002:001: Access denied (insufficient permissions)
found USB scanner (vendor=0x04f9 [Brother], product=0x0253 [DCP-J125]) at libusb:001:004
could not open USB device 0x093a/0x2521 at 001:002: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0002 at 001:001: Access denied (insufficient permissions)
  # Your USB scanner was (probably) detected. It may or may not be supported by
  # SANE. Try scanimage -L and read the backend's manpage.


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



Again I am trying run sane-find-scanner as root

# 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=0x04f9 [Brother], product=0x0253 [DCP-J125]) at libusb:001:004
**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.


  # Not checking for parallel port scanners.


  # Most Scanners connected to the parallel port or other proprietary ports
  # can't be detected by this program.



I am highlighting in bold, is that the error?

Okay, so your scanner is being detected

found USB scanner (vendor=0x04f9 [Brother], product=0x0253 [DCP-J125]) at libusb:001:004

Try running a scanning utility eg xsane or simple-scan

Doesn’t work, simple scan returned me, ‘you need to install driver software for your scanner’ and ‘no device available’ by Xsane.

I noticed that your dmesg output showed that you had it connected to a USB 3 port (XHCI). Do you have a USB 2 port available to try?

Try to run xsane or simple-scan as root.
Is it working?

I believe some information is not correct, I have 4 USB2 and 4 USB3 which is blue in color, All the while from beginning I am connect my peripherals to USB2, black in color. USB3 is use to connect to my external storage devices :question:

Still the same error, I am prompted to install the scanner driver which is I already did.

Some debugging may be a good course of action here. It may be that you need to contact Brother about this issue.

https://en.opensuse.org/SDB:Configuring_Scanners#Third-Party_Scanner_Drivers

Basically third-party scanner driver software which works in compliance with SANE should add its driver name during installation of the driver software to /etc/sane.d/dll.conf so that the driver is activated and then the driver should work, see “SANE Backends” above.
After you installed a third-party scanner driver which works in compliance with SANE, verify that its driver is listed in /etc/sane.d/dll.conf so that the driver is activated.
Afterwards check if “scanimage -L” (run it as root and as normal user) finds the scanner, see “Frontend” above.
If the driver is activated via /etc/sane.d/dll.conf but “scanimage -L” does not find the scanner when you run it as root, it is actually the driver which does not find the scanner which means that the driver does not work.
If “scanimage -L” finds the scanner when you run it as root but does not find it when you run it as normal user, there is usually an access permission issue, see “USB scanner access permissions via udev” above.
It would not help if YaST supports a third-party scanner driver because all what YaST could do is to activate the driver in /etc/sane.d/dll.conf but YaST cannot fix a driver which is activated but does not work.

If a third-party scanner driver does not work, you may try to debug it on your own, see “Trouble-Shooting (Debugging)” above or contact those wherefrom you got the third-party driver for further help and support.

Something else I hadn’t noticed previously. The Brother website has a ‘Scanner’ Setting File’ available (brother-udev-rule-type1-1.0.0-1.noarch)

http://support.brother.com/g/b/downloadlist.aspx?c=as_ot&lang=en&prod=dcpj125_all&os=127

This contains a udev rule to handle their MFP devices. Although, from what I can see it doesn’t really do anything apart from stetting the required environment variable flag ‘ENV{libsane_matched}=“yes”’