Install brother MFC-J485DW full capability to Machine with brother MFC-295CN configured also?

Hi, I have a machine using the brother MFC-295CN printer/scanner connected via USB and the output is as follows:

:/etc/udev/rules.d> cat 99-brother.rules 
ATTR{idVendor}=="04f9", ENV{libsane_matched}="yes", MODE="0664", GROUP="lp"
paul@hightower-i5-6600k:/etc/udev/rules.d> cat 55-brother-libsane-type1-inst.rules 
#
#   udev rules sample for Brother MFP
#         version 1.0.2-0
#
#   Copyright (C) 2012-2017 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{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"
:/etc/udev/rules.d> ldd /usr/lib64/sane/libsane-brother3.so*
/usr/lib64/sane/libsane-brother3.so:
        linux-vdso.so.1 (0x00007f20cd739000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f20cd72c000)
        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f20cd727000)
        libusb-0.1.so.4 => /lib64/libusb-0.1.so.4 (0x00007f20cd71f000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f20cd4df000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f20cd4da000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f20cd200000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f20cd73b000)
/usr/lib64/sane/libsane-brother3.so.1:
        linux-vdso.so.1 (0x00007f6ce535c000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6ce5329000)
        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f6ce5324000)
        libusb-0.1.so.4 => /lib64/libusb-0.1.so.4 (0x00007f6ce531c000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f6ce5103000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f6ce50fe000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f6ce4e00000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f6ce535e000)
/usr/lib64/sane/libsane-brother3.so.1.0.7:
        linux-vdso.so.1 (0x00007f06e35e4000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f06e35b1000)
        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f06e35ac000)
        libusb-0.1.so.4 => /lib64/libusb-0.1.so.4 (0x00007f06e35a4000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f06e3305000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f06e359d000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f06e3000000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f06e35e6000)
:/etc/udev/rules.d>

I would like to also access a networked brother MFC-J485DW printer/scanner which is newer using (brscan4 not brscan 2 I believe?). How can I go about installing the correct software and not overwriting anything already need by the brother MFC-295CN printer/scanner setup now?

Yes, you can install brscan4 alongside brscan3 without overwriting your existing MFC-295CN configuration. The packages install separate SANE backends and can coexist on the same system. Are you having technical issues of some kind?

You want skanpage installed. it does multi page scan and OCR, on Ubuntu a default installation with the requirements.

also you need airscan installed

sudo zypper in sane-airscan skanpage

for OCR install tesseract files.
you might want to use yast - software and search for sane and skanpage to find all options.

then to detect the scanner, deactivate the firewall, open skanpage and find the scanner.

then activate the firewall again.

@qwert.zuiop The OP was asking about the vendor drivers here. The choice of scanning application is irrelevant and their choice to make.

The MFC-J485DW model does support driverless scanning, so that is an alternative they could choose to use, but if connecting by USBthey would need to install the ipp-usb package in addition to the sane-airscan package. (In that case they would not want to be installing the vendor scanner driver package.)

I have installed the ipp-usb package and is shown as follows:

:/etc/sane.d # zypper se ipp-usb
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...

S  | Name                | Summary                                                         | Type
---+---------------------+-----------------------------------------------------------------+--------
i+ | ipp-usb             | HTTP reverse proxy, backed by IPP-over-USB connection to device | package
   | ipp-usb-debuginfo   | Debug information for package ipp-usb                           | package
   | ipp-usb-debugsource | Debug sources for package ipp-usb                               | package

The MFC-J485DW appears to now have connectivity when using XSane SANE’s GUI. How can I setup for correct use with IPP (and verify it is in use)? I have an entry under [devices] as follows in:
/etc/sane/d/airscan.conf "brother-MFC-J485DW" = http://192.168.1.20:80/eSCL

Also, I am confused though as to the following directory content output.
Why is the brother mfcj485dw not in the Printers directory? Also why is brscan-skey.MFC-295CN not listed in the scanner directory?

hightower-i5-6600k:/opt> ls -lah
total 0
dr-xr-xr-x. 1 root root  14 Jan  6  2024 .
drwxr-xr-x. 1 root root 170 Feb  7 12:27 ..
drwxr-xr-x. 1 root root  30 Jul 26  2021 brother
paul@hightower-i5-6600k:/opt> cd brother
paul@hightower-i5-6600k:/opt/brother> ls -
ls: cannot access '-': No such file or directory
paul@hightower-i5-6600k:/opt/brother> ls -lah
total 0
drwxr-xr-x. 1 root root 30 Jul 26  2021 .
dr-xr-xr-x. 1 root root 14 Jan  6  2024 ..
drwxr-xr-x. 1 root root 16 Feb  7 10:01 Printers
drwxr-xr-x. 1 root root 66 Feb  7 20:26 scanner
paul@hightower-i5-6600k:/opt/brother> cd Printers
paul@hightower-i5-6600k:/opt/brother/Printers> ls -lah
total 0
drwxr-xr-x. 1 root root 16 Feb  7 10:01 .
drwxr-xr-x. 1 root root 30 Jul 26  2021 ..
drwxr-xr-x. 1 root root 34 Feb  7 08:28 mfc295cn
paul@hightower-i5-6600k:/opt/brother/Printers> cd ..
hightower-i5-6600k:/opt/brother> ls -lah
total 0
drwxr-xr-x. 1 root root 30 Jul 26  2021 .
dr-xr-xr-x. 1 root root 14 Jan  6  2024 ..
drwxr-xr-x. 1 root root 16 Feb  7 10:01 Printers
drwxr-xr-x. 1 root root 66 Feb  7 20:26 scanner
paul@hightower-i5-6600k:/opt/brother> cd scanner
hightower-i5-6600k:/opt/brother/scanner> ls -lah
total 0
drwxr-xr-x. 1 root root  66 Feb  7 20:26 .
drwxr-xr-x. 1 root root  30 Jul 26  2021 ..
drwxr-xr-x. 1 root root 462 Feb  7 20:26 brscan-skey
drwxr-xr-x. 1 root root 462 Feb  7 09:56 brscan-skey.MFC-J485DW

Is this caused by installation and bash script different from printer to printer model in the brother-MFC type device?

I am also having no luck printing currently from the

brother-MFC-J485DW

networked printer currently.

How can I best add a correct IPP entry for the printer to CUPS using address localhost:631 via browser?

Thanks

For missing information above:

:/opt/brother/scanner> ls -lah
total 0
drwxr-xr-x. 1 root root  66 Feb  7 20:26 .
drwxr-xr-x. 1 root root  30 Jul 26  2021 ..
drwxr-xr-x. 1 root root 462 Feb  7 20:26 brscan-skey
drwxr-xr-x. 1 root root 462 Feb  7 09:56 brscan-skey.MFC-J485DW
hightower-i5-6600k:/opt/brother/scanner>

First, the ipp-usb package is not needed for network scanning; it’s only for USB-connected devices.

Your entry in /etc/sane.d/airscan.conf ("brother-MFC-J485DW" = http://192.168.1.20:80/eSCL) is correct. XSane/SANE should pick it up automatically. You can run scanimage -L to verify.

The folders you see under /opt/brother/scanner (brscan-skey and brscan-skey.MFC-J485DW) are vendor helper scripts, and not relevant if not using the vendor driver

Printing is a separate issue. You can use the vendor CUPS driver, or use driverless printing. In the case of the latter, no configuration should be necessary.

He wants network access to the printer and software , too, see OP

Skanpage is the tool that does it without hassle.
I do have several MFC****DW myself and understand the difficulties to get them running.

Once again, any scanner front-end will do that.

Not sure that they are particularly difficult. I have owned several Brother multifunction devices over the years. These days driverless scanning makes it easy. The OP needs to decide if they want to use the vendor driver or driverless.

scanimage -L` does indeed show brother-MFC-J485DW information as follows:

:/opt/brother/scanner> scanimage -L
device brother3:bus4;dev1' is a Brother MFC-295CN USB scanner device airscan:e0:brother-MFC-J485DW’ is a eSCL brother-MFC-J485DW ip=192.168.1.20

I am unsure of how to properly setup IPP driverless printing via localhost:631 CUPS GUI Login though. How do I verify the correct Port number?

I had an entry like this on a different distribution before:
ipp://BRWA8A7953594FC.local:631/ipp/print?encryption=required

What are your thoughts about this?

So you have the vendor driver and airscan to choose from - either will work. When you start up the scanner utility, it should show all available devices).

firewall port…

It should be advertised automatically (if the firewall is configured to allow mdns traffic). No explicit CUPS configuration needed.

Show what is returned from driverless or ippfind.

@qwert.zuiop That has been mentioned this thread and the previous. Not complicated though. :wink:

Ok,

hightower-i5-6600k:/opt/brother/scanner> driverless
hightower-i5-6600k:/opt/brother/scanner> ippfind
hightower-i5-6600k:/opt/brother/scanner>

No output is displayed.

Show sudo firewall-cmd --list-all

Ok,

hightower-i5-6600k:/opt/brother/scanner> sudo firewall-cmd --list-all
[sudo] password for root: 
public (default, active)
  target: default
  ingress-priority: 0
  egress-priority: 0
  icmp-block-inversion: no
  interfaces: enp3s0 lo
  sources: 
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
hightower-i5-6600k:/opt/brother/scanner>

So you need to allow mdns as already mentioned. I prefer using firewalld-config (package of the same name) fir this but you could do

sudo firewall-cmd --zone=public --add-service=mdns --permanent
sudo firewall-cmd --reload

Opensuse has the firewall active by default. Ubuntu, Fedora etc don’t and therefore discover your network printer and scanner automatically.

If you have a new installation without services, you can deactivate the firewal for the discovery and you will find the printer and scanners automatically. And then reactivate.

If you want to configure the firewall ports you can do it too, which would the clean solution, but tbh after the first discovery they simply work. Save yourself pain and do this quick and dirty.