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).
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
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다