Brother printer will scan but not print from printing template

Printer will not work on a new printer template vm. But Xsane scanning works perfectly from the template. I have been making multiple new templates trying to find the problem, reinstalling the Brother deb drivers in each one from scratch. They just will not print text.

System: Qubes 4.3.0 running on desktop box with debian 13 based disposables. All updates done. Running the latest available dom0 kernel. Brother DCP-L2550DW printer. Debian driver files.

I have been having problems with the old template refusing to complete updates. Hence the move to new template(s). The old template still handles printing and scanning just fine. But now I’m determined to get the new one working. If I compare the qube settings between the printable and non-printable templates, they are identical. Everything including cups is the same. If I start both templates and connect the printer to them in turn, I can print from the old template, but not the new one. Connecting the templates in turn to my Personal vm using Q-Personal-Settings results in being able to print from Personal using the old template, but it will not work when the new printer template vm is used. But Xsane scanning works perfectly. I have been making multiple new templates trying to find the problem, reinstalling the Brother deb drivers in each one. They just will not print text.

Brother has two methods of installing the driver files – individually or an all-in-one. I have tried both on my various test templates, but am presently using the individual ones. The scanner files I am using, which are working fine with Xsane are amd64 based. I have made the required changes to the /lib/udev/rules.d/60-libsane1.rules file. The scanner drivers are identical and placed identically in the folders on both templates. The printer driver file itself is i386 based and going on past experience, since about debian 10 I think, I need to use their legacy usb support driver as well for the printer driver to work. The order of installation was usb support, printer, scanner and scanner-key. The DCPL2550DW.ppd printer driver is in the /etc/cups/ppd/ folder. Printer was installed as a standalone usb printer. Sudo system-config-printer was used to set the DCP-L2550DW as the default printer – seemingly successfully - got a Connected to Local Host message. System rebooted after each installation of drivers. Also if I enter http://localhost:631/printers into a browser, the printer shows up.

If I connect the printer to the new template and try to print a text file from the template, the print menu comes up and shows the DCPL2550DW as the destination. But it will not print.

1 Like

Maybe worth trying IPP (driverless): Setup a WLAN / LAN Printer IPP Everywhere™

1 Like

Thanks whoami. Your solution looks interesting. Much appreciated. But for now, I know there is a way to make my present setup work, as it will work from the old, defective printing vm. I would like to see if I can find what is missing on my new printer vm, to get it working. It has to be just one minor glitch, which I’m missing. Also it appears your method requires the extra step of transferring print info via the copy from qube to qube method.

I’m suspecting, since the scanner works fine and the problem is just printing, that I might have the printing portion not recognizing the printer as being at the same “location” in the usb, or as has happened in the past with the scanner (less likely I think), a printer driver file needs to be copied to another location. I used to need to copy 32bit scanner drivers, etc from lib to lib64 folders, to get the scanner working a few years ago. So far I’m not seeing any difference between the old printer vm settings and the new vm settings. How do I check if the print function is looking for the same location as the scanner function for instance? Thanks.

2 Likes

Got it! The problem was due to the 32 bit vs 64 bit drivers and the need to use the legacy usb driver as well. There is a definite procedure for installing the 32 bit legacy driver, which includes shutting down the printer after installation, then reconnecting to the vm, before installing the 32 bit printer driver. I made another printer template from scratch and followed the Brother procedure. I’d forgotten about disconnecting after the legacy installation. I now have a new printer template attached to a vm and can successfully both print and scan. I will make a howto to add to this thread for other Brother users, trying to add a 32 and 64 bit combination of drivers.

3 Likes

Congratulation!
Could please label it as “solution”.

1 Like

SETUP OF BROTHER PRINTER/SCANNER WITH BOTH 32 BIT AND 64 BIT .DEB DRIVERS ON AN AMD64 SYSTEM WITH QUBES AS AN OS:

This procedure was used to install a Brother DCP-L2550DW printer/scanner into Qubes 4.3.0 running on an amd64 desktop computer, using a made from scratch printing template, which could be attached to another vm for printing and scanning. The required installation method is not straight forward due to Brother using a 32 bit driver for the printing and the scanner drivers being 64 bit. Brother does make 32 bit scanner drivers as well. But in the past I have needed to copy the 32 bit files over from /lib folders into /lib64 folders, to get the scanner working. Easier to just use the 64 bit scanner drivers. This procedure assumes very little experience using QubesOS on the part of the user. Any suggestions to improve the howto would be welcome. There were one or two points mentioned herein, where my level of knowledge may have resulted in extra typing.

In your usual working vm of choice, go to the Brother website’s Downloads pages and download the printer and scanner .deb drivers for your printer. In my case they were:

The 32 bit printer driver: dcpl2550dwpdrv-4.0.0-1.i386.deb
The 64 bit scanner driver: brscan4-0.11-1.amd64.deb
The 64 bit scan-key tool: brscan-skey-0.3.4-0.i386.deb

The drivers will work as installed for the scanner, but not for the printer. In order to get the 32 bit legacy printer driver (the only option at present) working, the legacy usb support driver from Brother also needs to be installed before installing the other three drivers. This driver isn’t easy to find on the Brother site and it could be a bit easier to find I think. The link for it is below.

Download the file brotherlegacyusb-1.1.1-0.all.deb from the linked page.


This section assumes the user hasn’t made a template printer vm before. Make a printer template for the printer, which can be attached to another vm for printing.
From the Qubes menu, Q – Settings – Qubes Tools – Create New Qube – Template – Give the vm a name, enable Launch Qube Settings after creation, enable Template, I used debian-13-xfce for mine, in Applications add Print Settings, Vim and XSane – Create new qube.
In the Settings box for the new printer template vm click on the Services tab. Click Add and click the box to the left. Click on cups then the Add button. Click on the left box again, click qubes-update-check, then click Add. Click OK to accept and exit. You now have your printer vm, which only needs the drivers added to be usable (plus one file addition for scanner function later, as Brother scanners do not by default show up in the required device list in the /lib/udev/rules.d/60-libsane1.rules file. We will do that bit later after installing the drivers.


Open up three windows. The file manager window for the qube, where you downloaded the four driver files, the file manager for your new printer template and the terminal window for the printer template.
In the vm window where the downloaded files reside, open Downloads, highlight the four files, right click on them and in the submenu click on Copy to other qube. Select your new printer template vm and click OK. This vm can now be closed down if desired.

Turn on the printer and using the Qubes Devices widget in the top menu, connect it to the (running) printer template vm - *this step is important for later.

In the template file manager box click on QubesIncoming. Copy and paste the four files to your Downloads folder (not necessary but I find it easier and quicker afterwards.)
In the Terminal window, cd Downloads To make it easier, you can enter ls to list the files now in the Downloads folder. Then the filenames can be copied and pasted into the lines following if desired to save on typing.
We are now going to install the drivers. The order is specific for the first driver installation and necessary in my experience. First we need to deal with the problem of getting the 32 bit printer .deb driver to work in an amd64 system. Installing the printer driver alone will not later result in being able to print anything. We need to “prepare” the path by first installing that fourth Brother file for legacy usb use.
Note: I will use (s) for sudo in commands.
In Terminal, enter (s) dpkg -i –force-all brotherlegacyusb-1.1.1-0.all.deb
(*note: If the – in <–force-all> shows up on your system as one long dash it is not. It is two short dashes before the “force”. )
This driver should successfully install. If it doesn’t, it is probably due to not having the printer already turned on and connected to the printer template vm! If this is the case, simply connect the printer and then install the driver.
** The printer must now be disconnected from the printer qube at bare minimum, before installing more drivers. The Brother site faq sheet for troubleshooting this problem, says to shut down the printer, disconnect the usb cable, turn the printer back on and reconnect the cable. I wasted days of setup making many text templates, as I had forgotten this step. To make sure I had it this time in Qubes, I disconnected the printer from the vm, turned it off, restarted QubesOS, opened my two printer template vm windows, turned the printer on, connected the usb cable and connected the printer to this vm. Some of this may have been unnecessary, but I wanted to make sure.
In Terminal, enter (s) dpkg -i –force-all (printer driver filename for your printer)
The 32 bit driver should install completely.

Enter (s) system-config-printer

A dialogue box should appear with your printer identified in the image. Right click on the printer image and then select . There should now be a checkmark with the printer icon and at the bottom of the box it should say Connected to localhost. This method just works very well, but in my experience trying to instead set the default printer via the Print Settings gui method often fails. Use the Terminal method instead.


Now let’s add the 64 bit scanner drivers.
In Terminal enter (s) dpkg -i –force-all (filename for your scanner driver)
Then enter (s) dpkg -i –force-all (filename for your scan-key driver)
All drivers should now be successfully installed, but at present the scanner will not work if tried. The system will not recognize the Brother scanner until we modify one file, using a text editor. The file is /lib/udev/rules.d/60-libsane1.rules

I will add in the process for editing the file using the vim text editor. But use the text editor of your choice instead if you have one.

In Terminal, enter (s) vim /lib/udev/rules.d/60-libsane1.rules
The Vim text editing window for this file should show up. Scroll down to the bottom and click in the space above the last line (LABEL=”libsane_rules_end”)
Click the letter i to enter Insert mode.
Press the Enter key twice to add a couple of blank lines, just to make everything neat and tidy. Then click on the second blank line after the last scanner device entry.
Type in, # Brother scanners
Press Enter
Backspace once to clear the # at the beginning of the line. Type in, ATTRS{idVendor}==”04f9”, Env{libsane_matched}=”yes”
Click Esc to exit Insert mode
Type :wq and press Enter to write the file changes and quit (exit that file).
Both the printer and the scanner should now be available after a restart.

If all was followed you should now be able to restart QubesOS, turn on your Brother printer, attach it to a vm of your choice using the Qubes Devices widget in the top menu and be able to print directly from a file or your browser. You should also be able to bring up Xsane in your running vm and scan successfully.

2 Likes