[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#912768: hplip-data: hp-toolbox fsck



Concerning the scanning, I have done the following observation:

I have the HP OfficeJet Pro 8730.

I have removed all print queues using the "hp" CUPS backend (I print with a driverless queue). With an HPLIP-based print queue my scanner is always found.

1. Printer on the network

scanimage -L

does not find the scanner in my MF device, but

scanimage -d hpaio:/net/HP_OfficeJet_Pro_8730?ip=w.x.y.z > x.pnm

scans correctly.

hp-probe finds the URI:

hp:/net/HP_OfficeJet_Pro_8730?ip=w.x.y.z

2. Printer on USB

scanimage -L

finds the scanner with the following URI:

hpaio:/usb/HP_OfficeJet_Pro_8730?serial=xxxxxxxxxx

and it scans also when specifying this URI.

hp-probe finds the URI:

hp:/usb/HP_OfficeJet_Pro_8730?serial=CN783F60W1


Now I did some debugging and found out that "scanimage -l" discovers the scanner with the URI (device on network, note the "hp_" missing in the model name, upper/lower case is ignored by HPLIP):

hpaio:/net/officejet_pro_8730?ip=w.x.y.z

This does not match the model name in /usr/share/hplip/data/models/models.dat which is "[hp_officejet_pro_8730]".

So I did the following change:

----------
--- io/hpmud/model.c~   2018-08-21 17:42:16.000000000 +0200
+++ io/hpmud/model.c    2018-11-06 17:14:04.302446688 +0100
@@ -420,7 +420,10 @@
strncpy(section, rcbuf+1, sizeof(section)); /* found new section */
          n = strlen(section);
          section[n-2]=0; /* remove ']' and CR */
-         if (strcasecmp(model, section) == 0)
+         if (strcasecmp(model, section) == 0 ||
+            (section[0] == 'h' && section[1] == 'p' &&
+             section[2] == '_' &&
+             strcasecmp(model, section + 3) == 0))
          {
             /* Found model match. */
             *bytes_read = ResolveAttributes(fp, attr, attrSize);
----------

This matches the model names both with and without "hp_" in the beginning.

Note that I did not yet upload an Ubuntu package of HPLIP with this patch as the archive is not yet opened for the disco (19.04) development cycle.

After applying this change "scanimage -L" discovers also my scanner when connected to the network and I can scan from any SANE-based application without needing a print queue using the "hp" CUPS backend of HPLIP.

Cristian, this could solve your scanner problem if the other fixes did not solve it yet, please try and report back.

In general this patch helps for using driverless printing on HP devices as long as they are connected by the network. If you do driverless printing via USB, with ippusbxd (IPP over USB) scanning does not work while ippusbxd is connected to the printer (it is really time that manufacturers start with driverless IPP scanning).

So for USB connection you will still need to print with HPLIP if you want to be able to scan.

   Till


Reply to: