printer auto-detection does the wrong thing for unknown printers

Bug #102389 reported by James Troup
10
Affects Status Importance Assigned to Milestone
cupsys (Ubuntu)
Won't Fix
Medium
Till Kamppeter
gnome-cups-manager (Ubuntu)
Won't Fix
Medium
Unassigned
system-config-printer (Ubuntu)
Fix Released
High
Unassigned

Bug Description

Binary package hint: gnome-cups-manager

The SNMP printer detection in feisty is excellent, unfortunately it can sometimes very much do the wrong thing. When presented with a Xerox 7228, it chose the WorkCentre 450cp with the cdj550 driver. Sending anything to the printer in this setup causes literally hundreds of pages of garbage to be printed.

While I understand we can't ship the PPDs for the 7228 and other Xerox printers in main (they don't grant permission for modification), at the very least we can not auto choose a model which causes the printer to run amok and cost the user paper, ink and money.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

This is not a bug of the SNMP autodetection, the SNMP scanner of CUPS for sure reports back the correct model name of your printer. You see it on the first page of the gnome-cups-manager in the "Detected Printers" box. The problem is that if there is neither a PPD nor an entry in the OpenPrinting database for the printer, CUPS or the printer setup tool easily guesses a wrong model with similar name.

Revision history for this message
Matt Zimmerman (mdz) wrote :

Till, have you contacted Xerox and asked about a proper license for these drivers?

If that is not an option, have you considered creating a new package for restricted? It sounds like we have permission to redistribute.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Is introducing a new package into Feisty restricted still possible?

Revision history for this message
Matt Zimmerman (mdz) wrote : Re: [Bug 102389] Re: printer auto-detection does the wrong thing for Xerox 7228

On Thu, Apr 05, 2007 at 12:00:03PM -0000, Till Kamppeter wrote:
> Is introducing a new package into Feisty restricted still possible?

Feisty is now frozen, but adding a new package is fairly low-risk. It
should definitely be possible to get it into multiverse, and potentially
into restricted. It would not be part of the default install yet, as it's
too late to change that, but at least it can be available as a workaround
for users affected by this bug.

In any case, it would be prudent to fix this bug, where CUPS selects the
wrong driver, for Feisty (via a post-release update if necessary). It has
wasted a lot of paper around the Canonical office!

--
 - mdz

Revision history for this message
Henrik Nilsen Omma (henrik) wrote : Re: printer auto-detection does the wrong thing for Xerox 7228

We are now in gutsy so the field is wide open! Till, please have a look at creating a new package for this so we can save some trees :)

Changed in cupsys:
assignee: nobody → till-kamppeter
importance: Undecided → High
status: Unconfirmed → Confirmed
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

I have contacted Xerox to inform them about the problems with their printer drivers and PPD files. I hope they will cooperate and improve their Linux support and their cooperation with Linux distributions.

Revision history for this message
Matt Zimmerman (mdz) wrote : Re: [Bug 102389] Re: printer auto-detection does the wrong thing for Xerox 7228

On Tue, Jul 03, 2007 at 02:57:10PM -0000, Till Kamppeter wrote:
> I have contacted Xerox to inform them about the problems with their
> printer drivers and PPD files. I hope they will cooperate and improve
> their Linux support and their cooperation with Linux distributions.

That's always good practice; however, we need to fix the bug regardless of
what Xerox does.

- If the drivers are redistributable, they should be packaged and put into
  restricted, and the tool should select that driver by default

- If not, the printer configuration tool should show that there is no
  available driver, and *not* select the wrong driver by default (as this
  prints hundreds of pages of garbage)

--
 - mdz

Revision history for this message
Till Kamppeter (till-kamppeter) wrote : Re: printer auto-detection does the wrong thing for Xerox 7228

The second point has to be addressed by the printer setup tools. If they do not find a match they should not simply point onto the first entry of the manufacturer's model list. They should give a clear warning that now driver for the printer was found. They should also investigate the command set field in the device ID, so that they can determine whether the printer understands standard languages like Postscript or PCL to assign a generic driver. This is a bug in most printer setup tools.

For the first point the licenses of the Xerox drivers need to be investigated.

Changed in gnome-cups-manager:
status: New → Confirmed
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Checked Xerox web site for redistributable drivers. They have Linux drivers, but these are not redistributable. They also do not install on Ubuntu distributions (bug in Xerox driver package). See

http://ubuntuforums.org/showthread.php?p=2915057

On http://www.cups.org/ under "Printer drivers" there is only one PPD for a Xerox printer.

So without cooperation from Xerox we will not be able to ship Xerox PPDs or drivers.

The only thing we could do for now is checking through all printer setup tools (CUPS web interface, gnome-cups-manager, KDE Printing Manager, ...) and add the feature of warning the user if no suitable PPD/driver could be found.

Changed in gnome-cups-manager:
importance: Undecided → High
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

James Troup, can you supply the full product name of your Xerox printer? Can you also try to set it up with the web interface of CUPS (http://localhost:631/)? Which model does the web interface select automatically? I need this info to file an upstream bug/feature request against the CUPS web interface.

Revision history for this message
Chris Jones (cmsj) wrote :

The printer is a Xerox WorkCentre 7228.

cups identifies it as:

Xerox WorkCentre 7228 Multifunction System

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

So CUPS recognizes the model automatically.

What does the CUPS web interface do when you go through its steps? Which PPD file does it suggest?

Here are driver downloads on Xerox' web site, but this driver does not work on Gutsy (installation fails):

http://www.support.xerox.com/go/results.asp?Xlang=en_GB&XCntry=GBR&prodID=WC7228_WC7235_WC7245&ripId=&Xtype=download

One can take the PPD from the printer model package and then at least some of the functionality of the printer should work.

Revision history for this message
Chris Jones (cmsj) wrote :

It automatically selects "Xerox WorkCentre 450cp".

We have been instructing people to use a PPD extracted from that xerox driver, but with the 450cp PPD, the printer spews out hundreds/thousands of junk pages per print, which is a very unhelpful default behaviour.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Reported the problem for the CUPS web interface upstream:

http://www.cups.org/str.php?L2436

Changed in system-config-printer:
importance: Undecided → High
status: New → Confirmed
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Also system-config-printer does not make a good choice.

/usr/lib/cups/backend/snmp has the following output on the Xerox printer:

network socket://10.45.43.5 "Xerox WorkCentre 7228 Multifunction System"
"Xerox WorkCentre 7228 Multifunction System 10.45.43.5" ""

and the default choice of system-config-printer is "Generic ESC/P Dot Matrix Printer" as this is the first choice under "Generic". We need to tell the user here that the printer model is unknown to the system and do either no default choice or things like "Generic PostScript printer" or "Generic Text-only printer". If we have access to the IEEE-1284 ID (USB, parallel), we should check the available printer languages ("CMD:" field in ID) for an unknown model so that the correct "Generic" driver can be selected.

Revision history for this message
Tim Waugh (twaugh) wrote :

We get that right for automatic queues, but yes, interactive mode gets that a bit wrong still.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Interactive mode fixed upstream. Now in case of an unknown printer the "Generic text-only printer" gets selected.

Choice of generic printers by page description language was already implemented in system-config-printer. So this Xerox printer connected via USB or parallel should auto-select the "Generic PostScript printer" via command set ("CMD:") info in the device ID.

Changed in system-config-printer:
status: Confirmed → In Progress
Changed in system-config-printer:
status: In Progress → Fix Committed
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

system-config-printer (0.7.71+-svn1415-0ubuntu1) gutsy; urgency=low

  * New upstream release
     o Subversion snapshot r1415
     o Search for SMB servers not only via "nmblookup -M -- -" but also with
       "nmblookup '*'" (LP: #127152).
     o Take into account that SMB share names can have spaces when scanning
       network for SMB-provided printers (LP: #128261).
     o Make sure that in case of the detected printer being unknown always
       the text-only printer is pre-selected (LP: #102389).
     o Let the generic PostScript PPD coming with CUPS have a higher priority
       than the generic PostScript PPD of Foomatic.
     o Fixed a traceback when trying to find a PPD for a printer with no
       digits in the model name and where the model name does not match
       any of the PPDs exactly.
  * debian/control: Added "Recommends: hal-cups-utils" (LP: #132994).

 -- Till Kamppeter <email address hidden> Tue, 21 Aug 2007 17:51:44 +0100

Changed in system-config-printer:
status: Fix Committed → Fix Released
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Now totally uinknown printers default to the text-only printer, if the page description language could get detected an appropriate "Generic" PPD will get selected. This works also in the interactive GUI mode now.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

The upstream bug report for the CUPS web interface is now considered a feature request for CUPS 1.4 by Mike Sweet:

http://www.cups.org/str.php?L2436

As system-config-printer does it correctly now, is a patch on the CUPS web interface needed?

Revision history for this message
Henrik Nilsen Omma (henrik) wrote :

I'm lowering the priority for gnome-cups-manager and cups since this now works with system-config-printer. Chris can you confirm that in the office?

Unsubscribing QA.

Changed in gnome-cups-manager:
importance: High → Medium
Changed in cupsys:
importance: High → Medium
Revision history for this message
Chris Jones (cmsj) wrote :

system-config-printer now selects Generic Text Only for the printer by default.

Revision history for this message
Matt Zimmerman (mdz) wrote : Re: [Bug 102389] Re: printer auto-detection does the wrong thing for unknown printers

On Wed, Aug 29, 2007 at 02:11:18PM -0000, Chris Jones wrote:
> system-config-printer now selects Generic Text Only for the printer by
> default.

Is that correct? What happens when you try to print a document?

Shouldn't this be a generic PostScript printer at least?

--
 - mdz

Revision history for this message
Chris Jones (cmsj) wrote :

I'll try a test print tomorrow, but I would suspect that it should really be Generic/Postscript. Going by the above comments it would seem that it picks Generic/TextOnly when it doesn't know anything about the printer.
I guess we could maybe have our specific printer whitelisted, but there are presumably lots of other printers out there which wouldn't be helped by this.

I'm no printer expert, but I would think it would be reasonable to set any kind of network printer to default to Generic/Postscript - I find it hard to believe that there are any networked printers today that don't accept postscript.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

The printer setup tools can only choose drivers as well as they know the printer. In this case (Xerox ... connected via ethernet) it simply encountered an unknown model name and so it defaults to the generic text printer (upstream behavior of the tool). If the printer had been on USB or parallel it would report its device ID containing also information about its page description languages and so the Generic PostScript Printer (or Generic PCL ... Printer) would be selected (who has that printer please try it on USB or parallel). On an ethernet connection unfortunately only make and model name are available to the printer setup tool.

Possible improvement would be that system-config-printer if it does not find a match, does not assign a default PPD but manufacturer name "Generic" and "Unknown" as model, so that in the model step a newly added entry "Unknown" is pre-selected and the "Forward" button grayed out until the user selects something else.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

It is not necessarily the case that networked printers are PostScript. The HP LaserJet 2600n has a proprietary protocol, many HP inkjets can be connected via network and they are PCL printer, The HP printers are known to the database, so with them there is no problem, but there can be similar non-HP printers.

Revision history for this message
Nick Moffitt (nick-moffitt) wrote : Re: [Bug 102389] Re: printer auto-detection does the wrong thing for unknown printers

Till Kamppeter:
> It is not necessarily the case that networked printers are PostScript.
> The HP LaserJet 2600n has a proprietary protocol, many HP inkjets can
> be connected via network and they are PCL printer,

Do these printers speak non-Postscript on the JetDirect port?

--
Nick Moffitt

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Yes, you have to send data in a proprietary format (printer CLJ 2600n, driver foo2zjs) or in PCL (HP inkjet, driver hpijs) to these printers. The format of the data stream is the same as it is used for printing via USB or parallel.

Revision history for this message
Henrik Nilsen Omma (henrik) wrote :

With the bug fixed in s-c-p and g-c-m this task can be closed.

Changed in gnome-cups-manager:
status: Confirmed → Won't Fix
Changed in cupsys:
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.