Recently acquired a $30 laser printer from a flash sale. The B/W Brother HL-L2320D. Decided to use CUPS on the RPi to share the printer on the local network. First things first, Brother doesn’t provide drivers for the printer compiled for the ARM architecture. But the brlaser project mercifully has support for many series.
After setting up the Pi, the first thing to do was find if there was a debian package for this library
[email protected]:~ $ apt-cache search brlaser printer-driver-brlaser - printer driver for (some) Brother laser printers
That’s great! But hold on a second, what’s this?
[email protected]:~ $ apt-cache policy printer-driver-brlaser printer-driver-brlaser: Installed: (none) Candidate: 4-1 Version table: 4-1 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages
Oh great, it’s V4. Now that’s not necessarily bad, but it’s better to get v6 from the repo directly.
Setup the toolchain and dependencies
sudo apt install libcupsimage2-dev libcups2-dev cmake cups
Clone the repo and install the lib
git clone https://github.com/pdewacht/brlaser.git cd brlaser cmake . make sudo make install
Great! now let’s configure to access cups remotely. I don’t like attaching my peripherals to the Pi and hauling my monitor to it.
Allow access to CUPS admin
sudo cupsctl --remote-admin --remote-any --share-printers
This will modify
/etc/cups/cupsd.conf to open up everything. Now the admin interface is available to be accessed remotely via the address
Add the printer
I added the printer by going to
Add printer. It’s pretty straightforward, just needed to make sure the printer is shared and HL-L2300 series is a viable driver. The default options are enough and make sure you select the printer as server default.
MacOS & Windows
Pretty straightforward access. Just go to printers and the printer shows up. If it doesn’t show up for Mac OS, install and enable
sudo apt install avahi-daemon
Start/Restart & Enable it
sudo systemctl restart avahi-daemon sudo systemctl enable avahi-daemon
If Windows can’t find it, maybe install the Samba package
sudo apt install samba sudo systemctl restart smbd
Go to the printers section under
/etc/samba/smb.conf and update it to reflect the following
[printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes guest ok = yes read only = yes create mask = 0700 # Windows clients look for this share name as a source of downloadable # printer drivers [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = no guest ok = no
Now I just need to the figure out the bug up Linux’s ass and get the trifecta working. But it works great on Mac OS and Windows 10