Fedora contemplates the driverless printing future
Traditionally, getting a printer working on Linux has involved, among other things, locating and installing the appropriate printer drivers and PostScript printer definition (PPD) files to allow the system to communicate with the printer using whatever special dialect it favors. Often that involves installing a separate package like hplip, often supplied by the printer vendor. Some vendors have traditionally supported Linux better than others, but none of their products seem to work as smoothly as one would like. While printer setup on Linux has definitely improved over the years, it still easy to dread having to make a new printer work.
The Internet Printing Protocol
In this context, it is noteworthy that the maintainers of the CUPS system, which handles printing on Linux, have an outstanding issue (since moved) calling for the removal of its support for printer drivers. The Fedora development list also discussed this idea in late May. There are changes coming in the printing world, and users are naturally curious about when and how those changes will affect them.
Those who have not been following developments in printing may wonder why it would make sense to remove printer drivers, since those are what make the printers actually work. The answer is the Internet Printing Protocol (IPP) and, specifically, a derivative called IPP Everywhere. The idea is simple enough: what if all printers implemented the same protocol so that any software could print to them without the need to install special drivers or, indeed, perform any configuration work at all? Like many things, IPP Everywhere seems to be motivated by the desire to interoperate with smartphones, but it is useful in a wider context as well.
In the IPP Everywhere future, printers simply work. They make themselves known to the network via multicast DNS, allowing other machines on the network to discover them. The protocol allows the printer to communicate its capabilities and accept settings, so features like duplex printing and paper-tray selection work. IPP Everywhere describes a small set of known formats for material to be printed, so there is no need for special drivers for format conversion. Users simply need to indicate their desire to print something, select between the available printers and printing options, install the new toner cartridge that the printer inevitably demands, then file the resulting output in the recycling bin. It's a printing paradise.
Or, at least, it will be a printing paradise one of these days. Given that IPP Everywhere has been around since 2010, one might think that we should have arrived already, but there are some remaining issues.
Does it work?
CUPS has long had support for IPP Everywhere, and distributions have
generally enabled that support. But it still doesn't seem to be the
default way to use printers on Linux. For example, a search for how to
set up your editor's Brother laser printer on Linux results in a visit to
Brother's
driver page; after a somewhat fraught process the printer can be
made to work well — but it's not a transparent or driverless experience.
That printer is supposed to support IPP Everywhere, though, and it can be seen in the output of avahi-browse. Android devices can successfully print to it. That means, with any remotely modern version of Linux, the printer should show up automatically when trying to print a file, without the need to set up a queue at all. It does indeed appear, but an attempt to use it results in the print dialog hanging before the user can even hit the "print" button. That experience may be driverless, and it certainly results in a reduction of wasted paper, but it's also less than fully satisfying.
What about adding a queue explicitly? Firing up the "add a printer" dialog on a freshly installed Fedora 34 system produces a blank window — not the experience a printer user is looking for either. Typing in the IP address for the printer (something most users naturally have at the tips of their fingers) yields the display seen to the right: five options, with no real indication of which one — if any — is correct. In fact, only the final option in the list works at all, and it takes several minutes to print a page, for reasons that are unclear to anybody not initiated into the deep magic of CUPS.
If, instead, one simply tells CUPS to use the printer as an IPP Everywhere
device with a command like:
# lpadmin -p NewPrinter -E -v ipp://10.0.0.16/ipp -m everywhere
The printer works well, immediately. It began, of course, by communicating its appetite for a new toner cartridge to the Fedora system, which duly passed the request on. So IPP Everywhere does work, at some level, on both ends of the connection, but some of the glue is seemingly not yet fully in place.
Most distributors have been working on support for driverless printing. The curious can find instructions online for Arch Linux, Debian (and Ubuntu), Fedora, Gentoo, Red Hat, and others. SUSE and openSUSE seem to be the biggest exception, unless your editor's search skills have failed.
Old printers
In theory, almost all printers made in the last ten years should support IPP Everywhere. It seems that most do, even though the list of certified printers is conspicuously missing a number of vendors. But not everybody has a printer that recent; printers can stay around for a long time. The removal of printer drivers from CUPS (and the distributions using it) means the removal of support for all of those devices. It is fair to say that doesn't sit well with the owners of such hardware.
The intended solution to this problem is "printer applications": programs that can speak to a certain class of printers while implementing the IPP Everywhere protocol to connect those printers to CUPS. Only a handful of those exist now; they include LPrint, which can drive a set of label printers. Work is underway to support others, including the "foo2zjs" devices that show up as IPP Everywhere printers, but which still need special drivers to work. Implementing more printer applications features prominently in the OpenPrinting Google Summer of Code plans this year.
This does not satisfy all users out there, many of whom got their printers working after a fair amount of struggle and do not relish the idea of having to go through that process again with a new system. Some worry that there will be CUPS-supported printers that never get printer-application support; that may well happen, but it's not clear how many users will be affected by the loss of support for some ancient devices. Others complain that this transition is a lot of churn for no real benefit; Solomon Peachy answered that concern this way:
We're closer than ever to a universal printing system that is not tied to any specific OS or client, and that behaves identically no matter where or how the printer is attached. Underpinning all of this are formally standardized protocols (and equally importantly, well-defined behaviors), Free Software reference implementations and conformance tests.
For many of us, that universal printing system can't come soon enough, if it works as well as it is intended to. Should that happen, there is likely to be little lamentation over the loss of printer drivers.
Fake printers
There is one other concern that came up in the Fedora conversation, though.
In a world where printers just show up on the net, what is to prevent an
attacker from putting up fake printers in the hope of capturing documents
with interesting contents? There does not seem to have been much effort
put into addressing this scenario; as Zdenek Dohnal put
it: "CUPS discovery is designed to run on secure, private LAN, so
it is expected that you have a protection against somebody connecting to
your WIFI.
" Peachy added that, if an
attacker has a sufficient presence on the local network to advertise a
false printer, they can probably do worse things than that.
IPP does have provisions for authentication and such, but employing them would take away much of the convenience that the protocol is meant to provide in the first place. So the general attitude toward security is likely to remain as Dohnal described it: the local network is expected to be secure.
In a related issue, some participants in the discussion expressed concerns that some IPP Everywhere devices work by routing print jobs through cloud-based services. Indeed, the Android print dialog, when printing to the above-mentioned Brother printer, warns that the document may pass through third-party servers — something that does not appear to actually happen in this case. The idea of a local printer that fails when the Internet is down lacks appeal, but somehow we seem to be heading toward that world anyway.
When?
The CUPS project has been working toward a driverless future for many years; the use of PPD files was first deprecated in the 1.4 release in 2009, even though there was no replacement for them at that time. The project finally deprecated printer drivers with the 2.3 release in 2019. "Deprecated" is not the same as "removed", though; this deprecation was intended to draw attention to the forthcoming change. As can be seen with PPD files (which are still supported), there can be a long time between deprecation and removal.
That said, the plan is apparently to remove printer drivers in the next major CUPS release, for which there does not currently appear to be a target date. The project has not made a release since 2.3.3 came out in April 2020, so things do not seem to be moving all that quickly there at the moment. There is probably some time for distributors and users to prepare for this change.
That is a good thing. Even if most printers are supported reasonably well
by IPP Everywhere, there will be a lot of users of printer drivers out
there, and a lot of users with older printers as well. There will need to
be a lot of work and testing done if the first distributions that release with
CUPS 2.4 are to not break vast numbers of printing setups. If that can be
done, though, perhaps printers can finally join modems as devices that
simply work without the need for a lot of messing around.
Posted Jun 4, 2021 15:59 UTC (Fri)
by re:fi.64 (subscriber, #132628)
[Link] (3 responses)
That being said, I did not realize IPP Everywhere even existed and am eager to try it now. I have 4 different copies of our Brother printer, one of which contains the word "Working" because...well, it's the only one that works.
Posted Jun 4, 2021 17:18 UTC (Fri)
by farnz (subscriber, #17727)
[Link] (2 responses)
That's what printer applications are supposed to help with; a printer application is an application that makes it look like your printer is an IPP Everywhere printer, even if it needs a driver or similar - the driver is embedded in the printer application.
Posted Jun 14, 2021 7:34 UTC (Mon)
by cpitrat (subscriber, #116459)
[Link] (1 responses)
Posted Jun 14, 2021 10:16 UTC (Mon)
by farnz (subscriber, #17727)
[Link]
Couple of reasons:
Basically, doing a good job of an application that supports existing PPD files and the matching CUPS raster drivers is an engineering effort on a par with using PAPPL to write printer applications for those printers that don't do IPP Everywhere already.
Posted Jun 4, 2021 16:26 UTC (Fri)
by tajyrink (subscriber, #2750)
[Link] (1 responses)
Posted Jun 7, 2021 5:13 UTC (Mon)
by abbe (subscriber, #137089)
[Link]
Posted Jun 4, 2021 16:29 UTC (Fri)
by jepler (subscriber, #105975)
[Link] (8 responses)
Posted Jun 4, 2021 17:44 UTC (Fri)
by pbonzini (subscriber, #60935)
[Link] (6 responses)
My Pi does a bit more than run CUPS, as it also run the home DNS/DHCP server, acts as a Wifi access point, and has an MQTT broker. Last but not least it updates a Google spreadsheet, with server side macro magic that sends me email if there's no electricity at home (it saved the contents of the freezer once). The Pi has been on for about 8.5 years, 24/7, and works flawlessly.
It works just fine from all of Linux, Windows and macOS.
Posted Jun 4, 2021 17:57 UTC (Fri)
by adam820 (subscriber, #101353)
[Link] (2 responses)
Posted Jun 4, 2021 17:59 UTC (Fri)
by pbonzini (subscriber, #60935)
[Link]
Posted Jun 6, 2021 18:06 UTC (Sun)
by mike.cloaked (subscriber, #63120)
[Link]
Posted Jun 5, 2021 3:38 UTC (Sat)
by rsidd (subscriber, #2582)
[Link] (2 responses)
Posted Jun 20, 2021 18:17 UTC (Sun)
by malor (guest, #2973)
[Link] (1 responses)
Posted Jun 24, 2021 17:56 UTC (Thu)
by jezuch (subscriber, #52988)
[Link]
Posted Jun 9, 2021 14:00 UTC (Wed)
by JanC_ (guest, #34940)
[Link]
Posted Jun 4, 2021 17:57 UTC (Fri)
by james (subscriber, #1325)
[Link] (4 responses)
So this is not just about old printers. Brand new printers will need these printer applications or stop working.
Posted Jun 4, 2021 19:28 UTC (Fri)
by pizza (subscriber, #46)
[Link] (3 responses)
There's nothing that requires the printer to listen specifically on port 631; the actual service port is advertised via mDNS.
Meanwhile, Epson claims that the ET-2700 series is supported by both Android Print and Apple AirPrint, which means it will operate in a driverless manner via IPP.
Posted Jun 4, 2021 20:04 UTC (Fri)
by james (subscriber, #1325)
[Link] (2 responses)
And the Epson documentation I've found says "you can send documents to print from smart devices using the Epson iPrint³ app". I can't find any documentation from Epson saying you can print to this printer from "smart devices" without the app.
(The footnote says "3.Requires a wireless connection to the internet", and I suspect the driver is cloud-based. Grr.)
Posted Jun 4, 2021 20:14 UTC (Fri)
by pizza (subscriber, #46)
[Link] (1 responses)
Also, IIRC, the Epson iPrint app will work locally, if the printer is local -- where relaying through the internet becomes necessary is if you're trying to print to configured printer that's behind a firewall. In any case, you can use native Android or Airprint functionality without that app.
Posted Jun 5, 2021 10:01 UTC (Sat)
by james (subscriber, #1325)
[Link]
For one thing, they don't have a web site. They try really hard to send you to a per-country web site, each with a twisty maze of similar pages, all different. I can't even find any "filter by feature set" with "airprint" or "android print" as options. Epson's UK web site has a helpful "Plug & play (built in driver)" filter, and you'd think IPP printers would count.
It lists one printer.
They do have "Mobile solutions" or similar phrasing as an option on a number of web sites -- but if their app supports it, that counts.
In any case, I think it's fairly clear that this printer Epson are still pushing doesn't support IPP at all. Other similar ones might, but this doesn't.
At least I can print with open source software (on the computer). And recent updates seem to have got the scanner working, if only at 300 dpi maximum.
Posted Jun 4, 2021 18:15 UTC (Fri)
by syrjala (subscriber, #47399)
[Link] (13 responses)
Posted Jun 4, 2021 19:43 UTC (Fri)
by pizza (subscriber, #46)
[Link] (12 responses)
The short answer is that "splitting CUPS into two parts" is effectively the current plan. The part called CUPS will keep only the IPP-related stuff, and if necessary, the "legacy stuff" will become the basis of a fallback "printer application" of last resort.
The goal is to get all known F/OSS CUPS drivers converted to native printer applications, leaving only proprietary drivers (which are already problematic)
> Could at least avoid each "printer application" having its own ad-hoc configuration system and bugs.
That's one of the goals of PAPPL.
Posted Jun 4, 2021 20:04 UTC (Fri)
by Paf (subscriber, #91811)
[Link] (11 responses)
Why doesn’t splitting CUPS allow the “driver using” half of CUPS to serve as a *general* printer application? And why isn’t that the idea?
Posted Jun 4, 2021 20:40 UTC (Fri)
by pizza (subscriber, #46)
[Link] (10 responses)
The old name for such things was "raster image processor"
But yes, in theory every individual printer could have a unique "application" which sounds awful until you consider that every printer already does have one, only it's embedded into the printer itself.
In practice, entire printer families will be supported by a single "printer application" -- eg any printer that speaks postscript and has a PPD is handled by ps-printer-app, dymo and zebra label printers work using lprint, and the (eventual) gutenprint printer app will handle 3500 or so separate models from multiple manufacturers.
> Why doesn’t splitting CUPS allow the “driver using” half of CUPS to serve as a *general* printer application? And why isn’t that the idea?
The simple reason is that CUPS is not structured to (easily) have multiple relatively ephemeral self-contained server instances running on a system, and restructuring it to do so is a substantial undertaking. (current) CUPS also only implements a subset of the IPP spec, and there's no way to automagically map the considerable breadth of individual printer functionality from PPD options to standard IPP attributes, so per-printer tweaks are all but guaranteed. Work is being done on all of these fronts.
Posted Jun 5, 2021 18:23 UTC (Sat)
by Paf (subscriber, #91811)
[Link]
Posted Jun 5, 2021 18:30 UTC (Sat)
by knan (subscriber, #3940)
[Link] (8 responses)
And if this is something that needs to be compiled per os and arch, what exactly has been gained?
- snarky old fart
Posted Jun 6, 2021 1:54 UTC (Sun)
by Paf (subscriber, #91811)
[Link] (6 responses)
Posted Jun 6, 2021 2:46 UTC (Sun)
by pizza (subscriber, #46)
[Link]
The legacy CUPS model requires the printing stack (or at least one part of the "driver") to have root access, which rather defeats the point of sandboxing relatively untrusted applications.
CUPS isn't trying to "make its architecture sane" for its own sake; while it represented a vast improvement over what came before, the old approach has reached the end of its ability to grow/scale to meet current (much less future) needs.
(In many ways, this is similar to the X11 -> Wayland transition -- except nearly every printer manufactured for the past decade is already Wayland-native, and these "printer applications" are akin to XWayland to allow older printers to keep working)
> The move from drivers to printer apps seems in most ways like a significant step backwards.
Not from a typical end-user's perspective.
Posted Jun 6, 2021 7:50 UTC (Sun)
by smurf (subscriber, #17840)
[Link] (4 responses)
Consider a USB-connected label printer. It supports wildly disparate cartridges for different sizes (or even endless w/ cutter). You typically ask the printer what's loaded right now, then send it an appropriate bitstream of things to print.
Now a sane workflow would be "people send whatever print jobs to this printer, it pops up some dialog which cartridge you should insert next, then prints all jobs for that cartridge. Repeat". Or "you have three printers with different cartridges. The print dialog shows which one is loaded with what. You send the job to the appropriate printer".
CUPS as it is now is unable to support any of this because the printer driver simply reads Postscript on stdin and sends the raster data to stdout, which another printer-agnostic driver feeds to USB. CUPS thus can only blindly send the data stream to the printer: the printer reports an error, the print job is lost and the printer is wedged and needs to be power cycled. Bah. Even if you got rid of the USB driver you still can't reflect the printer state in your print dialog.
Posted Jun 6, 2021 12:23 UTC (Sun)
by pizza (subscriber, #46)
[Link] (2 responses)
For a very long time, (15+ years) CUPS has provided a backchannel and standardized ways to query and percolate media type, status reporting, and whatnot up through the stack (including providing info that UIs could use to restrict option selections to valid combinations) but in practice very few drivers ever properly implemented this, because it was complex (due to the very loose coupling between layers), brittle (again due to the loose coupling), and nearly zero UI/frontend support for this stuff.
This stuff is the main reason I'm looking forward to a native, end-end IPP printing flow. Printer Apps are more complex than an individual CUPS filter driver, but the bidirectional-from-the-start paradigm (unlike the largely fire-and-forget^H^H^H^H^Hpray model of yesteryear) affords far tighter internal integration, enabling considerably improved -- and vastly more reliable -- functionality.
(I say this as not only a heavy daily user of the legacy CUPS driver paradigm, but as someone who has spent nearly a decade writing CUPS drivers+backends and dealing with the endless support headaches. Many of the recurring pain points simply go away under this new Driverless paradigm -- but in the mean time, suffice it to say there's a ton of bailing wire, duct tape, and goat blood barely holding the creaky mess together, and users still have to bypass CUPS altogether for common management/maintenance tasks)
Posted Jun 6, 2021 13:41 UTC (Sun)
by smurf (subscriber, #17840)
[Link] (1 responses)
Posted Jun 7, 2021 19:13 UTC (Mon)
by pizza (subscriber, #46)
[Link]
IIRC the CUPS backend API [1] has always [2] supported a backchannel. But it's not guaranteed to be present/functional [3], so individual filters/divers rarely utilized it -- Ironically, most of those that did were proprietary drivers for MacOS.
[1] https://www.cups.org/doc/man-backend.html
Posted Jun 7, 2021 18:19 UTC (Mon)
by Wol (subscriber, #4433)
[Link]
This sounds like the spooler I was dealing with DECADES ago in the early 80s.
Although I think you needed to create multiple queues for the different configurations, and you'd stop the current queue, change the configuration, and activate the new queue. You CAN sort-of do that with windows, but it's not particularly easy ...
Cheers,
Posted Jun 6, 2021 21:49 UTC (Sun)
by marcH (subscriber, #57642)
[Link]
That was my first impression too. Some comments here describe some tangible advantages of moving stuff around and changing abstraction layers beyond mere "coolness" (thx!) but I think a follow-up article could be easier to read than the comments in this one.
Posted Jun 4, 2021 19:03 UTC (Fri)
by cesarb (subscriber, #6266)
[Link] (2 responses)
Posted Jun 4, 2021 21:21 UTC (Fri)
by pbonzini (subscriber, #60935)
[Link]
Posted Jun 4, 2021 23:10 UTC (Fri)
by gnoutchd (guest, #121472)
[Link]
Posted Jun 4, 2021 19:32 UTC (Fri)
by jkingweb (subscriber, #113039)
[Link] (1 responses)
Posted Jun 5, 2021 20:18 UTC (Sat)
by pbonzini (subscriber, #60935)
[Link]
Posted Jun 4, 2021 20:16 UTC (Fri)
by dullfire (guest, #111432)
[Link] (6 responses)
Posted Jun 4, 2021 20:46 UTC (Fri)
by pizza (subscriber, #46)
[Link] (5 responses)
FWIW, "localhost" is "on the network" and is how already CUPS operates today.
User applications don't talk directly to the printer, they talk to the local CUPS instance or invoke helpers that do so. (eg lp/lpr) So this new paradigm isn't any different.
Posted Jun 5, 2021 3:31 UTC (Sat)
by dullfire (guest, #111432)
[Link] (4 responses)
In case it was in any way unclear: by "put their printers on the network" I meant "plug the printer into an RJ-45 jack, or give it access to wifi, or plug in a fiber line, or any upl-ink that is typically connected to multiple systems, and not just one machine." I would have thought that was self-evident, especially considering that the article is about requiring printers use IPP (which I'm pretty sure won't work over raw usb, it would probably have to be encapsulated in some transport that supports IP first). However maybe that's just my perspective, and host actually shared by other people.
PS. claiming "localhost" is on the network is kind of a pointless thing. Maybe next we should say "lo is the only interface needed to be networked".
Posted Jun 5, 2021 7:44 UTC (Sat)
by randomguy3 (subscriber, #71063)
[Link]
Posted Jun 5, 2021 18:29 UTC (Sat)
by Paf (subscriber, #91811)
[Link]
Using network software and concepts is, for a locally connected printer, an implementation detail.
IPP uses network services as an implementation detail, even for USB connected printers, but it does not require “network access” in the sense of any of this being visible beyond the printer and the machine it’s connected to.
Think of it as IPP over USB. It’s using IP. And it’s using *a* network (sort of, in the sense that the endpoints are using networking protocols to communicate), but there’s no need for it to be on *your network*.
So this is a way to use IPP everywhere rather than having a custom USB solution. And unless your objection is literally to the use of IP protocols, this seems fine.
Posted Jun 7, 2021 16:49 UTC (Mon)
by gnoutchd (guest, #121472)
[Link] (1 responses)
No, pizza understood you perfectly. "On the network" in this case means "reachable by code that knows how to open an AF_INET socket". There's no reason that can't be a local USB-connected printer as long as you have a driver that binds to a port on localhost and speaks the same protocol that a network printer would speak. ipp-usb is exactly that for any printer that supports IPP-over-USB, a standard widely implemented by modern printers. It's installed and enabled out-of-the-box by current or upcoming distro releases.
Posted Jun 7, 2021 20:55 UTC (Mon)
by marcH (subscriber, #57642)
[Link]
localhost is the special "network" with a single host and it's not "pointless": high-level printing protocols (just like most TCP/IP protocols) don't want to know which particular networks your printer is connected to. It's much simpler when "everything is a network" and networking implementation details and choices stay private to you.
Posted Jun 4, 2021 20:24 UTC (Fri)
by joib (subscriber, #8541)
[Link]
Posted Jun 5, 2021 0:29 UTC (Sat)
by areilly (subscriber, #87829)
[Link] (4 responses)
Surely networked printers must all have web-tech front-ends by now, that (a) provide all of the settings that you could want, and (b) allow upload or drag-and-drop of the relevant document fomats (postscript or PDF, probably)? Why is any of that complexity something that you want programs on the host (client) computers to be running?
Top that off with a bit of REST API magic so that you can still have a "print" option in your word-processor I suppose, but I'd be perfectly happy if that all went away, I think. I only print PDFs.
Posted Jun 5, 2021 1:13 UTC (Sat)
by pizza (subscriber, #46)
[Link]
The world of printing is vastly more complex than a human interactively uploading PDFs.
> Top that off with a bit of REST API magic so that you can still have a "print" option in your word-processor I suppose
....and thus, IPP was born. :)
Posted Jun 5, 2021 13:10 UTC (Sat)
by dottedmag (subscriber, #18590)
[Link]
Posted Jun 5, 2021 18:30 UTC (Sat)
by kucharsk (subscriber, #115077)
[Link] (1 responses)
My workhorse is still an Apple LaserWriter 8500, purchased in 1997 and that still works well, and most smaller companies only buy a new printer when they absolutely have to.
I also added an HP Color LaserJet Pro M477fdw in 2016, but printing to it even from Apple platforms is hit and miss (most commonly it will not awaken from sleep, leading CUPS to just pause the print queue with no hints as to why, despite several firmware updates from HP.) Note also that very often its web interface will just stop responding after two or three clicks, requiring you to power cycle the printer.
Printing is still a mess no matter which printer and OS you use.
Posted Jun 5, 2021 23:32 UTC (Sat)
by Wol (subscriber, #4433)
[Link]
It took me a while to work out the fix for the offline problem but I've discovered a simple solution - run the printer troubleshooter. It comes back and says "nothing wrong", but as a side effect it gets the printer back online.
Cheers,
Posted Jun 5, 2021 1:16 UTC (Sat)
by bokr (guest, #58369)
[Link] (1 responses)
Posted Jun 5, 2021 14:03 UTC (Sat)
by dbnichol (subscriber, #39622)
[Link]
If the combo is USB connected then I think the SANE part is no different than it's ever been. The CUPS part is different (or becoming different) as described in other comments here.
Posted Jun 5, 2021 9:20 UTC (Sat)
by MickeyDance (guest, #112575)
[Link] (1 responses)
So, after 10 years (the post also says IPP started in 2010), the current distribution doesn't + Brother driver still doesn't work seamlessly even though it does with Android. Doesn't this sort of imply that the current CUPS IPP installation isn't ready for non-expert use.
I've been working in the UNIX system arena (and these days Linux) world for 30 years and it is frightening how open-source seems to do the same as closed-source i.e. decide that the hardware you have is too old to be supported so if you have a problem go and buy a newer one that does work with the latest software....
Not to mention, at the end of the day, all the new system will let me do is print pages which I can already do but only if I'm fortunate enough to have a vaguely recent printer. Anyone remember the smug comments/howls from the Linux world when Windows changed its printer driver system and moved some of the driver into the printer thus making them Windows only printers?
Maybe I should just use Samba and print through Windows:) <- that was a joke guys, honest:):)
Posted Jun 5, 2021 9:47 UTC (Sat)
by randomguy3 (subscriber, #71063)
[Link]
If it all goes to plan, hopefully we'll end up with a system where printing Just Works (TM) for 98% of modern printers, while still providing a relatively straightforward path to connecting older / quirky models. Of course, things like this are rarely smooth sailing, so we'll have to see, but the current system is painful enough that I'm looking forward to what might be.
Posted Jun 5, 2021 10:32 UTC (Sat)
by hei8483j (guest, #124709)
[Link]
Posted Jun 5, 2021 11:44 UTC (Sat)
by fmyhr (subscriber, #14803)
[Link]
Posted Jun 5, 2021 12:51 UTC (Sat)
by ejr (subscriber, #51652)
[Link] (4 responses)
Printers are a major reason why I left the sysadmin area. And I actually know what the PC in "PC Load Letter" stands for...
Posted Jun 13, 2021 20:05 UTC (Sun)
by nix (subscriber, #2304)
[Link] (3 responses)
Posted Jun 13, 2021 21:12 UTC (Sun)
by amacater (subscriber, #790)
[Link] (1 responses)
Posted Jun 13, 2021 21:37 UTC (Sun)
by Wol (subscriber, #4433)
[Link]
We always just put a box of paper underneath the printer. Okay, we didn't have the super-fast chain printers, but once I persuaded my boss to replace the dot-matrices with proper line printers, they could certainly fly through a box with ease ...
Cheers,
Posted Jun 13, 2021 22:51 UTC (Sun)
by pizza (subscriber, #46)
[Link]
(I also have several Canon and Kodak photo printers that also use removable paper cassettes...)
Posted Jun 5, 2021 16:16 UTC (Sat)
by ccchips (subscriber, #3222)
[Link]
For the driverless printer:
First, I can't delete it. Mint insists that it's there whether I like it or not.
Second, I can find no way to stop it from printing pages in reverse order (which is nice for a deskjet and single-sided printing,) but please read on.
Finally, and worse than the rest, I can't get Libreoffice to handle envelopes smoothly. On top of that, the envelopes are printed differently than below.
For the driver (HPLIP:)
* I can control the order of page printing
* I have no problem printing envelopes
* I have not yet tested this, but it looks like output is actually better and cleaner with HPLIP.
---
The nastiest problem with IPP is envelopes. Now, some of you may be thinking "Why is anyone using envelopes anymore anyway? Why are you even printing anything anymore?" Well, that's OK someday.....just make sure those USB drives and SSDs and micro-SD cards are reliable..... ;)
Anyway, that's my $0.02....
Posted Jun 5, 2021 20:23 UTC (Sat)
by dacut (subscriber, #131937)
[Link]
Even from the latest MacBook, latest macOS, where all of this is supposed to "just work," trying to do anything more than print a basic document seems impossible. If you want to print on photo or matte paper -- the latter seems to require a bit of ink-mixing voodoo to make the colors look correct -- the options just aren't there, at least for the Canon printers I have.
Scanning (from the multifunction devices I have) is a mess. Faxing functionality is non-existent, but thankfully I never have to use that any longer.
If Apple -- who until recently employed the main author of CUPS -- can't get this right, I don't see much luck for the rest of the CUPS ecosystem.
Posted Jun 6, 2021 0:11 UTC (Sun)
by gerdesj (subscriber, #5446)
[Link]
Have a look into /etc/papersize - many apps will do your bidding and stop your printer bleating about paper sizes. That said I still have the occasional regression. My PCs/laptops are all set to en_GB. /etc/papersize is always set to a4 and my printer daemons are all told to default to a4. Despite that I still get some jobs asking me to approve turning letter into a4. The docs are probably storing rubbish settings.
At least they print (eventually.)
Posted Jun 6, 2021 0:39 UTC (Sun)
by Wol (subscriber, #4433)
[Link]
Except that security experts now assume that - if you actually want a secure local network - you need to use the onion model and assume the local network is NOT secure.
Catch-22 ...
Cheers,
Posted Jun 6, 2021 1:37 UTC (Sun)
by ccchips (subscriber, #3222)
[Link] (5 responses)
Of course, it was also easy to stamp out a whole bunch of return address labels, again without wasting a single one.
This was all on Windows 95/XP/7 using Access for the Christmas lists. Honestly, I never tried to accomplish the same thing on Linux, and from what I can tell, it would be a nightmare.
By the way, all that happened because that Epson could emulate an IBM printer. I don't believe the Windows 7 or Windows XP driver for the native printer could handle my task correctly.
Printing sucks everywhere, and I honestly don't see an end to that.
Posted Jun 6, 2021 12:03 UTC (Sun)
by Wol (subscriber, #4433)
[Link]
For me, this goes back to WordPerfect 5.1 on DOS. I could use a comma-separated-list, pull it into a WP mailmerge with one label per logical page, tell WP that there are 14, or 21, or whatever, logical pages to a physical page, and it all came out nice-n-easy. Doing that even today with Word is a *nightmare*.
Cheers,
Posted Jun 6, 2021 15:56 UTC (Sun)
by JanC_ (guest, #34940)
[Link] (3 responses)
Posted Jun 6, 2021 18:20 UTC (Sun)
by ccchips (subscriber, #3222)
[Link] (2 responses)
But I do love gLabels and its capabilities...with the HPLIP driver!
Posted Jun 7, 2021 2:10 UTC (Mon)
by ccchips (subscriber, #3222)
[Link] (1 responses)
Posted Jun 15, 2021 20:27 UTC (Tue)
by JanC_ (guest, #34940)
[Link]
Posted Jun 6, 2021 7:40 UTC (Sun)
by zdzichu (subscriber, #17118)
[Link] (4 responses)
I personally "manage" two printers. One represents first kind - it's a LaserJet 6L, over 20 years old at this point. I haven't seen more solid device, works with every Linux distribution, replacement toner is dirt-cheap. I feel it will work for another 20 years easily.
The other printer is a multifunction HP MFP1132, about 6-8 years old today. According to the proposed change, it should be "driverless". It isn't. I need to manually download "hp-plugin" binary crap every time the driver - hplip - get's updated. Without the binary blob, neither printing nor scanning works.
Naturally, when I see assurances "printers made in last 10 years work flawlessly" but I'm looking at one which doesn't, I'm not believing assurances that my 6L will continue working.
Posted Jun 6, 2021 9:05 UTC (Sun)
by Jonno (subscriber, #49613)
[Link]
I got a HP Color LaserJet MFP M281, which has the same problem: hplip requires the proprietary hp-plugin to work. However, using the cups-filter "driverless" driver (and presumably the CUPS "everywhere" driver), I could use IPP Everywhere to talk directly to the printer, bypassing hplip completely. Without hplip SANE won't work, but I just use the controls on the printer to scan, which saves a tiff on my Samba server (it can also save a pdf instead of a tiff, or send the file [pdf or tiff] over email if you prefer that), which works without any drivers.
If you only have one printer on the local network, the following commands should do the trick, if you got multiple printers, you need to manually pick the right URI from the ippfind output:
Posted Jun 6, 2021 12:35 UTC (Sun)
by pizza (subscriber, #46)
[Link] (2 responses)
At the end of the day, proprietary crap that requires binary blobs to work is still proprietary crap, and you're forever at the manufacturer's mercy when it comes to ongoing updates.
With respect to your 6L specifically, the very first pappl example was written for PCL printers such as yours. Additionally, the 6L is already well supported by Gutenprint, and that support will carry over to the future Gutenprint printer application.
(Note the exact quote is "98% of printers sold since 2010", not "all printers made in the last 10 years" -- most of what I work with is part of one of those "certain verticals" in that 2%)
Posted Jun 6, 2021 13:43 UTC (Sun)
by zdzichu (subscriber, #17118)
[Link] (1 responses)
But for Hewlett Packard MFP1132… this is basic home printer with a scanner, nothing fancy. I'm surprised it isn't in 98%.
Posted Jun 7, 2021 10:45 UTC (Mon)
by mchehab (subscriber, #41156)
[Link]
Those cheap USB-only laser scanner/printers don't have IPP natively. I have one such printer too, as the cost per page on such devices is very low.
Using it as a network printer is tricky, as the default support via hplip requires a proprietary x86-only driver, which require upgrades almost every time CUPS is upgraded. Also, as it is x86-only, one can't use a cheap arm device like RPi to be a printer server, and, last time I checked, the alternative of using foo2zjs driver won't provide sane support over the network.
Posted Jun 7, 2021 4:59 UTC (Mon)
by jccleaver (guest, #127418)
[Link] (3 responses)
While Avahi/Zeroconf/Bonjour and all intended replacements may be appropriate for distributions, I'm leery of efforts to remove simple, hard-configurable systems. And if we have to keep drivers around to not require another five services on a simple Linux device that just needs to spit out some lp data, I'm not sure I have a problem with that.
Posted Jun 7, 2021 10:27 UTC (Mon)
by pizza (subscriber, #46)
[Link] (2 responses)
Apple handled all of this so well that nearly every release of OSX required changes to printer drivers in order for existing printers to remain useful.
> I'm leery of efforts to remove simple, hard-configurable systems.
It turns out those "hard-configurable" systems weren't so "simple" after all.
> And if we have to keep drivers around to not require another five services on a simple Linux device that just needs to spit out some lp data,
Printing hasn't been a matter of "simply spitting out some lp data" since before "line printer" ceased to be a meaningful term in of itself.
Posted Jun 7, 2021 15:17 UTC (Mon)
by jccleaver (guest, #127418)
[Link] (1 responses)
You can go much further back than that. I'm old enough to remember System 6.0.8 having to be released solely because System 7's were incompatible with the previous ones and would force resets whenever a printer had to go back and forth between 6 and 7 users.
I'm referring mainly to printer local discovery, which was what Avahi/Zeroconf/etc have been trying to re-create for a while now.
I get the desire to press ahead with new printers in a new way, but as someone else wrote, there are the disposable printers you replace every 2 years, and forever printers that have been in service for decades. I'm not sure I trust the current desktop decision makers to take the latter property into account, given the last decade+ of Freedesktop decisions.
Posted Jun 7, 2021 16:52 UTC (Mon)
by pizza (subscriber, #46)
[Link]
Sure, appletalk worked great... as long as you were using all-apple stuff. Windows discovery worked reasonably well.. as long as everything else was running Windows too. CUPS's local discovery worked equally well.
They all fell flat on their faces when you needed to cross ecosystems and the printer didn't speak a standard PDL (like postscript or HP-PCL)
> I'm not sure I trust the current desktop decision makers to take the latter property into account, given the last decade+ of Freedesktop decisions.
The "current desktop decision makers" (including Freedesktop.org) have nearly nothing to do with the standards and decisions of the OpenPrinting/PWG and IPP.
Posted Jun 7, 2021 23:01 UTC (Mon)
by jafd (subscriber, #129642)
[Link] (1 responses)
Now in another 30 years, we're going to tackle scanners.
Oh deities!
Somehow even scanners that are said to work, don't quite work, and need proprietary binaries that will only work with a particular libc.so.6. They are being made by the same companies that gladly jump onto the driverless printing bandwagon, and I happen to own a beautifully schizophrenic multifunction unit whose printer is "driverless" and just works, while the scanner part works not at all even on macOS (because its stupid app suite — scanners always come with stupid apps — are 32-bit-only).
Posted Jun 9, 2021 1:54 UTC (Wed)
by akumria (guest, #7773)
[Link]
it works pretty well for printers that implement either of the two standards (eSCL or WSD).
Posted Jun 10, 2021 10:22 UTC (Thu)
by susanne_eb (guest, #129263)
[Link] (2 responses)
https://build.opensuse.org/package/view_file/Printing/cup...
Posted Jun 12, 2021 20:12 UTC (Sat)
by ddevault (subscriber, #99589)
[Link]
Posted Jun 15, 2021 5:30 UTC (Tue)
by drpatricko (subscriber, #152788)
[Link]
I see at least one SUSE employee active in upstream CUPS discussions, I am sure we are not being "left behind".
Posted Jun 17, 2021 4:57 UTC (Thu)
by scientes (guest, #83068)
[Link]
Posted Jun 18, 2021 13:43 UTC (Fri)
by callegar (guest, #16148)
[Link] (6 responses)
One of them is related to the "pollution" of the printers list.
For most printers supporting IPP the configuration of who the printer should be advertised to is either impossible or so indiscoverable to be practically impossible to most users. The result is that in large organizations where people can get printers in their offices when you try to print you often see endless lists of printers all with more or less the same name apart from some obscure hash and there is apparently no way to filter them out. Maybe this may also imply that in many cases people print by mistake to someone else printer with an obvious waste of paper and at times the uncontrolled spread of sensitive information.
The second issue is printer configuration.
In many cases, the number of configurable features that one gets when using an old style printer driver is vastly superior to what you get via the driverless printing. Or the other way round, the degree of configuration that you can apply when printing in the driverless way is often insufficient for anything but the casual output of a printed page.
Posted Jun 18, 2021 14:11 UTC (Fri)
by pizza (subscriber, #46)
[Link] (5 responses)
This is effectively no different than before, and the solution is the same -- administrators have to pick a printer name that is unambiguous.
> In many cases, the number of configurable features that one gets when using an old style printer driver is vastly superior to what you get via the driverless printing. Or the other way round, the degree of configuration that you can apply when printing in the driverless way is often insufficient for anything but the casual output of a printed page.
There's no inherent reason why the options exposed via IPP have to be any more limited than the options exposed via a native driver, but ultimately gets presented to the user is up to the IPP print client. (Right now the least common denominator seems to be the subset of IPP that AirPrint and Mopria require for certification)
Posted Jun 19, 2021 0:21 UTC (Sat)
by Wol (subscriber, #4433)
[Link] (4 responses)
> This is effectively no different than before, and the solution is the same -- administrators have to pick a printer name that is unambiguous.
You're missing something ...
If a PC searches for all IPP printers it will have a large list of them. If it's configured by an administrator, it'll only have one or two.
We've got THREE printers. Yet the printer list on Windows has maybe TEN printers listed? How am I supposed to get rid of the printers I don't want to be visible? They are a real pain.
Or, in the business environment, how do you stop the CEO accidentally printing confidential documents on the post room printer (or the office boy printing his love letters on the CEO's printer :-)
Made worse by the modern Windows habit of changing the default printer to whatever you used last ... so as soon as you've lost one document, you promptly lose ALL your documents.
This is FUNDAMENTALLY different from before, when you could EASILY configure any PC to only know about one or two printers.
Cheers,
Posted Jun 19, 2021 0:58 UTC (Sat)
by pizza (subscriber, #46)
[Link] (2 responses)
BTW, I was referring to the "administrator" configuring the printer itself to have a non-ambiguous name instead of whatever the printer was shipped with. This is routine for any organization large enough to have more than a couple of printers.
> We've got THREE printers. Yet the printer list on Windows has maybe TEN printers listed? How am I supposed to get rid of the printers I don't want to be visible? They are a real pain.
I can't help you there, beyond stating the obvious point that for that to have happened, Windows had to have been explicitly set up that way.
> Or, in the business environment, how do you stop the CEO accidentally printing confidential documents on the post room printer (or the office boy printing his love letters on the CEO's printer :-)
Duh, the same way it's done currently -- have the administrator configure the CEO's system to only print to a specific subset of printers -- by setting up explicit printer queues and disabling auto-discovery. And/or having the C-suite computers/printers on their own private network segment, which is a good idea regardless.
> Made worse by the modern Windows habit of changing the default printer to whatever you used last ... so as soon as you've lost one document, you promptly lose ALL your documents.
That hasn't been my experience, but in the end, there's only so much one can do about systems that insist on doing the wrong thing.
> This is FUNDAMENTALLY different from before, when you could EASILY configure any PC to only know about one or two printers.
I'd disagree about the "easily" part, but literally nothing has changed on that front. One can still create local print queues pointing at whatever remote printer you want (Driverless IPP or IPP, JetDirect, Windows, CUPS, whatever) and completely disable auto-discovery. That functionality is not going away.
Posted Jun 19, 2021 1:59 UTC (Sat)
by Wol (subscriber, #4433)
[Link] (1 responses)
> BTW, I was referring to the "administrator" configuring the printer itself to have a non-ambiguous name instead of whatever the printer was shipped with. This is routine for any organization large enough to have more than a couple of printers.
Yes I'm talking about a home setup, so maybe three printers is a lot, BUT. How do you set up a printer with a non-ambiguous name, other than - for every PC! - editing the queue name and swearing when Windows promptly forgets it next time it does a discovery ...
> > We've got THREE printers. Yet the printer list on Windows has maybe TEN printers listed? How am I supposed to get rid of the printers I don't want to be visible? They are a real pain.
> I can't help you there, beyond stating the obvious point that for that to have happened, Windows had to have been explicitly set up that way.
So how come I did NOT explicitly set anything up like that, yet Windows does it anyway?
My Windows settings are the DEFAULT. With the result that our main printer appears under about three different names - the one it gave itself, the one I tried to give it, and the one I explicitly edited on the PC. (At which point, the original name I edited promptly reappeared as a new printer...) Our secondary printer is just as bad. Plus all the special Windows printers half of which I'd like to delete ...
BY DEFAULT, Windows searches for AND DISPLAYS, every printer it can find. And on a halfway large network, that's likely to be A LOT.
Cheers,
Posted Jun 19, 2021 10:30 UTC (Sat)
by Jonno (subscriber, #49613)
[Link]
You do the change *on the printer*, not in Windows. Some printers have a small LED screen and navigation buttons, others have a built-in web-server, others have both. Find the "Network Identification" section and change "Host Name" and "Bonjour Service Name" to whatever you want. ("Host Name" is passed to your DHCP server, which may be configured to set up a DNS record with that name in your local domain. "Bonjour Service Name" is the mDNS name the printer will advertise itself under.)
Posted Jun 19, 2021 1:58 UTC (Sat)
by zlynx (guest, #2285)
[Link]
The end result can be one printer showing up anywhere from one to six times.
I remember the bad old days though, where it was sometimes a major effort to get a printer onto the network even one time. So this is a better problem in its own way.
Posted Jan 22, 2023 0:28 UTC (Sun)
by SDRiches (guest, #163264)
[Link] (1 responses)
Posted Jan 22, 2023 9:58 UTC (Sun)
by Wol (subscriber, #4433)
[Link]
If you've got a new samba config, you might find it needs SMBv1 or somesuch for the printer, and that is almost certainly "disabled by default" for being insecure.
Cheers,
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
The Pi 4B is particularly impressive. That sucker has quite a lot of CPU, and a fair bit of I/O power. It's not quite fast enough to make a very good desktop, at least running Ubuntu, but it's a killer little server box. Most Unix-style server apps were written a great long while ago, aimed at machines far less powerful, so you can load up a 4B with a fair number of daemons and expect it to run very smoothly.
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
The Epson ET-2710 is part of Epson's current range, works as a networked printer with drivers actually in Fedora 34, and even with the latest firmware it doesn't listen on port 631 at all.
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Thanks, I learnt something about mDNS -- but enough to show the printer isn't advertising IPP. Just _privet._tcp, _scanner._tcp, _http._tcp, _pdl-datastream._tcp, and _printer._tcp.
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
You want a moan about Epson's web site?
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
[2] It was present in v1.1, released over 20 years ago. I didn't bother to look further back.
[3] The humble PC parallel port wasn't necessarily bi-directional. The same is still true for USB printer class devices. We're still hobbled by this baggage.
Fedora contemplates the driverless printing future
Wol
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
I believe ipp-usb is meant to be the answer. It's pulled in as a Recommends by cups-daemon in Debian bullseye, and it exposes printers that support IPP-over-USB as a localhost "network printer". Last I tried it worked very nicely for my OfficeJet 8710, and I believe it's expected to work for any other IPP Everywhere USB printer.
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
You might want to check out gnoutchd's comment about ipp-usb
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Wol
Fedora contemplates the driverless printing future
E.g. Samsung SCX-3405W ??
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Thanks for the humor :-)
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Wol
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Driverless printing seems to lack pro/prosumer features
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Wol
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Wol
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Older printers' support
- unkillable ones, working for decades
- trash one, which gets replaced every 2-3 years
I think users are mainly concerned about losing support for the first kind. But there's also a lot of a grey area.
Older printers' support
>$ URI=$(ippfind)
>$ sudo lpadmin -p «PrinterName» -o printer-is-shared=false -v ${URI} -m driverless:${URI} -E
Older printers' support
Older printers' support
Older printers' support
AppleTalk FTW
AppleTalk FTW
AppleTalk FTW
AppleTalk FTW
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
while SUSE/openSUSE don't advertise their "IPP Everywhere" support, the command line should just work
while SUSE/openSUSE don't advertise their "IPP Everywhere" support, the command line should just work
while SUSE/openSUSE don't advertise their "IPP Everywhere" support, the command line should just work
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Wol
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Wol
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
Fedora contemplates the driverless printing future
So maybe time for a new printer and then I read all this about IPP and print everywhere and all bets off! Are we going back in time?
Fedora contemplates the driverless printing future
Wol