Native rebuild of the Dell 1320c / Fuji Xerox DocuPrint C525A CUPS filter chain.
Builds on Linux (x86_64, aarch64) and macOS (arm64).
Note, Linux aarch64 means you can run this on a raspberry pi, I'm using a Pi Zero and now have wireless printing!
This tree contains the working native path extracted from a larger reverse-engineering workspace and reduced to the distributable sources needed to build and install the driver.
Included filters:
FXM_PFFXM_MFFXM_PS2PM(shell script)FXM_PM2FXRFXM_SBPFXM_PRFXM_CCFXM_ALCFXM_HBPL
FXM_HBPL is built from the working fxr2hbpl implementation and installed under the expected Dell filter name.
Build from source
Linux
Dependencies: C compiler, CUPS development headers, Ghostscript.
Debian/Ubuntu:
sudo apt-get install build-essential libcups2-dev ghostscript
Fedora:
sudo dnf install gcc make cups-devel ghostscript
Then:
Installs filters to /opt/Dell1320/filter and PPD to /usr/share/ppd/Dell/Dell-1320c.ppd.
macOS
Dependencies (via Homebrew):
brew install cups ghostscript
Then:
Installs filters to /Library/Printers/Dell/filter and PPD to /Library/Printers/PPDs/Dell/Dell-1320c.ppd.
Pre-built binaries
Download the tarball for your platform from the latest release, extract it, and run sudo make install from the extracted directory.
Custom paths
make PREFIX=/custom/filter/root PPD_DIR=/custom/ppd/dir
Add the printer
Linux
Open your desktop printer settings or the CUPS web UI, add the printer, and select the Dell 1320c PPD.
Or from the command line:
sudo lpadmin -p Dell1320c -E \
-v "usb://Dell/Color%20Laser%201320c?serial=YOUR_SERIAL" \
-P /usr/share/ppd/Dell/Dell-1320c.ppd
sudo lpadmin -p Dell1320c -o Option1=1Tray-S -o FXInputSlot=1stTray-SmacOS
Open System Settings > Printers & Scanners, add the printer, and select the Dell 1320c PPD when prompted for a driver.
Or from the command line:
sudo lpadmin -p Dell1320c -E \
-v "usb://Dell/Color%20Laser%201320c?serial=YOUR_SERIAL" \
-P /Library/Printers/PPDs/Dell/Dell-1320c.ppd
sudo lpadmin -p Dell1320c -o Option1=1Tray-S -o FXInputSlot=1stTray-SValidation
This driver was validated in two ways.
1. Byte-for-byte oracle comparisons
The native filters were compared against the vendor Linux i386 filters on the same intermediate inputs.
Key verified areas:
FXM_ALC- structured synthetic cases
- random stress cases
- real captured color job from the working CUPS pipeline
FXM_PM2FXR- header fields and body checked against vendor output on direct test input
FXM_HBPLreplacement (fxr2hbpl/FXM_HBPL)- output after
@PJL ENTER LANGUAGE=HBPLmatched the vendor output byte-for-byte on the same input
- output after
For the HBPL stage, the remaining differences from the vendor output are in PJL metadata fields such as DATE, TIME, and @HOAD, which are environment/time dependent rather than raster-content dependent.
2. Real printer validation
The native chain was exercised on an actual Dell 1320c printer.
Confirmed working:
- color print job
- monochrome print job
- standard Linux CUPS test page
The full active print path was sampled during printing and completed without qemu-i386-static present in the runtime process list.
Scope and caveats
FXM_PFin this tree is a clean-room implementation based on observed behavior, not recovered vendor source.FXM_HBPLin this tree is the working clean-roomfxr2hbplimplementation under the expected Dell filter name.FXM_PS2PMremains a shell script wrapper around Ghostscript.- The included PPD is the single canonical PPD for this repo.
- This tree is intended to contain only the working native path, not the reverse-engineering artifacts.
- Linux desktop users should treat this like a normal CUPS driver package: install first, then add the printer in the GUI.
Notes
- Tray defaults are defined by the PPD and are not changed by the build.
- The active working setup uses the Dell PPD default
FXInputSlot=1stTray-S.