> Could you please provide the printer model name you are using?
HP LaserJet M1536dnf MFP
> HPLIP does not need to install plugin in order to print. It only requires plugin in order to > scan.
Unfortunately, it is not true for several devices, e.g.:
hp laserjet cp 1025nw
hp laserjet professional p 1102w
Their PDL is zjstream, which is supported only by binary blob downloaded via hp-plugin.
> Previously, few entities in models.dat had remained as plugin=1 , which has been removed in
> 3.20.6 release.
Actually, 'plugin=1' doesn't mean the plugin is needed for printing, but it means whether it is needed or not. The reason why the plugin is needed is covered by 'plugin-reason' (e.g. plugin-reason=64 means the plugin is needed for scanning). So when all 'plugin=1' entries were removed, all those devices think they don't need a plugin (for printing, or scanning, or both) and fail to print/scan anything if the plugin wasn't installed previously (common use case when installing a printer on freshly installed OS).
If I look into current upstream models.dat, it seems only scanjet models are marked as they need plugin. Multi-function devices are not taken into account.
Ad previous 'plugin=0/1' settings - I'm not sure how many HP devices you have at hand for testing, but at least when I look into scan/sane/hpaio.c:
if ((ma.scantype == HPMUD_SCANTYPE_MARVELL) || (ma.scantype == HPMUD_SCANTYPE_MARVELL2))
return marvell_open(devicename, pHandle);
if (ma.scantype == HPMUD_SCANTYPE_SOAP)
return soap_open(devicename, pHandle);
if (ma.scantype == HPMUD_SCANTYPE_SOAPHT)
return soapht_open(devicename, pHandle);
if (ma.scantype == HPMUD_SCANTYPE_LEDM)
return ledm_open(devicename, pHandle);
if ((ma.scantype == HPMUD_SCANTYPE_SCL) || (ma.scantype == HPMUD_SCANTYPE_SCL_DUPLEX) ||(ma.scantype == HPMUD_SCANTYPE_PML))
return sclpml_open(devicename, pHandle);
if (ma.scantype == HPMUD_SCANTYPE_ESCL)
return escl_open(devicename, pHandle);
if (ma.scantype == HPMUD_SCANTYPE_ORBLITE)
return orblite_open(devicename, pHandle);
else
return SANE_STATUS_UNSUPPORTED;
all device types except for SCL and PML call bb_load() function, which loads symbols from binary plugins downloaded via hp-plugin.
To sum it up, I would say most devices which are able to scan and didn't have 'plugin=1' and 'plugin-reason=64' had bad entries in models.dat and supposed to require a binary plugin for scanning.
> Also plugin has nothing to do with python version. It will work on python3 as well.
I wasn't the one who thought it is a python issue.
> Please install plugin via ,
> $sh hplip-3.20.6.plugin.run
This will certainly help, but you are missing the point. Before hplip-3.20.6, hp-setup (with models.dat help) was able to install the plugin automatically, when it recognized that found device needs it. models.dat is used as a database about device features, including plugin.
After hplip-3.20.6, models.dat lost info for several models regarding plugin, making them unusable unless you manually install the plugin.
IMO making a device work, which your suggestion does, is quite different from 'making a device work in user-friendly way', which hp-setup offered (for those devices, which plugin/plugin-reason were set correctly) before version 3.20.6 and which should be preferred for a long-term solution.
Hi Shivani,
thank you for looking into the issue!
> Could you please provide the printer model name you are using?
HP LaserJet M1536dnf MFP
> HPLIP does not need to install plugin in order to print. It only requires plugin in order to > scan.
Unfortunately, it is not true for several devices, e.g.:
hp laserjet cp 1025nw
hp laserjet professional p 1102w
Their PDL is zjstream, which is supported only by binary blob downloaded via hp-plugin.
> Previously, few entities in models.dat had remained as plugin=1 , which has been removed in
> 3.20.6 release.
Actually, 'plugin=1' doesn't mean the plugin is needed for printing, but it means whether it is needed or not. The reason why the plugin is needed is covered by 'plugin-reason' (e.g. plugin-reason=64 means the plugin is needed for scanning). So when all 'plugin=1' entries were removed, all those devices think they don't need a plugin (for printing, or scanning, or both) and fail to print/scan anything if the plugin wasn't installed previously (common use case when installing a printer on freshly installed OS).
If I look into current upstream models.dat, it seems only scanjet models are marked as they need plugin. Multi-function devices are not taken into account.
Ad previous 'plugin=0/1' settings - I'm not sure how many HP devices you have at hand for testing, but at least when I look into scan/sane/hpaio.c:
if ((ma.scantype == HPMUD_SCANTYPE_ MARVELL) || (ma.scantype == HPMUD_SCANTYPE_ MARVELL2) ) open(devicename , pHandle); SOAP) devicename, pHandle); SOAPHT) open(devicename , pHandle); LEDM) devicename, pHandle); SCL_DUPLEX) ||(ma.scantype == HPMUD_SCANTYPE_ PML)) open(devicename , pHandle); ESCL) devicename, pHandle); ORBLITE) open(devicename , pHandle); UNSUPPORTED;
return marvell_
if (ma.scantype == HPMUD_SCANTYPE_
return soap_open(
if (ma.scantype == HPMUD_SCANTYPE_
return soapht_
if (ma.scantype == HPMUD_SCANTYPE_
return ledm_open(
if ((ma.scantype == HPMUD_SCANTYPE_SCL) || (ma.scantype == HPMUD_SCANTYPE_
return sclpml_
if (ma.scantype == HPMUD_SCANTYPE_
return escl_open(
if (ma.scantype == HPMUD_SCANTYPE_
return orblite_
else
return SANE_STATUS_
all device types except for SCL and PML call bb_load() function, which loads symbols from binary plugins downloaded via hp-plugin.
To sum it up, I would say most devices which are able to scan and didn't have 'plugin=1' and 'plugin-reason=64' had bad entries in models.dat and supposed to require a binary plugin for scanning.
> Also plugin has nothing to do with python version. It will work on python3 as well.
I wasn't the one who thought it is a python issue.
> Please install plugin via , 20.6.plugin. run
> $sh hplip-3.
This will certainly help, but you are missing the point. Before hplip-3.20.6, hp-setup (with models.dat help) was able to install the plugin automatically, when it recognized that found device needs it. models.dat is used as a database about device features, including plugin.
After hplip-3.20.6, models.dat lost info for several models regarding plugin, making them unusable unless you manually install the plugin.
IMO making a device work, which your suggestion does, is quite different from 'making a device work in user-friendly way', which hp-setup offered (for those devices, which plugin/ plugin- reason were set correctly) before version 3.20.6 and which should be preferred for a long-term solution.