Blocking hardware accessibility through software: a printer's tale

What are you getting when you buy a printer to use under GNU/Linux? The site can tell you how well a printer will work with free software, but often that's only part of the story. I came face to face with this simple fact when I recently bought a Hewlett-Packard PhotoSmart C3100, a low end inkjet printer that includes scanning and copying features. Besides basic features, like many today, the printer includes features that run without a computer, if only with the specific Windows or OS X software that accompanies it. My experience is one data point for measuring the current state of hardware support for GNU/Linux -- as well as how companies, deliberately or otherwise, are withholding it.

As had led me to expect, basic printing support was painless. The printer is included in the foomatic database used by CUPS (the Common UNIX Printing System), and two minutes in the KDE Control Center had the printer working at 300, 600, and 1200dpi -- and me grateful all over again for the improvements over using lpr and printtool. I chose the hpijs driver, which delivers much higher quality printing than the hplip driver, but at the cost of some functionality (see below). If colors seem a little washed out, and inks sometimes smear when using high-quality photo paper, experiments with the copying features quickly prove that the fault lies with the printer and not with the variants of the hpijs printer driver I tried. Considering the price, I was reasonably satisfied.

Further investigation showed that the stand alone features were equally trouble-free. These features work independently of any computer, which is why they could provide the benchmark for my printing tests. I suspect that I wasn't the only user to install incorrectly the sensor plate for the standalone features at first, but, once I realized that the plates' tabs needed to be inserted into the slots provided, functionality immediately followed.

Using the C3100 as a copier, I can control the paper type, print quality, size, and number of copies without being logged on to a computer. Similarly, I can print a proof sheet from the memory chip in my digital camera, then mark the proof sheet to print up to three copies of each photo selected either individually or by date stamp, and choose how my selections will be oriented on the printed pages. The proof sheet is ingenious, if a little convoluted, but, again, I was largely content with my purchase.

I already have a much higher-quality scanner, so I didn't buy the C3100 for its scanning capabilities. However, if I had, I would have been disappointed. Neither Xsane nor Writer could detect the C3100 while using the hpijs driver, for all my checking for loose cables, restarting the programs with the printer on, or even my long shot experiments with rebooting the computer with the printer active.

By contrast, the hplip driver did enable scanning, but with such a lack of speed and such graininess that I consider it unusable. Certainly, it was far below the performance of the machine's copy function, or of the printers' scanning capability under Windows.

Curious about what else GNU/Linux users might be missing with the C3100, I mounted the accompanying CDs and opened the readme files. Sure enough, the software I couldn't use included access to a file sharing site where users can order prints online -- for a price, of course, although the first 20 were free --OCR software for character recognition, a few basic photo editing features such as autocropping, and a faxing service.

My conclusions after investigating my purchase top to bottom? To start with, basic printing support for GNU/Linux has vastly improved since I started using the operating system seven years ago. Although most of that improvement is due to free software developers, some of the credit also goes to Hewlett-Packard for releasing the drivers and continuing to manufacture printers that can use them.

That said, clearly GNU/Linux users are still receiving second class treatment from manufacturers of peripherals. Bare functionality is welcome, but hardly enough. Because of the hundreds of different distributions and their widespread availability, the number of GNU/Linux desktops is impossible to count, but some estimates suggest that it rivals that of OS X desktops. So if OS X is supported out of the box, why not GNU/Linux? Like any long time GNU/Linux user, I am used to being largely ignored by hardware manufacturers and doing my own research, yet the question is still worth asking, if only to remind the manufacturers that token recognition is not enough. The profit margin on hardware is slim enough that ignoring any potential market seems short-sighted.

Yet even more important than restating these basic facts of using GNU/Linux is the method for denying access: The requirement for specific, technically unnecessary software, not only to achieve maximum printout quality, but also to fully control the hardware and to be aware of all that is available with your purchase. Standards and protocols for scanning are largely standardized on each platform, so it is probably more work, not less, to develop hardware that only completely works with specific software. Yet at least part of the Hewlett-Packard team that developed the C3100 chose to take that extra effort for some reason. The decision may not have been conscious, but the appearance is that, having gone some ways towards making its hardware available to free software users, Hewlett-Packard is making a deliberate effort to keep proprietary control over part of it. The availability of the free but substandard hplip driver is hardly enough.

Or perhaps the scanning software and other features were designed separately from the other features on my new printer -- in which case, I suppose I should be grateful that I received any functionality at all. And if Hewlett-Packard, a relative friend to free software, can create such difficulties, what can we expect from other companies?

Unfortunately, Hewlett-Packard is not alone in enforcing such unnecessary software dependencies. An increasing number of mp3 players, cameras, and even an external DVD drive that recently spent all of two hours in my home because it lacked an open/close button (and was therefore extremely awkward to boot from), do likewise. All too often, purchasers' access to basic functionality is being compromised or denied because of what seems to be a misguided attempt by the manufacturer to keep control. In the case of the DVD drive, even advanced Windows users were affected.

In all these cases, engineering seems compromised by marketing into a design that is both inelegant and unfriendly to consumers. And, for free software users, the result is a kind of poor cousin to digital rights management that locks them out of functionality and quality that they have paid for.

Admittedly, I either don't want or already have the features elsewhere that I can't use via the C3100. But that's beside the point. I would have appreciated the chance to refuse, if only for the illusion that Hewlett-Packard valued my business.

Bruce Byfield is a computer journalist who writes regularly for the NewsForge and Linux Journal web sites.


Bruce Byfield (nanday)


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Like this.. :D

matmund's picture

Like this.. :D

Really Cool

Joel Chue's picture

Does HP have a good reputation for printing. I haven't use a HP printer before.

Printer manufacturers ...

Braut Kleid's picture

.. are really a pain for all computer users. Especially the all-in-one printers are mostly crap. I had so much trouble with them that I use seperated scanner, fax and printer now :-)

Hewlett-Packard deserve respect

David Newall's picture

I am very pleased with the operation of the HP Photosmart 3310 under Linux. It is true that no OCR software was provided for Linux, unlike Windows, for which HP have arranged a bulk deal, but the numbers surely stack up to make the Windows licence attractive and the Linux one not so. That's not HP's fault and it doesn't particularly diminish them or their products.

To HP's particular credit, the software for the printer is entirely open source. By contrast with my previous printer, a Canon, it shines; Canon did provide some kind of driver, but only in binary with a small C-based GUI wrapper.

I haven't noticed any difference in features or speed scanning under Windows versus Linux; perhaps I haven't looked very hard. Even though the product is better under Windows, HP deserve respect for improving equality under UNIX.


Chris's picture

I haven't noticed any difference in features or speed scanning under Windows versus Linux; perhaps I haven't looked very hard. Even though the product is better under Windows, HP deserve respect for improving equality under UNIX.

i am completely agreeing with that. i am a worker on HP and may help you about that topics as well..

HP Officejet Pro K550

dick's picture

I am able to do most things with this printer. The one lack and the only reason I am still hanging onto Windows is that although the printer is set up do manual double sided printing, I have never been able to get this to work in Linux no matter what I do. It is a standard option with Windows printing to do either auto or manual double sided printing. None of the printing software with Linux seems able to do this. The other missing part is being able to print from back to front so that you don't have to sit there and shuffle the pages to get them into the right order. This is another standard option with Windows and seems to be lacking with Linux.

Everything else I have tried to do with Linux that I used to do with Windows works at least as well and usually better and I don't have to muck about with all the anti-virus, anti-malware, anti-spyware and defrag programs when I use Linux. As soon as Linux gets the printing software in order I will get rid of Windows. Until then I am afraid that I will have to stick with Windows for printing since Linux is missing the best parts of it or at least the functional parts are so screwed up that if you can get them to work somehow you have to jump through all sorts of hoops and then it may work or not - usually not.

you should look at using MPAGE

Anonymous's picture

you should look at using "mpage" which can be used to filter the odd numbered pages and then the even numbered paged for the second pass. This will also worl when doing 2-up and 4-up output pages as well. I find the mpage tool a very handly tool (and in my pre-cups days had manually created printer queues that made used of the mpage ptogram as a tool within the print spooler!).

In old days, this was part of the distribution installs.

Thanks Bruce, as usual your

Carla Schroder's picture

Thanks Bruce, as usual your article is excellent. I too wonder why vendors can offer OSX support but not Linux? Of course, us cynical old people have our usual suspicions about the dirty fingers of our favorite illegal monopolist keeping a short rein on hardware vendors. Your comment about the dev team having to take extra steps to create unnecessary software dependencies is right on. It's not about adding value for the end user at all- they don't care about us. It's a dirty business, and if it weren't for the Free Software Foundation, GNU, the GPL, Linux, and all other projects and people that make up the FOSS world we would have no choices at all.

Insufferable whining! HP

mrc's picture

Insufferable whining! HP provides support thats free (beer and freedom) for many of its multifunction devices, including yours. If you'd researched your choices at, you would have been led to the HPLIP driver which has a compatability list:

I'd save my complaints for companies that don't support free operating systems, instead of complaining falsely about those that do.

Re: Insufferable whining! HP

Bruce Byfield's picture

If you'd read my post with any attention, you'll see that I did rely on Its advice, which I found accurate, was that the hpijs driver delivered superior printing. The hplip driver does give fax capability, but of such poor quality that I didn't consider using it.

However, I should have mentioned the fact originally, and I didn't. I've since altered the entry.

As for picking on HP, I wonder if you've been a second class citizen for so long that you're used to the treatment. Yes, HP's support for GNU/Linux is better than many companies', but even it has some ways to go -- which was basically my point.

Anyway, even if hplip delivered decent quality, that wouldn't change the fact that neither it nor hpijs is included as part of the purchase -- to say nothing of the additional features or offers avaiable for Windows or OS X users.

I don't think it's whining to acknowledge that HP has made some concessions, then to go on to observe that its support still doesn't equal what's offered on other operating systems. I call that being realistic.

Bruce Byfield (nanday)

Bruce Byfield (nanday)

HPLIP for scanning

Anthony Cook's picture

Part of the problem with scanning may be the use of HPIJS. I had this same problem with my HPOJ 6210 under the IJS driver. Switching to HPLIP (0.9.4) solved this problem immediately. HPLIP is now available in an "experimental" installer as well as tarball form. Now at version 1.6.9, HPLIP is found on SourceForge.

As for not offering Linux support "out of the box", though by many accounts Linux desktop usage likely exceeds Mac/OSX, the problem for many hardware vendors (and commercial software vendors as well), is the overwhelming number of distributions and their diversity. As one prominent hardware vendor was recently quoted as saying, when you come out offering support for a particular distribution, users of other distributions lament, "what about [favorite distro here]?!?" At least with OSX, there is only one "distribution" to support and it, arguably (perhaps), has the largest commercial support.

Vendors then must make a choice: support only the few top commercially backed distros (and anger everyone else), "support" none but offer drivers et al and let users work their own support, or support LSB. IMO, the last option would be best, then it's left to the distribution vendors to make their systems compatible and not the other way around. Unfortunately, at this time very few distributions are certified LSB compliant, so the commercial vendors are left anyway with one of the other choices.

"Many distros" argument not an issue for this

Anonymous's picture

Not actually true. We're talking about device drivers now, which is not dependent on the specific distribution. Remember, all distributions use the same kernel (Linux), and for printing, virtually all of them use Ghostscript. There might be a few niche ones out there that use something other than Ghostscript for printing, but in nearly ten years of using GNU/Linux, I haven't yet encountered one.


Craig Ringer's picture

That's not realistic. GhostScript versions differ greatly, and even within a given version the variations in applied patches, build-time options etc make manyt distro's gs installs incompatible with others'. CUPS suffers from the same sort of issues.

Vendors have enough trouble with Mac OS "An incompatible version every six months" X. Imagine trying to support, say, Fedora Core, or (gah) Gentoo.

It's not even a closed-source-driver vs open-source-driver issue. Unless drivers go into the mainline only (in which case there's a very significant lead time for deployment) there's still a need to provide add-in drivers for older distros. The same problems resurface. At the very least you'll be recompiling for a bunch of different distros; more realistically you'll be doing some porting work too.

In their position, I would be very reluctant about even bothering with Linux support for printing hardware under the current state of affairs, except for my higher end modules that supported printer languages such as PostScript that only faster printer hardware can really effectively handle.

That, of course, is the real solution. Come up with a standard protocol for communicating with and controlling these devices and STICK TO IT. Alas, it seems unlikely to happen in the current environment - even PostScript support is often an add-on for network printers (!) these days.

Craig Ringer

If that's true--and I'm not

Anonymous's picture

If that's true--and I'm not saying that it is--then how is it that they can support the multiple Windows versions and multiple Mac OS X versions?

Oh, that's right--it is indeed a support nightmare. I remember having to wrestle with exactly that kind of problem when I was a Windows tech and later a Windows admin; the end-users were *totally* stymied. Makes me glad I don't have to do Windows anymore.

That is the problem with proprietary drivers and proprietary software in general, see. It can indeed become a support nightmare when you try to stay proprietary as these printer manufacturers are. If the source is, say, GPL'd, though, then the distro maintainers do all that work that you're describing. If you've got a way-old distribution (say, Red Hat 7.2 or Slackware 8.0), then, since the source is open,

make install

Not hard. Geez, even a GUI-clicking MCSE like I was can follow those directions. :-)

Many distros are an issue...

Anonymous's picture

...on the tech support side of things anyway.
Yes, the drivers use the Kernal, but which version of the kernal? Distro A might still be using kernal 2.4.x while Distro B uses kernal 2.6.x and then there is the whole issue of Gnome, KDE and how to navigate both of those desktops - not to mention all the little differences that each distro adds to these (can we say Yast? Control Panel? or whatever method they force you to use to configure things on GUI side?).
I know there is the command line, but honestly, if you are trying to get Linux on the Desktop you better not ask people to go there to configure anything. I speak as one who does Tech support.
So what does one do? Pick a Distro? Sounds easy but once you do, then you face the wrath of the zealots from all the other Distro camps....
This is why Dell doesn't offer Linux and why no one else will offer linux.
Personally I think that all manufacturers should just support Red Hat and SuSE and leave the rest to fend for themselves since these are the two biggest and best supported distros.
I am aware of Debian, Slack, [your choice distro here]... but let's understand something, the cost of tech support is high, and until you can simplify things Linux will always remain a red-headed step-child.

"I know there is the command

Anonymous's picture

"I know there is the command line, but honestly, if you are trying to get Linux on the Desktop you better not ask people to go there to configure anything. I speak as one who does Tech support."

Actually, as someone myself who still does tech support, even though that's not really my job anymore (my job title is network engineer these days), I can't agree with the notion of *never* showing users the command line for basic config operations.

For example, over the last eleven years or so that I've been doing tech support, I have repeatedly heard users call and say, "the network's down." Virtually all of them have used some form of Microsoft Windows. One of the first things I have a user do is open a "DOS box" and run the "ipconfig" utility. Sometimes, they don't get a DHCP address. First, I have them plug the "phone line" (read: network cable) that they unplugged back into the wall and the PC. :-) I then have them do the following:

ipconfig /release
ipconfig /renew

I then hear "oh, the network's back! Thank you, thank you!"

Well, running ipconfig /release and ipconfig /renew, and plugging the network cable back in, is no more difficult than issuing the following three commands to install a printer driver:

make install

And it is certainly no more difficult than issuing the following:

dhclient eth0

to renew your IP address. All you (the vendor) have got to do is include this sort of stuff in the directions when you sell your printer/computer/whatever, just like they do these days for Windows and Macintosh customers.

None of those are issues for

Anonymous's picture

None of those are issues for printing, except maybe kernel differences (spell it right, please), and anyone running a Linux desktop on a 2.4 kernel is going to have an uphill battle running a modern system. CUPS is self-contained and provides its own Web-based administration interface, so you don't need to hassle with whatever desktop-specific tweaks are larding up your chosen environment.

Even so, the best solution (as always) is to open up the driver and management software code, and let the community and the distribution maintainers take care of the rest.

And don't forget all the different Windows versions: 95/98/98SE/ME/NT3.5/NT4/2000/XP Pro/XP Home/2003/Vista. Mass incompatibilities there.

And don't forget that it's a very short step from supporting Mac OSX to supporting Linux.

My apologies

Bruce Byfield's picture

My apologies. I should have mentioned my experience with the hplip driver. I've added it now, but, basically I found it only technically usable, so I didn't originally mention it.

As for the differences in distros, that can be a problem in some cases, but I don't know that it's so much a case when you get down to the level of hardware drivers.

Even if there is, then LSB compliance might help, as you say. There's been some interesting moves in that direction recently that I hope to be reporting on soon.

Bruce Byfield (nanday)

Bruce Byfield (nanday)

Wait for GPLv3

Nicholas Petreley's picture

I think GPLv3 solves this. There's a new provision that says if anyone in your company is using GNU software in binary or source form, the entire company is required to provide open source free software drivers for all of its products.

Sorry, I just couldn't resist.

I vote for new editor of LJ.

Andrew's picture

I vote for new editor of LJ. Mr. Petreley, your smart-aleckiness and general "yes-but" attitudes towards FOSS make me wonder how you got the job in the first place. It certainly isn't your journalistic skills or professionalism. I hate to see LJ turning into Jerry Springer.

hate to see LJ turning into

lost's picture

hate to see LJ turning into Jerry Springer.
Then you and all like you that have tunnel vision should go away

what's tunnel

sinau's picture

what's tunnel vision?


Anonymous's picture

I suggest you have a look at VueScan to get the scanner part of your hardware working. It also does OCR.


Bruce Byfield's picture

Yes, according to VueScan's site, I could get the scanning capacity working. But I was talking about out of the box support, or, at the very least, cooperation with free software to provide support -- and not, in the end, about just one piece of hardware.

Besides, I'm not going to pay $50 to get a $100 piece of hardware working, especially when I have a much better scanner than already works.

Bruce Byfield (nanday)

VueScan is a one man

Anonymous's picture

VueScan is a one man operation. If he can manage to get all those scanners working on his Jack Todd why can't the dozens of people working on SANE and XScanImage, Kooka etc?

Easy, Simple ... that's why.

Anonymous's picture

The answer is as simple as obvious.

ONE-man. No coordination (except logically being slightly self-organized). No featuritis or feeping creaturism.

The SW is in _one_ repository. Etc.

Not wanting to put down the guys doing XSane, etc.

But it's a general flaw in OSS, that work-force and energy actually _can_ dissipate instead of becoming more concentrated.

German knows a famous saying: "Zuviele Köche verderben den Brei." meaning something like: "Too many cooks stirring the stew."

I'm an OSS evangelist since the 1980ies, and that's the whole issue ever since.

Linux and Hardware

JoeZ's picture

After recently recommending a friend purchase a notebook running Linux instead of Windows, I have encountered the difficulties that appear to stop more from moving to Linux. Hardware is difficult if not impossible to get to work, and even when possible often performs poorly in comparison to how it performs on a Windows OS.

I'm wondering why hardware manufacturers do not provide information on their products that would enable those who are not running windows the possibility of creating their own drivers. As I understand they are selling a hardware product, and would benefit from allowing their product to be installed on other than systems running an MS OS. As I see it they are selling only a piece of hardware, and I have not had to purchase updates to drivers so it would appear to me that they are not making additional income from their software drivers.

Am I to believe this is to protect them from users downloading their drivers at no cost and then construct the hardware themselves? Or is there a possibilty that MS is providing some type of financial aid in order to eliminate or reduce the usability of many hardware products in conjunction with non MS operating systems?

Many years ago when we purchased hardware we received a booklet containing enough information to allow us to write our own drivers.

As for the Tech support problems of supporting multiple OS's, I would be pleased if the information was made available to allow one to write their own drivers with the knowledge that no tech support would be given in such a case.

So bottom line, what are hardware manufacturers actually selling? Hardware or Microsoft Hardware?