# Does Gutenprint 5.3 still work with CUPS?



## vmb (Mar 12, 2020)

I am trying to get a FreeBSD system to print to a Canon PIXMA iX4000 printer that is connected by USB. Canon do not support this printer on any operating systems other than Mac or Windows but Gutenprint supports it.

I have installed Gutenprint using the FreeBSD package on FreeBSD 12.1-RELEASE-p2 and configured CUPS following the instructions in the FreeBSD handbook. I can access CUPS Administration and start the 'Add Printer' process. CUPS successfully detects the iX4000 as a Local Printer. When I select it and continue to the next configuration dialog, CUPS reports that the printer is connected as usb://Canon/iX4000?serial=91.... but when I click continue again, CUPS fails to find any printer drivers.

[codeAdd Printer Canon_iX4000 Error

Unable to get list of printer drivers:
No error: 0
[/code]

The Gutenprint PPD for the iX4000 is present on the system.
/usr/local/share/cups/model/gutenprint/5.3/C/stp-bjc-PIXMA-iX4000.5.3.ppd.gz

From the console, lpinfo finds the printer

```
# lpinfo -v
network lpd
network ipp
network beh
network http
network https
network ipps
network socket
direct usb://Canon/iX4000?serial=91....
```

But lpinfo fails to find any drivers

```
# lpinfo -m
lpinfo: No error: 0
```

The CUPS man page for lpinfo has a note that made me wonder if Gutenprint works with CUPS anymore:

_'CUPS printer drivers and backends are deprecated and will no longer be supported in a future feature release of CUPS. Printers that do not support IPP can be supported using applications such as *ippeveprinter*(1).'_

My USB printer does not support IPP, it has no direct network connection capability.

I haven't used Gutenprint in a long time so I am not entirely certain how CUPS should behave when using the Gutenprint CUPS driver. I remember that CUPS at one time would give the option to select a driver with a name in the form of 'CUPS+Gutenprint-Canon...'. I don't know if this is still true, but CUPS 2.2.12 does not even give me the option to provide a PPD of my own.

So, does Gutenprint 5.3 work with CUPS 2.2.12 and USB attached printers?


----------



## vmb (Mar 12, 2020)

I have configured CUPS with Debug LogLevel and this reports that CUPS is recognizing Gutenprint

```
D [12/Mar/2020:11:48:24 +0000] [cups-deviced] Started backend /usr/local/libexec/cups/backend/gutenprint53+usb (PID 36722)
D [12/Mar/2020:11:48:25 +0000] [cups-deviced] PID 36722 (gutenprint53+usb) exited with no errors.
```

My iX4000 printer doesn't require the special bi-directional Gutenprint USB driver and should use the normal USB driver which appears to be OK in CUPS.

```
D [12/Mar/2020:11:48:25 +0000] [cups-deviced] PID 38035 (usb) exited with no errors.
```

CUPS is looking for a PPD for my printer

```
D [12/Mar/2020:12:00:34 +0000] [Client 8] 2.0 CUPS-Get-PPDs 1
D [12/Mar/2020:12:00:34 +0000] CUPS-Get-PPDs ipp://localhost/printers/
D [12/Mar/2020:12:00:34 +0000] [CGI] argv[0] = "/usr/local/libexec/cups/daemon/cups-driverd"
D [12/Mar/2020:12:00:34 +0000] [CGI] argv[1] = "list"
D [12/Mar/2020:12:00:34 +0000] [CGI] argv[2] = "1"
D [12/Mar/2020:12:00:34 +0000] [CGI] argv[3] = "0"
D [12/Mar/2020:12:00:34 +0000] [CGI] argv[4] = "requested-attributes=all ppd-make=\'Canon\' ppd-make-and-model=\'Canon iX4000\'"
```

Looking in the Gutenprint folders...

```
D [12/Mar/2020:12:00:34 +0000] [Client 8] Waiting for CGI data.
D [12/Mar/2020:12:00:34 +0000] [cups-driverd] Loading \"/usr/local/share/cups/model\"...
D [12/Mar/2020:12:00:34 +0000] [cups-driverd] Loading \"/usr/local/share/cups/model/gutenprint\"...
D [12/Mar/2020:12:00:34 +0000] [cups-driverd] Loading \"/usr/local/share/cups/model/gutenprint/5.3\"...
D [12/Mar/2020:12:00:34 +0000] [cups-driverd] Loading \"/usr/local/share/cups/model/gutenprint/5.3/C\"...
```

But it isn't finding it

```
D [12/Mar/2020:12:01:34 +0000] [Client 1] CGI data ready to be sent.
D [12/Mar/2020:12:01:34 +0000] [CGI] cgiSetVariable: MESSAGE=\"Unable to get list of printer drivers\"
D [12/Mar/2020:12:01:34 +0000] [CGI] cgiSetVariable: ERROR=\"No error: 0\"
```

I guess the 'Unable to get list of printer drivers' is the fault that I need to resolve.


----------



## vmb (Mar 13, 2020)

I think I found the problem. I now have a working print server at last. When I have captured the config into Ansible and can successfully deploy to other hardware, I will reinstall FreeBSD from scratch and do some tests on package installation order. 

At this stage I am uncertain if I created the fault myself or if it is in the cups or gutenprint package. I found some line continuation backslashes in the cupsd.conf that shouldn't be there.


----------



## meine (Mar 13, 2020)

TNX for your report here! I will check based on your posting.

My Canon Pixma MG5750 on a FreeBSD 12.1-RELEASE box with print/gutenprint 5.3.3 and print/cups 2.2.12 acts very strange, prints only very vague or blank, bold text as outlined. If as if the black cartridges are empty (and they are quite new and OEM).

The printing issues here are reproducable on Linux Mint 16 LTE with the original Canon printing software installed. This printer worked well for several years, both on FreeBSD with Gutenprint and CUPS, and on Linux (Mint and Fedora).

Did you also try just copying on your printer? Here that also doesn't work as intended, mostly producing blank pages, while the printer head is clearly going back and forth.

The issues make me think they could be an upgrade failiure or intended by the manufacturer -- wouldn't be the first to have a pre-programmed EOL...

All issues here came up after a few firmware updates on the printer.


----------



## grahamperrin@ (Feb 8, 2021)

vmb said:


> Unable to get list of printer drivers:
> No error: 0


I had the same symptom in 2015: Bug #12043: CUPS: add printer errors: unable to get list of printer drivers - PCBSD - iXsystems & FreeNAS Redmine

Forgot about it until recently, the symptom occurs when I attempt to add a printer with this style of address:

`lpd://username@print.server.address/queuename`

– the error occurred before there was an opportunity to specify a driver.

As far as I can tell, in my case the error arose from me including an @ character in the _description_ of the printer.

14.0-CURRENT, so I don't expect help here; just for reference.


----------

