LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Go Back   LinuxQuestions.org > Blogs > hazel
User Name
Password

Notices


Rating: 2 votes, 5.00 average.

Installing a Brother printer in 64-bit Linux

Posted 11-28-2017 at 01:13 PM by hazel
Updated 12-26-2018 at 12:29 PM by hazel

Having just succeeded in installing the software for a new Brother laser printer in Debian and Crux, I thought it would be worthwhile summarising the procedure.

Proprietary Linux drivers for Brother printers typically come in two packages, one labelled cupswrapper and the other lpd. You will need to install both. Only two formats are available: rpm and deb.

If you have an rpm-based or deb-based distro, the simplest way to install is to use the all-purpose installation script provided by Brother. This prompts you for the model number and then downloads the correct driver packages for that model and installs them. It will also install the 32-bit libraries on which the driver depends, using your normal package manager.

The packages install under /opt/brother/Printers/$model. You will see three directories: cupswrapper contains the ppd file and the top-level filter; lpd contains the lower-level filters; and inf contains text information files used by the filters. The installer also creates two symbolic links: one to the ppd file from /usr/share/cups/model and one to the top-level filter script from /usr/lib/cups/filters.

For a distro that doesn't use rpm or deb packages, you will have to download and unpack the packages by hand. For example, I installed the HL1110 driver on Debian using the installer script and then copied over the /opt/brother tree into Crux. An alternative is to install rpm utilities, download the rpm versions of the packages and use the alien command to convert them to standard tarballs which you can then unpack. In either case you must then create the necessary symbolic links.

The filters are a mixture of bash scripts and 32-bit binaries (I gather from my reading that some Brother drivers use perl scripts as well). The binaries come with a curious license which allows you to distribute and modify them, but does not undertake to provide any source code that you could actually edit. The cupswrapper package contains a binary for which there is GPL source code; you can easily build a 64-bit version of this. However the low-level binary filters do not come with source code, presumably because that would give away too much about the internals of the printer.

You will need a 32-bit binary glibc library to run the low-level binary filters. Without this, cups will easily find your printer and report successful printing of files, but nothing will actually get through to the printer! Fortunately for me, Crux includes these as core packages. For Slackware, you need to install the multilib versions of glibc found at http://slackware.com/~alien/multilib.

If you do not have easy access to the libraries but have installed rpm utilities, you can apparently get the 32-bit libraries you need using rpmfind, and then unpack them in a suitable isolated directory such as /usr/local/lib32. Then edit something like "export LD_LIBRARY_PATH=/usr/local/lib32" into the top of the primary filter script. I haven't tried this myself.

The links you will need are to the ppd in /usr/share/ppd and /usr/share/cups/model; to the inf/*rc file in /etc/opt/brother/Printers/[Model_name]/inf; and to the cupswrapper/lpd_wrapper script in /usr/lib/cups/filter. If your distro puts the real cups directory in /usr/lib64, you will have to create a dummy /lib/cups/filter directory to contain it, otherwise the driver will not find it.
Posted in Uncategorized
Views 172 Comments 3
« Prev     Main     Next »
Total Comments 3

Comments

  1. Old Comment
    Thanks for this. I have a Brother all in one printer I need to get to work with Slackware so your tips might work for me.
    Posted 01-31-2018 at 02:26 AM by Pixxt Pixxt is offline
  2. Old Comment
    Thank you for the use of the installer. I have one minor problem, when printing, I get a page that has an inverted comma printed evenly spaced down to the right of centre on the page. I have reinstalled the driver via the printer driver installer but the problem still exists.
    I am using Ubuntu 16.04.5 64 bit system. I have downloaded the .deb version of driver as I believe ubuntu is a derivative of Debian. Any suggestions would be more than welcome.

    Thank you,
    jacko777
    Posted 11-07-2018 at 02:57 AM by jacko777 jacko777 is offline
  3. Old Comment
    Forgot to add, the printer is a Brother HL-1210W monochrome laser printer.

    Thanks again
    jacko777
    Posted 11-07-2018 at 03:03 AM by jacko777 jacko777 is offline
 

  



All times are GMT -5. The time now is 05:06 PM.

Main Menu
Advertisement
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration