This tutorial will guide you through the setup of a printer which has no ARM drivers and therefore leads to complications when being used with a Raspberry Pi or another ARM computer, for example a Brother printer. Also, I will assume that the Raspberry Pi is only accessible through SSH and has no GUI installed, so the server side will be doable through CLI commands only.
Server = Raspberry Pi. I will assume that it is running Raspbian but the steps should work for other distros as well.
Client = Your Manjaro machine.
- Attach your printer to the server.
- Connect to the server via SSH:
- Install CUPS:
sudo apt-get install cups
- Find out the URI of your printer with
sudo lpinfo -v |grep usb:
In my case the output is
so the URI is
- Now that we know the URI, we can add the printer to the system with:
sudo lpadmin -p $NAME -v $URIwhere $NAME is an arbitrary name you want to give to your printer and $URI is the URI which we just constructed. In my case the command is:
sudo lpadmin -p HL-L2300D -v usb://Brother/HL-L2300D%20series?serial=E73860G5N986807
- Now the printer is known to the system but disabled. You can check the status with
sudo lpstat -p $NAME -lIn my case I got:
$ sudo lpstat -p HL-L2300D -l printer HL-L2300D disabled since Sun 02 Sep 2018 16:22:43 UTC - reason unknown
We now have to enable the printer with
sudo cupsenable $NAME, which in my case translates to
sudo cupsenable HL-L2300D
It is now enabled:
$ sudo lpstat -p HL-L2300D -l printer HL-L2300D is idle. enabled since Sun 02 Sep 2018 16:23:17 UTC
- Finally we have to tell CUPS that it may accept print tasks for this printer with
sudo cupsaccept $NAME, in my case
sudo cupsaccept HL-L2300D
Hint: If something goes wrong, you can remove the printer with
sudo lpadmin -x $NAME and start from scratch.
Install the appropriate driver for your printer. Many printer drivers are available through the AUR, some are also included in the preinstalled driver set. In my case I had to install the AUR package
Install the package
sudo pacman -S nss-mdns
Enable and start Avahi:
systemctl start avahi-daemon systemctl enable avahi-daemon
Navigate to the printer settings through your desktop’s menu or with the command
system-config-printerUnblock the session with the unblock button in the top left corner and add a new printer.
Thanks to Avahi the printer should appear in the list of network printers in the left column (expand this list first by clicking on “Network printers”). The printer should be called $NAME @ raspberrypi, in my case HL-L2300D @ raspberrypi. Click “Next”, select the appropriate driver, click “Next” again and select the desired name and description.
Congratulations, you’re all set and can print a test page or something else!
Hint: If your printer supports duplex printing, you can duplicate the printer you just added and name the copy “MyNicePrinterDuplex”, then activate duplex printing in the copy’s settings. You will thus have two printers, one with and one without duplex, such that you don’t have to navigate to the printer settings to switch duplex on and off. Same works for other settings.