Friday, August 26, 2011

My SheevaPlug

So I guess I'll start with my favorite gadget, my SheevaPlug (community) (buy--US) (buy--UK). But first, a little background.

I started messing around with Linux about five years ago; I did so in order to try out MythTV, an open-source DVR (digital video recorder--like a TiVo). I was replacing my home computer and rather than get rid of the old one, I installed Ubuntu Linux and MythTV onto it. (MythTV works great, maybe I'll post about it someday. It's actually usable enough for my wife to figure it out and not get frustrated too often, and that's saying a lot. I still use it to watch videos, although when I upgraded to HDTV I decided to go with a Verizon FiOS cable box because the open-source HDTV solutions are/(were?) very CPU-intensive and I didn't want to buy a bunch of new computers just to watch TV in HD.)

Once I had a Linux computer on my home network running all the time, I figured out many other things I could do with it. But I also got complaints from the wife about why are there two computers in the home office, why is that one running all the time, it makes the office really hot (and it did), it looks cluttered, it's noisy, etc. And it didn't seem elegant to me either but I didn't know of any way to simplify.

Searching around on Wikipedia revealed new developments in something called plug computing (currently with picture of the SheevaPlug)--computers that you just plug in and they start doing their job. They're based on the ARM architecture, instead of Intel; this is a different computer architecture designed for embedded systems, that is, computers that are tucked out of the way and take care of stuff for you, as opposed to, say, a laptop or desktop that you actively use for web surfing, word processing, emails, and the like. A little more digging around and I found the SheevaPlug. Here are its advantages:

  • Uses 5% of the electricity of a standard desktop computer
  • Makes no noise (some of the other units e.g. the Guruplug Server Plus, which I also own, have noisy fans, so check the stats if this is important to you)
  • Runs pretty much all of the same software a desktop Linux computer can
  • Currently costs only $99
The SheevaPlug itself is a development kit. This means that out of the box, it doesn't really do anything other than boot up; it's intended for people to prototype something they want to sell, which they would then presumably contract with the company who sold it to them (Global Scale Technologies, in my case) to mass-produce. But in my case, I just wanted something I could customize.

Here are just some of the things I have my SheevaPlug doing for me:
  • email server--This started with a "I wonder if..." I was annoyed that messages I sent through the Verizon email Web service, say, away from home, weren't being saved to my "sent messages" folder at home. So I looked into it and found my solution. I set up an IMAP server, email fetcher, and Web email client and that problem is solved; all my home emails now go through the SheevaPlug.
  • print server--Any computer on the network can print to my old, non-network-aware printer, which is connected to the SheevaPlug through USB.
  • file server--Family pictures, videos, downloaded stuff, and laptop backups all go on the SheevaPlug's storage (external hard disk, connected by USB).
  • ssh tunnel--I can connect from my work computer to my SheevaPlug. I do this for many legitimate reasons but mainly so I can browse the Web without being tracked, if I so choose.
  • podcast fetcher/syncer--I developed a udev rule that will recognize when I plug in my MP3 player, a Sansa Clip, is plugged in. When I plug it in, it automatically downloads new podcasts, then syncs by removing podcasts I listened to and copying the new ones to the MP3 player. A little light on the SheevaPlug flashes while it's doing it, and when it stops I know I can unplug the device.
  • Automated BitTorrent handling--using rTorrent configured a certain way, drop .torrent files in a special directory on the SheevaPlug and automatically start leeching them, then serving them. I can manage the program through a Web interface using a package called rtGUI.
Each of these bullets above would make a good future post, so I will not expand upon them just yet. It took many hours to get all of this stuff working just right, but I am very, very pleased with the results. And I've learned so much about networking from this hobby, all of which is very much applicable to my job in a value-added sort of way: I don't directly deal with networks at work, but it helps to be knowledgeable.

I can post some pictures of the current setup, but first I have plans to reorganize the office closet a bit. I plan to put the Sheevaplug in a wall-mounted, lockable cabinet so the kids can't mess with it, since I now deem it to be mission-critical.

1 comment:

  1. You could run a tor server too and add bandwidth to the tor network. This helps people to remain anonymous online which is important for people in countries that have repressive regimes.

    I run mine as a middleman only, as its not wise to run an 'exit server' for tor unless you know what the implications are.