Last week we ran AstLinux from the LiveCD. This is a good way to run AstLinux on a PC, even on a production system, because AstLinux runs completely in memory. After it boots you don't need the CD at all. This makes plenty of speed, and if you wisely use a USB key to store configuration and other data files, you're golden.
A really slick way to run AstLinux for a small office with ten users or fewer is to install it on a single-board computer like the Soekris 4801. Other small-form boards like the Gumstix and PC Engines WRAP boards are also excellent. In fact the Gumstix should be able to handle more users, because it has a 400MHz CPU, rather than a 266 MHz CPU like the Soekris and WRAP boards.
Today we'll walk through installing AstLinux on a Soekris 4801 single-board computer. Everything will be contained inside the case, for a nice, quiet, low-power yet tuff device.
This little board has an amazing amount of flexibility in a tiny routerboard. It takes Compact Flash, Microdrives, and 2.5-inch IDE hard drives. It has three Fast Ethernet LAN ports, one USB 1.1 port, 2 serial ports, a mini-PCI slot, and a full-length PCI slot. All of these goodies mean this board is very adaptable for whatever role you want it to serve. The board, case, and power supply cost about $260.
Then you'll need operating system storage, and something for data storage. Our scheme of installing AstLinux and the data storage on separate physical devices is a good one. AstLinux, like Asterisk and Linux themselves, is going to continue to develop at a rapid rate, so keeping the two physically separate will make upgrading and maintainance simpler. Also, your data storage medium is going to see a lot more wear and tear than the operating system device. So having two separate storage media won't cost much more, but it will save a lot of time and hassles.
Compact Flash cards are dirt cheap these days. I prefer Sandisk, though of course you are welcome to indulge your own brand loyalties. You don't need more than 128 megabytes, though it's unlikely you'll find anything under 512 megabytes.
Data storage media options are more interesting. You can use a USB flash drive, just like with the LiveCD. You can't use a Microdrive because it plugs into the CF slot, and that's already taken. But there are two other interesting options: a 2.5-inch IDE hard drive, or a solid state disk-on-module. Disk-on-modules plug into 40- or 44-pin IDE slots, are fast, silent, don't use much power, and should outlast an IDE hard drive. These come in a variety of shapes for different enclosures, so you can find one that fits sleekly inside the Soekris case.
By contrast, 2.5-inch IDE drives are made for laptops, so they're not designed for 24x7 operation. They have moving parts that are subject to physical wear, and they suck up more power.
The cost difference is substantial. A 1-gigabyte USB flash drive costs under $30. A 512-megabyte disk-on-module costs around $100. 512 megabytes should be more data storage than you'll ever need for a small PBX. If you use IP hardphones you'll probably need more storage for provisioning the phones than you'll need for logfiles and voicemail. That same $100 will buy you a 60-gigabyte 2.5" IDE drive.
The easiest way to install AstLinux on a CF card is to use a USB CF reader/writer. These cost around $20 and come in a variety of garish plastic colors.
First download the installation image, AstLinux-0.4.4-net4801.img.gz to your Linux PC. (See Resources, below, for instructions for Windows.)
Then plug in the CF card, change to the directory you put the AstLinux image in, and run this command:
# gunzip -c AstLinux-0.4.4-net4801.img.gz > /dev/sda
Of course you must use the correct /dev name for your CF card, which fdisk -l will tell you. The card must not be mounted, so if your system automatically mounts it you'll have to unmount it first.
When the AstLinux image is copied to the CF card, pop the card into your Soekris box, connect your serial console, and boot 'er up.
Now we'll prepare the data storage device just like we did last week for the USB key. First run fdisk -l to find the dev name, just to be safe. Then run the genkd command, using your own device name:
pbx ~ # genkd /dev/hdc
And that's all there is to it. Your Soekris+AstLinux PBX is now ready to go to work. Come back next week to learn how to connect AstLinux to the outside world.
Build a Linux-Based Single-Board WAP (Part 2) tells how to set up a Minicom serial console for your Soekris board
AstLinux Users Guide Chapter 1 has instructions for installing AstLinux from Windows