I had this printer which is not a wifi built-in printer but nevertheless its a laser printer and I wanted to use it to print from any machine on my local network. I thought to myself why not use a raspberry pi and use cups. Thus my post on how to Setup Brother 1110 Printer on Raspberry Pi, I actually reuse the pi I had that is running pihole to block all the ads coming into my home network. Long story short I thought CUPS would be easy to setup and hoped everything will work, well of course things don’t just work without me tinkering on it, so here are the steps I used to finally to get it to work and hopefully it may help you also in your journey 🙂
First things first what is CUPS?
CUPS is a modular printing system for Unix-like computer operating systems which allows a computer to act as a print server. To install CUPS on a PI you can use the commands below.
Install cups and drivers from the Brother website
Login to your pi
1 2 3 |
pi@raspberrypi:~/ $ sudo apt-get update pi@raspberrypi:~/ $ sudo apt-get upgrade pi@raspberrypi:~/ $ sudo apt-get install qemu binfmt-support qemu-user-static cups a2ps |
Brother only provides i386 driver but as you may know Pi is a Arm processor so we need to somehow get them to work but first lets download the deb packages.
1 2 3 4 |
pi@raspberrypi:~/ $ mkdir driver pi@raspberrypi:~/ $ cd driver pi@raspberrypi:~/driver $ wget http://download.brother.com/welcome/dlf100419/hl1110lpr-3.0.1-1.i386.deb pi@raspberrypi:~/driver $ wget http://download.brother.com/welcome/dlf100421/hl1110cupswrapper-3.0.1-1.i386.deb |
We will also add the architecture
1 |
pi@raspberrypi:~/driver $ sudo dpkg --add-architecture i386 |
We will also need to use Kali linux libc6 in order for this to work.
1 |
pi@raspberrypi:~/driver $ wget old.kali.org/kali-security/pool/main/e/eglibc/libc6_2.13-38+deb7u8_i386.deb |
We will then extract the libc into a directory so that we dont need to mess with apt and then copy them over.
1 2 3 4 |
pi@raspberrypi:~/driver $ sudo dpkg -x libc6_2.13-38+deb7u8_i386.deb data pi@raspberrypi:~/driver $ cd data/ pi@raspberrypi:~/driver/data $ ls etc lib usr |
As you can see above we have 3 directories etc, lib and usr extracted into data directory. Now we will copy them over.
1 2 3 4 |
pi@raspberrypi:~/driver/data $ cd .. pi@raspberrypi:~/driver $ sudo cp -r data/lib/* /lib/ pi@raspberrypi:~/driver $ sudo cp -r data/usr/* /usr pi@raspberrypi:~/driver $ sudo cp -r data/etc/* /etc |
We will also add this to our env variable to build and then we can install our packages. You can ignore the warning, also you will get this error in cups also when you print so you can ignore that also.
1 2 3 4 5 6 7 8 |
pi@raspberrypi:~/driver $ EXTRA_OPTS="-L /lib/i386-linux-gnu" pi@raspberrypi:~/driver $ sudo dpkg -i hl1110lpr-3.0.1-1.i386.deb Selecting previously unselected package hl1110lpr:i386. (Reading database ... 162742 files and directories currently installed.) Preparing to unpack hl1110lpr-3.0.1-1.i386.deb ... Unpacking hl1110lpr:i386 (3.0.1-1) ... Setting up hl1110lpr:i386 (3.0.1-1) ... ERROR: ld.so: object '/usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so' from /etc/ld.so.preload cannot be preloaded: ignored. |
Now lets install the cups wrapper.
1 2 3 4 5 6 7 |
pi@raspberrypi:~/driver $ sudo dpkg -i hl1110cupswrapper-3.0.1-1.i386.deb Selecting previously unselected package hl1110cupswrapper:i386. (Reading database ... 162763 files and directories currently installed.) Preparing to unpack hl1110cupswrapper-3.0.1-1.i386.deb ... Unpacking hl1110cupswrapper:i386 (3.0.1-1) ... Setting up hl1110cupswrapper:i386 (3.0.1-1) ... lpadmin -p HL1110 -E -v usb://Brother/HL-1110%20series?serial=L0N818210 -P /usr/share/ppd/brother/brother-HL1110-cups-en.ppd |
Finally we need to restart our cups server
1 2 |
pi@raspberrypi:~/driver $ sudo /etc/init.d/cups restart [ ok ] Restarting cups (via systemctl): cups.service. |
If you wish to manage cups with pi user use the commands below and then you can access cups with the web user interface on http://localhost:631
1 2 3 4 |
pi@raspberrypi:~/ $ sudo usermod -a -G lpadmin pi pi@raspberrypi:~/ $ sudo cupsctl --remote-any pi@raspberrypi:~/driver $ sudo /etc/init.d/cups restart [ ok ] Restarting cups (via systemctl): cups.service. |
If you are using windows 10 you dont really need to install Samba you will be able to see your pi printer by just opening printer and add it will auto scan your network for it. Hopefully this will help you out and enjoyed reading How to setup Brother 1110 Printer on Raspberry Pi 🙂
Works for Brother HL-1112. Thank you!
Works for hl1110 but comment says future versions of CUPS won’t work anymore because printer drivers are deprecated. This is the feedback from using the command just before cups restart. Thanks for making a guide that works, Taswar
Followed official rpi, pimylife and none worked until i found your blog.