Brief Intro
If you’ve followed my previous article (http://www.linux.com/component/content/article/130-distributions/430530) you know what I’m trying to do. This project aims to create an home server, requirements have already been described, I’ve few mods in my mind (X10 automation, SMS gateway and few more) but basically this is what I’m trying to do. As I’ve told you before I’ve already decided to use an Atom motherboard but there were other architectures involved in the decision process, here are few personal considerations with pros/cons:
The Candidates:
SX (STM) and derived architectures.
Pros: really really cheap, really reduced power consumption
Cons: limited I/O, not enough I/O port available or “high level” devices linkable to them
Atmel ATMega architecture (and Arduino clones as well)
Pros: quite cheap, easy customization, reliable hw, good programming (related to my skills), close to the real world (digital I/O, analog I/O, measurements), RT OS available for “bigger” CPUs, really reduced power consumption
Cons: Nice objects for controlling limited appliances, even if they’ve a really good CPU processing power they’re not suitable for a full blown home server with an USB controller. They’ve the capability to connect to USB drives/peripherals but they’re too limited for some cool stuff or if I’d like to have a strong OS on it (read Linux)
Note: I’ll probably use some custom created PCBs with Atmel devices on it for controlling little things like lights, sensors, LCD panels and so on
MIPS devices
Pros: reduced power consumption, “high level” interfacing with buses and peripherals (if compared with atmega/sx/pic chips) like: micro-pci bus, usb. RT OS (real time operating systems) available as well as a compact Linux OS (generally with uclibc and busybox), also check OpenWRT. I can find these kind of CPUs into a lot of small hardware devices (Access Points, DSL Routers, few switches, …). You may find them at cheaper prices (20-30-40-50$) inside ready made appliances. Power consumption is limited
Cons: USB is available and you may connect external drives to it (if you find the proper device) but heavy disk operations may affect heavily this kind of CPU (if you don’t have a DSP and a southbridge-like controller). Heavy CPU operations (P2P software) may be a problem for them. Realizing a custom made project with these devices may cost you a lot of bucks
ARM devices
Pros: Same benefits of MIPS devices and even something more: ARM CPUs performs really well, I cannot compare them to a Pentium class device but they’ve enough power for a lot of heavy disk operations. There’s a lot of efforts around Linux ARM community and there are a lot patches and features for an autonomous device (uclibc+busybox+linux are a must). There’re even some ARM distro with good performances. Ready made devices may be found into high class routers, switches, access points and so on; if you like them remember: OpenWRT (http://www.openwrt.org) could be your best friend. Power consumption is limited
Cons: It’s not easy to find a ready made device with an USB controller and an affordable price; multiple USB connections may affect machine performances (without a DSP or a Southbridge), I need few USB devices connected to my machine (USB disks, webcams, an audio card, …) dealing all of them may be challenging. Heavy disk operations (file transfer or P2P for example) may affect your machine a little bit. ARM has enough CPU power to solve these problems but even if I can realize or buy a custom made motherboard it could be a problem: they may cost you a lot of money and it’s not so easy to run under 100$. ARM chips are reliable, have a lot of CPU power, they don’t absorb so much (more than MIPS btw) but they’re not so cheap in the industrial market. You may find something in the consumer market but motherboard are limited (1eth, 1usb and few more)
Note: This is my second choice and unfortunately they’re to expensive for me
Geode/Intel Atom/Via C3 devices
As I’ve already told you in my last article this is my current choice, that’s why:
Pros: they’re not so cheap (like an MPU: micro processor units like ATMega’s, PIC Microchips or STM SX’s) but Intel an Via (especially Intel) are cutting down prices a lot, in some cases they’re even less expensive than MIPS or ARM based cards. I may find a CPU+Motherboard for 50-70$ and use it as a common PC (with limited CPU power if compared to a Pentium Class device). You generally have a complete micro motherboard around it, pains like adding external devices are solved, you’ve: audio sound card, a bunch of USB ports (4-8), ethernet (wireless or wired), RS232, Parallel port, … You’ve a southbridge on the motherboard, no more troubles with heavy USB I/O operations (for a really small server, not suitable for a medium sized corp.). If you want an efficient system you may create an optimized OS, use a common Linux distro (if you don’t have skills or time) or install a full blown MS Windows (if you want to leave dangerously). Passive cooling is available on low end systems
Cons: CPU intensive tasks and I/O may affect your power absorption a lot (even 40W or more) but if you tune it a little while and if you turn off what you don’t use you may save a lot (I’m now using 15W in idle, 20-25W when streaming some video), this is my first problem with these devices: I’d like to absorb like an ARM card but have this class of CPU. I’ve found a lot of dual cores atom but they’ve too much CPU power for my needs and absorb a lot, in this case a CPU fan is required, I’d better stay with a low end system with passive cooling (just a radiator)
“Pentium Class” devices (Pentium/P. Mobile/Core 1,2,3,4,…/Core i3,5,7,1000)
Pros: They’re marvelous devices, huge cpu power, you can do everything you want with them…. but I don’t care… I just need a bare bone machine and nothing more. Expansion boards available: pci, usb, eth, lots of ports everywhere
Cons: Active cooling is needed (at least 1 CPU fan). They absorb an huge amount of power, too much for a 24/7 machine (at least until I’ll pay my electricity bill), even underpowered you cannot cut a lot of watts from them (desktop or laptop machine doesn’t care). Their cost is adequate to their CPU processing but decisively too classy if you compare them with an Atom board. You’ve a cheap hardware with moving parts (CPU fan: 10$), if you break it you lost your entire system, you cannot leave it unattended for a long period.
Grandmas computer or something cheap from your roof
Pros: It’s cheap because you already have it (but please read the cons as well), you’ve a ready made machine for an unbeatable price (free)
Cons: Is it reliable ? How many years does it have ? What about spare parts ? Again, if this device is a pentium class object you may need to read Cons section for pentium based devices. If you look at your electricity bill you may pay a brand new atom board with the same amount of money spent on extra Watts with these platforms
Consoles, consumer products (TiVo, …), DVD players
Pros: you may find something good in this category but please consider these two constraints: power absorption and price, you have to stay under 50W and 100$. If you find something good please let me know, I’m interested in it as well…. š
Cons: You may spend time on hacking it but how much does it cost a new fully loaded Atom device if you compare to it ? But again: if you’ve a 50W machine (or below) and a 100$ price please let me know
Considerations
So after this considerations you may know why I’m now using Atom devices, I’ve used hacked MIPS/ARM machines (before this replacement) but I’ve switched from them due to CPU requirements, if you’ve a viable solution like an Atom device and an ARM power absorption I’m really interested in it
The Plan
You’ve read about my basic requirements, we’ve just passed the HW selection, now it’s time to take a look at the software selection: small intro, a lot of testing, distro selection and customization will follow in the next article
Previous:
Creating a custom live distro for a target appliance
Next:
Create a custom distro, choice of the right base
Create a custom distro: building the build machine
Create your first target image
Stay tuned