Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Imagine the following situation: I want to have a tiny, light server that is able to run some services like basic Web, ftp, printing servers and pluging hard drives via usb.

I would like to use it as a tool for learning about embedded devices and programming for those architectures. I have the intention to test a home-security system with a webcam also...

What would be a good architecture, specific device, brand or any recommendation for a beginner? I have experience with both linux and C programming.

Limited budget proposals preferred! ;)

share|improve this question

closed as off-topic by kce, Tim Brigham, Michael Hampton Mar 13 at 15:37

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking product, service, or learning material recommendations are off-topic because they tend to become obsolete quickly. Instead, describe your situation and the specific problem you're trying to solve." – kce, Tim Brigham, Michael Hampton
If this question can be reworded to fit the rules in the help center, please edit the question.

9 Answers 9

I've done a reasonable amount of hobbyist embedded hacking, and I've got two suggestions:

  1. Linksys WRT600N (which has usb) or Linksys WRT54GL with dd-wrt or some other custom firmware. Get the cross-compiling setup on your desktop and start porting some open-source software that you might want to run on them. Once you're comfortable with the build environment, you can move to develop your own apps. If you feel adventurous you can google around for some of the hardware hacking projects for the WRT54GL. For example, mine has a serial port sticking out the side. Another project adds an SD card slot to it, which should give you enough storage to perhaps not need a USB hard drive for file serving.

  2. Digium AA50 or the Free Telephony IP04 these are really fun embedded telephony platforms that run on the Blackfin processor. The blackfin has built-in DSP capabilities which opens up a lot of interesting media-processing possibilities in the telephony side of things. I know you wanted a file-server, but you'd be surprised how much you'll learn if you build your own embedded PBX.

share|improve this answer

If it's limited budget you want, you want the Sheevaplug. Mine has just been delivered a few hours ago and I can't wait to get home and start checking it out.

Basically, it's an ARM processor with 512MB of RAM, some flash memory, a USB port, a NIC. All built into a powerplug(!). Hence the name.

A very cool device, low power, low cost (less than $100).

There's a whole lot of Linux distributions that run on the ARM architecture. Debian, for instance, has a complete ARM port. It's a bit different that IA32, but it'll do the jobs you mentioned just fine.

share|improve this answer

I've used Soekris boxes before. My home router is one, mostly because it comes with 5 network interfaces.

You could use one of the home NAS devices that people have managed to install Debian on.

Simtec do some nice Arm based kit.

There's a whole host of System on a Chip boards that you could use if you really wanted a small environment to play with.

share|improve this answer

The WRT54G has already been mentioned, but I'm a big fan of the NSLU2. It's an very inexpensive NAS device.

  • 266 MHz
  • 32 MB of SDRAM
  • 8 MB Flash
  • 100 Mbit Ethernet
  • 2 USB.

The NSLU2 is fanless, which is a big plus for me.

There are several alternative firmwares and it can run debian: see NSLU2-Linux.

share|improve this answer

At a previous job, I used PC104 systems for various tasks-- very tiny, the ones we had were well-supported under Linux, and if you look long enough, you can find one with the appropriate mix of interface/memory/flash storage that you need.

One thing to consider when you're first starting in embedded work is to remember you're not on a multicore, multi-gigabytes-of-RAM machine. If you're really set on making a small fileserver, I'd go with a miniITX formfactor motherboard and a smallish case, and stay away from the 'embedded' form factors.

share|improve this answer

You can try some pc104 devices. But IMHO, just buy the cheapest MOBO you can and start hacking. The hardware can be changed latter on, and if you use Linux there is a good chance that you can even change the CPU type (ARM->x86/64bit...) without code change.

(I am writing this instead of commenting bellow, since it's long...)

Or use a toolchain and build a full system usinc uclibc. In my previous job we developed a small PBX based on BlackFin, which also had it's own DHCP server.

Once I accidentally connected the wrong port of the PBX to the LAN and the next time someone powered up his PC he could not surf the web. It was weird, since the DHCP server was giving him a correct lease. The problem was that the lease was comming from the embbeded PBX and not the full DHCP server we had (it was an IBM PC running Debian/Lenny).

The moral of the story, is that even when the embedded device is running on a small "cpu" (BlackFin does not really qualify as a CPU), it can sometimes "run" faster then full bloated PCs.

Start reading: http://www.uclibc.org/toolchains.html

share|improve this answer
    
I've learned a lot about dealing with 'limited resources' by taking a cast-off desktop PC from work, installing NetBSD on it, and using that as an auxillary testbed for some of my code-- if I can get things to run acceptably well on an old Celeron 433 with 64MB of RAM, it should do well on more modern boxes. It's also rather easy to throw a *BSD or a lightweight Linux distribution on a low-end system and throw it in a closet if you need a quick single-purpose server for stuff like network monitoring. –  Bill B Jun 8 '09 at 17:15
    
:) I have a small appartment and the point of testing new architectures is interesting... another thing is power consumption... those computers mean about ~8€ a month to keep 24h on (with Spain's cost in electricity). –  Álvaro Jun 8 '09 at 17:35
    
exactamente... electricidad es cara... IMHO, it seems like you are looking for pc104 or maybe just using qemu (it will work the same!) –  elcuco Jun 8 '09 at 19:47

If you're looking for something a bit more packaged here are two suggestions.

FitPC
http://fit-pc2.com/wiki/index.php?title=Main_Page

Netbook
There are a number of netbooks that would work for this. And as a bonus you can use it for other things as well.

share|improve this answer
    
Cool! though a bit expensive... ;) –  Álvaro Jun 8 '09 at 18:03

if you want it really tiny, you could go for a foxboard: http://foxlx.acmesystems.it/ it's very lightweight. 200mhz and 2W power consumption. it can do webcam-streaming to internet and has gpios. very "solder friendly"

also have a look at pcengines alix... e.g. the 3d3... 500mhz amd, 256mb ram, 5W google for "alix 3d3"

share|improve this answer
    
Warning, the ETRAX cpu that is used on this card is close to "end of life", better to select something else. –  Johan Aug 5 '09 at 5:57
    
true. they have a new version based on some 400mhz atmel though. not sure if it's available already.netus.acmesystems.it/doku.php?id=products:foxboardg20 –  extrapixel Aug 6 '09 at 0:33

Not the answer you're looking for? Browse other questions tagged or ask your own question.