Trouble adding Samsung printer to CUPS

I have a Samsung ML-2510 printer, which I connected to IPFire by USB (the only way to connect it). I installed CUPS and all its dependencies, set it to “Running” under Services, see pic below:


(curiously it’s listed twice for whatever reason in this section, though I don’t think this is a problem nor that important)

Next I go through the steps provided in the official wiki to add and configure this single printer I have. Specifically, I download the needed driver from openprinting dot org. The site only has RPMs or DEBs, so I grabbed the x86 64-bit 2.0.0 (RPM for LSB 3.2) package; there is also a RPM for LSB 3.1 package (not sure if this makes a difference, though I don’t think so since both LSB 3.2 and 3.1 are well over a decade old at this point). I then extract the contents of the RPM and found Samsung-ML-2510-splix-en.ppd.gz, unzipped it, and uploaded that at step 8 as instructed. I finish everything up, and at the end, it says the printer has been successfully added.

But when I go to print a test page, it fails, and shows an error message saying File "/opt/OpenPrinting-SpliX/cups/lib/filter/rastertoqpdl" not available: No such file or directory. Earlier while extracting the RPM, I saw this executable in the package contents, so I transfer it by scp to the /opt dir of my IPFire host. And that previous error disappears, with the printer status now being this:

However test printing still fails, with the new error of Filter failed. See:

Looking at /var/log/cups/error_log, here are the first few lines logged around when the job errors out, which I think are the most relevant:

E [17/Jan/2021:21:29:53 -0500] [Client 119] Unable to encrypt connection: A TLS fatal alert has been received.
E [17/Jan/2021:21:29:53 -0500] [Job 4] Unable to open raster stream - : Broken pipe
E [17/Jan/2021:21:30:01 -0500] [Job 4] Job stopped due to filter errors; please consult the /var/log/cups/error_log file for details.
D [17/Jan/2021:21:30:01 -0500] [Job 4] The following messages were recorded from 21:29:53 to 21:30:01
D [17/Jan/2021:21:30:01 -0500] [Job 4] Loading attributes...
D [17/Jan/2021:21:30:01 -0500] [Job 4] Job restarted by user.
D [17/Jan/2021:21:30:01 -0500] [Job 4] time-at-processing=1610936993
D [17/Jan/2021:21:30:01 -0500] [Job 4] 4 filters for job:
D [17/Jan/2021:21:30:01 -0500] [Job 4] bannertopdf (application/vnd.cups-pdf-banner to application/pdf, cost 32)
D [17/Jan/2021:21:30:01 -0500] [Job 4] pdftopdf (application/pdf to application/vnd.cups-pdf, cost 66)
D [17/Jan/2021:21:30:01 -0500] [Job 4] gstoraster (application/vnd.cups-pdf to application/vnd.cups-raster, cost 99)
D [17/Jan/2021:21:30:01 -0500] [Job 4] /opt/OpenPrinting-SpliX/cups/lib/filter/rastertoqpdl (application/vnd.cups-raster to printer/printer, cost 0)

I’m not sure if what I did, like just simply copying that shared object binary to /opt, makes sense, maybe that didn’t actually solve the original underlying problem. Or I might just be missing something else.

I’ve never worked with CUPS or IPP before, so would appreciate the help.

Hi @jyscao

Have a look on the HP web site for a more recent ppd file. They have a .tar.gz file for Linux of the ML2510 printer driver from 2017.

Hi @jyscao

Googling about the raster files indicates that the usual place to have these filters stored is /usr/lib/cups/filter/

In this directory are other raster files such as rastertopdf, rastertops, rastertohp etc so you try placing the rastertoqpdl filter into that directory.

On Hp web site are present drive for your printer and manual: https://support.hp.com/it-it/drivers/selfservice/samsung-ml-2510-laser-printer-series/19134750

I’ve used Samsung printers, in earlier years, on Linux. It was not easy getting them working, because they require a specific binary filter “splix”, that can work with the parameters in the text file “ML2510…ppd.gz”. I can’t find that filter in IPFIre’s implementation of CUPS. IPFire also puts the CUPS package in a different directory from that used by most Linux - so simply copying the contents of the rpm package probably won’t work.

You might need to compile much more of the CUPS project into IPFire in order to get this working.

If you are running a Linux workstation then you could set up the printer on that, using the splix filter and share the queue to your LAN.

1 Like