Turning a Raspberry Pi into a Samsung AirPrint server

2020, Aug 01    
Turning a Raspberry Pi into a Samsung AirPrint server
Photograph of a printer

This is my ageing Samsung M2026W printer. I quite like it - it was cheap to buy and is cheap to run. There’s loads of things I really hate about it too: it’s meant to be AirPrint compatible, but the WiFi setup and drivers are so flaky that it drops out of Wifi all the time, assuming you have managed to get it set up on WiFi in the first place. And the latest Mac OSX drivers from Samsung (now HP) don’t support WiFi setup at all.

A friend mentioned that he had recently got CUPS set up on his RPi and so as I love messing around with RPis and don’t like throwing away things if I can help it, this could be the perfect solution.

Balena-CUPS

The first Google led me to balena-cups. I set this up on my RPI 3b and it looked very promising indeed! The Balena setup was very slick - a single click on the “Deploy with Balena” button worked really well.

The AirPrint-compatible server appeared, but unfortunately my venerable Samsung wasn’t one of the supported printers. After trying pretty much every generic driver, the best I could find was a generic one that printed fairly well but always followed up with an error page. 6/10 for that one.

Splix

A bit more Googling took me to Splix but unfortunately the PPD file was empty, despite the discount-code-like “Works perfectly” comment.

But a bit more searching led me to this thread. I ssh’ed into my Balena container and installed it….and it worked perfectly!

Containerising it

There were a few manual steps involved, so I thought I’d fork the Balena-CUPS repo and add in Samsung support - here it is:

https://github.com/sachams/balena-cups

UPDATE: my PR got merged back into the original repo, so if you deploy via the “Deploy with Balena” button in the original Balena post you’ll get Samsung printer compatability!