CUPS driver list

The list of drivers that appears in the web interface is pretty long. Where do they come from?

When enumeration is requested by the web interface, or by running lpinfo -m, cupsd fires up cups-driverd(8) which appears to look for the following:

PPD files in the filesystem

cause lpinfo -m to produce lines in the format lsb/tag/ppdname description

tag is a string corresponding to the directory searched (usr for /usr/share/ppd, local for /usr/share/local/ppd, ...)

example:
  • lsb/usr/foo2zjs/Samsung-CLP-300.ppd.gz Samsung CLP-300 Foomatic/foo2qpdl (recommended)
drivers

live in /usr/lib/cups/driver

when executed with an argument of list are expected to list all known PPD files

when executed with cat are expected to produce a PPD file

more details in the cups-driverd man page

cause lpinfo -m to produce output in the format driver:ppdname description

example:
  • foomatic:HP-DeskJet_950C-pcl3.ppd HP DeskJet 950C Foomatic/pcl3
ppdc source files

live in /usr/share/cups/drv

not mentioned in cups-driver man page; described in ppdcfile(5)

each file is converted into multiple PPD files by ppdc(1)

cause lpinfo -m to produce output in the format drv:///ppdcfile/ppdname description

example:
  • drv:///hpijs.drv/hp-officejet_4200_series-hpijs.ppd HP Officejet 4200 series Foomatic/hpijs, hpijs 2.8.6b

Running cups-driverd by hand is quite illuminating:

A 'driver' may register itself with CUPS using multiple methods. So installing both foomatic-db-engine and foomatic-db (as they are called in Debian) may not be necessary.

robots.org.uk: CUPSDriverList (last edited 2017-02-20 11:53:03 by sam)

© Sam Morris <sam@robots.org.uk>.
Content may be distributed and modified providing this notice is preserved.