A SVXLink Server based on the BeagleBoard
Inhaltsverzeichnis
1 Project History
Ever since I have been interested in ever smaller and more efficient hardware solutions that nevertheless fulfill their assigned tasks just perfectly while consuming as little as possible power. I started off with other platforms: The
- The Cisco Linksys WRTSL54GS was a nice start. I killed the serial port with my soldering iron.
- The ASUS WL-500GP was more comfortable since it had two USB2.0 ports.
- The Fonera Router was also an interesting platform - cheap and powerful enough for connection issues.
- An Intel Atom CPU Embedded Board was the hardware basis for the first Echolink server I built. But for my taste it still consumes too much power while being oversized for such a task: A Low-Power Combined Echolink and ATV Server
So my attention was won by the BeagleBoard. It is a neat little ARM based board which provides more comfort than the Linksys / ASUS / Fonera class of devices but is smaller and far more power efficient than the Intel Atom. The first test showed that it relly just consumes 1.83 Watts, the current I measured was down at 0,366 A @ 5 V. So that's very promising.
It is striking that the BeagleBoard does not have an Ethernet device. So you cannot connect it to the network and start off, but there's more that needs to be done. Luckily enough, it has some more interfaces that can be used for networked I/O like the USB 2.0 port, which should be sufficiently expandable and also fast enough.
2 Project Goals
The goal of this project is to build a highly integrated and energy efficient Echolink Link node, which has a small transceiver built in. The main focus is on power efficiency, with total power consumption not exceeding 3 watts (250 mA @ 12V), including the transmitter.
3 Hardware
3.1 BeagleBoard
The core is the BeagleBoard.
- OMAP3530 processor delivers laptop-like performance at handheld power levels
- Over 1,200 Dhrystone MIPS using the superscalar ARM Cortex-A8 with highly accurate branch prediction and 256KB L2 cache running at up to 600MHz
- OpenGL© ES 2.0 capable 2D/3D graphics accelerator capable of rendering 10 million polygons per second
- HD video capable TMS320C64x+™ DSP for versatile signal processing at up to 430MHz
- USB power
3.2 Transmitter: Standard C-408
- 0.2 Watts
3.3 Transceiver Interface
- still open issue
4 Links
- http://beagleboard.org
- http://code.google.com/p/beagleboard/
- http://elinux.org/BeagleBoardUbuntu
- http://elinux.org/BeagleBoard/contest#BeagleHam
- https://wiki.ubuntu.com/ARM/RootfsFromScratch
- http://code.google.com/p/beagleboard/wiki/LinuxHints supergreat hints, esp. on switching the graphics output
- http://beagleboard.org/project/Ethernet+expansion+board/ supercool expansion board. Will have it as soon as it is out.
- http://elinux.org/BeagleBoardUbuntuNetwork
5 Software
5.1 Operating System
Firstly I want to point out that I am not using the Angstrom firmware but Ubuntu, since I am running Ubuntu on all my systems.
The installation procedure is basically this:
- Generate a rootstock Karmel firmware image on the local Linux (intel) machine.
- Copy it over to a SD card and boot the beagleboard
- log in and enjoy
Here it is in more detail:
We assume you have Ubuntu Linux. Other Linux variants will also work, but you must figure out yourself how to fix occasional problems.
First, install qemu and the most recent debootstrap as well as the rootstock script:
apt-get install qemu
wget http://ports.ubuntu.com/pool/main/d/debootstrap/debootstrap_1.0.13~jaunty1_all.deb sudo dpkg -i debootstrap_1.0.13~jaunty1_all.deb wget http://www.rcn-ee.com/deb/tools/rootstock sudo chmod u+x rootstock
Then compile the firmware image:
./rootstock --fqdn beagleboard --login ubuntu --password temppwd --imagesize 6G --seed linux-firmware,wireless-tools --dist karmic --serial ttyS2 --kernel-image --kernel-image http://rcn-ee.com/deb/kernel/beagle/karmic/v2.6.29-58cf2f1-oer40.5/linux-image-2.6.29-oer40.5_1.0karmic_armel.deb
As you see, I am using the 2.6.29 karmic kernel. Upon Completion, you should have:
armel-rootfs-<date>.tgz vmlinuz-2.6.<version>
Now it's time to prepare the storage medium. Starting with an empty SD card and using gparted, you can create:
- 50 MiB Primary Partition, fat32
- Rest as ext2/ext3
Gparted Example: http://nishanthmenon.blogspot.com/2008/08/how-to-boot-beagle.html
If you want, you can also do that by hand using fdisk.
5.2 SVXLink
In order to compile for the ARM CPU, you can either crosscompile which is somewhat difficult or install the BeagleBoard first and log on and compile it there.