Well my project got off to a rocky start after some delays, but I am proud to report that our little EFIKA is alive!
Though limited on resources I have managed to invest in some added hardware for the project. The EFIKA is now equipped with a 40Gb hard disk, keyboard, mouse, and video card. There are a couple different pieces to this project, the first being the back-haul router. In final form I don't see a need for a display on that, and would likely use a compact flash drive as opposed to a hard disk. But that is the first component I am developing in the mix. Once I have some progress there, I will probably put in to the XGI Volari program as another piece of the puzzle will be, basically, an internet kiosk. I would expect the EFIKA can support two stations with dual video and dual kbd/mice via either a USB hub or a keyboard that has another USB port like the Macs have. I have a bit of work to do before I approach that aspect, though, and there are others who are doing LTSP-type EFIKA projects already that I can probably consult with when the time comes.
In the past few weeks I have learned a few things. Not having a handy USB memory stick nor a serial cable, I decided to net-boot the EFIKA in order to get an operating system installed on the hard drive. Configuring a second ethernet port, setting up IP masquerading (NAT), and running a DHCP server on my Linux desktop was not new for me. But getting a TFTP server to service my second interface proved to be a challenge. Eventually I threw in the towel and configured the EFIKA with static addresses and attached it to my regular LAN.
Next I learned that when you enable diag-mode?
in the EFIKA's Open Firmware, it does not ask for the same file over tftp as it does when diag-mode?
is set to false. It uses the value in the diag-file
variable, I believe (it is not in front of me as I write this). I was pulling my hair out over this, even to the point of using WireShark to sniff the packets coming in to my Linux box. But at last I realized what was going on. This Open Firmware is neat but it is new territory for me. After I got the EFIKA to start requesting the correct file, I could not get it to completely boot. The video card I had been using is an nVida model. I had heard that the ATi cards worked better with the EFIKA, but I was not thinking that it made a difference in text mode. I figured it was an issue with graphics support. I was wrong. Luckily I have an ATi Radeon 9800 Pro in my Linux desktop so I was able to swap it out. Then fate had another curve ball as the di_efika debian installer image I downloaded off of the blpan site was corrupt. Thank you, bplan, for putting the md5 hashes on your site! I should have checked those in the first place, I know... :)
So now I have the Debian installer working on my EFIKA and am in the process of getting the base operating system install. I will probably go with dropbear for ssh access over the wire, and I will set about trimming down the installed environment. I may not stick with Debian but for now it is the environment I am most comfortable in. And with the 40Gb hard drive I have room to play while I get my ducks in order. If I can get a cross-compiling environment set up in Ubuntu on my x86 desktop I will see about building a Gentoo system for the EFIKA. I have a feeling it will benefit from a source distro, though it may be that the Debian packages work well enough. If nothing else it is an excuse to dive into Gentoo.
For Mesh Network routing I am primarily looking at implementing Optimized Link State Routing protocol
). But there are a few others out there including some interesting ideas involving fractal math to manage the routes. I will of course check all avenues but it seems OLSR is my leading candidate. It is developed with mobility in mind, which may or may not come in to play in one of our deployments. But it seems very flexible and adaptive as opposed to reactive protocols. I still have a little time and research before committing.
Routing across a Mesh is one thing, and being done by plenty of folks. But the goal here is a truly plug-and-go self-configuring network. At most I would like the folks who eventually have to deploy these things in a disaster zone to have to configure a network name and have all the mesh nodes with the same name find each other and work out their IP scheme on their own. Having a mesh back-haul is not the goal in and of itself... I can see many scenarios where there is no true mesh, but rather a chain of back-haul nodes back to an up-link site (where there is internet access). The real key here is minimal user configuration. Emergency workers have enough to deal with besides becoming instant computer networking techs. I will be doing some research here to see what similar work being done. But if it comes to it I am prepared to roll my own from scratch. Well, not completely from scratch... My ideas would involve a mutation of a DCHP client and server into more of a cooperative peer daemon that is aware of the evolving topology. Which routing protocol I use will of course have a big impact on configuration.
I have enough to keep me busy for the moment, building and researching. Once I start experimenting with OLSR I may have to get real creative. Firstly, I have no radios in my EFIKA. Nor can I really afford to add more hardware at this time. But even if I had the cash it is not really feasible to test a mesh with just one unit. I am probably going to play with virtual machines on my desktop to do some simulations. When it comes time to pick radios, I will probably have to hold my hand out. So I would like to get as much of the system as possible operating in simulation first before begging someone to feed my project. If you are interested to know, though, I have been drooling over this sub-$100 miniPCI module
. It even looks like Freescale is also involved
with Wavesat's WiMAX designs. I would like to get a PCI-to-miniPCI adapter card, probably one of these
from routerboard.com. Or something very simlilar that supports two miniPCI modules, as I intend to run two radios on each back-haul node. Which modules to use of course will come after more research. Those links are just my preliminary finds.
Well that is all to report for right now. Now that we can update our blogs again I hope to keep some regular updates.