« Previous - Version 16/101 (diff) - Next » - Current version
Thomas Tsou, 05/27/2011 12:55 am


OpenBTS: USRP E100

Due to constrained resources of an embedded environment, the OpenBTS on the E100 requires 52 MHz clocking and the use of the 52 MHz transceiver implementation. The E100 master clock rate is configurable through the UHD driver interface and requires no hardware modification for use with OpenBTS.

There are multiple ways to setup an OpenBTS environment on the E100. OpenBTS has a small number of dependent packages, which can be built from source on the device, cross-compiled with OpenEmbedded, or supplied on a pre-built filesystem image.

Using the pre-built images with all dependencies and compiling only OpenBTS on the device is strongly recommended for the majority of users and developers not interested in setting up a cross-compile environment.

General Information

Download Prebuilt Images

  • Root file system
    (to be posted)

Installing Images

The following instructions apply to installing images on the SD card in a Linux environment. It is recommended that you backup your SD card contents before proceeding.

Insert the SD card into a card reader

On most Linux distributions, two partitions should mount automatically as "FAT" and "rootfs". If not, the partitions need to be mounted manually.

$ ls /media/
FAT  rootfs

Install the MLO. Always copy a new MLO over the old one. If not performed properly, the partition will need to be reformatted.

$ cd /media/FAT
$ cp <download location>/MLO MLO

Install the U-Boot image and Linux kernel

$ cp <download location>/u-boot.bin-for-2.6.38 u-boot.bin
$ cp <download location>/uImage-2.6.38-r0-usrp-e1xx.bin uImage

Erase the existing root filesystem. Be careful with this step for obvious reasons.

$ cd /media/rootfs
$ sudo rm -rf *

Install the new root filesystem

$ sudo tar xvfz <download location>/console-openbts-devel-image-usrp-e1xx.tar.gz .

Unmount the partitions

$ umount /media/FAT
$ umount /media/rootfs

At this point, the SD card can be removed and booted on the E100. For general information on communicating with the E100, please refer to the following FAQ entry.

http://code.ettus.com/redmine/ettus/projects/usrpe1xx/wiki/FAQ#How-do-I-talk-to-the-E100

Download

The source code for all UHD devices is identical and no code changes are necessary for the E100.

git clone git://github.com/ttsou/openbts-uhd.git
or
git clone http://github.com/ttsou/openbts-uhd.git

A generated tarball is also available for download.

Build

$ cd openbts-uhd/public-trunk
$ ./bootstrap
$ ./configure --with-uhd CFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -O3" CXXFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -O3" 
$ make

Configure

Create a new configuration file from the supplied example

$ cd apps
$ cp OpenBTS.config.example OpenBTS.config

It is recommended that only error messages be logged due to limited I/O resources.

# The initial global logging level: ERROR, WARN, NOTICE, INFO, DEBUG, DEEPDEBUG
Log.Level ERROR
# Logging levels can also be defined for individual source files.
# This example set shows normal operations in the control layer (L3).
Log.Level.MobilityManagement.cpp ERROR
$optional Log.Level.MobilityManagement.cpp
Log.Level.CallControl.cpp ERROR
$optional Log.Level.CallControl.cpp
Log.Level.RadioResource.cpp ERROR
$optional Log.Level.RadioResource.cpp

Limit the transceiver log to error messages as well.

# TRX logging.
# Logging level.
# IF TRX.Path IS DEFINED, THIS MUST ALSO BE DEFINED.
TRX.LogLevel ERROR

Set the desired band and frequency (default values shown).

# Valid band values are 850, 900, 1800, 1900.
GSM.Band 900

# Valid ARFCN range depends on the band.
GSM.ARFCN 51

Select the 52 MHz transceiver.

# Path to transceiver binary
#TRX.Path ../Transceiver/transceiver
TRX.Path ../Transceiver52M/transceiver

Set the desired transmit power attenuation (default values shown).

# Maximum attenuation (sets MINIMUM power level).
GSM.PowerManager.MaxAttenDB 30
# Minimum attenuation (sets MAXIMUM power level).
GSM.PowerManager.MinAttenDB  7

Run

Start the Asterisk server

asterisk

Start OpenBTS

./OpenBTS

Wait for the handset to associate with the BTS.

By default, an echo server is setup by Asterisk on extension "600". Dial the number on an associated handset to run the test.

Notes

  • Additional notes go here
  • Currently tested with calls up to 12 hours in duration in a lightly loaded scenario