A SVXLink Server based on the BeagleBoard

Aus DL8RDS Wiki
Wechseln zu: Navigation, Suche

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 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 10 watts, including the transmitter.

3 Similar projects

4 Links

BeagleBoard Reference, which will answer all your questions on the hardware: http://beagleboard.org/static/BBSRM_latest.pdf

Transceiver interface

Additional information

5 Hardware

5.1 BeagleBoard

The core is the BeagleBoard:

MyBeagleBoard.jpg BeagleBoard-Components2.jpg

IMG SRC: beagleboard.org (Lizenz CC-BY-SA)

  • 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

BeagleBasePCB.jpg

5.2 Power Statistics

In order to understand which devices are consuming most power, I made a number of measurements. The measurements are related to the 13,8V connection, before the DC current is converted through my COSEL down to 5 V.

BeagleBoard alone: 175mA @ 13,8V
BeagleBoard with LED-castrates USB hub: 185mA, so the USB hub without LEDs is just 10 mA @13,8V
BeagleBoard, USB HUB plus USB2Ethernet: 321 mA, so theUSB2Ethernet board eats ~140mA @13,8V
BeagleBoard, USB HUB, USB2Ethernet plus WLAN stick (TX mode): 505mA, so the WLAN device eats ~180mA @13,8V
Beagleboard while compiling SVXLink: +7mA -> 96 mW; same power consumption in while infinite loop. 

BeagleBoard alone: 2.415 W
USB HUB: 130 mW
USB2Ethernet: 1.93 W
USB2WLAN: 2.48 W

This all given that the COSEL DC converter is has a bad efficiency of 67%. So very basically, the real power consumption values are all about a third less.

5.3 Transmitter: T7F

  • 7 Watts

5.4 Transceiver Interface

Since there is a Audio In / Out connection on the board, I will make use of them. In order to separate the two circuits, I will separate them, using the simple plan described here:

5.5 Observations

  • 2009-09-06 Some new observations: With the Cosel ZUS25 1205 as DC regulator (providing 5.06 volts to the board), the BeagleBoard alone consumes 196 mA at 13,8V. This makes 2,70 Watts. So as compared to the 1,83 Watts measured earlier, the Cosel runs at an efficiency of 67%, so 33% power loss at this point. This is quite brutal...
  • 2009-09-06 Some more observations: I have now connected a USB hub to the board, and a USB2Ethernet adapter so that I can connect to the local LAN. Now, the current is up at 345 mA, so the power consumption is 4,76 Watts. I see that I must give up my goal to stay below 3 watts total power consumption. Game over. Thus I am extending my goal to stay below 10 watts over all, including the transmitter. So if I decide to use my Standard C-408, I will surely make it, but probably not with the T7F. Yet, the T7F is more of a challenge, because there's more to control digitally about this transceiver.
  • 2009-09-06 Yet some more observations: On the USB hub board there were 7 LEDs, shining in different colours. Since it's my goal to build a real power saving thing, I had a look if they had any function at all, and I couldn't discover any. So, they had to go away. I soldered them out. And the result was that the current is now down at 283 mA, making 3,90 Watts. At least, I'm below 4 Watts now.
  • 009-09-06 Yet some more observations: When I unplugged the USB2Ethernet adapter, I noticed a current drop from 284 to 141 mA. So the USB2Eth adapter consumes almost 1,8 Watts!!!!

6 Software

6.1 Pre-Ubuntu-10.04 Operating System Installation

Firstly I want to point out that or this test I am not using the Angstrom firmware but Ubuntu.

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.

6.1.1 The images

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>

6.1.2 The Storage Medium

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.

Anyway, on my machine, the partitions appear as:

/dev/mmcblk0p1 mounted to /media/LABEL
/dev/mmcblk0p2 mounted to /media/disk

6.1.3 Putting the images on the storage medium

The command

sudo apt-get install uboot-mkimage

didn't work for me since uboot does not seem to exist for Ubuntu Hardy as of yet. I just took the deb package of Ubuntu Intrepid, given that this is just a very small program with just 9 kB. Anyway, I could install it:

wget http://lug.mtu.edu/ubuntu/pool/universe/u/uboot-mkimage/uboot-mkimage_0.4_i386.deb
dpkg -i uboot-mkimage_0.4_i386.deb

then I started the preparation. If you have another kernel version, be sure to indicate the correct file name.

$> mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux" -d ./vmlinuz-2.6.29-oer40.5  ./uImage
Image Name:   Linux
Created:      Sat Aug 22 22:31:44 2009
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    3021896 Bytes = 2951.07 kB = 2.88 MB
Load Address: 0x80008000
Entry Point:  0x80008000

The result is a file called 'uImage'.

Then I simply copied the file uImage to /media/LABEL (which is the FAT32 disk) and used tar to extract the contents of the root filesystem to the ext3 partition.

tar xfp /home/markus/armel-rootfs-200908222018.tgz -C /media/disk

To support networking right away (given that you connect an ethernet-capable device - may also be ethernet over USB), add the following stanza to /etc/network/interfaces

auto eth0
iface eth0 inet dhcp

6.1.4 Beagleboard: Setup U-boot for boot

Using a terminal program, stop u-boot and add these commands:

Some notes ahead on the parameters:

fixrtc: (only uInitrd) Resets RTC based on last mount
buddy=${buddy}: (both) Kernel Zippy1/2 Support
mpurate=${mpurate}: (recommended core clock)

Here is more explanation on dss video options : http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=blob;f=Documentation/fb/modedb.txt;h=ec4dee75a35450376ad13442ea926eaf76de76aa;hb=HEAD

Now proceed along the instructions given here: http://elinux.org/BeagleBoardUbuntu#Beagleboard:_First_boot

For Linux Kernel 2.6.29 and higher using DSS2

setenv bootcmd 'mmcinit; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000'
or
setenv bootcmd 'mmc init; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000' (r27)

setenv bootargs 'console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2 rootwait rootfstype=ext3 ro omapfb.mode=dvi:1280x720MR-16@60 fixrtc buddy=${buddy}'
saveenv
boot

You may adapt the resolution to your screen as following :

omapfb.mode=dvi:1280x720MR-16@60
Modes:
"1024x768MR-16@60""800x600MR-16@60" ...

Note that you can toggle the output to yout S-Video interface with PAL standard (works excellent with me):

setenv bootargs 'console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait omapfb.mode=tv:pal omapdss.def_disp=tv fixrtc buddy=${buddy}'
setenv bootcmd 'mmc init;fatload mmc 0 80300000 uImage;bootm 80300000'
saveenv
boot

6.1.5 First Boot

You can use minicom or Hyperterm on Windows.

The below given example is from an Ubuntu image. The Angstrom image looks a little different, but basically it is the same.

In the meantime I prefer the Angstrom image because it supports the Zippy board which I have.

Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)
Reading boot sector
Error: reading boot sector
Loading u-boot.bin from nand


U-Boot 2009.01-dirty (Feb 19 2009 - 12:22:31)

I2C:   ready
OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz
OMAP3 Beagle board + LPDDR/NAND
DRAM:  256 MB
NAND:  256 MiB
*** Warning - bad CRC or NAND, using default environment

MUSB: using high speed
In:    serial usbtty
Out:   serial usbtty
Err:   serial usbtty
Board revision C
Serial #67b2000300000000040323091102000e
Hit any key to stop autoboot:  0
OMAP3 beagleboard.org #
OMAP3 beagleboard.org #
OMAP3 beagleboard.org # help
?       - alias for 'help'
autoscr - run script from memory
base    - print or set address offset
bdinfo  - print Board Info structure
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootm   - boot application image from memory
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
echo    - echo args to console
exit    - exit script
ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fsinfo  - print information about filesystems
fsload  - load binary file from a filesystem image
go      - start application at address 'addr'
help    - print online help
ibus    - ibus - I2C bus selection
icrc32  - checksum calculation
iloop   - infinite loop on address range
imd     - i2c memory display
imm     - i2c memory modify (auto-incrementing)
imw     - memory write (fill)
imxtract- extract a part of a multi-image
inm     - memory modify (constant address)
iprobe  - probe to discover valid I2C chip addresses
itest   - return true/false on integer compare
loadb   - load binary file over serial line (kermit mode)
loads   - load S-Record file over serial line
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
ls      - list files in a directory (default /)
md      - memory display
mm      - memory modify (auto-incrementing)
mmcinit - init mmc card
mtest   - simple RAM test
mw      - memory write (fill)
nand    - NAND sub-system
nandecc - nandecc - switch OMAP3 NAND ECC calculation algorithm
nboot   - boot from NAND device
nm      - memory modify (constant address)
printenv- print environment variables
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv  - set environment variables
showvar - print local hushshell variables
sleep   - delay execution for some time
test    - minimal test like /bin/sh
version - print monitor version
OMAP3 beagleboard.org # setenv bootcmd 'mmcinit; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000'
OMAP3 beagleboard.org # setenv bootargs 'console=ttyS2,115200n0 console=tty0 root=/dev/mmcblk0p2 rootwait rootfstype=ext3 ro omapfb.mode=dvi:1280x720MR-16@60'
OMAP3 beagleboard.org # saveenv
Saving Environment to NAND...
Erasing Nand...
Erasing at 0x260000 -- 100% complete.
Writing to Nand... done
OMAP3 beagleboard.org # boot
reading uImage

3021960 bytes read
## Booting kernel from Legacy Image at 80300000 ...
   Image Name:   Linux
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3021896 Bytes =  2.9 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux.............................................................
................................................................................
.................................................... done, booting the kernel.
[    0.000000] Linux version 2.6.29-oer40.5 (root@debian-sm-beagle) (gcc version
 4.4.1 (Ubuntu 4.4.1-1ubuntu3) ) #1 PREEMPT Wed Aug 12 07:04:24 UTC 2009
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[    0.000000] Machine: OMAP3 Beagle Board
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] OMAP3430 ES3.0
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyS2,115200n0 console=tty0 root=/dev/mmcblk0p2 rootwait rootfstype=ext3 ro omapfb.mode=dvi:1280x720MR-16@60
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/500 MHz
[    0.000000] GPMC revision 5.0
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts
[    0.000000] Total of 96 interrupts on 1 active controller
[    0.000000] OMAP34xx GPIO hardware version 2.5
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz
[    0.000000] Console: colour dummy device 80x30
[    0.000000] console [tty0] enabled
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Memory: 128MB 128MB = 256MB total
[    0.000000] Memory: 238976KB available (5596K code, 574K data, 204K init)
[    0.000000] Calibrating delay loop... 485.26 BogoMIPS (lpj=1896448)
[    0.000000] Mount-cache hash table entries: 512
[    0.000000] CPU: Testing write buffer coherency: ok
[    0.000000] net_namespace: 1036 bytes
[    0.000000] regulator: core version 0.5
[    0.000000] NET: Registered protocol family 16
[    0.000000] Found NAND on CS0
[    0.000000] Registering NAND on CS0
[  307.987365] OMAP DMA hardware revision 4.0
[  308.032958] bio: create slab <bio-0> at 0
[  308.094482] OMAP DSS rev 2.0
[  308.094635] OMAP DISPC rev 3.0
[  308.094696] OMAP VENC rev 2
[  308.094879] OMAP DSI rev 1.0
[  308.109649] i2c_omap i2c_omap.1: bus 1 rev3.12 at 2600 kHz
[  308.113739] twl4030: PIH (irq 7) chaining IRQs 368..375
[  308.113800] twl4030: power (irq 373) chaining IRQs 376..383
[  308.114440] twl4030: gpio (irq 368) chaining IRQs 384..401
[  308.117675] regulator: VMMC1: 1850 <--> 3150 mV normal standby
[  308.118652] regulator: VDAC: 1800 mV normal standby
[  308.119659] regulator: VUSB1V5: 1500 <--> 0 mV normal standby
[  308.120605] regulator: VUSB1V8: 1800 <--> 0 mV normal standby
[  308.121551] regulator: VUSB3V1: 3100 <--> 0 mV normal standby
[  308.122528] regulator: VPLL2: 1800 mV normal standby
[  308.123504] regulator: VMMC2: 2800 <--> 3150 mV normal standby
[  308.124481] regulator: VSIM: 1800 <--> 3000 mV normal standby
[  308.124725] i2c_omap i2c_omap.3: bus 3 rev3.12 at 100 kHz
[  308.126892] SCSI subsystem initialized
[  308.128234] twl4030_usb twl4030_usb: Initialized TWL4030 USB module
[  308.129943] usbcore: registered new interface driver usbfs
[  308.130584] usbcore: registered new interface driver hub
[  308.131103] usbcore: registered new device driver usb
[  308.134643] Bluetooth: Core ver 2.14
[  308.135223] NET: Registered protocol family 31
[  308.135284] Bluetooth: HCI device and connection manager initialized
[  308.135314] Bluetooth: HCI socket layer initialized
[  308.136108] cfg80211: Using static regulatory domain info
[  308.136138] cfg80211: Regulatory domain: US
[  308.136199]  (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[  308.136260]  (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)
[  308.136291]  (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[  308.136352]  (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[  308.136413]  (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[  308.136474]  (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[  308.136505]  (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)
[  308.136566] cfg80211: Calling CRDA for country: US
[  308.140502] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0
[  308.142852] musb_core_init 1421: reconfigure software for static FIFOs
[  308.143707] musb_hdrc musb_hdrc: musb_init_controller failed with status -19
[  308.145507] NET: Registered protocol family 2
[  308.145812] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[  308.146545] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[  308.146820] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[  308.147003] TCP: Hash tables configured (established 8192 bind 8192)
[  308.147064] TCP reno registered
[  308.147369] NET: Registered protocol family 1
[  308.151123] omap-iommu omap-iommu.1: isp registered
[  308.151397] omap-iommu omap-iommu.2: iva2 registered
[  308.154541] VFS: Disk quotas dquot_6.5.2
[  308.154724] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[  308.155395] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[  308.156372] JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[  308.157409] msgmni has been set to 467
[  308.162322] alg: No test for stdrng (krng)
[  308.162475] io scheduler noop registered
[  308.162536] io scheduler anticipatory registered
[  308.162567] io scheduler deadline registered
[  308.162811] io scheduler cfq registered (default)
[  308.189270] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[  308.211517] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654
[  308.232025] serial8250.0: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654
[  308.252532] serial8250.0: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654
[  308.252624] console [ttyS2] enabled
[  308.794586] brd: module loaded
[  308.804321] loop: module loaded
[  308.808502] usbcore: registered new interface driver catc
[  308.814208] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver
[  308.820648] usbcore: registered new interface driver kaweth
[  308.826324] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver
[  308.834228] usbcore: registered new interface driver pegasus
[  308.840179] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver
[  308.847961] usbcore: registered new interface driver rtl8150
[  308.854064] usbcore: registered new interface driver asix
[  308.859893] usbcore: registered new interface driver cdc_ether
[  308.866088] usbcore: registered new interface driver dm9601
[  308.872100] usbcore: registered new interface driver smsc95xx
[  308.878295] usbcore: registered new interface driver gl620a
[  308.884277] usbcore: registered new interface driver net1080
[  308.890380] usbcore: registered new interface driver plusb
[  308.896209] usbcore: registered new interface driver rndis_host
[  308.902526] usbcore: registered new interface driver cdc_subset
[  308.908874] usbcore: registered new interface driver zaurus
[  308.914855] usbcore: registered new interface driver MOSCHIP usb-ethernet driver
[  308.922760] Broadcom 43xx driver loaded [ Features: L, Firmware-ID: FW13 ]
[  308.930236] usbcore: registered new interface driver zd1211rw
[  308.936340] usbcore: registered new interface driver rtl8187
[  308.942474] usbcore: registered new interface driver rndis_wlan
[  308.948822] usbcore: registered new interface driver zd1201
[  308.954895] usbcore: registered new interface driver usb8xxx
[  308.960998] usbcore: registered new interface driver rt2500usb
[  308.967224] usbcore: registered new interface driver rt73usb
[  308.973327] usbcore: registered new interface driver p54usb
[  308.979034] i2c /dev entries driver
[  308.984313] Driver 'sd' needs updating - please use bus_type methods
[  308.991027] Driver 'sr' needs updating - please use bus_type methods
[  308.998657] omap2-nand driver initializing
[  309.003204] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xba (Micron NAND 256MiB 1,8V 16-bit)
[  309.012329] cmdlinepart partition parsing not available
[  309.017700] Creating 5 MTD partitions on "omap2-nand":
[  309.023010] 0x000000000000-0x000000080000 : "X-Loader"
[  309.030334] 0x000000080000-0x000000260000 : "U-Boot"
[  309.037567] 0x000000260000-0x000000280000 : "U-Boot Env"
[  309.044494] 0x000000280000-0x000000680000 : "Kernel"
[  309.052581] 0x000000680000-0x000010000000 : "File System"
[  309.165039] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[  309.172149] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller
[  309.178802] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1
[  309.186737] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800
[  309.202697] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00
[  309.209320] usb usb1: configuration #1 chosen from 1 choice
[  309.215484] hub 1-0:1.0: USB hub found
[  309.219451] hub 1-0:1.0: 3 ports detected
[  309.225769] Initializing USB Mass Storage driver...
[  309.231231] usbcore: registered new interface driver usb-storage
[  309.237396] USB Mass Storage support registered.
[  309.242889] mice: PS/2 mouse device common for all mice
[  309.248809] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[  309.258483] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-adapter/i2c-1/1-0049/twl4030_pwrbutton/input/input1
[  309.271179] twl4030_rtc twl4030_rtc: rtc core: registered twl4030_rtc as rtc0
[  309.278656] twl4030_rtc twl4030_rtc: Power up reset detected.
[  309.284881] twl4030_rtc twl4030_rtc: Enabling TWL4030-RTC.
[  309.292968] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec
[  309.299438] Bluetooth: HCI UART driver ver 2.2
[  309.303924] Bluetooth: HCI H4 protocol initialized
[  309.308868] Bluetooth: HCI BCSP protocol initialized
[  309.313934] Bluetooth: HCILL protocol initialized
[  309.318695] Bluetooth: Broadcom Blutonium firmware driver ver 1.2
[  309.325408] usbcore: registered new interface driver bcm203x
[  309.331207] Bluetooth: Digianswer Bluetooth USB driver ver 0.10
[  309.337615] usbcore: registered new interface driver bpa10x
[  309.343322] Bluetooth: BlueFRITZ! USB driver ver 1.2
[  309.348663] usbcore: registered new interface driver bfusb
[  309.354309] Bluetooth: Generic Bluetooth USB driver ver 0.4
[  309.360321] usbcore: registered new interface driver btusb
[  309.365875] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
[  309.372863] mmci-omap-hs mmci-omap-hs.0: Failed to get debounce clock
[  309.484100] mmci-omap-hs mmci-omap-hs.1: Failed to get debounce clock
[  309.490722] regulator: Unable to get requested regulator: vmmc_aux
[  309.499267] Registered led device: beagleboard::usr0
[  309.504730] Registered led device: beagleboard::usr1
[  309.517181] usbcore: registered new interface driver usbhid
[  309.522918] usbhid: v2.6:USB HID core driver
[  309.528533] Advanced Linux Sound Architecture Driver Version 1.0.18a.
[  309.536041] usbcore: registered new interface driver snd-usb-audio
[  309.542755] No device for DAI twl4030
[  309.546691] No device for DAI omap-mcbsp-dai-0
[  309.551177] No device for DAI omap-mcbsp-dai-1
[  309.555847] No device for DAI omap-mcbsp-dai-2
[  309.560363] No device for DAI omap-mcbsp-dai-3
[  309.564880] No device for DAI omap-mcbsp-dai-4
[  309.569396] OMAP3 Beagle SoC init
[  309.573242] TWL4030 Audio Codec init
[  309.578582] asoc: twl4030 <-> omap-mcbsp-dai-0 mapping ok
[  309.594787] ALSA device list:
[  309.597808]   #0: omap3beagle (twl4030)
[  309.610015] oprofile: using arm/armv7
[  309.614013] TCP cubic registered
[  309.617462] NET: Registered protocol family 17
[  309.622039] NET: Registered protocol family 15
[  309.626647] Bluetooth: L2CAP ver 2.11
[  309.630371] Bluetooth: L2CAP socket layer initialized
[  309.635528] Bluetooth: SCO (Voice Link) ver 0.6
[  309.640167] Bluetooth: SCO socket layer initialized
[  309.645294] Bluetooth: RFCOMM socket layer initialized
[  309.650604] Bluetooth: RFCOMM TTY layer initialized
[  309.655548] Bluetooth: RFCOMM ver 1.10
[  309.659393] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[  309.664825] Bluetooth: BNEP filters: protocol multicast
[  309.670104] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[  309.678649] RPC: Registered udp transport module.
[  309.683471] RPC: Registered tcp transport module.
[  309.688385] lib80211: common routines for IEEE802.11 drivers
[  309.694183] ThumbEE CPU extension supported.
[  309.698547] Power Management for TI OMAP3.
[  309.712280] Disabling unused clock "sr2_fck"
[  309.716613] Disabling unused clock "sr1_fck"
[  309.721008] Disabling unused clock "mcbsp_fck"
[  309.725524] Disabling unused clock "mcbsp_fck"
[  309.730072] Disabling unused clock "mcbsp_fck"
[  309.734619] Disabling unused clock "mcbsp_ick"
[  309.739105] Disabling unused clock "mcbsp_ick"
[  309.743652] Disabling unused clock "mcbsp_ick"
[  309.748138] Disabling unused clock "gpt2_ick"
[  309.752593] Disabling unused clock "gpt3_ick"
[  309.756988] Disabling unused clock "gpt4_ick"
[  309.761444] Disabling unused clock "gpt5_ick"
[  309.765899] Disabling unused clock "gpt6_ick"
[  309.770294] Disabling unused clock "gpt7_ick"
[  309.774749] Disabling unused clock "gpt8_ick"
[  309.779174] Disabling unused clock "gpt9_ick"
[  309.783599] Disabling unused clock "wdt3_ick"
[  309.788024] Disabling unused clock "wdt3_fck"
[  309.792480] Disabling unused clock "gpio2_dbck"
[  309.797088] Disabling unused clock "gpio3_dbck"
[  309.801696] Disabling unused clock "gpio4_dbck"
[  309.806304] Disabling unused clock "gpio5_dbck"
[  309.810882] Disabling unused clock "gpio6_dbck"
[  309.815521] Disabling unused clock "gpt9_fck"
[  309.819976] Disabling unused clock "gpt8_fck"
[  309.824401] Disabling unused clock "gpt7_fck"
[  309.828826] Disabling unused clock "gpt6_fck"
[  309.833251] Disabling unused clock "gpt5_fck"
[  309.837677] Disabling unused clock "gpt4_fck"
[  309.842102] Disabling unused clock "gpt3_fck"
[  309.846557] Disabling unused clock "gpt2_fck"
[  309.850982] Disabling unused clock "gpt1_ick"
[  309.855407] Disabling unused clock "wdt1_ick"
[  309.859832] Disabling unused clock "wdt2_ick"
[  309.864257] Disabling unused clock "wdt2_fck"
[  309.868713] Disabling unused clock "gpio1_dbck"
[  309.873291] Disabling unused clock "gpt1_fck"
[  309.877746] Disabling unused clock "cam_ick"
[  309.882110] Disabling unused clock "cam_mclk"
[  309.886566] Disabling unused clock "des1_ick"
[  309.891021] Disabling unused clock "sha11_ick"
[  309.895507] Disabling unused clock "rng_ick"
[  309.899871] Disabling unused clock "aes1_ick"
[  309.904296] Disabling unused clock "ssi_ick"
[  309.908660] Disabling unused clock "mailboxes_ick"
[  309.913543] Disabling unused clock "mcbsp_ick"
[  309.918029] Disabling unused clock "mcbsp_ick"
[  309.922576] Disabling unused clock "gpt10_ick"
[  309.927062] Disabling unused clock "gpt11_ick"
[  309.931610] Disabling unused clock "i2c_ick"
[  309.935943] Disabling unused clock "mcspi_ick"
[  309.940460] Disabling unused clock "mcspi_ick"
[  309.945007] Disabling unused clock "mcspi_ick"
[  309.949493] Disabling unused clock "mcspi_ick"
[  309.954040] Disabling unused clock "hdq_ick"
[  309.958343] Disabling unused clock "mspro_ick"
[  309.962890] Disabling unused clock "des2_ick"
[  309.967315] Disabling unused clock "sha12_ick"
[  309.971832] Disabling unused clock "aes2_ick"
[  309.976287] Disabling unused clock "icr_ick"
[  309.980590] Disabling unused clock "pka_ick"
[  309.984954] Disabling unused clock "ssi_ssr_fck"
[  309.989654] Disabling unused clock "hdq_fck"
[  309.993988] Disabling unused clock "mcspi_fck"
[  309.998504] Disabling unused clock "mcspi_fck"
[  310.003021] Disabling unused clock "mcspi_fck"
[  310.007568] Disabling unused clock "mcspi_fck"
[  310.012054] Disabling unused clock "mcbsp_fck"
[  310.016601] Disabling unused clock "mcbsp_fck"
[  310.021087] Disabling unused clock "i2c_fck"
[  310.025451] Disabling unused clock "mspro_fck"
[  310.029968] Disabling unused clock "gpt11_fck"
[  310.034484] Disabling unused clock "gpt10_fck"
[  310.039031] Disabling unused clock "dpll4_m6x2_ck"
[  310.043884] Disabling unused clock "dpll3_m3x2_ck"
[  310.048767] Disabling unused clock "sys_clkout1"
[  310.053497] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1
[  310.065917] registered taskstats version 1
[  310.071685] fbcvt: 1280x720@60: CVT Name - .921M9-R
[  310.106170] Console: switching to colour frame buffer device 160x45
[  310.128570] clock: clksel_round_rate_div: dpll4_m4_ck target_rate 48000000
[  310.135742] clock: new_div = 9, new_rate = 48000000
[  310.143951] twl4030_rtc twl4030_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
[  310.153594] Waiting for root device /dev/mmcblk0p2...
[  310.296539] mmc0: new high speed SDHC card at address 8fe4
[  310.303009] mmcblk0: mmc0:8fe4 SD08G 7.40 GiB
[  310.308044]  mmcblk0: p1 p2
[  310.379943] EXT3-fs: mounted filesystem with ordered data mode.
[  310.386260] VFS: Mounted root (ext3 filesystem) readonly on device 179:2.
[  310.393554] Freeing init memory: 204K
[  310.397399] kjournald starting.  Commit interval 5 seconds

Ubuntu karmic (development branch) beagleboard ttyS2

beagleboard login: ubuntu
Password: <<<<the password which you set when compiling the image with rootstock>>>>
Linux beagleboard 2.6.29-oer40.5 #1 PREEMPT Wed Aug 12 07:04:24 UTC 2009 armv7l

To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

ubuntu@beagleboard:~$


Seems I have been successful :-) The only thing I notice is that the HW clock is some months off the track, but without mounted backup battery this is forgiveable.

6.2 Ubuntu-10.04 Operating System Installation

  • 2010-06-04 From time to time it's reasonable to check if installation procedures are still valid. So I found that the above given instructions will no longer be perfectly successful because repository paths have changed, giving a 404 error for some items. So here's a revised list of instructions. I am still running with a BeagleBoard, yet the below instructions are also supposed to run on a C3 release with the ZippvV1.

6.2.1 Requirements

I am doing the installation on Ubuntu Karmic on my laptop, so some packages need to be postinstalled. Here's also some very important resource which you are strongly recommended to read:

Then install some software:

apt-get install qemu qemu-kvm-extras

Also update the debootstrap files: Point your browser to the following URL and get the most recent deboostrap

http://ports.ubuntu.com/pool/main/d/debootstrap/

Choose one of the following: 1.0.23 is more recent.

debootstrap_1.0.23_all.deb
debootstrap_1.0.20ubuntu1~karmic1_all.deb

Then install it on your Ubuntu with the following command: Switch on your brain and substitute the file name with what you've downloaded :-)

sudo dpkg -i debootstrap_........deb

Get the current rootstock file: Point your browser to the following URL and hit the "download" button:

 http://bazaar.launchpad.net/~beagleboard-kernel/%2Bjunk/rootstock-on-arm-rc/annotate/head%3A/rootstock

Don't forget to make the rootstock file executable:

chmod u+x rootstock

6.2.2 Creating the Image

I am happy to own a 32 GB MMC card (class 6, which is quite speedy). So I am composing the following rootstock command:

./rootstock --fqdn beagleboard --login ubuntu --password temppwd --imagesize 32G \
--seed wget,nano,linux-firmware,wireless-tools,usbutils --dist lucid --serial ttyS2 \
--script fixup.sh --components "main universe multiverse" \
--kernel-image http://rcn-ee.net/deb/kernel/beagle/lucid/v2.6.32.11-l13/linux-image-2.6.32.11-l13_1.0lucid_armel.deb

6.3 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.

  • 2009-09-05 Hardship: I'm not able to compile svxlink with the standard gcc / g++ that comes with the Karmic distribution (which is version 4.4). Solution: Install gcc-4.2 and g++-4.2 (apt-get install gcc-4.2 g++-4.2). Then have a look at /usr/bin/gcc and /usr/bin/g++. They are symbolic links. Remove them. Recreate them, pointing to the 4.2 versions of the compilers. Then restart make.
apt-get install gcc-4.2 g++-4.2
ls -al /usr/bin/gcc
ls -al /usr/bin/gpp
rm /usr/bin/gcc /usr/bin/gpp
ln -s /usr/bin/gcc-4.2 /usr/bin/gcc
ln -s /usr/bin/g++-4.2 /usr/bin/g++
  • 2009-09-06 Good news: Power consumption only rises by 7-8 mA @13,8V when compiling software at 100% CPU load. So the delta from idle to full CPU load is just 0.110 mW. - Given that about 33% of that load will also be consumed by the DC regulator.

7 Putting it all together

7.1 Building another case

The single copper sided PCB method comes into the scene again, as well as the u-profile technique to hold the floor of the case as well as the boards.

Come again soon to see the pictures.