Pogoplugs and Optware

As mentioned recently, I've got a Pogoplug, and I really like it. It's basically a 512Mb RAM, 1.2GHz ARM processor toting Linux server that draws around 4W of power (same as our microwave does when idle - an insane amount for a digital clock that you can't read in bright sunlight). The software that it comes with ties closely with the Pogoplug website to provide a front-end to your files, and is pretty neat, and there's an application which maps all the drives hooked up to your Pogoplug as a single drive under Windows. (OSX and Linux get love too, but I've only tried accessing the files on Windows boxes.)

One of the things that attracted me to it was the possibility of installing extra software on it - I was aware of projects that provide packages for it, and thought I could use it for a bit of useful general server action. I quite fancy building software for it myself as well. I was disappointed to find that the project I'd originally heard of, Openpogo, had morphed from add-ons to the existing Linux system to an entirely new distro with a new boot loader, which results in the rather nifty Pogoplug software being killed in the process. (I have no problem with the concept of Plugapps, the new system - it's just not what I'm after right now. If Pogoplug (the company) should drop all support for my hardware, I'll undoubtedly bite the wax tadpole and install it.)

So, I was heartened to find that the old Openpogo had actually been based on the somewhat legendary Optware, and the Optware website had taken on the task of keeping it going. Optware is the system that maintained alternative firmware and packages for various Linux-based appliances, like the Linksys NSLU2 and WRT54G - two devices also mentioned last time I muttered on about Linux, as it happens. And as it happens, I've already experienced Optware because of these devices.

Hurrah!

So, I followed the instructions for installing Optware (understanding far more about what I was doing than last time I did this - the benefit of years of hands-on experience I guess!) and, lo, I had Optware packages coming down the tubes to my Pogoplug. A few packages then got installed, and all was good. And then... I hit a snag, and all this post so far is preamble to get to documenting this snag and how I resolved it.

I knew I wanted to compile software on the Pogoplug itself, so I had a poke around and found the "Plug computers page" had the advice I needed. All I had to do was run "ipkg install optware-devel" to get all the packages necessary for building software - similar to what I've been used to on Ubuntu and Debian systems, where "apt-get install build-essentials" gets all the basic bits for development. So I ran it, sat back and waited, and that's when I had a problem.

Was it a dependency problem? Misconfigured package? Not sure. All I know is that wget - an essential part of Optware - was now broken. Any attempt to call wget, or ipkg (which uses it), resulted in an error message: "error while loading shared libraries: libidn.so.11: cannot open shared object file: No such file or directory". No problem, I'll just grab the libidn package and... oh.

Now, I'm tempted to continue the narrative some more, but if you've arrived at this page via Google and you're trying to fix a problem like this yourself, you're going to be cursing me. And I'm cursing me as well, because I'm using my incredibly hot-running laptop right now, so let's get it over and done with, eh?

The problem is apparently with the build of wget-ssl, which is built against libidn but doesn't list it as a dependency in the package. wget-ssl gets installed as part of the optware-devel package, and that's why the error only appears after installing that.

The quick fix (and the one you're probably too late to do) - install libidn first, by running "ipkg install libidn". Once it's installed, "ipkg install optware-devel" will work fine. Do this next time, yeah?

The slightly more involved fix - replace the broken wget with the working BusyBox one, which is what is on the Pogoplug from the beginning. This is what I did:

cd /opt/bin (the Optware /bin directory)
mv wget wget.old (move the broken one out of the way)
ln -s /bin/busybox wget (symlink BusyBox to wget - this is the way BusyBox works)
test it - wget should return details of BusyBox now, instead of an error

Having thought about it, you could probably achieve the same by just removing the wget-ssl package - "ipkg remove wget-ssl" - that's the value of hindsight. Hey ho.

You could leave it there, but what I did instead was install libidn, and then put the broken wget back. This means you get the wget that supports SSL rather than just the vanilla BusyBox one. 

Ta-da! Working build environment!
| Viewed
times