[cups] Dell B1160w on Raspberry Pi -- no pstospl filter for ARM? or is there a workaround?

Sean Greenslade sean at seangreenslade.com
Sun Oct 30 20:55:55 PDT 2016


On Sun, Oct 30, 2016 at 03:09:07PM -0400, Carl McCabe wrote:
> Hello CUPS list,
> 
> I am attempting to set up a Raspberry Pi with CUPS to serve as a wireless
> print server, connecting it to my Dell B1160w laser printer.  I have been
> unsuccessful and I am now trying to confirm whether or not there is a way
> to get it working.  I believe that points (5) and (6) below identify the
> problem and I'm wondering if the problem is surmountable.
> 
> What I have done:
> 
> (1) I installed CUPS on the Raspberry Pi, added my user to the lpadmin
> group, and updated cupsd.conf to make the cups web interface accessible
> over the local network.  The following is what I did through the web
> interface:
> 
> (2) When I use the web interface to "Administration > Find New Printers" I
> do see that my "Dell B1160w Mono Laser Printer (Dell B1160w Mono Laser
> Printer)" is recognized.  However, when I "Add This Printer", Dell printers
> are not found in the printer "Make" list.
> 
> (3) So I download the Linux PPD file directly from Dell, here:
> http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=M4HVD
> In the zip file, there are i386, noarch, and x86_64 directories.  Because
> the Raspberry Pi is an ARM processor, I decided to try the PPM file found
> in the noarch directory (/noarch/at_opt/share/ppd/B1160w.ppd).
> 
> (4) I copied the noarch B1160w.ppd file into /usr/share/ppd/cupsfilters/.
> --and then, back in the Add Printer web interface, Dell shows up in the
> Make field and "Dell B1160w Mono Laser Printer (en)" shows up in the Model
> select list.  With that selected, I'm able to add the printer.
> 
> ...but this is where my problems start and I am hoping for advice.
> 
> (5) When I tried to print a test page from the web interface, the Jobs tab
> immediately shows that the job is "stopped".  The Administration/Manage
> Printers page showed the following as the status for this printer:
> "Idle - "File "/usr/lib/cups/filter/pstospl" not available: No such file or
> directory""

And this is the ugly secret about PPD drivers: printer manufacturers can
(and often do) build proprietary communication protocols for their
printers, and all their PPD does is hand the print job off to a closed
source binary for translation.

> (6) The Administration/View Error Log page shows the following:
> "E [30/Oct/2016:14:27:28 -0400] Dell_B1160w_Mono_Laser_Printer: File
> "/usr/lib/cups/filter/pstospl" not available: No such file or directory
> E [30/Oct/2016:14:27:28 -0400] [Job 1] Unable to start filter "pstospl" -
> Success.
> E [30/Oct/2016:14:27:28 -0400] [Job 1] Stopping job because the scheduler
> could not execute a filter.
> E [30/Oct/2016:14:31:06 -0400] SSL shutdown failed: Error in the push
> function.
> E [30/Oct/2016:14:32:29 -0400] [Job 1] Stopping unresponsive job."
> 
> (7)   It seems that pstospl may be the missing link.  Looking in
> /usr/lib/cups/filter/, I do not see a pstospl file.
> 
> (8) So I searched through the files downloaded from Dell and find that
> pstospl (and pstosplc) are there, but only in the i386 and x86_64
> directories, not in the noarch directory.  Is this the problem, that no
> pstospl filter exists for ARM processors?

Yes. I have no personal experience with this printer, but from what I
gather (ref:
http://superuser.com/questions/637179/dell-b1260dn-printer-linux-open-source-driver
) they distribute a binary-only filter.

> (9) I took a chance on the i386 and x86_64 versions of pstospl  -- here's
> what happened with I "Print Test Page" using the i386 version and then the
> x86_64 (same outcome with both):
> Administration/Manage Printers status for the printer says "Idle - "Sending
> data to printer.""
> And the status message on the Jobs tab says "stopped *"Filter failed"*"

Binaries built for x86 will never work on ARM. End of discussion. If
Dell does not offer a version compiled for ARM, it just won't work.

Now, what you could do if you're dead-set on using the Pi as a print
server is to install it as a raw device. Then on all your x86 PCs that
are printing to it, you can install the proprietary Dell driver. Not
ideal, but it would do the job. I don't know if this would work if you
are trying to print from Windows machines, but it's worth trying.

--Sean




More information about the cups mailing list