Setting up Airprint for Samsung ML 2165W
By Anatoly Mironov
My “ancient” Samsung ML‑2165W printer has recently become unreliable. The Wi‑Fi connection often disappears, which is incredibly frustrating. When it does work, it only works from Windows—and only with drivers that are increasingly hard to find.
Despite its age, the hardware still functions well and could last for years. So I decided to retrofit the printer and make it work from Windows, Linux, and iPhone—over the network, without Wi‑Fi issues or driver hunting.
I found these two guides and gave it a try:
- Printing from your iOS devices through CUPS (from 2021)
- Turning My Old Printer into a Wireless Printer with a Raspberry Pi (from 2020)
The network
I have a Raspberry Pi 2 connected to my router. It already runs Pi‑hole and a few other services.
[Network] → [Router] → (Ethernet) → [Raspberry Pi] → (USB‑B) → [Printer]
- Raspberry Pi 2 connects to the router via Ethernet (wired network)
- Raspberry Pi 2 connects to the printer via USB‑B (direct cable)
Installation
sudo apt updat`
# install cups
sudo apt install -y cups
# install samsung printer drivers
sudo apt install -y printer-driver-splix
# add your user to the lpadmin
sudo usermod -a -G lpadmin $USER
sudo cupsctl --remote-any
sudo systemctl restart cups
Configuration
After installation, I opened the CUPS administration page at:
https://<ip_address>:631
I logged in with my linux credentials and added the printer

Airprint
To enable printing from iPhone, I followed this blog post:
The blog post more or less describes the repo: github: tjfontaine/airprint-generate
Below are the commands I used. I am using uv to keep everything isolated and avoid installing global packages.
# install the cups development library
sudo apt install -y libcups2-dev
# create a new python project
uv init airprint
cd airprint
uv add pycups
uv run airprint-generate.py
sudo cp AirPrint-tollerasp2_printer.service /etc/avahi/services/
sudo systemctl restart avahi-daemon
# optional: save the .service file for later, copy it to a nas or something
# scp <user>@<host>.local:airprint/AirPrint-tollerasp2_printer.service ~/Downloads/
# cleanup?: cd ..; rm -rf airprint
Test print
On my phone, I selected a document, added the AirPrint printer, and printed. It just worked.

Other steps (probably not needed)
These steps were part of my troubleshooting. I don’t believe they’re required, but I’m including them in case they help someone else.
Other 1: SULDR
I installed these drivers. It was before I installed printer-driver-splix apt package, so I am fairly sure it is not needed.
sudo bash -c 'echo "deb https://www.bchemnet.com/suldr/ debian extra" >> /etc/apt/sources.list'
curl -O https://www.bchemnet.com/suldr/pool/debian/extra/su/suldr-keyring_4_all.deb
sudo dpkg -i suldr-keyring_4_all.deb
# but there was no compatible driver for armhf 🙁
# still this command did not complain:
sudo apt install suld-driver-common-1
Other 2: symbolic link
I encountered a similar error to the one described in this StackOverflow post: Rastertospl failed samsung printer. To fix it, I added a symbolic link:
sudo ln -s /usr/lib/cups/filter/rastertoqpdl /usr/lib/cups/filter/rastertospl
Conclusion
Now my old printer works reliably from all devices without Wi‑Fi issues. I hope this can be helpful for anyone who has a Samsung printer (or any other printer) and wants to print from their phone.