I put together an article on making embedded network appliances a while back ago. It was a little bit on the abstract side.
Now, I find myself helping out on a collaborative project with Cowtown Computer Congress and the KC Robotics Society. The Wii Labyrinth was a big hit, and now they've got a chance to build a giant 10' x 12' version for Science City. You can read more on Vince's blog.
One of the concerns is getting a reliable computer "brain" that can pull the parts of this project together. Some requirements:
- Runs Linux
- Can run the dependencies for the project (easy to compile for)
- Has USB (for the bluetooth and Arduino)
- Can be powered on and off by Science City staff without a shutdown procedure i.e. flipping a wall switch.
I opted to help the project out by building a Linux Appliance out of old x86 hardware. This means I can run a more feature-rich environment, but build it like an appliance. I proposed the following to meet the requirements of easy power-up and power-down:
- Logical partitions are mounted read-only or unpacked to ramdisk and dismounted
- Dynamic data is loaded to ramdisk if needed (i.e. /tmp)
- BIOS settings are tuned to skip as many POST checks as possible (don't halt on keyboard/video errors, skip RAM check, don't scan for new IDE devices, etc)