Zen and the art of Scanner Maintenance (Bug #1797501 again)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
HPLIP |
New
|
Undecided
|
Unassigned |
Bug Description
A number of users have experienced a loss of scanning functionality in the past twelve months and some have sought help here or through other support channels. Affected devices appear to include
* OfficeJet 6600
* OfficeJet Pro 8600
* Deskjet 3630
* Color LaserJet Pro MFP M278-M81
* LaserJet MFP M28-M3
The usual advice has been to tackle the issue through a suitable modification to /usr/share/
The root of the problem is well-explained by Jeremy Kerr in LP #1797501:
https:/
and a very strong indication that you have met this bug would be given by the journalctl command. Basically, look in its output for no attributes being found in models.dat.
First of all, this problem only affects modern IPP printers which are on the network and which have an AirPrint service. Secondly, the solution presented here depends on a user having set up a print queue using HPLIP's hp backend in a URI for the printer. Check this with
lpstat -v
Does the device for the printer begin with hp:/... ? If "yes", you could be due to regain the scanning facilty with the following method:
*******
*** Method: turn off AirPrint on the printer. ***
*******
How to do this is left up to the user, but the printer's EWS (Embedded Web Server) or front panel are places to look to do it.
Explanation
===========
The SANE backend hpaio needs a URI to use the scanner. There are two ways it can be obtained.
1. From the AirPrint mDNS broadcasts of the printer. This
is a discovery method.
2. From the printer URI. In this case, it simply takes the
lpstat -v output and substitutes hpaio for hp. There is
no discovery involved; it's a clever programming trick.
3. What is obtained from 1. and 2. should be identical.
Because of LP #1797501 the two URIs are different. One
is right and one is wrong. The right one is the one
obtained in 2.
4. Given the choice, the hpaio backend first tries 1, which
causes the scanner not to be located. It does not fall
back to 1. No choice should be given. Turning off AirPrint
forces it to use 2.
5. models.dat needs to be pristine. Make it so with
apt --reinstall install libsane-hpaio
There you are. Happy? This poster isn't!
We have taken years and put a lot of work in to get to the point where setting up a printer is nearly as easy as plugging a USB mouse in. Turning off AirPrint moves us backwards. Your printer is now invisible to any other devices on the network; computers, smartphones etc. Driverless printing is ruled out. But, if it works for you...
--
Brian.
In /usr/share/ hplip/data/ models/ models. dat there is a section for each device supported by HPLIP. For example
[hp_colorlaser jet_mfp_ m278-m281] 3630_series]
[deskjet_
The printer URIs for these networked devices would be
hp:/net/ hp_colorlaserje t_mfp_m278- m281?ip= <IP_address> deskjet_ 3630_series? ip=<IP_ address>
hp:/net/
It can now be deduced that their scanner URIs are definitely
hpaio: /net/hp_ colorlaserjet_ mfp_m278- 281?ip< IP_address> netdeskjet_ 3630_series? ip=<IP_ address>
hpaio:
Scanning should always be possible by providing a SANE frontend with a
URI. Like so:
scanimage -d hpaio:/ net/hp_ colorlaserjet_ mfp_m278- m281?ip= <IP_address> net/hp_ colorlaserjet_ mfp_m278- m281?ip= <IP_address> net/deskjet_ 3630_series? ip=<IP_ address>
xane hpaio:/
simple-scan hpaio:/
******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ** ******* ******* ******* ******* ******* ******* ******* ******* ******* **
* This provides another way of scanning if LP #1797501 is encountered. *
*******
Note that it is possible to guarantee almost certainly which other devices will be affected by LP #1797501. For example:
[hp_laserjet_ mfp_m426fdw]
The printer URI is hp:/net/ hp_laserjet_ mfp_m426fdw? ip=<IP_ address> net/hp_ laserjet_ mfp_m426fdw? ip=<IP_ address>
The scanner URI is hpaio:/
The device's _uscan._tcp output would have to have
ty=hp_ hp_laserjet_ mfp_m426fdw
to avoid LP #1797501.
--
Brian.