Oh HP, you Bucket of Fail
Posted: Tue, 23 August 2011 | permalink | 10 Comments
I recently got given a new printer, a HP LaserJet “Professional”1 P1102w. It’s fairly loudly touted on HP’s website that this printer has “Full” support under Linux.
And yet, it won’t work with my Linux-based print server. Why? Because it uses a proprietary driver plugin, and that plugin is only available for x86 and amd64, and my print server is ARM-based. Well done, HP. You’ve managed to revive the old “all the world’s a VAX” philosophy, on an OS that is more than capable of running on practically anything. You got that for free. Why do you insist on screwing with it?
As an added bonus, when I try to “Ask a Question” on the HPLIP website, to politely (ha!) inquire as to the possibility of an ARM binary, I get sent to Launchpad, which does nothing more than tell me that there is an “Invalid OpenID transaction”. That’s the entire content of the page. Useful.
Lies, damned lies, and a double helping of proprietary software fail. My day is complete.
I use scarequotes around “Professional” because, as far as I can tell, this is just an entry-level personal laser printer. There is nothing particularly professional about it. ↩
From: Dylan McCall
For what it’s worth, Launchpad isn’t proprietary. (It was, but it has been free under the AGPL for well over a year). I suspect there may be some unhappiness involving cookies, but could you consider filing a bug report over at https://launchpad.net/launchpad, including the link that led you to that rather unhelpful error? There are lots of people that work really hard to make Launchpad useful, and I’m sure they would appreciate your input :)
From: Matt Palmer
I would report a bug, but the “Report a bug” link on the page you suggested gives the same “Invalid OpenID transaction” error.
From: Daniel Nelson
Maybe you can use foo2zjs http://foo2zjs.rkkda.com/
It isn’t proprietary, but it’s badly documented and full with hardwired paths. Last time I heard it was very hard getting it to work anywhere outside canonical computers. It’s just not a particularly useful piece of free software, I guess.
From: Matt Palmer
Daniel, thanks for mentioning foo2zjs. I found that project as part of my investigations into getting the printer to work, but so far I’ve been unsuccessful in actually making anything happen – I have a sneaking suspicion that there might be firmware issues afoot, or else I’m just completely misunderstanding how it’s all supposed to hang together. At any rate, I haven’t been able to get foo2zjs to actually produce any printing action yet, but I shant be deterred. My main gripe is that HP appear to have gone out of their way to make things more difficult, rather than less, by introducing some binary-only blob that really should be entirely unnecessary.
From: Peter De Wachter
I also have a cheap HP laser (but an older model). This is just HP being weird: they say “plugin” when they mean “firmware package”. Running “hp-plugin -i” should download the firmware for your printer. foo2zjs also has a firmware download script.
I’ve found foo2zjs and hplip both work, but they fight with each other if they’re installed at the same time. hplip comes with some software to query the printer’s status and to warn you if you’re out of paper etc.
From: Matt Palmer
I’m not so sure about “plugin == firmware”. The package of cruft I downloaded definitely contains some x86 and x86_64 shared objects; I haven’t straced things (yet), but they’re not in there for no reason. Also, I was able to print by hooking my (x86) laptop direct to the printer, while the (ARM) print server completely fails to do anything useful.
Good point on hplip and foo2zjs fighting each other, though; unfortunately I’ve got another (inkjet) printer that uses hplip so I can’t get rid of it entirely (except perhaps for testing purposes), but I’ll look into more effective ways of knobbling it from talking to the laser printer and confusing the issue.
As far as I know, this printer works flawlessly over WiFi (over which you can connect to its webinterface: it setups an AdHoc network). As for the USB, you probably need a decently recent “usb-modeswitch” (+ …-data) in order to make the printer a printer and not a disk; and foo2zjs as driver. “It should work”™.
foo2zjs doesn’t support this printer, unfortunately.
And the “plugin” really is proprietary, it really is x86 only, and it is really more than just firmware.
I already recounted my own horror story with this printer: http://np237.livejournal.com/29204.html
foo2zjs, at least as of Oct 2012, does support this printer, since that is what I use. Will it compile on ARM, as Matt Palmer needs? Don’t know. It’s been a while since I cross-compiled ARM binaries.
As you point out, the HP “plugin” package contains both firmware to be uploaded to the printer and a proprietary “x86” only binary plugin. foo2zjs replaces the latter. Supposedly, the printer already comes with firmware installed, so the former may also be unnecessary.
The “HP Smart Install” is definitely a horror, if you were to encounter it. If you are able to connect to the built-in webserver via wireless networking (an adventure unto itself) there is an option to disable it.
Overall there is little, if anything, about the protocols used by this printer that is “proprietary”, but figuring out how to communicate via those protocols is definitely a challenge if you can’t use HP’s canned software.
Post a comment
All comments are held for moderation; markdown formatting accepted.