Proprietary Kyocera rastertokpsl filter and legacy PPDs, packaged for modern Linux CUPS. No compiled code — CMake/CPack packaging only. Linux x86_64.
Supported: FS-1020MFP · FS-1025MFP · FS-1040 · FS-1060DN · FS-1120MFP · FS-1125MFP (GDI).
Prebuilt .deb, .rpm and .tar.gz are attached to every release:
sudo dpkg -i kyocera_drivers-*-Linux.deb # Debian / Ubuntu
sudo rpm -i kyocera_drivers-*-Linux.rpm # Fedora / ALT LinuxFrom source — requires cmake ≥ 3.31, ninja, cups:
git clone https://github.com/e-gleba/kyocera-drivers.git
cd kyocera-drivers
cmake --preset default -DCMAKE_INSTALL_PREFIX=/usr
sudo cmake --install build/default --prefix=/usrEither way, finish with:
sudo systemctl restart cups
ls /usr/lib/cups/filter/rastertokpsl* # verify: wrapper + both binaries presentThen add the printer at http://localhost:631 and select the Kyocera PPD matching your exact model.
sudo xargs rm -f < build/default/install_manifest.txt # installed from source
sudo dpkg -r kyocera_drivers # installed from .deb
sudo rpm -e kyocera_drivers # installed from .rpmflowchart LR
A[Application<br>PDF / PS / Image] --> B[CUPS Scheduler<br>cupsd]
B --> C[CUPS filters<br>pdftops / imagetoraster]
C --> D[rastertokpsl<br>Kyocera KPSL filter]
D -->|KPSL byte stream| E[USB / network backend]
E --> F[Kyocera printer]
| Symptom | Fix |
|---|---|
rastertokpsl_amd64: No such file or directory, filter stops with status 127 |
Stale wrapper from an older release. sudo rm -f /usr/lib/cups/filter/rastertokpsl* /usr/local/lib/cups/filter/rastertokpsl*, then reinstall. |
No such preset "default" |
CMake ≥ 3.31 required — check cmake --version. |
| Filter errors at runtime | sudo tail -f /var/log/cups/error_log |
| Wrong page size or orientation | Selected PPD does not match the exact printer model. |
The issues below live in the external printing stack (Kyocera's proprietary binary, CUPS defaults, libcupsfilters) — not in this packaging layer. Each entry has a minimal reproducer so you can check whether you are affected before opening an issue here.
Before anything else, enable debug logging and watch a job's full lifecycle — the log names the exact filter that fails:
sudo cupsctl --debug-logging && sudo systemctl restart cups
sudo tail -F /var/log/cups/error_log | grep --line-buffered -E '\[Job'Kyocera's rastertokpsl binary aborts (SIGABRT/SIGSEGV) when the job title or username contains non-ASCII characters (e.g. Cyrillic on ru_RU.UTF-8 systems). The printer receives a partial KPSL stream and waits in "Processing" forever — only a power cycle recovers it. Windows is unaffected (different driver codebase).
# reproduce
lp -d <queue> -t "тест" /usr/share/cups/data/testprint
# check
sudo grep -E 'crashed|signal' /var/log/cups/error_log
# → "rastertokpsl) crashed on signal 11" or "stopped with status 1"Fix: replace the proprietary filter with the reverse-engineered open-source rastertokpsl-re (packaged in ALT Linux Sisyphus as rastertokpsl-re; installs over /usr/lib/cups/filter/rastertokpsl).
Note
The bundled wrapper.sh sanitizes the job title, but [[:alnum:]] also matches Cyrillic letters in UTF-8 locales — full protection requires forcing LC_ALL=C in the wrapper. The crash itself is in Kyocera's binary, not the wrapper.
References: rastertokpsl-re · OpenPrinting/cups#966 · Arch forums — FS-1061DN filter crash
CUPS ships with the stop-printer error policy: one failed filter halts the entire queue and every later job piles up behind it.
# check
lpstat -p <queue> # printer shows as stopped/disabled
# fix
sudo lpadmin -p <queue> -o printer-error-policy=abort-jobReference: Arch Wiki — CUPS/Troubleshooting
libcupsfilters 2.2.1 replaced qpdf with pdfio; the new page-count code in cfFilterGhostscript misreads its own intermediate PDF (Missing Root object) and aborts every job — PDF, PostScript, and test pages alike — before any data reaches the printer. Affects all *cupsFilter-based drivers, not just Kyocera. Fixed upstream by PR #167.
# reproduce
lp -d <queue> any.pdf
# check
sudo grep -E 'Missing Root object|Unexpected page count' /var/log/cups/error_log
rpm -q libcupsfilters # affected: 2.2.1 with pdfio 1.6.4; 2.1.1 with qpdf is fineFix: update libcupsfilters to a build containing the PR #167 fix, or downgrade to 2.1.1.
Reference: OpenPrinting/libcupsfilters#209
Kyocera has moved to a universal driver and cloud print model and no longer maintains legacy per-model PPD downloads (Universal Print, global portal). This repo therefore bundles the PPDs from the OpenPrinting archive in ppd/English/; automated fetching is disabled by default (DOWNLOAD_PPDS=OFF).
CMake Presets · CPack · SDB: Custom CUPS Filters · rastertokpsl-re
GPL-3.0 — see license.