I just bought a new printer, the Brother MFC-9120CN. It’s also able to scan and to copy documents and to send them by fax. Since the installation instructions are win/mac-only I’ll shortly explain how to setup the device in a Linux environment.

My new MFC-9120CN
My new MFC-9120CN

Decision for this printer

First of all I was searching for a printer that is in any case compatible to Linux systems. You might also have experiences with this driver f$ckup, or at least have heard about it. The manufactures often only provide drivers for Win or Mac, so you generally get bugged if you want to integrate those peripherals in your environment. The MFC-9120CN scores at this point. It is able to print and scan via network. Drivers for the printer are available and the the scanned documents can be sent at any FTP server. So you don’t need to have special drivers for scanning, just setup a small FTP server. This model is also a very cheap one compared to other color-laser MFP’s, and with the ADF it completely matches my criteria.


I already noticed some disadvantages. One is the speed, the printer is somewhat slow. Since I’m not printing thousands of pages it’s more or less minor to me, but you should be aware of that. Another issue is the fact, that the device always forgets the date if it is turned of for a time.. And the printer is a bit too noisy.


The printer comes with a large user manual (>200 pages). It well explains setup the fax functionality, but the installation of the network printer and scanner is only described for win/mac, so I’ll give you a small how-to for your Linux systems.

Network Setup

To use this device via network you have to connect it to a router. It should be able to request an IP via DHCP, but if you don’t provide a DHCP server you need to configure the network manually (my values are in parenthesis):

  • IP: menu->5->1->2 ( )
  • Netmask: menu->5->1->3 ( )
  • Gateway: menu->5->1->4 ( )

If this is done you should be able to ping the printer:

usr@srv % ping
PING ( 56(84) bytes of data.
64 bytes from icmp_req=1 ttl=255 time=0.306 ms

If you browse to this IP using your web browser you’ll find a web interface for the printer. We’ll need this website later on.

Printer Setup

Big thanks to the CUPS project, it’s very easy to setup the network-printer! If you haven’t installed cups yet, do it now:

aptitude install cups foomatic-db

Just browse to your CUPS server (e.g. http://localhost:631 if it is installed on your current machine) and install a new printer via Administration->add Printer (you need to be root). Recent CUPS versions will detect the new printer automatically and you’ll find it in the list of Discovered Network Printers. Just give it a name and some description, select a driver (I’m using Brother MFC-9120CN BR-Script3 (color, 2-sided printing)) and you’re done! Easy, isn’t it!? ;-) For those of you that have an older version of CUPS: The URI of my printer is dnssd://Brother%20MFC-9120CN._printer._tcp.local/ .

Scanner Setup

As explained above, the printer is able to send scanned documents to a FTP location. That is, there is no need for a scanner driver! Just install a small FTP server, I decided for ProFTPd:

aptitude install proftpd-basic

Make sure, that the /etc/proftpd/proftpd.conf contains the following lines:

DefaultRoot ~
RequireValidShell off
AuthOrder mod_auth_file.c  mod_auth_unix.c
AuthUserFile /etc/proftpd/ftpd.passwd
AuthPAM off

and create a new virtual FTP user:

ftpasswd --passwd --name YourPrinter --uid 10001 --home /PATH/TO/FILES --shell /bin/false

You will be asked for a password. The scanned documents will be stored in /PATH/TO/FILES . This command creates a file ftpd.passwd . Move this file to /etc/proftpd/ , if you didn’t execute the command in that directory. Restart ProFTPd:

/etc/init.d/proftpd restart

You should be able to connect to your FTP server:

usr@srv % ftp localhost
Connected to localhost.
220 ProFTPD 1.3.4a Server (Debian) [::ffff:]
Name (localhost:you): YourPrinter
500 AUTH not understood
500 AUTH not understood
SSL not available
331 Password required for printer
230 User printer logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful
150 Opening ASCII mode data connection for file list
226 Transfer complete
ftp> quit
221 Goodbye.

If that was successful, let’s configure the scanner to use this FTP account. Use your web browser to open the interface of the printer (e.g. and go to Administrator Settings->FTP/Network Scan Profile (you have to authenticate, default login is admin and the password is access). Here you’ll find 10 different profiles that can be configured. Click for example on Profile Name 1 and modify the profile:

  • Host Address: The IP of the FTP server (e.g. )
  • Username: The username of the virtual FTP user you’ve created (e.g. YourPrinter )
  • Password and Retype Password: The password of the virtual FTP
  • Store Directory: /

If you submit these values you’ll be able to scan to your FTP server. Just give it a try! ;-)

Additional Notes

I recommend to configure your firewall to drop all packets of your printer that try to leave your own network.

Martin Scharm

stuff. just for the records.

Do you like this page?
You can actively support me!


Atle Weibell | Permalink |

Hi, Thanks for an interesting and well written post. I consider the same printer myself, but have found many forum posts indicating that it is not at all straightforward to get this up and running on linux..

How come this works well when the printer is not listed by Cups compatible devices? http://www.cups.org/ppd.php

Where did you find proof in your research before buying, that this would work in linux?

kind regards, atle weibell

Martin Scharm | Permalink |

Hi Atle,

yes, unfortunately I’m quite familiar with such driver issues… That’s the reason why I bought a network printer. I’m sure you’ll have a hard time to setup the scanner to operate via USB, but since this device supports the “scan-to” mail, FTP, or CIFS, it’s pretty easy to set it up. And regarding the drivers for printing, before I bought the printer I searched for drivers and fortunately Debian as well as Ubuntu already include drivers for the MFC-9120CN. But brother itself also provides drivers for CUPS. You’ll find it in the Brother Solutions Center or simply click this link: MFC-9120CN drivers for linux.

I hope you’ll have some fun with your printer. In case of trouble feel free to drop me a mail ;-)

Nick Rout | Permalink |

Do you know if a similar approach will work for the MFC-9320CW. It seems to be a very similar printer, with 2 added advantages: 1. it is on sale locally at the moment, and 2. it is wireless, which is a plus for my home setup.

Martin Scharm | Permalink |

Of course I cannot give you any guarantees, but as far as I can say it will work the same way. In my article I explained how to use the scan and the print function via network. Since cups also comes with drivers for the MFC-9320CW (Brother MFC-9320CW BR-Script3 (en) and Brother MFC-9320CW Foomatic/Postscript (en)) I think you’ll be able to print out of the box. The 9320CW is also able to scan to file, so my above described workaround will probably also be successful for you.

I don’t know how to use the printer via USB, but I wouldn’t expect big issues to setup the printer in your network :)

Please let me (and other people reading this solution) know whether everything is fine with your new device.

Nick Rout | Permalink |

I got the MFC-9320CW and got it working as a printer over wireless so far. CUPS gave me two automatically detected printers to choose from, one had a dnssd URL and one had an lpd URL. I couldn’t get the dnssd one to work at all but the lpd one works fine.

The working url is lpd://Brother/BINARY_P1

To try scanning next.

Also, how do I get it to do B&W? I don’t always want to print in colour!

Martin Scharm | Permalink |

Hi Nick, nice to hear that! How is there is problem with printing in B&W? AFAIK it’s the same as for every other printer. You can configure the printer to print B&W in cups or in the application you’re using (depends on the application, but in most cases it can be configured using the properties button in the print-dialog)

mark | Permalink |


Did you experiment with “scan-to-email”? The scanner lets me set an smtp server and test that, even a POP3 account for receiving mail. It sends out test mail correctly.

I just want to be able to push a button on the thing to send an email, but that functionality doesn’t seem to be available without proprietary software on Win or Mac. Or is it? Would be really great for my mother. She is not very computer literate and has no ambition to change that.

Leave a comment

There are multiple options to leave a comment: