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
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: [Job 36] PID 17877 (/usr/lib/cups/filter/pdftops) exited with no errors. juil. 23 17:14:24 Schenker cupsd: [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: [Job 36] /opt/brother/Printers/mfc9330cdw/lpd/filtermfc9330cdw : ligne 63 : 17914 Fini eval cat $INPUT_TEMP juil. 23 17:14:24 Schenker cupsd: [Job 36] 17915 | $PSCONV $PSCONV_OP juil. 23 17:14:24 Schenker cupsd: [Job 36] 17916 Erreur de segmentation | $BRCONV $BRCONV_OP juil. 23 17:14:24 Schenker cupsd: [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/lib64/cups/filter/. The former is actually used (indeed I was able to change the debug level in it).