CMake packaging and installation system for proprietary Kyocera CUPS drivers on Linux x86_64.
- Overview
- Supported Models
- Prerequisites
- Build & Install
- Packaging
- Uninstall
- Usage
- Troubleshooting
- Architecture
- Notice
- References
- License
kyocera_drivers bundles proprietary Kyocera rastertokpsl filter binaries and legacy PPD files into a modern CMake install system for Linux CUPS environments.
This project contains no compiled code. It is a pure packaging layer:
proprietary/rastertokpsl_amd64— x86_64 filter binaryproprietary/rastertokpsl_x86— x86 filter binaryproprietary/wrapper.sh.in— architecture-aware wrapper (configured at build time, installed asrastertokpsl)ppd/English/— bundled legacy PPD filespackage/kyocera_drivers.desktop— desktop integration entryCMakePresets.json— singledefaultpreset with packaging workflow
Bundled PPD files support the following Kyocera printers:
| Model | Type |
|---|---|
| FS-1020MFP | GDI |
| FS-1025MFP | GDI |
| FS-1040 | GDI |
| FS-1060DN | GDI |
| FS-1120MFP | GDI |
| FS-1125MFP | GDI |
Field tested: FS-1020MFP
- Linux x86_64 distribution with CUPS
cmake>= 3.31ninja- CUPS (for runtime)
# Fedora
sudo dnf install cmake ninja-build cups
# Ubuntu / Debian
sudo apt install cmake ninja-build cupsgit clone https://github.com/e-gleba/kyocera-drivers.git
cd kyocera-driverscmake --preset default
cmake --build --preset defaultsudo cmake --install build/default --prefix /usrOr as a single workflow:
cmake --workflow --preset defaultDEB, RPM and TGZ packages are generated automatically via CPack:
cmake --workflow --preset default
# packages appear in build/default/CI builds packages on every push and PR.
Releases are fully automated: push a tag v*.*.* and the Release workflow builds packages, generates release notes and attaches .deb, .rpm and .tar.gz as assets.
cd build/default
sudo xargs rm -f < install_manifest.txtAfter installation, CUPS recognizes the bundled Kyocera PPDs. Add a printer via the CUPS web UI (http://localhost:631) or lpadmin, selecting the installed Kyocera driver.
| Symptom | Resolution |
|---|---|
| Permission errors during install | Run with sudo. Ensure /usr/share/cups/model/Kyocera and /usr/lib/cups/filter are writable by root. |
| Missing dependencies during configure | Verify cmake and ninja are on PATH. |
| Filter runtime errors | Inspect /var/log/cups/error_log for CUPS-level diagnostics. |
| Incorrect page size or orientation | Ensure the selected PPD matches your exact printer model. |
flowchart LR
A[Application<br>PDF / PS / Image] -->|stdin / file| B[CUPS Scheduler<br>cupsd]
B --> C[pdftops / imagetoraster<br>CUPS built-in filter]
C --> D[rastertokpsl<br>Kyocera KPSL filter]
D -->|KPSL byte stream| E[USB / TCP / LPD<br>Printer backend]
E --> F[Kyocera Printer<br>FS-1020MFP / FS-1040 / ...]
flowchart TD
A[CMake >=3.31<br>Ninja] --> B[Configure]
B --> C[Build]
C --> D[Install Targets]
D --> E[lib/cups/filter/rastertokpsl]
D --> F[lib/cups/filter/rastertokpsl_amd64]
D --> G[lib/cups/filter/rastertokpsl_x86]
D --> H[share/cups/model/Kyocera/English/*.ppd]
D --> I[share/doc/kyocera_drivers/]
D --> J[share/applications/]
C --> K[CPack<br>DEB / RPM / TGZ]
Kyocera Document Solutions Inc. has transitioned to a universal driver model and cloud-centric print solutions. Legacy per-model PPD download endpoints are no longer maintained.
| Evidence | Source |
|---|---|
| Kyocera models supporting universal print | KYOCERA — Universal Print |
| Global download portal (consolidated packages) | KYOCERA Global Download |
| Legacy PPD archive (OpenPrinting) | OpenPrinting — Kyocera PPD Archive |
Because upstream no longer maintains legacy download infrastructure, automated PPD fetching is disabled by default (DOWNLOAD_PPDS=OFF). The default build path uses the bundled ppd/English/ directory.
- CMake — Installing and Testing
- SDB: Using Your Own Filters to Print with CUPS
- KYOCERA — Models Supporting Universal Print
- KYOCERA Global Download & Support Portal
- OpenPrinting — Kyocera PPD Archive
This project is licensed under the GNU General Public License v3.0. See license for the full text.