Brother DCP-T420w

Hello guys…
I’ve got brother dcp-t420w printer in my office. The cups and the manjaro-printer can detect correctly the brother dcp-t420w printer. But, I can’t find the driver on their list.
I’ve tried to search the driver from the brother website and found only 2 types of packages which are .deb and .rpm. Download the deb type as in case must build from that.
Tried searching the driver in the aur and found a bunch of dcp-txxxx drivers but the right one isn’t there.
Because I don’t find the right driver, I pick the close one which is the dcp-t510w and installed it into my working laptop.
Finish installing and setting up the printer through cups, I do the test print and found the printer is working but the printing result is stretched, so it is not comfortable to read the printing result.
What is supposed to do to make the printer works? Can anybody here help me?

I have created drivers for Brother Printers where there is not an already made PKGBUILD in the AUR.
The .deb method worked best for me. Make sure that CUPS is enabled on your system:

systemctl enable --now cups.service
systemctl enable --now cups.socket
systemctl enable --now cups.path

Have a look at the Arch Wiki:

https://wiki.archlinux.org/title/Packaging_Brother_printer_drivers

Additional info:

Thank you for the info, will tried as soon as possible and inform the result, cause the printer is in the office.

Thank you for the suggestions.
Here is what I do base on my understanding of your reply:

  1. enabling the service, socket, and path of cups
  2. build an aur package as the driver for brother dcp t420w isn’t available in the repository using the wiki as you suggest. During the making of the package, while executing makepkg -si, the driver is installed automatically.

After all the development of the aur package is finished, I’m trying to install the printer through cups, but don’t find the driver. So, I reinstall the driver packages using pacman -U command. then reboot my laptop. The cups still do not show the new driver that I’ve built using PKGBUILD.

Did I miss something or do something wrong when build the package?
Here is the PKGBUILD that I made.

pkgname=brother-dcpt420w
pkgver=3.5.0_1
pkgrel=1
pkgdesc=“Driver for Brother DCP T420w printer”
arch=(“i686” “x86_64”)
url="https://support.brother.com/g/b/downloadend.aspx?c=id&lang=en&prod=dcpt420w_all&os=128&dlid=dlf105168_000&flang=4&type3=10283"
license=(“EULA”)
groups=(“base-devel”)
source=("https://download.brother.com/welcome/dlf105168/dcpt420wpdrv-3.5.0-1.i386.deb")
md5sums=(“847ed7d1da03935de6472ab1eb94e434”)

package() {
tar -xf data.tar.gz -C “${pkgdir}”
}

In your browser in address bar: localhost:631
Then Administration Tab
Then check Manage Printers or Add Printers

Been doing that, but still can’t find the driver.




The CUPS doesn’t show me the driver that I made earlier.

Where is the driver of the Brother printer installed to ?

It looks like it has been recognized as it shows under “connection/usb” what does it look like under Administration-Manage -Printers?

after digging around, found it in /opt under brother directory

here is my Administration-Manage-Printers page.

In mine , the ppd file is in /opt/brother/Printers/XXXXXX/cupswrapper/
It probably is similar in yours. Try installing via the ppd method outlined here:

I’m doing as your suggestion, to use the ppd file located in /opt/brother/Printers/dcpt420w/cupswrapper. The installation work normal but when tried to print the test page, it doesn’t show anything and print the test page too.
But, when check to the jobs page, it is there.
Installation process

Jobs of the printer

Read the link you gave me too, but still don’t know whats wrong with the installation process.
Did I miss something or do you have any other suggestions?

Hello, Hadiono. Have you solved the problem?
I have the same printer and made it works on Manjaro Linux recently.

I have modified the AUR package brother-dcpt520w by Chiwan Park first, and then use system-config-printer to config the printer. Details are listed below, but some terms may not be exactly as the language of my desktop is not English.

  1. The printer configuration.
    (1) Input the URL of the printer in a web browser, and then log in.
    (2) Click Network-Service, write down the Service Name
    (3) Click Network-Protocol, then Click Advanced Settings behind LPD, and check Use the sign of LPD. Then submit

  2. Install drivers
    (1) Make the driver package
    The Modified files are:
    PKGBUILD

# Maintainer: none <none@none.none>
# Modified by realasking from brother-dcpt520w maintained by Chiwan Park 
 
pkgname=brother-dcpt420w
pkgver=3.5.0
pkgrel=1
pkgdesc="Driver for the Brother DCP-T420W wifi multifuncional printer"
url="http://solutions.brother.com/linux/en_us/index.html"
license=('custom:brother')
install="brother-dcpt420w.install"
arch=('i686' 'x86_64')
optdepends=('sane: scanning support'
            'brscan4: making dcpt420w available to sane'
            'brscan-skey: scankey support if connected via usb')
 
if [[ "$CARCH" == "x86_64" ]] ; then
  depends=('a2ps' 'cups' 'lib32-glibc')
elif [[ "$CARCH" == "i686" ]] ; then
  depends=('a2ps' 'cups')
fi
 
source=(
  "https://download.brother.com/welcome/dlf105168/dcpt420wpdrv-3.5.0-1.i386.deb" \
  "fix_lp.patch"
)
sha256sums=(
  '3ede819a65aec379ec7676f7ac0cacabd70879fbaaf2c7978eeae406c0e1c1f2' \
  'ddb53ba14356b1fb98f19e3b32f124e878f06819a2cb6cb40a719d2250fababf'
)
 
build() {
    cd "$srcdir"
    tar -xf data.tar.gz -C .
    tar -xf control.tar.gz -C .
  patch -Np0 < fix_lp.patch
}
 
post_install() {
  /opt/brother/Printers/dcpt420w/cupswrapper/cupswrapperdcpt420w
}
 
package() {
  install -d $pkgdir/usr/bin
  install -d $pkgdir/var/spool/lpd
  cp -R $srcdir/opt $pkgdir/opt
}

brother-dcpt420w.install

post_install() {
  # lpr
  /opt/brother/Printers/dcpt420w/inf/setupPrintcapij dcpt420w -i
  
  # cupswrapper
  /opt/brother/Printers/dcpt420w/cupswrapper/cupswrapperdcpt420w
  
  systemctl restart org.cups.cups.service
}
 
post_upgrade() {
  /bin/true
}
 
pre_remove() {
  # lpr
  /opt/brother/Printers/dcpt420w/inf/setupPrintcapij dcpt420w -e
  
  # cupswrapper
  /opt/brother/Printers/dcpt420w/cupswrapper/cupswrapperdcpt420w -e
}
 
op=$1
shift
 
$op "$@"

fix_lp.patch

--- opt/brother/Printers/dcpt420w/inf/setupPrintcapij.old       2008-09-15 22:01:07.000000000 +0200
+++ opt/brother/Printers/dcpt420w/inf/setupPrintcapij   2008-09-15 22:01:26.000000000 +0200
@@ -34,7 +34,7 @@
        if [ ! -d $SPOOLER_NAME ]; then
                mkdir $SPOOLER_NAME
        fi
-       chown lp $SPOOLER_NAME
+       chown root $SPOOLER_NAME
        chgrp lp $SPOOLER_NAME
        chmod 700 $SPOOLER_NAME

(2) Install the package

makepkg
sudo pacman -U brother-dcpt420w-3.5.0-1-x86_64.pkg.tar.zst

(3) Install other packages

yay -S brother-cups-wrapper-common brother-lpr-drivers-common system-config-printer xsane xsane-gimp sane colord-sane 
  1. Configuring the scanning function
sudo brsaneconfig4 -a name=Brother model=DCP-T420W ip=192.168.0.105
  1. Configuring the printing function
    (1) sudo system-config-printer
    (2) Right click on the button of Brother-DCP-T420W, then click Properties
    (3) Click the button behind the Device URI, then Network Printer-Search Printer
    (4) Click the printer model whose name is started from Brother-DCP-T420W and ended with Service Name (we wrote down in step 1-(2)) plus .local
    (5) Choose IPP Network Printer through DNS-SD, then Apply
    (6) Click Production and Model, choose Select the printer from database
    (7) Click Brother, then Forward; then click DCP-T420W(Recommend), and Forward
    (8) Print the test page and then click OK
1 Like

Not yet. But will try your suggestions after the eid Mubarak holiday season. The printer is in the office. I really thank you for writing it in detail.

What I have done by using debtap top convert deb package to manjaro package
1.install debtap from aur
2.update the debtap using sudo debtap -U
3.then use the debtap <deb.package> i.e debtap dcpt420wpdrv-3.5.0-1.i386.deb
4.Edit the architecture to i386 to x86_64 the .PKGINFO
5.Delete these lines in .INSTALL file
if [ “$(which semanage 2> /dev/null)” != ‘’ ];then
6.then install the created package using this command sudo paccman -U <package_name>
ignore the error and test the printer

Sorry for a long time no news… I forgot to post the results. When I tried your solutions, I got an error like this:

==> Starting build()…
patching file opt/brother/Printers/dcpt420w/inf/setupPrintcapij
Hunk #1 FAILED at 34.
1 out of 1 hunk FAILED – saving rejects to file opt/brother/Printers/dcpt420w/inf/setupPrintcapij.rej
==> ERROR: A failure occurred in build().
Aborting…

What can be the problem? I’ve searched one by one from the PKGBUILD file, fix_lp.patch file and brother-dcpt420w.install, but I found nothing.
Did I miss something because of my lack of knowledge or something else?

I follow your steps, able to install the driver but still can’t print.
also I notice that the cups wrapper was not copied to /usr/lib/cups/filter/ when add printer through KDE Settings (I use KDE now not XFCE anymore), so I copied the file manually. When tried to test print, the printer doesn’t do anything even a led blink.