2012-08-25

Backpacking computer: first attempt

Why a backpacking computer

This may seem a bit out of charactor... but secretly (or maybe not so secretly) Jess and I are currently software engineers by day.

While we were hiking the JMT we got to chatting and came up with the idea. As I thought about it the idea of a backpacking computer got more and more enticing, here's some uses we came up with:

  • Writing blog-posts while on the trail.
  • Store piles of reference books. Think edible plant, tree guides, and bushcraft books.
  • General reading for fun.
  • Maybe do a little hacking for fun or profit.?
  • I have a HAM radio license, so I was thinking about how cool it'd be to get a computer that speaks PSK31. PSK31 works at very low powers and can reach very long distances, so it could be really useful for contacting the outside world.

Of course, there are some requirements. To be useful we'd want wifi so we can upload when in towns, some good IO for things like radios, a good keyboard for typing, a display you can see in the sun, and most importantly incredible battery life.

Lastly, I'm a computer nerd, it has to run Gnu/Linux, or to me it just isn't useful.

My initial idea was to build something from scratch with a black/white passive segment display (you know, old-school style). After poking around a lot and looking at what devices *do* exist, what's easy to build these days, etc. I eventually decided before getting to crazy I should just start with my "cellphone". That is my Samsung Nexus Galaxy Android phone (basically a tiny tablet). I actually carried it on our last trip anyway in case we needed to look stuff while trying to hitchhike home.

Here's what I got: P1020366

My cellphone is a gnu/linux box! (and still a cellphone).

How

First step was to unlock my phone and install CyanogenMOD. I simply followed the directions here: here . Cyanogen is just an open-source android, which I wanted anyway. It comes with a more feature-full Linux kernel and it's already rooted, both of which are needed for Gnu/Linux to work.

Next I tried a couple things, but the winner was the "The Android Complete Linux Installer" available on Google Play. This tells you how to set up a chroot environment, gives you a link to some system images, includes some nice scripts for starting things, and allows installation of Debian among other distros. 

For some reason it installed Debian "Lenny", but whatever it's a starting place. Next step was to ssh in from my laptop (thus giving me a reasonable keyboard) remove a few bits of junk I don't want (dbus, xcfe, etc.) and upgrade the system to unstable. This took a bit of doing, I ran out of disk once, crashed the system a couple of times, a few freezes etc. Eventually it worked though and since I successfully upgraded everything's been stable.

The installer sets up a vnc server running xfce. It turned out just removing xfce and install fvwm was sufficient to swap the window manager. I prefer fvwm and it's plenty lightweight.

Next I did a bit more hacking to lock down root, switch to a modern sudo environment, install a proper vim, copy configs from my other machines for vim, bash, and generally set things up the way I like. And what I now have is a fully up to date proper debian install, with X support and all running on my phone. I simply vnc into it from the phone itself and I can swap to debian as a normal android app, no problem!

Note that before using debian you have to start it up, this is *good* because it means I won't burn any battery power when just carrying my phone around as... you know... a phone.

Future Work

I have a usb adapter on the way to see if I can get my old usb folding keyboard to work on the device. If not I can use bluetooth if I have to. I need a solar charger so I can keep the battery topped up while I'm out.

Once I have a basic computing device I can really use, I can try it in the backcountry.

If it all works out I may look into software controlled USB HAM radios so I can chat with people using hardly any power from the backwoods :P.

The Nook eink reader is android based and has already been rooted. I might be able to do the same thing to it and have a passive display eink reader that hardly burns any power at all, especially when being used for reference material. http://www.flickr.com/photos/smalladventures/sets/72157631243912642/

1 comment: