How to make Brother Linux CUPS/lpd drivers work under FreeBSD

June 16th, 2015

Having been recently in the market for a replacement multi-function device, I wanted to 'step up' and get a color laser printer having totally gotten sick of the problems that inkjet printers continually pose.

I ended up chosing a Brother MFC9330-CDW for the functionality, price point, and also for the fact that they supported open source by providing support for Linux in the form of PPD files for CUPS.

Much to my dismay however, that rather than simply providing a PPD file that could plugin with as little effort as possible into an existing CUPS installation, their "drivers" and the "install script" for those drivers were very "Linux-centric." They assumed that "/opt" would be available, and all the scripts assumed the default "linux paths" when installing things. The following things were done by me to shoehorn this into a FreeBSD 9.2 machine. When I did this, I did not have the patience or motivation to "productize" this procedure and make it into a "port" for the various brother models. Folks with more time on their hands than me, feel free. I just wanted to get this out onto the interwebs so that when somebody else running FreeBSD wanted to buy a Brother printer, they might have a chart to work by.

The general idea here is after I looked through the two .rpm package files and understood where scripts/filters were looking for constituent files, I simply needed to copy them to a different place (other than "/opt") and adjust all the scripts to find what they need.

Hopefully this will help "somebody" who runs FreeBSD and wants to purchase a Brother printer be more confident that they CAN shoehorn the Brother-provided scripts/drivers into your FreeBSD installation!

Brother, if you're listening please make the install of these things less Linux-centric!