DNS-323/CH3SNAS: A low cost NAS and embedded development
Posted on December 13, 2008
If you are looking for a low cost NAS you surely will come across with three devices: the Linksys NSLU2, the Iomega MyBook WE and the D-Link DNS-323 (or its sibling CH3SNAS pitcured on left).Devices with similar functionality (all of them support Samba/FTP/ITunesServer/UPNPAVServer/etc...) and that in a similar fashion have been greatly extended thanks to the community. The NSLU2 with its custom firmware, linux distributions and the optware package repository, the MyBook WE with a first customized firmware and now with a full fledged community and the DNS-323/CH3SNAS with the fonz's fun_plug and the huge amount of modifications that came after that.Something similar to what always happens to devices based on FOSS and when the opportunity to enhance them is given to the community and something, in my opinion, that always boosts the "saleability" of such products, just think to the famous Linksys WRT54G.I got my own Conceptronic CH3SNAS last year, and since then i enjoyed the progress made by the community and contributed my little share when possible.You can now find all my DNS323/CH3SNAS binaries here. Feel free to try them and call for support if needed.
After this long preamble about opensource and NASes, let's talk briefly about Linux and embedded development.There are many ways to start learning Linux for those who come from a MSWindows background such as installing a random distribution, maybe on a virtual machine, but what the DNS323 and similar devices give you is the opportunity to get a taste of what embedded development is.
The hardware platform reminds what you could find in your average pocket-pc and is good enough for this use: a Marvell SoC with an ARM926Tj at 500Mhz and 64Mb of RAM.Don't limit your experience to installing a different UPnP AV Server or the latest Transmission/mldonkey, try to compile some software yourself and experiment.
Browse the WIKI to discover what a toolchain is, how you can cross-compile software for different CPUs (in this case an ARM926) on a x86 host and which are the main differences among glibc and libraries like uclibc, eglibc, etc...
This post should contain enough pointers for you to start!
Edit: The full binaries repository has now been moved to GitHub
Twitter