Hello.
Lately I spend several days struggling with network printing in openSUSE. I have one machine running Leap 15.1 with three USB printers connected to it. They are:
EPSON L132 - using the proprietary Epson drivers (link)
HP Deskjet 930C - using the commercial Turboprint driver
HP Deskjet Ink Advantage 3835 - using the open source HPLIP driver
I was trying to add these printers on another machine within the same LAN, running the same OS.
As such, I configured Firewalld to allow CUPS and the IPP services on both sides, opened http://localhost:631 on the client and added the first printer using the URI:
ipp://192.168.88.11:631/printers/EPSON_L132_Series
Where 192.168.88.11 is the printing server and EPSON_L132_Series is the correct printer name. Then I selected the proper PPDZ provided by Epson, completed the setup and tried to print something.
The CUPS system responded with the ‘Filter failed’ message and the printer remained silent.
I set up my older Deskjet 930C with Turboprint, using the same URI scheme. It added correctly and I was able to see the ink level on the client. I could even do the nozzle check remotely, which triggered printing the self-test page built right inside the printer firmware. However, I could not print anything - the TurboPrint monitor would pop-up as if the page was being printed, but nothing was really done. No ‘Filter failed’ message was there in case of TurboPrint.
The third printer was a rather modern HP multi-function device with its own Wi-Fi hot spot. I was able to add it using the ‘hp-setup’ program from HPLIP without dealing with my print server machine.
First, I checked the behavior of my IPP setup by testing elementaryOS and Rosa distros in their live modes. No issues were present within these systems after the same steps - all remote USB printers could print just fine.
Then I returned to openSUSE, disabled FirewallD on both the client and the server, added my user to lp, lpadmin groups (just in case), but it did not help.
I googled around and found similar topics:
https://forums.opensuse.org/showthread.php/537731-No-Printing-with-quot-Filter-failed-quot
https://forums.opensuse.org/showthread.php/509984-Print-job-stopped-after-Filter-failed
However, I did not have anything like that in my CUPS error log. I was already desperate before I finally found the solution here:
https://forums.opensuse.org/showthread.php/536803-Epson-4530-printer?p=2910668#post2910668
In my case CUPS tried to filter the task twice: one time on the client side, and the second time on the server’s side. I edited the PPD file on the client and changed the folllowing line:
*cupsFilter: "application/vnd.cups-raster 0 /opt/epson-inkjet-printer-201411w/cups/lib/filter/epson_inkjet_printer_filter"
to
*cupsFilter: "*/* 0 -"
After that all my headaches were gone. My printers started to print everything like a charm!
However, I feel that my workaround is not the most elegant solution, especially given the fact that cups-filters in other Linux distros work correctly out of the box. Maybe I am missing somthing?
P.S. Thanks in advance and sorry for the wordy description!