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

Re: HP MFP m29w Scanning



Quoting 'Christian Peeples' via BerkeleyLUG (berkeleylug@googlegroups.com):

>  Rick & Michael:
> 
>  Thank you.

Christian, I failed to notice that you put the requested datum as a
(changed) Subject header.  (Sorry about missing that.)

   Subject: HP MFP m29w Scaning

Not a complaint, but switching out the Subject header isn't the most
efficient way to answer a question.  At least speaking for myself, I
normally expect the conversation to keep going on in the message body
text.


[This is going to be a long post, but at the end, the answer near the
end will be 'Good news, you should have easy scanner support, provided
your version of the hplip package, provided by Ubuntu, is 3.18.4 or 
later.  You should not need anything else (other than the standard Linux
SANE software), and you don't need to download anything from HP.']



Anyway, taking that by fragments:

   HP

As you said, a Hewlett-Packard.

   MFP

I warned upthread that multifunction devices (combined scanner, printer,
fax, and/or modem) are one of two categories of scanners most likely to
be problematic for driver support.

I'm not 100% sure why this is the case, but I have a theory.  Even
though there's absolutely nothing wrong with the _concept_ of such an
all-in-one device, in practice the manufacturers seem to see it as an
opportunity to cut corners, i.e., you get an underpowered and rickety
inkjet (usually) printer, and an underpowered scanner engine that often
has design limitations like offloading a bunch of the scanning work to
an obligatory piece of proprietary (aka 'non-free') software required to
run on an attached PC, just in order to save $2 of electronics in the
scanner itself.  According to my theory, partly in consquence, these
all-in-one devices suffer consequences of failing Moen's Law of
Hardware.

http://linuxmafia.com/~rick/lexicon.html#moenslaw-hardware

  Moen's Law of Hardware

  "Use what the programmers use."

  After years of helping people with hapless computer-hardware woes,
  especially trouble-prone categories such as Linux on laptops, exotic
  peripheral interfaces, etc., it occurred to me to wonder why I never had
  such problems. It was mainly because of instinctive avoidance of dodgy,
  exotic, new, and/or badly designed components — which happens to track
  strongly with programmers' characteristic prejudices. There's a logic to
  that, which may not be immediately apparent to many:

  Drivers for hardware don't emerge like Athena from the head of Zeus:
  Someone has to create them. Especially for open-source OSes such as
  Linux, this involves a chipset being brought to market, for it to be out
  long enough for coders to buy and start using it, and for them to (if
  necessary, absent manufacturer cooperation) do the hard work of
  reverse-engineering required to write and debug hardware support. Then,
  the resulting code filters out to various OS distributions' next
  releases, and thus eventually to users.

  It follows that, if you blithely buy what's new and shiny, or so badly
  designed or built that coders eschew it, or so exotic that coders tend
  not to own it, it will probably have sucky software support, especially
  in open source. (Proprietary drivers can be written under NDA, often
  before the hardware's release, while manufacturer help is routinely
  denied to the open source world.) Conversely, if you buy equipment
  that's been out for a while, doesn't suffer the (e.g., Diamond
  Multimedia in the early 2000s) problem of chip-du-jour, is bog-standard
  and of good but not exotically expensive quality, it will probably have
  stellar driver quality, because coders who rely on that hardware will
  make sure of that.

  Thus, it's very common for slightly ageing but good-quality gear to
  outperform and be more reliable than the latest gee-whiz equipment,
  because of radically better software support — not to mention the price
  advantage.
  [...]

The point being, in the case of all-in-one multifunction
printer/scanner/fax/modem hardware, the coders who'd need to write the
SANE (Scanner Acceess Now Easy) back-end open-source drivers are
probably slow to want and acquire such hardware, hence slow to write
drivers for them.

As mentioned upthread, in the event of scant support from SANE, you have
as fallback the proprietary VueScan drivers.  The VueScan coders are
willing to sign NDAs to get detailed hardware information from the
manufacturers (because their code will not disclose confidential
hardware information under GPL), and get rewarded for writing driver
software even for lackluster scanners because you as a customer need to
pay them money.

Personally, I avoid the problem by eschewing hardware that transgresses
Moen's Law of Hardware, and favouring using what the programmers use.

But getting back to your scanner:

    m29w

The 'w' designates 'wireless'.  Which FWIW is a Bad Word where printing
and scanning is concerned.  Why?  Because hardware manufacturers tend
invent bizarre proprietary WiFi-networking protocol extensions as
transport methods for scanning and printing over WiFi.

So, when you see 'wireless' for such a thing, you basically pray to the
gods that the gadget also supports an access method less problematic,
like (usually) USB (which gets thrown in because it's dirt-cheap).



   HP MPW m29w

Just a fine-point, not a big thing:  It's in your interest to try to
cite model numbers exactly the way the manufacturer says them.
Lettercase doesn't matter, but people searching for information in
order to help you can do so best if they have the identifying string
exactly as the manufactuer states it.  In this case:

HP LaserJet Pro MFP M29w

Specs say it includes an USB 2.0 port, not just wireless
(https://store.hp.com/us/en/pdp/hp-laserjet-pro-mfp-m29w-printer).


So, the next thing I do is Web-search for 

   "HP LaserJet Pro MFP M29w" "sane"

This guy sought help with an M29's (not M29W) scanning on Linux Mint 19:
https://forums.linuxmint.com/viewtopic.php?t=291127
He stressed that he was trying using USB.

One detail that emerges is that the M29 & M29W are part of a set of
near-identical all-in-one models that require (all) the same printing
and scanner drivers, referred to in driver sofware as
'HP_LaserJet_MFP_M28-M31', i.e., HP LaserJet MFP models M28 through M31,
as they are basically all the same thing.

Pretty much all of the discussion in that Linux Mint forum thread is
about downloading and trying to make work the scanner portion of an
HPLIP (Hewlett-Packard Linux Imaging and Printing) driver that the user
downloaded directly from HP's download site, and trying to get a
proprietary plugin to do its magic.

And here, I must again explain a couple of things.

(1) We of the Linux community go to hardware manufacturers' download
sites for drivers only as an absolute last resort.  Those drivers, where
they exist, tend to be really bad, really fragile, and proprietary.
They are almost never provided as distro packages, so, long-term,
relying on them does violence to the software management on your distro.
It is unclear whether this user (in the forum thread) knew this and
tried the Linux Mint packages of HPLIP _first_.

(2) HP pulled off something of a propaganda coup when they created the
HPLIP software architecture, something like 20 years ago.  They got
kudos for contributing open source -- which they kind of did, and kind
of not.  The core HPLIP set _is_ open source under GPL -- which is why 
distros can and do package it.

But HPLIP by itself supports some HP hardware fully, other models
partially, and other models unsatisfactorily or not at all, because 
HP consigns 'secret sauce' driver code for some models to proprietary,
binary-only software that cannot by law be even _distributed_ with
HPLIP, but must be fetched directly from HP's site as a separate
download.  For both scanners and printers, this functionality gets
implemented as a proprietary 'plugin' for the otherwise open source
HPLIP driver.

_And_, the cheaper you go in HP's model lines, the more likely the
hardware model is to require special 'secret sauce' plugins to do much,
or in some cases to be anything but a paperweight.  When you get down to
HP's 'MFP' all-in-ones, it's _totally_ non-surprising that HP expects
you to download proprietary, binary-only crud -- because that's
(frankly) the bottom of the barrel.


The Linux Mint forum thread was active from 2011 to 2017.  Following
links from the 2017 comments, one eventually ends up at this Ubuntu bug
for their HPLIP package:
https://bugs.launchpad.net/ubuntu/+source/hplip/+bug/1811504  Quoting:

  From my point of view the bug should be closed somehow. As I
  understand MFP M28 uses closed source protocols from Apple (AirScan) and
  Microsoft (WP-scan) for scanning, therefore the scanning plugin form HP
  is closed source and Ubuntu developers can do little with it, otherwise
  MFP M28 linux users, who can push HP directly to fix the problem. The
  workaround solution (sane-airscan/current SANE) are open source and
  based on reverse engineering specification of the protocol. My opinion
  that the proper way of fixing the issue is not to do something in the
  plugin, but asap include a new version of SANE to next Ubuntu release
  and/or backported SANE airscan to current Ubuntu if possible.
  P.S. As many other users of HP, I absolutely disappointed of such "good
  quality" drivers from the vendor. I hope it will change in the future.

Hey!  Wacky proprietary network protocol extensions for cheap-ass
all-in-one hardware.  Who knew?  ;->

Same guy earlier in the bug:

  I was also affected by this problem. The MFP support AirScan,
  therefore it is possible to scan with such interface. Very recent
  version of SANE support this, but for old SANE versions you can find
  a driver here: https://github.com/alexpevzner/sane-airscan 
  I've install it from the repository and it works!  I can scan any 
  modes with hi resolution (600 dpi).

Oh joy.  Extra, weird-ass software to retrofit reverse-engineered
support for a manufacturer's wacky proprietary network protocol
extensions for cheap-ass all-in-one hardware.


Web-searching
   MFP_M28-M31 sane
I find among other things this 2019 thread at HP support:
https://h30434.www3.hp.com/t5/Scanning-Faxing-and-Copying/linux-impossible-to-scan/td-p/6969861
That user never found a solution.


Web-searching  
  MFP_M28-M31 scanner linux
got the same story here:
https://h30434.www3.hp.com/t5/LaserJet-Printing/LaserJet-MFP-M28w-amp-Linux/td-p/6667058



Let's switch tactics for a moment, and attack the driver thing head-on
via the SANE Project pages about scanner-model support by manufacturer:
http://www.sane-project.org/sane-mfgs.html#Z-HEWLETT-PACKARD

Uh-oh, nothing for the entire M28-M31 series.

Let's try the page for the _development_ (beta) SANE code, linked as
such from http://www.sane-project.org/sane-supported-devices.html,
leading to
http://www.sane-project.org/lists/sane-mfgs-cvs.html#Z-HP

There's an entry for the M28w, which appears to be basically the same
unit:

Model: LaserJet MFP M28w
Interface: WiFi
USB ID: n/a
Status: Untested
Comment: Testers needed!
Backend: escl
Man page: sane-escl

The man page says:

  NAME:  sane-escl - SANE backend for eSCL scanners

  DESCRIPTION: The sane-escl library implements a SANE (Scanner Access
  Now Easy) back-end that provides access to eSCL protocol scanners.

  The "escl" backend for SANE supports AirScan/eSCL devices that
  announce themselves  on mDNS as _uscan._utcp or _uscans._utcp.  If the
  device is available, the "escl" backend recovers these capacities.
  The user configures and starts scanning.  A list of devices that use
  the eSCL protocol can be found at 
  https://support.apple.com/en-us/HT201311.  While these devices are
  expected to work, your mileage may vary.

So, surprisingly, at least using the official SANE (development version)
software, the dodgy WiFi access is supported, but SANE says nothing
encouraging about USB access.

Last, also on http://www.sane-project.org/sane-supported-devices.html, 
there's a link to a list of _external_ SANE backends, i.e., ones that
aren't officially part of the SANE project, but maintained elsewhere.
That list is at:
http://www.sane-project.org/lists/sane-backends-external.html#S-HPAIO

The 'HP LaserJet Pro MFP m29a' (but not the m29w) has a specific entry
under the 'hpaio' SANE back-end.  It says that the status of support is
listed as 'Good', but that 'this backend [hpaio] isn't included in SANE
because it is included in the HPLIP software'.


Let's slightly switch tactics again, and look on HP's site for HPLIP.
https://developers.hp.com/hp-linux-imaging-and-printing/supported_devices/index
has an entry for the m29w, as follows:

Model: HP LaserJet Pro MFP M29w
Min. HPLIP Version: 3.18.4
Chrome OS Support: No
Driver Plug-in: No  [RM: this mean you do _not_ need a proprietary plugin.]
Support Level: Full
Print Mode: Mono
Scan to PC: Yes
PC Send Fax: No
Connectivity: USB,Network


So, hey, why don't you try installing the needed software?

$ sudo apt install hplip hplip-gui libsane-hpaio

Make sure the installed version of HPLIP is at _least_ 3.18.4, as
mentioned above.[1]  If not, there's a deal-breaker, right there, and this
is yet another reason to not use old and poorly supported distro
releases as I remember you were recently.

Then (assuming you have a modern version of HPLIP), as described on
https://www.cyberciti.biz/faq/how-to-install-networked-hp-printer-and-scanner-on-ubuntu-linux/
, do:

$ hp-setup

or, to set up the printer/scaner in the HPLIP framework to use USB:

$ hp-setup -b usb

Then just do the obvious things in the GUI.  This'll let you set up
printing if you haven't already.  Exit, then do:

$ hp-toolbox

This lets you check on the setup of printing and scanning.



Christian, I hope that helps.  I belatedly realised that your request for 
help did not include which Ubuntu _release_ (which would be something
you should always include in such requests for help), nor did you state 
what you've already tried, and what happened when you did.



[1] Checking at Distrowatch.com, I find:

Ubuntu release     HPLIP version   New enough?
20.04 LTS 'focal'  3.20.3          Yes
19.10 'eoan'       3.19.6          Yes
19.04 'disco'      3.19.6          Yes
19.10 'cosmic'     3.18.7          Yes
18.04 LTS 'bionic' 3.17.10         No
all earlier        <=3.17.10       No

So, if you are still on Ubuntu prior to 19.10, you need to upgrade your
distro.


-- 
You received this message because you are subscribed to the Google Groups "BerkeleyLUG" group.
To unsubscribe from this group and stop receiving emails from it, send an email to berkeleylug+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/berkeleylug/20200809045304.GT29756%40linuxmafia.com.