Can't make Brother MFCT910DW to print

Hi. New in Endeavour OS. Loving it. I think my last thing to work out before being able to say I have a fully working system is printing. I had same configuration on manjaro and could make it work fine.
I installed the new brother-mfc-t910dw package from AUR, hoping it would solve the hole thing,and then added printer using cups browser interface and selecting the .ppd file that I guess this AUR package brought and was somewhere inside /opt/. Most of the times I try to print I get

printer configuration error. there is a missing filter for printer brother

notification

and sometimes I get:

Print Error. There was a problem printing document ‘name-of-document.pdf’ (job 7): 'Stopping job because the scheduler could not execute a filter.

The printing GUI (not sure what program it is, I am using i3 btw) has a Diagnose button that leads me to:

"Missing printer Driver
Printer 'Brother_MFC-T910DW' requires the '/usr/lib/cups/filter/-brother_lpdwrapper_mfct910dw' program but it is not currently installed

I suppose you will need further info to help me, please tell me what configurations or logs to post and I will be happy to help you help me.
thanks!

edit: added diagnose results and described how I added printer through CUPS

I am actually in the process of installing a Brother DCP-L2550DW, so I will document it here.
I also am assuming this is a network connected device.

sudo pacman -S cups cups-pdf
sudo systemd enable cups.service sudo systemctl enable cups.service
sudo systemd start cups.service sudo systemctl start cups.service
yay brother–dcp-l2550dw

in a browser, for url enter
localhost:631
Administration - Add Printer
Internet Printing Protocol (ipp)
ipp://192.168.0.xxx
Fill in ‘Name’ ‘Description’ and ‘Location’
Brother
{current_make_and_model} IPP everywhere (Brother on Linux seems to prefer this)

go to maintenance - print test page
worked perfect for me.

I am typing this on an Arm device, and so far I haven’t got brscan4 to work as I believe brscan4 installs a binary which of course would be x86_64. On a x86_64 device
yay brscan4 should do it. If it is a network connected printer, enter the command listed at the end of the yay command.

Pudge

3 Likes

thanks!
First: it’s not network connected, but USB… although I could connect it through WiFi, yes.

Second: I cannot run systemd (command not found), I suppose I should do the same command but with systemctl instead?

I will try this as soon as power (power outage)comes back to my neighborhood and I can turn my printer back on, and I will inform you of the outcome.

Thanks a lot

1 Like

Then you won’t want to choose ‘Internet Printing Protocol (ipp)’
you will want to choose something under “Local Printers”
I THINK (I’ve never installed a Brother Printer on USB) the rest will be pretty much the same.
I think the ‘{current_make_and_model} IPP everywhere’ for the driver is the key item.

Yes systemctl is what you want to use. Don’t know why I said systemd? :man_shrugging:
I guess the elderly shouldn’t write posts after their bedtime. At least the keyboard isn’t a sharp or pointy object! :man_in_manual_wheelchair:

Pudge

1 Like

the AUR PKGBUILD do not look right to me, it uses the right driver but the way it is installed is not looking complete to me, it only extracting one part of the driver package and it looks like to the wrong path…

1 Like

PKGBUILD needs to look like this:

# Maintainer: joekamprad (joekamprad@endeavouros.com)

pkgname=brother-mfct910dw
pkgver=1.0.0
pkgrel=0
pkgdesc="Brother MFC-T910dw CUPS driver"
arch=('i686' 'x86_64')
url="http://www.brother.com"
license=('custom')
arch=('i686' 'x86_64')
depends=('cups' 'ghostscript')
depends_x86_64=('lib32-glibc')

source=("https://download.brother.com/welcome/dlf103627/mfct910dwpdrv-1.0.0-0.i386.rpm")
sha512sums=('f4b8ba1b1e1ac90564c49140bf4e6c8d2e71c9dc0d9feeb5ddcc03c67771520e60e5e3666c34fbcdad33df21a10738827efe4eb24bdc75786abcda74bc81308c')
package(){
  cp -R "$srcdir/opt" "$pkgdir/opt"
    
  install -d "$pkgdir/usr/lib/cups/filter/"
  ln -s "/opt/brother/Printers/mfct910dw/cupswrapper/brother_lpdwrapper_mfct910dw" "$pkgdir/usr/lib/cups/filter/brother_lpdwrapper_mfct910dw"

  install -d "$pkgdir/usr/share/cups/model/"
  ln -s "/opt/brother/Printers/mfct910dw/cupswrapper/brother_mfct910dw_printer_en.ppd" "$pkgdir/usr/share/cups/model"
  
  install -Dm644 "$srcdir/opt/brother/Printers/mfct910dw/LICENSE_ENG.txt" "$pkgdir/usr/share/licenses/$pkgname/LICENSE_ENG.txt"
  install -Dm644 "$srcdir/opt/brother/Printers/mfct910dw/LICENSE_JPN.txt" "$pkgdir/usr/share/licenses/$pkgname/LICENSE_JPN.txt"
}

https://github.com/killajoe/brother-mfct910dw

2 Likes

FYI
I noticed you had the line

arch=('i686' 'x86_64')

entered twice. Also, IF this is an official PKGBUILD that will appear in the AUR could you add aarch64 and armv7h to the architecture line.

arch=('i686' 'x86_64' 'aarch64' 'armv7h')

Pudge

https://github.com/killajoe/brother-mfct910dw/commit/6416f3f137b5b721a9d34bf6241220abc6408e43

but sadly i am not at the AUR.

The error message is telling you it is missing a CUPS filter. Sometimes manufacturer’s Linux printer driver packages don’t unpack correctly and CUPS filters end up in the wrong folder. I have a suggestion: Use something like catfish to search your file system for -brother_lpdwrapper_mfct910dw. If you find it, copy & paste it into /usr/lib/cups/filter/. I use Thunar opened with root privileges to do stuff like this (sudo thunar). Once you have pasted in the missing CUPS filter, right click it and check permissions–make sure it can run as a program. After you’ve done all that, see if you can print a test page. I have to do this every time I set up my Kodak printer in Linux and it has always gotten my printer to work.

it was simply what you say so I do create a hopeful working package :wink:

2 Likes

thanks to everybody!
but I am a little confused. This is what I understand.
Pudge solution shouldn’t work because AUR package is flawed (in fact his steps are I think just what I did in first instance)
joekamprad created a PKGBUILD. I should use that to install the drivers?
Specific instructions or link on how to do that? :grimacing:
sorry for my newbieness

fecklesstech solution’s did not work for me.

But I managed to do it in a completely different way (I remembered looking old manjaro forum how I made it a couple of years ago)

Basically, I downloaded RPM version of Brother Driver Install Tool from here:
https://support.brother.com/g/b/downloadhowto.aspx?c=us_ot&lang=en&prod=mfct910dw_all&os=127&dlid=dlf006893_000&flang=4&type3=625
and then proceeded to sudo sh the file. (I had previously installed rpm-org from AUR)
Everything went smooth
Is this method unrecommended?
thanks

Not really, as the AUR packages for Brother printers typically fetch the drivers from the same site.
But you may need to manually check the updates from that same place if there are any.

I don’t like the idea of not using the PKGBUILD after joekamprad made the effort to script it though

PKGBUILD is of course a better solution in the long run.

I also have a Brother multifunction printer (but different model), and made a PKGBUILD for it by copying and modifying the closest model’s PKGBUILD in the AUR.

Learning how the PKGBUILD process works is a worthwhile “Endeavour” with Arch Linux. It is something unique to Arch Linux.

In a terminal window, create a temporary file in your home directory, such as Temp. Then cd into Temp.
Enter the following command
$ git clone https://github.com/killajoe/brother-mfct910dw.git
This will download the contents of @joekamprad 's github entry.
$ cd brother-mfct910dw
$ ls -l
should see PKGBUILD
as user, compile the PKGBUILD as such
$ makepkg -cs[i] PKGBUILD

the -c option = Clean up leftover work files and directories after a successful build
the -s option = Install missing dependencies using pacman.
the -i option = Install or upgrade the package after a successful build using pacman.
exclude the -i option to just build the package and not install it

I did the above commands, the PKGBUILD built the package without complaints
brother-mfct910dw-1.0.0-0-aarch64.pkg.tar.xz

Since you have it working, you could leave out the -i install option, and just build the package. I would then save the package on a NAS or USB thumb drive in case you need to re-install the driver some day.

To install this package:
$ sudo pacman -U brother-mfct910dw-1.0.0-0-aarch64.pkg.tar.xz

the -U option
Upgrade or add package(s) to the system and install the required dependencies from sync repositories.

Use -U when built package are not in the Arch Repositories, in this case the package is in your home directory tree.

If the desired package is in the AUR and isn’t corrupt, you can install it with yay
$ yay -S package_name
and yay will do essentially the same thing as above.

Pudge

5 Likes

thanks!
that’s great. Would you suggest contributing this PKGBUILD to the AUR? Is that too difficult to do? In the meanwhile I commented the existing AUR package
https://aur.archlinux.org/packages/brother-mfc-t910dw/

contributing to AUR will need also to maintain the PKGBUILD and not like simply uploading it: https://wiki.archlinux.org/index.php/AUR_submission_guidelines

just see that PKGBUILD has no Maintainer :::

But let’s hope the one with the non working PKGBUILD on the AUR will see your comment and change it so you and others with that device can use it…

I do simply add it to the AUR:
https://aur.archlinux.org/packages/brother-mfct910dw/
so you can now install with yay:
yay -S brother-mfct910dw

3 Likes

that’s amazing. Definitive solution here. thanks a lot!

I was just curious how complicated it is to load a PKGBUILD into the AUR;)

2 Likes