Hardware that Requires software WAS: TL-WN722N support

Polytropon freebsd at edvax.de
Fri Aug 29 06:14:17 UTC 2014

On Thu, 28 Aug 2014 10:16:39 -0400, Paul Kraus wrote:
> On Aug 27, 2014, at 23:33, Polytropon <freebsd at edvax.de> wrote:
> > Yes, those are terrible and years behind technological evolution.
> > The same applies to "WinModems", a disease that development has
> > fortunately dealt with.
> It is helpful to understand the why of something, and explain such,
> rather than just condemn it as bad.

I did omit the explanation because I thought it would be obvious. :-)

> The move to host based software for things like printers, modems,
> scanners, and other various hardware came about because the
> performance of the general purpose computer was increasing at
> least at Moore’s Law rate, if not faster. By moving the processing
> of the raw data into code the device (printer, scanner, modem, etc.)
> could use onto the host OS you got two big advantages:
> 1. As the host systems got faster so did your device

Typical consumer devices (on which I placed the scope) usually
do not live longer than the systems they are connected to. In
fact, one host system can easily see several incarnations of
a peripherial device. With each new device, software has to be
exchanged. And in many cases, as the software is kept proprietary
to perform a good "vendor lock-in", either data is lost (often a
problem for unexperienced users who "have the fotos in the scanner
program"), or whole workflows are replaced (because the new printer
control program is totally different than the old one).

Of course you're right regarding the "available CPU cycles", or
host system resources in general. It allows the manufacturer to
reduce the costs for the device because, for example, it doesn't
have to contain a whole "little computer" to process raster input,
or PS. "Software is cheaper than hardware" is a common statement.
So whatever can be delegated to the host system will be "shifted
from hardware to software", beginning with the input processing
and ending with the motor control for the paper transport, the
printing head, and the ink jets themselves. Of course the manu-
factuerer is not interested in telling anyone how this works,
it's his trade secret. And so there won't be a driver available
except the one that the manufacturer provides.

Additionally, there's a positive aspect in it: If less electronic
devices are included in the peripherial, the less waste is created
when it stops working. As I said, the concept per se isn't that
wrong, but its (ab)use is.

Regarding Moore's law: It is compensated by Wirth's law and
Gates' law. The Jevons paradox and Parkinson's law sadly also
apply. Furthermore Nathan's four laws of software can be applied
to the drivers and the application programs, the host-side of
the whole concept. ;-)

> 2. Your device was likely to remain useful for a longer period

>From a consumer perspective, this (as mentioned) isn't always
true: He buys a new computer with a new "Windows" - and the
vendor of his printer does not have drivers available for that
version, and the old drivers cannot be used anymore. So a printer
that is technically fully functional is turned into a useless
pile of electronic garbage.

By the way, this is what I intially mentioned: The printers that
I "turned alive again" were such models where only outdated drivers
would be supplied, and no standard drivers could be used. I ended
up using the Linux driver through FreeBSD's Linux ABI, with lots
of "wild copying around" and strange symlinking, having "disassembled"
the strange workflow of that printer driver. On "Windows", this printer
(and another one) would have to be thrown away.

As we're talking about consumer devices: They are not inteded to
work for longer periods. This is against technical evolution, but
primarily it's against the concept of repeating re-instantiation
of "the same": People keep buying printers to print the same stuff,
because a printer only lasts 1 or 2 years.

>From my point of view (NB: very limited), manufacturers do not
develop host-based driver software. There typically is _one_ version
delivered with the printer, on CD or DVD, which users throw away.
There is the same version available for download. There is no
"successor" with better performance, more features or improved
security. This wouldn't meet the "sell & forget" mentality, because
"continuous product development" (of the _same_ product) doesn't
seem to pay.

> There is a third advantage, that the device can be less intelligent
> and less powerful, making it cheaper. The typical desktop computer
> today has lots and lots of spare CPU cycles (and generally speaking,
> has for at least a decade). Why not make good use of those resources.

Yes, that (and its financial implications) are the main reason.
By the way, I don't see any problem with it _per se_. The reason
why I don't like to work with this concept is that it _limits_ the
freedom and the possibilities of use, as you usually don't know
_how_ things work, and therefore depend on the "benevolent" vendor.

> I have three scanners in the house that *all* require very custom
> software as the processing of the raw scanned data from the image
> sensor is happening on the host system and not on the scanner
> hardware. I have seen marked improvements in image quality with
> each update of the management software. Even older hardware,
> hardware that the vendor would no longer be supporting if it were
> more complex is still on the supported list.

Thanks for sharing this - it seems that there's still hope. This
is what vendors _can_ do, but especially in the lower price segment
for consumer peripherials _don't_ do. :-(

I have USB and SCSI scanners myself. I don't need any special software
from a vendor. I can plug them in any system I want, and they work
the same everywhere. This is _also_ an advantage.

> Does it mean that you cannot use this hardware on OSes for which
> there is no software support? Absolutely, but that is the case
> for *everything*.

Exception: Hardware that uses standardized protocols and open
interfaces. SCSI scanners are a good example: If they implement
everything according to the specification, you can use them on
_any_ system that implements the required interfaces - which
are published openly, so it is at least _possible_.

Other nice examples are printers that speak PS, PCL or PDF.
Especially for PS printers, you don't even need a driver, because
programs that print send their output as PS, and that is what
the printer expects. :-)

> If you know you need to (or want to) runs a certain OS, for
> whatever reasons, then you buy hardware that is supported by
> that OS.

This is very true. "Supported by OS" or "supported by a standard
available through the OS" are the reasons for decisions that I make.
First think, then buy. Saves money. ;-)

Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...

More information about the freebsd-questions mailing list