Installing a Brother DCP-L2550DN printer and scanner in Fedora 37
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!