1

I have two Brother printers : a QL-1050 label printer (USB-plugged) and an MFC-9330CDW (wifi).

Both work fine with an Ubuntu laptop, but I struggle to get them to print under Fedora 28 (actually had the same issue with F23 but never managed to fix the issue).

I downloaded the official drivers on the Brother website :

mfc9330cdwcupswrapper.i386
mfc9330cdwlpr.i386
ql1050cupswrapper.i386
ql1050lpr.i386

I also installed the following 32 bit packages, since Brother doesn't bother providing 64 bit drivers :

glibc.i686
libgcc.i686
libstdc++.i686
nss-softokn-freebl.i686

Both printers are correctly detected by CUPS, but neither will print, be it through lpr, evince, eog, firefox… The job silently disappears from the queue, but nothing is printed and the printer never actually reacts.

This is probably because the Brother filter fails silently, as hinted by the CUPS logs in debug level :

$ journalctl -u cups
…
juil. 23 17:14:24 Schenker cupsd[17868]: [Job 36] PID 17877 (/usr/lib/cups/filter/pdftops) exited with no errors.
juil. 23 17:14:24 Schenker cupsd[17868]: [Job 36] /usr/lib/cups/filter/brother_lpdwrapper_mfc9330cdw : ligne 133 : 17902 Erreur de segmentation /opt/brother/Printers/mfc9330cdw/cupswrapper/brcupsconfpt1 MFC9330CDW $PPDC $LOGCLEVEL \"$CUPSOPTION\" \"mfc9330cdw\" $BRPRINTERRCFILE >> $LOGFILE
juil. 23 17:14:24 Schenker cupsd[17868]: [Job 36] /opt/brother/Printers/mfc9330cdw/lpd/filtermfc9330cdw : ligne 63 : 17914 Fini                    eval cat $INPUT_TEMP
juil. 23 17:14:24 Schenker cupsd[17868]: [Job 36] 17915                       | $PSCONV $PSCONV_OP
juil. 23 17:14:24 Schenker cupsd[17868]: [Job 36] 17916 Erreur de segmentation  | $BRCONV $BRCONV_OP
juil. 23 17:14:24 Schenker cupsd[17868]: [Job 36] PID 17878 (/usr/lib/cups/filter/brother_lpdwrapper_mfc9330cdw) exited with no errors.
…

(As you have probably guessed, "Erreur de segmentation" is the French for "segmentation fault".)

My guess is that the driver is trying to use 64 bit libraries instead of the 32 bit ones. How do I check that, and/or what could I do to force it to use 32 bit libs ?

Edit : Apparently they do use the 32 bit libraries :

$ ldd /opt/brother/Printers/mfc9330cdw/cupswrapper/brcupsconfpt1
linux-gate.so.1 (0xf7ed4000)
libc.so.6 => /lib/libc.so.6 (0xf7d10000)
/lib/ld-linux.so.2 (0xf7ed6000)

I have to mention I have read this FAQ and that brother_lpdwrapper_mfc9330cdw does exist in both /usr/lib/cups/filter/ and /usr/lib64/cups/filter/. The former is actually used (indeed I was able to change the debug level in it).

  • 1
    try running /usr/lib/cups/filter/brother_lpdwrapper_mfc9330cdw 36 goug ... manually, possibly under strace to better see how the error came to be – thrig Jul 23 '18 at 16:42
  • @thrig Thanks for the suggestion, I updated the question with the "result" of this test. – Skippy le Grand Gourou Jul 23 '18 at 19:05
  • 1
    you may need strace -f -o blah to make strace follow forks – thrig Jul 23 '18 at 22:38
  • @thrig Thanks, that was useful (though it didn't actually help, see answer). – Skippy le Grand Gourou Jul 24 '18 at 15:20
2

Actually the issue has nothing to do with the architecture. By "chance" my laptop froze and I found myself in a "Failed to load SELinux policy. Freezing." situation at boot, then with SELinux disabled awkwardly the printer worked.

Apparently it is known that SELinux prevents Brother printer drivers to do their job since Fedora 21.

The solution is quite simple. Quoting the closing comment of the bug report linked above :

There is a boolean for this.

setsebool -P cups_execmem 1
  • Too bad sarcasm isn't allowed on SE, I could easily triple the length of this answer with anger about days if not weeks of productivity SELinux made me lose because of this issue and a few others. – Skippy le Grand Gourou Jul 24 '18 at 15:10
  • yeah I disable selinux by default, the last offense was selinux and ansible preventing a BIOS password from being set on student lab machines – thrig Jul 24 '18 at 16:30
  • So great. Thanks. Been trying to figure this out for days :-) – ekeyser Mar 23 at 16:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.