Issues with original printer driver (Brother MFC-L8390CDW)

Hello, I have a Brother MFC-L8390CDW in operation. The printer itself works perfectly, there were no problems at all under Windows. Now I have switched to Manjaro.

The cups, print-manager and system-config-printer packages are installed. I now have two options for installing the printer:

  1. the printer is recognized by CUPS and I can set it up as an IPP Everywhere printer

  2. I use the instructions Arch Linux & Brother MFC L8390CDW printer-scanner • Allien.work, which recommend the installation of the brother-mfc-l8390cdw (AUR).

I can print with both variants in principle, but it doesn’t run smoothly yet.

The IPP Everywhere version prints almost immediately and can also do duplex, but only has very limited configuration options (especially for quality). However, as I would like to use all printer options, I prefer the original printer driver from the AUR. I have already compared the PPD file with the original RPM package from Brother and the files match. So the AUR actually contains the original printer driver.

If I now print something using the original printer driver, there are two major problems:

  1. duplex printing does not work, it always prints on a new page

  2. the printout is shifted to the top left - something is missing on the printout

I have now removed and re-added the printer several times. I have checked the default settings for paper size and duplex in CUPS and also in the application I want to print from. I tested printing from LibreOffice, Firefox and Ocular. All settings are set correctly to A4 and duplex. Nevertheless, the printout is not correct.

What can I do next?


Hi @kullermann ,
I wonder whether you can read this post in order to solve your problem.
Printer : Offset when printing / Kernel & Hardware / Arch Linux Forums

Regards,

I’ve already seen the page, but the description doesn’t seem to fit. I have installed the package properly via AUR. But in the PPD file there is no PAPERTYPE option and if I had to add it, I wouldn’t know where. Also the format does not fit “PAPERTYPE=”. All entries in the file have the following format:

*%==== Media Selection ======================
*OpenUI *PageSize/Media Size: PickOne
*OrderDependency: 11 AnySetup *PageSize
*DefaultPageSize: A4
*PageSize A4/A4: “ ”

And it looks to me like A4 is already set as the default format in the driver.

There is an optional package, system-config-printer for GTK based desktops.

It will provide you with a Settings Panel item called Print Settings as opposed to the CUPS web application called Manage Printing.

This is installed already. However, the driverless or the IPP-Everywhere-driver in CUPS do not provide as much device specific settings as the original driver.
But that does not answer the question, why the original driver does not work correctly as described in the linked Howto.
(Additionally, there are more drawbacks, i.e. the general rasterization on printing PDFs, but I won’t discuss this in this thread.)

I am using a Brother HL-L8260CDW using IPP it work with duplex without issues.

If the ppd file is identical to the PPD provided for the supported distributions then there is no reason your printer should not work.

Perhaps you should use the JetDirect port or the Brother print-queue provided by the driver control the print.

One can only speculate…

One thought is the physical printer settings.

If you use the physical control panel - you can print out the current network settings.

This printout will include the default password to your printer setup.

When you have the password - open your printers buillt-in web application and verify the printer’s internal configuration

If we leave duplex aside, there is still the shifted printout when using the PPD file.

I have already compared the physical settings in the printer. Everything is also set to DIN A4, etc. It doesn’t make sense to me either. All settings in the printer, in CUPS/driver and in the application are set to A4, but the printout is still shifted.

I will now leave it as it is and work with IPP, too bad.

In another topic recently there was a similar issue where a setting in the printer driver configuration caused the print margins to be set in an unexpected fashion.

The setting was Wide A4, which could be toggled on or off.

It may be worth looking for a similar setting; “similar”, because the printer in question was a Canon, and some settings may be named differently.

A link to the topic will likely not provide much else that is useful, but for the sake of interest: Canon imageRunner Advanced c2220i doesn’t work.

Regards.

As I’ve said already, in the printer itself, in CUPS and in the application, all settings are as expected. But I made some progress! Yeah.

After diving a little bit deeper into the driver (I’ve learned, that Brother has an extra CUPS wrapper), I found the reason. I’ve enabled debugging in the driver, which wrote a /tmp/br_lpdfilter_laser.log file, with the following content:

 BR_PRT_PATH=/opt/brother/Printers/mfcl8390cdw/    PRINTER=mfcl8390cdw

 BRCONV=/opt/brother/Printers/mfcl8390cdw/lpd/brmfcl8390cdwfilter    PRINTER=mfcl8390cdw

PRINTER=mfcl8390cdw
$ENV{PS} =  1
$ENV{BRPRINTERRCFILE} = /tmp/brmfcl8390cdwrc_1088491
$ENV{BRPAPERWIDTH} = -1
$ENV{BRPAPERHEIGHT} = -1
 PAPERINF=/opt/brother/Printers/mfcl8390cdw/inf/paperinfij2

 TYPE=Letter  w=5100 h=6600 size_br=

size_gs = 5100x6600 ,size_br =  -ps 5100x6600

[0 0 612 792]

<</ImagingBBox [0 0 612 792] /PageOffset [-0 0]>> setpagedevice

**** (echo  '<</ImagingBBox [0 0 612 792] /PageOffset [-0 0]>> setpagedevice';cat /tmp/br_input.sTuiQe) | /usr/bin/gs -r600 -g5100x6600 -q -dNOPROMPT -dNOPAUSE -dSAFER -sDEVICE=ppmraw -sstdout=%stderr -sOutputF
ile=- - -c quit   ****

**** /tmp/br_input.sTuiQe  ****

**** debug=2  ****

file type = <PDF
>

 (echo  '<</ImagingBBox [0 0 612 792] /PageOffset [-0 0]>> setpagedevice';cat /tmp/br_input.sTuiQe) | /usr/bin/gs -r600 -g5100x6600 -q -dNOPROMPT -dNOPAUSE -dSAFER -sDEVICE=ppmraw -sstdout=%stderr -sOutputFile=
- - -c quit  > /tmp/br_lpdfilter_laser_gsout.dat

cat /tmp/br_lpdfilter_laser_gsout.dat | /opt/brother/Printers/mfcl8390cdw/lpd/brmfcl8390cdwfilter -pi /opt/brother/Printers/mfcl8390cdw/inf/paperinfij2 -rc /tmp/br_lpdfilter_laser.rc>/tmp/br_lpdfilter_laser_out
.prn

cat /tmp/br_lpdfilter_laser_out.prn
file type = PDF

What makes me wondering, is the line TYPE=Letter w=5100 h=6600 size_br=. Then, I found a file named /opt/brother/Printers/mfcl8390cdw/cupswrapperbrother_lpdwrapper_mfcl8390cdw. Within this file, another pseudo-defaults file is included, named $basedir/inf/br${PRINTER}rc which leads to the real file /opt/brother/Printers/mfcl8390cdw/inf/brmfcl8390cdwrc. And this contains:

[mfcl8390cdw]
MediaType=Plain
PageSize=Letter
InputSlot=AutoSelect
BRResolution=Fine
Copies=0
Collate=OFF
BRReverse=OFF
BRMonoColor=Auto
BRColorMatching=Normal
BRGray=OFF
BREnhanceBlkPrt=OFF
TonerSaveMode=OFF
BRImproveOutput=OFF
Brightness=0
Contrast=0
RedKey=0
GreenKey=0
BlueKey=0
Saturation=0
BRSkipBlank=OFF
Language=us

There it is. It contains a fixed PageSize=Letter. After that, I’ve to agree, that @j8a was right, that changing the entry in this file (in my case PageSize instead of PageType) solves the issue.

EDIT: Rejoiced a little too soon. Duplex still doesn’t work with original driver. At least, page position is correct now.

EDIT 2: Found out, that when adding a hard BRDuplex=DuplexTumble the duplex function works (in this case always, which is nothing one wants). It’s all just sick

Does anyone has an idea, why this file overwrites all other settings and defaults? I would expect, that this file would be used as the absolutely last fallback only!?

These are settings too. :slight_smile:

I don’t. I do know that setting page size defaults can be a mess.

There are several ways to set the default paper size - usually it’s based on the system locale (for example, I use en_AU; the default paper size is already A4) - but then there are methods that (in theory) override other methods, for example, changing the size in /etc/paperzize.

Simply adding one’s preferred paper size to that file should override the other methods; but it apparently doesn’t always work as described.

If you look here there’s a list of the override order that these methods are supposed to follow, but that likely doesn’t help, currently.