Exercise: Exploring Driverless Printer Attributes
The End of PPD Files
1 Purpose
In the legacy printing model, CUPS relied on a static text file (a PPD) to know what a printer could do. In the modern, driverless model, this is no longer necessary. This exercise demonstrates the final, most important piece of the IPP Everywhere standard: how CUPS dynamically learns a printer’s capabilities (like paper sizes and quality settings) directly from the device itself.
2 What You’ll Accomplish
By the end of this exercise, you will be able to:
- Use
lpstatto confirm a printer is using a driverless model. - Use
lpoptionsto list the options advertised by a virtual IPP printer. - Explain the conceptual difference between a static PPD file and dynamic IPP attributes.
This exercise maps to the following program and course learning outcomes:
- Course Learning Outcomes (CLOs):
- 1. Identify hardware and basic network components: This exercise explores how software (CUPS) dynamically identifies the capabilities of a modern network peripheral.
This exercise develops the following skills, which align with the O*NET SOC Code 15-1232.00 for Computer User Support Specialists.
| Learning Objective | O*NET KSAs | Technologies Used |
|---|---|---|
| Explore dynamically-provided printer attributes. | Knowledge: Computers & Electronics, Telecommunications Skills: Systems Analysis |
IPP, lpoptions, lpstat |
3 Prerequisites
This exercise requires a running Fedora 43 virtual machine where you have completed Exercise 10.2 and the ippeveprinter.service is active and running.
4 Step-by-Step Guide
4.1 Step 1: Confirm the Driverless Model
First, let’s ask CUPS how it is configured to handle our IPP-Persistent-Printer.
Open a terminal.
Run the following
lpstatcommand to get a long-form status of the printer:lpstat -l -p IPP-Persistent-PrinterAnalyze the Output: Look at the line that begins
Interface:. You will see a path to a script, but you will notice there is no mention of a PPD file. This is our first clue that CUPS is not using a legacy driver.
4.2 Step 2: List the Printer’s Options
If there’s no PPD file, how does CUPS know what paper sizes or quality options to offer? It asks the printer directly. We can see the results of that query using lpoptions.
Run the command to list the options for
IPP-Persistent-Printer:lpoptions -p IPP-Persistent-Printer -lAnalyze the Output: You will see a list of all the configurable options for the printer, such as:
PageSize/Media Size: *A4 Letter ...InputSlot/Media Source: *DefaultcupsPrintQuality/Print Quality: *Normal High- And many more.
4.3 Step 3: Understanding the Concept
This is the core of driverless printing. The list of options you just saw was not read from a static configuration file on your computer.
When you created the queue with -m everywhere, CUPS queried the device at the URI (ipp://localhost:8631/...) and asked: “What can you do?”. The ippeveprinter service responded with a list of its capabilities (paper sizes, quality levels, etc.). CUPS then stored these dynamic attributes.
This means you no longer need to find and install a specific PPD file for every printer model. As long as the printer and the computer both speak the “IPP Everywhere” language, printing just works.
5 Reflect and Review
Now that you have completed this exercise, reflect on your experience in your personal notes:
- 3 printer options you saw in the
lpoptionsoutput. - 2 commands you used in this exercise.
- 1 question you still have about how CUPS stores dynamic attributes.
Answer these questions in your notes to solidify your understanding:
- In a driverless setup, where does CUPS get the printer’s options (like
PageSize) from? - What command is used to list these options for a specific printer?
- Why was there no
.ppdfile listed in the output of thelpstatcommand for ourIPP-Printer? - What does the
-m everywhereflag forlpadminsignify?