You are not logged in.
Hello, everyone.
I have a printer that was maufactured approximately in 2011. It has been working well with various Linux distributions since then and up until now.
Printer type: Epson Stylus SX445W
Recently, CUPS stopped cooperating with the printer. When trying to print something, I got the following error message in a popup dialog box in Cinnamon DE (translated to English):
Printing failed
There was a problem processing document «Document.ods» (job 82).
I got the choices to click «Diagnose» or «OK». After clicking «Diagnose», I got an empty window with the headline «Troubleshooting for printing». That was not very helpful.
By hovering the mouse pointer over the printer application icon in the Cinnamon DE system tray, the following message appeared:
Status: The PPD version (5.3.4) is not compatible with Gutenprint 5.3.5. Please run ’/usr/bin/cups-genppdupdate’ as administrator.
Running sudo /usr/bin/cups-genppdupdate failed:
[foo@bar ~]$ sudo /usr/bin/cups-genppdupdate
/etc/cups/ppd/Epson-Stylus-SX445W.ppd: no valid candidate for replacement. Skipping
/etc/cups/ppd/Epson-Stylus-SX445W.ppd: please upgrade this PPD manually
Unable to retrieve PPD file for /etc/cups/ppd/Epson-Stylus-SX445W.ppd!
Failed to update any PPD files
I have no idea how to manually upgrade the PPD. With no further instructions, I turned to /var/log/cups/error_log to see if there were any further information available:
W [05/Nov/2023:18:37:45 +0100] Printer drivers are deprecated and will stop working in a future version of CUPS. See https://github.com/OpenPrinting/cups/issues/103
# [...]
# A large number of lines equivalent to the one above are repeated up until 22/Mar/2025.
# [...]
E [22/Mar/2025:12:11:48 +0100] [Job 82] The PPD version (5.3.4) is not compatible with Gutenprint 5.3.5. Please run `/usr/bin/cups-genppdupdate\' as administrator.
E [22/Mar/2025:12:11:48 +0100] [Job 82] cfFilterGhostscript: Unable to open raster stream - : Broken pipe
E [22/Mar/2025:12:11:48 +0100] [Job 82] Job stopped due to filter errors; please consult the /var/log/cups/error_log file for details.
The error appeared shortly after I performed an ordinary pacman syu, which did the following upgrade:
gutenprint (5.3.4-3 => 5.3.5-1)
As a temporary solution to the issue, I downgraded Gutenprint back to version 5.3.4-3:
sudo pacman -U /var/cache/pacman/pkg/gutenprint-5.3.4-3-x86_64.pkg.tar.zst
This made the printer working again, for now. But I don’t consider this a sustainable solution in the long term.
At https://github.com/OpenPrinting/cups/issues/103, it is announced that OpenPrinting CUPS v3.0 will remove printer driver support and support for raw queues. But it is also mentioned that one may migrate to standalone applications/services as a replacement. In a comment 25/Oct/2021, «tillkamppeter» states that:
Most existing free software CUPS drivers are already available in Printer Applications. They are in the 5 Printer Applications listed below.
[...]
Gutenprint Printer Application: Supports Epson and Canon inkjets, dye sublimation printers and several other printers. All adjustable parameters of the driver are available via the web interface.
At the Gutenprint web site --> Supported_Printers, Epson Stylus SX445W is mentioned as a supported printer for Gutenprint 5.3.5. Hence, I don’t understand why it does not work in my case.
How can I fix this? Any ideas, anyone?
Offline
/etc/cups/ppd/Epson-Stylus-SX445W.ppd doesn't appear to exist in any repo package .
Please post the output of pacman -Qo /etc/cups/ppd/Epson-Stylus-SX445W.ppd .
Where does this file come from ?
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
/etc/cups/ppd/Epson-Stylus-SX445W.ppd doesn't appear to exist in any repo package .
Please post the output of pacman -Qo /etc/cups/ppd/Epson-Stylus-SX445W.ppd .
Where does this file come from ?
Here you have it:
[foo@bar ~]$ sudo pacman -Qo /etc/cups/ppd/Epson-Stylus-SX445W.ppd
error: No package owns /etc/cups/ppd/Epson-Stylus-SX445W.ppd
I am not sure where this file comes from. Perhaps it could have been downloaded automatically (in which case I don't know from where), or auto-generated, as a part of the process of adding my printer in the system settings in Cinnamon? I added the printer shortly after installing Arch Linux in 2023, but I don't remember exactly what I did.
An extract from the beginning of the file:
*PPD-Adobe: "4.3"
*% PPD file for CUPS/Gutenprint.
*% Copyright 1993-2008 by Mike Sweet and Robert Krawitz.
*% This program is free software; you can redistribute it and/or
*% modify it under the terms of the GNU General Public License,
*% either version 2, or (at your option) any later version,
*% as published by the Free Software Foundation.
*%
*% This program is distributed in the hope that it will be useful, but
*% WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
*% or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
*% for more details.
*%
*% You should have received a copy of the GNU General Public License
*% along with this program. If not, see <https://www.gnu.org/licenses/>.
*%
*FormatVersion: "4.3"
*FileVersion: "5.3.4"
*LanguageVersion: English
*LanguageEncoding: ISOLatin1
*PCFileName: "STP01740.PPD"
*Manufacturer: "Epson"
*Product: "(Epson Stylus SX445W)"
*ModelName: "Epson Stylus SX445W"
*ShortNickName: "Epson Stylus SX445W"
*NickName: "Epson Stylus SX445W - CUPS+Gutenprint v5.3.4"
*PSVersion: "(3010.000) 0"
*LanguageLevel: "3"
*ColorDevice: True
*DefaultColorSpace: RGB
*cupsManualCopies: True
*FileSystem: False
*LandscapeOrientation: Plus90
*TTRasterizer: Type42
*cupsVersion: 1.2
*cupsFilter: "application/vnd.cups-raster 100 rastertogutenprint.5.3"
*cupsFilter: "application/vnd.cups-command 33 commandtoepson"
*cupsLanguages: "ca cs da de el en_GB es fi fr gl hr hu it ja nb nl pl pt ru sk sl sv tr uk vi zh_CN zh_TW"
Offline
https://download.ebz.epson.net/dsc/sear … archModule
=> https://download.ebz.epson.net/dsc/du/0 … 53f31762fb ?
1.8.6 is from october 2024
Also see https://aur.archlinux.org/packages?K=epson
=> https://aur.archlinux.org/packages/epso … nter-escpr ?
The ppd was probably installed from /usr/share/cups/model/gutenprint/5.3/Global/stp-escp2-sx445w.5.3.sim.ppd.gz when installing the printer?
https://archlinux.org/packages/extra/x8 … rint-ppds/
Offline
The ppd was probably installed from /usr/share/cups/model/gutenprint/5.3/Global/stp-escp2-sx445w.5.3.sim.ppd.gz when installing the printer?
https://archlinux.org/packages/extra/x8 … rint-ppds/
I could not find that file on my computer at the path mentioned. I have no subdirectory named «gutenprint» in /usr/share/cups/model.
However, I downloaded the .tar.(something) source files, and looked into them. What I found was a bunch of different .xml files, containing general parameters. I believe that some of the .xml files refer to paper sizes, while others refer to other things, like ink types, ink cartridges and so on.
Additionally, there are a few other .xml files that contains information about specific printer models, referring to which of the first mentioned .xml files would be applicable for each printer model.
I suspect that Gutenprint (or CUPS?) could be putting these pieces of information together, in order to create a custom ppd file on the fly whenever a user adds a new printer. But this is only my assumption. I have no knowledge about the source code, so I’m not sure about this. Anyway, if I’m right, this would explain the origin of my ppd file that Lone_Wolf asked about.
It could perhaps be the case that I need an escpr driver package... but which one?
epson-inkjet-printer-escpr? (Is this the old type of drivers that are using raw queues, which is now unsupported by CUPS?)
epson-inkjet-printer-escpr2? (The series for which my printer model belongs to, is not mentioned here.)
epson-inkjet-printer-filter? (What is this, exactly?)
Offline
However, I downloaded the .tar.(something) source files, and looked into them. What I found was a bunch of different .xml files
What?
This is the mentioned file from the linked packge - decompressed for your convenience:
http://0x0.st/8_ZX.ppd
It looks very much like the head you posted and even has
*StpPPDLocation: "/usr/share/cups/model/gutenprint/5.3/C/stp-escp2-sx445w.5.3.sim.ppd.gz"
to indicate the origin.
Does yours not?
Offline
What?
Sorry. I was a bit too unspecific. My bad.
I started here and navigated to the Upstream website. Then further to Download --> «our project page» --> gutenprint-5.3 --> 5.3.4 (which seemingly was the current version at the time when I installed Arch Linux). I downloaded the file «gutenprint-5.3.4.tar.bz2» and opened it with File Roller:
I navigated to the internal path /gutenprint-5.3.4/src/xml/printers. Inside the file escp2.xml there is this line:
<printer translate="name" name="Epson Stylus SX445W" driver="escp2-sx445w" manufacturer="Epson" model="121" parameters="standard_params" />
I navigated to the path /gutenprint-5.3.4/src/xml/escp2/model/. Inside the file model_121.xml, there is a lot of information about ink types, nozzles and so on.
The paths /gutenprint-5.3.4/src/xml/papers/, /gutenprint-5.3.4/src/xml/escp2/media/ and /gutenprint-5.3.4/src/xml/escp2/mediasizes/ contains .xml files that seems to be describing various paper and media sizes.
It seems that these pieces of information could be put together to produce .ppd files, so I assumed that this is what Gutenprint does when a user adds a new printer. But as I said, I’m not sure about this, so I could be wrong. Anyway, I guess this is a minor derailment that does not lead to a solution.
This is the mentioned file from the linked packge - decompressed for your convenience:
http://0x0.st/8_ZX.ppdIt looks very much like the head you posted and even has
*StpPPDLocation: "/usr/share/cups/model/gutenprint/5.3/C/stp-escp2-sx445w.5.3.sim.ppd.gz"
to indicate the origin.
Does yours not?
Thank you for clearing up. My .ppd file also indicates an origin, although not the exact same origin:
*StpPPDLocation: "/usr/share/cups/model/gutenprint/5.3/C/ppd/stp-escp2-sx445w.5.3.ppd"
But this is also strange, because, as I mentioned earlier, I have no subdirectory named «gutenprint» in /usr/share/cups/model.
For the record, I don’t recall ever having the package foomatic-db-gutenprint-ppds installed. Do you think that I should install it, or do I risk messing things up even more?
Last edited by SeagullFish (2025-04-06 09:37:01)
Offline
By the way, the package foomatic-db-gutenprint-ppds refers to the same upstream URL as the package Gutenprint. But I don't find any source files for foomatic-db-gutenprint-ppds at that web site. I find that a bit strange too.
Offline
from https://gitlab.archlinux.org/archlinux/ … n/PKGBUILD
pkgbase=gutenprint
pkgname=('gutenprint' 'foomatic-db-gutenprint-ppds')
It's a split package that has one PKGBUILD but creates two binary packages .
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
Try to replace the local ppd w/ the one I posted it resp. install the foomatic-db-gutenprint-ppds package and re-add the printer.
Offline
As an alternate approach, I just worked through this for my printer today for the manual update to the ppd file, different printer, but the below was able to resolve the issue for me. It did require foomatic-db-gutenprint-ppds to be installed to manually make a ppd file. I didn't try without step 1 so I'm including it in case.
1. in terminal cd into /ect/cups/ppd where your current ppd file is
2. run sudo cups-genppd.5.3 -v [your printer driver name] - I assume for you it would be sudo cups-genppd.5.3 -v 'Epson Stylus SX445W' . The link below is to the page on cups-genppd. Because gutenprint is now 5.3 you'll need to include .5.3 in the command though other docs have .5.2.
3. now you should be able to run sudo cups-genppdupdate and it will use the generated ppd file
4. restart cups - it'll prompt you to do this anyway, and then you should be able to print.
https://man.archlinux.org/man/cups-genppd.8.en - info on cups-genppd
Offline
Same problem here with a Canon Pixma MX 495, solved following the process explained by @Selvedge:
1. `sudo cups-genppd.5.3 -v 'Canon MX490 series'`
2. `sudo /usr/bin/cups-genppdupdate`
3. `sudo systemctl enable --now cups.service`
4. `sudo systemctl disable --now cups.service`
Offline