Running OSS? Don’t buy Brother
It’s the all-too-familiar case of Decent Product, Crappy Drivers.
Both printer and scanner drivers from Brother are simply binary blobs wrapped with [L]GPLed code. Really, really crappy code at that.
The stock CUPS filter wrapper for MFC-420CN actually did not work at all as it was, for some bizarre reason, written in csh: not the most widely used default shell for Linux distributions. After dissecting the code, I realized that the two or three dozen calls to the binary blob printer configuration tool could be replaced with a single call, provided that some smart argument processing is done instead of configuration the printer for every single setting that needs to be parsed from 3 separate sources.
I am currently working on replacing this abomination with Perl.
Of course, that’s only half of the story, as the MFC-420CN is a multi-function printer/scanner/fax.
To make a long story short, I am about 10 minutes into trying to get the scanner to work, and I’m already baffled at the sheer insanity of it all. It requires /proc/bus/usb to be mounted 0666, a manually created usbscanner node, and, from what I can gather from the “source” tarball, has various parts of other OSS projects compiled in statically, like snprintf, strdup, getenv, and usleep.
On the plus side, if you don’t care about polluting your /usr/lib, the drivers do seem to work reliably if you let the RPM do its thing. Nevertheless, cheap toners be damned, what Brother printers I have now will be my last.
Tags: rant
October 27th, 2007 at 10:51
My Brother laser printer works fine, and afaict, their scanners should work with libsane out of the box (w/newer distros). But they’re crap printers, worth finding something better.
December 5th, 2007 at 15:18
I would rewrite your subject line:
“Running an OS? Don’t buy Brother”
Their drivers are rubbish for any OS, not just OSS.