Topics from the Open Printing microconference
On day two of the 2019 Linux Plumbers Conference, two of the principals behind the Open Printing project led the very first Open Printing microconference. Project leader Till Kamppeter and program manager Aveek Basu described the current state of printing on Linux and some of the plans for the future, including supporting scanning for multi-function devices. The picture they painted was rosy, at least for printing, which may not quite match the experience of many Linux users. As with many projects, though, Open Printing is starved for contributors—something that was reflected in the sparse attendance at the microconference.
Basu began by pointing out that some attendees had likely printed their boarding passes from Linux, which highlights the importance of printing for Linux. People use it for bank documents, transport tickets, and more. He has been at Lexmark for 11 years, working on printing for Linux, macOS, and other Unix-based systems. Kamppeter said that he has been the Open Printing leader since 2001. The idea of the project is to do everything possible to make printing "just work" with Linux and other operating systems; the goal is "plug and print".
Plug and print
The way printing support has been handled in the past is to get a driver for the printer from the manufacturer, Basu said. That driver effectively sits between the printer firmware and the application that wants to print. In order to get a new printer working, a user has to go to the web site, get the driver, and install it. Those are complicated steps; "it's a pain", he said.
Things have changed, however. Now, printing on Linux is (or can be) all "driverless" using the Internet Printing Protocol (IPP). A printer can simply be connected to the network and then the user can hit control-p, choose the new printer, and print to it. All of that is done without any user intervention: "no hassles". All modern printers are driverless, he said. That is what the project has accomplished over the last few years.
He showed a short video [YouTube] that demonstrated the process. It was run on an Ubuntu system, which has the latest code for IPP driverless support, Kamppeter said, since he is the maintainer of the printing packages for the distribution. The video showed a system that had a single printer available as shown in the CUPS web interface; once the network was enabled, the LibreOffice print dialog simply showed all the new printers without needing to do anything special. Sending the job to one of the new printers would cause it to just show up in the new print queue displayed by CUPS; no configuration was required.
The OpenPrinting project works closely with the IEEE-ISTO Printer Working Group (PWG), Kamppeter said. The PWG is a printing standards body that was started in the late 1990s by a consortium of printer makers. Its most important standard is IPP. Around 2000, CUPS came along and he started working on printing; he got CUPS into Linux. Now, CUPS is the only maintained printing suite for Linux.
The PWG has also worked on multi-function devices (e.g. printer/scanner), which are now more common than single-function printers. There is now a scanner interface in IPP, so driverless scanning is possible as well. That is a free and open standard, he said, as are all of those produced by the PWG. Adding IPP driverless scanning support is targeted as a Google Summer of Code (GSoC) project for 2020. Open Printing has been recruiting students in India every year for GSoC projects, he said; many end up staying with the project.
Apple took CUPS over when it bought the company behind it. For macOS, it still uses CUPS, but has switched to using proprietary filters to turn PDF into the printer's native language. Once that happened, Apple no longer wanted to maintain the free filters, so it turned them over to Open Printing. Kamppeter started the cups-filters project to house the filters along with some other useful CUPS-related code (e.g. cups-browsed).
Scanning
Later in the microconference, Basu described the efforts to make IPP driverless scanning a reality. He started by giving some more detail on how IPP driverless printing works. When a host system (e.g. laptop) is connected to the network, it sends out a multicast DNS (mDNS) query to discover the printers available (among other things). The printers respond to say whether they support driverless operation; if they do, they also send some basic information about their capabilities (e.g. color, resolution, duplex ability).
When the user wants to print something, the application will display the printers available and the user can choose one. Once they do, the host will query the full capabilities of the printer via IPP so that the options can be displayed as part of the print dialog. The user then chooses the settings they want and sends the print job to the device.
When he is wearing his Open Printing hat, Basu said, he strongly advocates that everyone should use driverless printers. It is a little different with his Lexmark hat on; some older printers can have their firmware upgraded so that they can become driverless, but others can't. All modern printers are driverless capable, he said; that includes Android devices. Apple is also strongly promoting driverless printing. CUPS will disable PostScript Printer Description (PPD) files some day (they have been deprecated for some time now)—driverless is clearly the way forward.
He was asked what he meant by "modern". Basu said that Lexmark printers from the last five to seven years either have it or are getting it via a firmware upgrade. He is not sure for other manufacturers but thinks that anything in the last four or five years should work; he suggested checking for firmware upgrades that might be available to add the driverless support. When buying a printer, a good test is whether it can print from a phone, Kamppeter said; Linux supports all four IPP standards for driverless printing, including Apple's AirPrint.
So there is good news on the printing front, Basu said, but he had to report some bad news as well. Nothing like what is available for printing works for scanning in Linux. There is a need for more contributions to get to that point. For now, scanner users need to follow the age-old process of installing drivers from the manufacturer.
A printer driver simply translates what the user wants to what the firmware and the hardware need, he said. If the user chooses to print in color, for example, the driver knows what command(s) it needs to send to the printer to make that happen. For a scanner, it is similar in some ways. A scanning operation gets set up with user-specified options but, instead of sending data to be printed, the scanner driver receives data from the scanner that can be displayed in the user interface or saved.
The idea is to work with the SANE developers to get IPP driverless scanning working on Linux. The standards are already defined, but there is no Linux infrastructure to support them. There are not many people working on Linux printing, so there is a need for more contributions. The collaboration with the SANE project has already started, but unless some people step up, printing will continue to move ahead, while scanning falls behind, Basu said.
Driverless scanning should mostly just work like driverless printing. New scanners should appear in a SANE dialog that would allow the user to pick the scanner of interest, set options, and then initiate the scan. As with printing, there are IPP requests to query capability information, initiate scan jobs, and so on. A multi-function device would provide two URIs (starting with "ipp://HOSTNAME"): "/ipp/print" and "/ipp/scan".
An attendee wondered about device support for driverless scanning. Basu said that device makers are supporting Apple's AirScan, but Kamppeter said he is not sure whether that is using IPP driverless scanning or not. So far, he does not know of any scanner makers that are supporting the standard, however. The other side of that coin is that there are no clients for Linux that support it either, he said in answer to another question. That is the focus of the GSoC project that it is hoped will be chosen by a student next year. There is also a need for mentors for Open Printing GSoC students, Basu said; anyone who might be able to help with mentoring would also be welcome.
They also clarified how driverless printing does away with the driver. Basu said that the host no longer needs device-specific software in order to print; it can get all of the information it needs through IPP requests. There are four standard formats for raster data, so filters that can turn PDF into any of those are sufficient to take the PDF input that is sent to CUPS and turn it into IPP commands plus raster data for printing.
Basu suggested that Open Printing is growing in popularity—it has recently been adopted by Chrome OS. An attendee from Google said that it uses CUPS, but does not use cups-browsed; it has its own mDNS-based discovery mechanism and print dialog. It is an open-source solution, he said, with the code available on the internet. It is IPP based, but still uses PPD files; the company is still working on all of that.
Basu said that having the client side of driverless scanning working for Linux would hopefully help motivate manufacturers to support that in their devices. If there is nothing available on the software side, support might well be slow in coming. Once again, contributor-power is the main gating factor in getting there.
This article only looked at two of the six sessions in the microconference. There was also discussion of common print dialog backends from former GSoC student Rithvik Patibandla, some information from Kamppeter on how non-IPP printers will be supported once PPD files are left behind, how the printer setup tools will be changing, and more. For a small project—but one with a big, important job—Open Printing seems to have made some good progress. No doubt it could be even better with more participation, which seemed like something that Kamppeter and Basu hoped would come out of the microconference. That remains to be seen, but it would be sad to see Linux fall (further) behind in the scanning department if more contributors cannot be found.
[I would like to thank LWN's travel sponsor, the Linux Foundation, for travel assistance to Lisbon for LPC.]
| Index entries for this article | |
|---|---|
| Conference | Linux Plumbers Conference/2019 |
