Trouble with Xerox printer driver in Ubuntu 24.04

I’m having a problem with my XEROX C7030 printer after upgrading from 20.04 LTS to 24.04. Xerox has a .deb driver package that offers some additional features over the CUPS printing capabilities.

To use the Xerox driver, the xeroxofficeprtmgr utility is used to set up a print queue, which adds a printer that uses the Xerox driver.

On 20.04, when using the Xerox driver, a system print dialog with very limited options would appear, and after clicking “Print” in that dialog, the dialog from the Xerox driver package would appear to offer additional functionality.

On 24.04, the dialog from the Xerox driver package no longer appears. Instead, the job prints immediately after"Print" is clicked in the limited system print dialog.

I have removed/reinstalled the Xerox deb driver. I have removed/recreated the print queue with xeroxofficeprtmgr, but that didn’t help either. There is a check box in the Xerox driver setup to disable the user interface, but I have that unchecked, as I did previously.

I’m not a commercial customer and I don’t have a support contract, so it is virtually impossible to get support from Xerox. Also, they don’t seem to support the Linux driver very well.

So, just looking for any suggestions. CUPS printing does work for most things. And there was a bug in 20.04 CUPS with this printer that might be fixed now (I have to do further research), so that helps a bit.

Thanks!

Might be related…

Upstream CUPS defaults to this in its latest releases, not sure if there is a way to turn it off though…

Actually, it appears that the printing system is using the Xerox driver. If I setup the Xerox printer queue defaults beforehand using xeroxofficeprtmgr with “different” settings, like printing duplex from Tray 4, those settings are obeyed when the job is printed. These settings are not offered in the limited system print dialog that appears. Somehow, the per-job Xerox dialog is now suppressed.

Unfortunately, when using IPP/driverless printing, the C7030 does not expose photo-quality printing mode, only standard and enhanced (I used ipptool to see what the C7030 exposes). Also, while the C7030 does expose all of its media input trays, CUPS does not seem to pick those up, and I can’t select input source when using driverless printing. I can get to these features using CUPS with a PPD, or the Xerox driver.

I found log output from the Xerox driver. Alot of not good going on there…

--------------------------------
Application:  XeroxOffice Unix v5 Print Driver

--------------------------------
Time Stamp:	01/03/25 19:22:59
Process ID:	19517
System name:	Linux
Node name:	t5610
Release:	6.8.0-51-generic
Version:	#52-Ubuntu SMP PREEMPT_DYNAMIC Thu Dec  5 13:09:44 UTC 2024
Machine:	x86_64
Log level for module ConstraintEngine is 2
Log level for module DriverFeature is 3
Log level for module GUI is 5
Log level for module Global is 2
Log level for module Installer is 4
Log level for module Networking is 1
Log level for module ProductPlugin is 4
Log level for module Prtmgr is 4
Log level for module Quemgr is 4
--------------------------------
19:22:59 - ERROR/Translations:  Unable to set locale:  "en_US" at OS level - some dialogs may appear in the default language.  Please install the appropriate language support.
19:22:59 - FATAL/Application:  Could not open configuration file.
19:22:59 - ProductPlugin:  UI Printing is enabled.
19:22:59 - FATAL/ProductPlugin:  InitializeProductPlugin() - Driver Version: 5.20.661.4684
19:22:59 - ERROR/ProductPluginDriverFeature:  InitializeProductPlugin() - Initialized
19:22:59 - WARNING/DriverFeature:  DriverFeature::fetchOptionByName() - Option with attribute "XPIFCommand" = "offset-set" was not found.
19:22:59 - WARNING/DriverFeature:  DriverFeature::fetchOptionByName() - Option with attribute "XPIFCommand" = "offset-set" was not found.
19:22:59 - WARNING/DriverFeature:  DriverFeature::fetchOptionByName() - Option with attribute "XPIFCommand" = "offset-set" was not found.
19:22:59 - WARNING/DriverFeature:  DriverFeature::fetchOptionByName() - Option with attribute "XPIFCommand" = "offset-set" was not found.
19:22:59 - WARNING/DriverFeature:  DriverFeature::fetchOptionByName() - Option with attribute "XPIFCommand" = "offset-set" was not found.
19:22:59 - FATAL/Application:  Setting media to na_letter_8.5x11in_borderless failed.
19:22:59 - FATAL/Application:  Setting number-up to 1 failed.
19:22:59 - FATAL/Application:  Setting Duplex to DuplexNoTumble failed.
19:22:59 - FATAL/Application:  Setting job-uuid to urn:uuid:a0a34489-6398-39f3-5c87-467f239249e7 failed.
19:22:59 - FATAL/Application:  Setting job-originating-host-name to localhost failed.
19:22:59 - FATAL/Application:  Setting date-time-at-creation to  failed.
19:22:59 - FATAL/Application:  Setting date-time-at-processing to  failed.
19:22:59 - FATAL/Application:  Setting time-at-creation to 1735953779 failed.
19:22:59 - FATAL/Application:  Setting time-at-processing to 1735953779 failed.
19:22:59 - FATAL/Application:  Setting PageSize to Letter failed.
chmod: missing operand after ‘666db/passcodes/passcodes.db’
Try 'chmod --help' for more information.
19:22:59 - ERROR/PasscodeAPI:  Failed to change permission of the passcode.db.
07:22:59 PM - ERROR/ComponentDirector:  ComponentDirector::parseXMLData() - Failed to create GUI object
07:22:59 PM - FATAL/Application:  Couldn't process GUI data - reverting to NoUI Printing
07:23:00 PM - WARNING/DriverFeature:  createTicketNodeAttributes() - Empty feature option command - skipping
07:23:00 PM - WARNING/DriverFeature:  createTicketNodeAttributes() - Empty feature option command - skipping
07:23:00 PM - WARNING/DriverFeature:  createTicketNodeAttributes() - Empty feature option command - skipping
07:23:00 PM - WARNING/DriverFeature:  createTicketNodeAttributes() - Empty feature option command - skipping
07:23:00 PM - WARNING/DriverFeature:  createTicketNodeAttributes() - Empty feature option command - skipping
Terminating logging facility

Hello!

Enabling maximum logging in the Xerox driver reveals that there appears to be a problem with GTK that causes the driver to revert to printing without showing the user interface.

Is there some tool that might reveal why GTK is failing? In Windows, I could use procmon to watch xeroxofficedriver and it would show every operation that the driver would try (i.e. opening files, accessing DLL libraries), and could help identify what library call is failing. What would be the best tool to do this in Ubuntu? I tried Procmon for Linux and Sysmon for Linux, but they don’t seem to log that type of information.

14:46:00 - ProductPlugin:  UI Printing is enabled.
14:46:00 - FATAL/ProductPlugin:  InitializeProductPlugin() - Driver Version: 5.20.661.4684
[...]
14:46:00 - Plugin Loader:  Loaded v5lib/libGuiTools.so - GUI Libraries v1.0
02:46:00 PM - ERROR/GUI:  GTKObject::initialize_gtk():  Initialization failed
02:46:00 PM - ERROR/ComponentDirector:  ComponentDirector::parseXMLData() - Failed to create GUI object
02:46:00 PM - FATAL/Application:  Couldn't process GUI data - reverting to NoUI Printing
02:46:00 PM - Plugin Loader:  Loaded v5lib/libPDF2PSPlugin.so

I finally got this issue solved.

I opened up the deb package file and took a look at the file DEBIAN/postinst, as well as took a look at the driver install log.

In DEBIAN\postinst, there was a command
xhost +si:localuser:lp >> /tmp/PrtDrvInstaller.log 2>> /tmp/PrtDrvInstaller.log || echo 'Failed to grant lp xhost permissions' 1>> /tmp/PrtDrvInstaller.log

The install log had the error Failed to grant lp xhost permissions, so I ran that command manully with sudo. The command succeeded, but the Xerox print dialog still did not appear.

In DEBIAN\postinst, there was also a command
env | grep -w DISPLAY > opt/XeroxOffice/prtsys/.xp_disp
but the created file .xp_disp was empty. I edited .xp_disp and added the output of the env command, which was DISPLAY=:1

After that, the Xerox print dialog appeared, and I was able to use that dialog to adjust printer settings.

So, I don’t know for sure if both changes were necessary, but it seems that certainly fixing .xp_disp was needed.

1 Like