
My trusty, 15 year old Brother HL-2030 printer died with a Laser sensor error,
so it was due time for a replacement. Brother has been known to make good printers
and I wanted to get a replacement ASAP.
My requirements for the printer were:
- Laser B&W / monochrome. I only print a few pages per year, but I really need to
work OK (as I'm usually very remote to the printer).
- Reasonable low cost (under 200€).
- Network attachable (Ethernet), wifi optional.
- Fedora compatible.
So I found this Brother DCP-L2550DN on Amazon, and after a couple of days for
shipping, I was ready to get it installed.
Installing the printer
In my case, I just had to remove the old printer, and replace in place with the
new one. I connected the same USB-A (computer) to USB-B (printer) cable, and it
was immediately recognized by lsusb
.
#> lsusb | grep -i Brother
Bus 001 Device 005: ID 04f9:0423 Brother Industries, Ltd DCP-L2550DN series
The Brother support page instructs you to download the installer script, which
in my case was:
- linux-brprinter-installer-2.2.3-1
- dcpl2550dnpdrv-4.0.0-1.i386.rpm
- brscan-skey-0.3.1-2.x86_64.rpm
- brscan4-0.4.11-1.x86_64.rpm
After running the script and asking for the specific model (DCP-L2550DN in
my case, hyphen included), CUPS reported it as configured.
#> ./linux-brprinter-installer-2.2.3-1
Input model name ->DCP-L2550DN
You are going to install following packages.
dcpl2550dnpdrv-4.0.0-1.i386.rpm
brscan4-0.4.11-1.x86_64.rpm
brscan-skey-0.3.1-2.x86_64.rpm
OK? [y/N] ->y
rpm -ihv --nodeps --replacefiles --replacepkgs dcpl2550dnpdrv-4.0.0-1.i386.rpm
Verifying... ########################################
Preparing... ########################################
Updating / installing...
dcpl2550dnpdrv-4.0.0-1 ########################################
ln: failed to create symbolic link '/opt/brother/Printers/DCPL2550DN/lpd/rawtobr3': File exists
ln: failed to create symbolic link '/opt/brother/Printers/DCPL2550DN/lpd/brprintconflsr3': File exists
ln: failed to create symbolic link '/etc/opt/brother/Printers/DCPL2550DN/inf/brDCPL2550DNrc': File exists
ln: failed to create symbolic link '/usr/lib/cups/filter/brother_lpdwrapper_DCPL2550DN': File exists
ln: failed to create symbolic link '/usr/share/cups/model/brother-DCPL2550DN-cups-en.ppd': File exists
ln: failed to create symbolic link '/usr/share/ppd/brother/brother-DCPL2550DN-cups-en.ppd': File exists
lpadmin -p DCPL2550DN -E -v usb://Brother/DCP-L2550DN%20series?serial=E78284M2N111836 -P /usr/share/ppd/brother/brother-DCPL2550DN-cups-en.ppd
lpadmin: Printer drivers are deprecated and will stop working in a future version of CUPS.
ValueError: File context for /etc/opt/brother/Printers/DCPL2550DN/inf(/.*)? already defined
ValueError: File context for /opt/brother/Printers/DCPL2550DN/inf(/.*)? already defined
ValueError: File context for /opt/brother/Printers/DCPL2550DN/lpd(/.*)? already defined
ValueError: File context for /opt/brother/Printers/DCPL2550DN/cupswrapper(/.*)? already defined
#
semanage fcontext -a -t bin_t /opt/brother
ValueError: File context for /opt/brother already defined
restorecon -R /opt/brother
semanage fcontext -a -t cupsd_rw_etc_t /etc/opt/brother
ValueError: File context for /etc/opt/brother already defined
restorecon -R /etc/opt/brother
semanage fcontext -a -t cupsd_rw_etc_t /opt/brother/Printers/(.*/)?inf(/.*)?
ValueError: File context for /opt/brother/Printers/(.*/)?inf(/.*)? already defined
restorecon -R /opt/brother/Printers
semanage fcontext -a -t cupsd_rw_etc_t /etc/opt/brother/Printers/(.*/)?inf(/.*)?
ValueError: File context for /etc/opt/brother/Printers/(.*/)?inf(/.*)? already defined
restorecon -R /etc/opt/brother/Printers
semanage fcontext -a -t bin_t /opt/brother/Printers/(.*/)?lpd(/.*)?
ValueError: File context for /opt/brother/Printers/(.*/)?lpd(/.*)? already defined
restorecon -R /opt/brother/Printers
semanage fcontext -a -t bin_t /opt/brother/Printers/(.*/)?cupswrapper(/.*)?
ValueError: File context for /opt/brother/Printers/(.*/)?cupswrapper(/.*)? already defined
restorecon -R /opt/brother/Printers
restorecon -RFv /usr/lib/cups/filter
setsebool -P cups_execmem 1
Will you specify the Device URI? [Y/n] ->
0: beh
1: ipp
2: cups-brf:/
3: https
4: socket
5: serial:/dev/ttyS0?baud=115200
6: lpd
7: http
8: ipps
9: smb
10 (I): Specify IP address.
11 (A): Auto. (usb://dev/usblp0)
select the number of destination Device URI. ->11
lpadmin -p DCPL2550DN -v usb:///etc/usblp0 -E
Test Print? [y/N] ->
You are going to install following packages.
brscan4-0.4.11-1.x86_64.rpm
rpm -ihv --nodeps --replacefiles --replacepkgs brscan4-0.4.11-1.x86_64.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:brscan4-0.4.11-1 ################################# [100%]
This software is based in part on the work of the Independent JPEG Group.
You are going to install following packages.
brscan-skey-0.3.1-2.x86_64.rpm
rpm -ihv --nodeps --replacefiles --replacepkgs brscan-skey-0.3.1-2.x86_64.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:brscan-skey-0.3.1-2 ################################# [100%]
ln: failed to create symbolic link '/etc/opt/brother/scanner/brscan-skey/brscan_mail.config': File exists
ln: failed to create symbolic link '/etc/opt/brother/scanner/brscan-skey/brscan-skey.config': File exists
ln: failed to create symbolic link '/etc/opt/brother/scanner/brscan-skey/brscan-snmp.cfg': File exists
ln: failed to create symbolic link '/etc/opt/brother/scanner/brscan-skey/scantofile.config': File exists
ln: failed to create symbolic link '/etc/opt/brother/scanner/brscan-skey/scantoimage.config': File exists
ln: failed to create symbolic link '/etc/opt/brother/scanner/brscan-skey/scantoocr.config': File exists
ln: failed to create symbolic link '/etc/opt/brother/scanner/brscan-skey/scantoemail.config': File exists
ln: failed to create symbolic link '/usr/bin/brscan-skey': File exists
I tried printing a test page but nothing would work because it was configured
to use a device called /dev/usb/lp0 , or /dev/usblp0 . Neither of those existed
on my system so I was troubleshooting for a while.
Some useful resources:
https://fedoraproject.org/wiki/How_to_debug_printing_problems
Configuring the right CUPS queue
In the end, I used good old system-config-printer
graphical assistant, which
automatically detected the printer, and configured it in cups in the following
manner:
#> lpstat -p
printer Brother-DCP-L2550DN-series is idle. enabled since Thu Mar 30 14:46:53 2023
Description: Brother DCP-L2550DN series
Location: mycomputer
Driver: Brother DCPL2550DN for CUPS (grayscale, duplex)
Connection: usb://Brother/DCP-L2550DN%20series?serial=XXXXXXXXXXXXX
Default Options: Banners=none, none paper=iso_a4_210x297mm sides=one-sided
Configuring SANE
This was my first try with SANE in 20+ years using Linux, and I only had to
install the driver as performed with the automatic installer.
Fedora ships simple-scan
, which takes care of scanning pages both from
the external feeder or the internal scanner. It works nicely and can output
images to both JPGs or PDFs (for documents).
Happy hacking!