Difference between revisions of "Balsa Prototype"

From LSDevLinux
Jump to: navigation, search
m (Adjust categories)
Line 174: Line 174:
[[Category:Low-Power Computing]]
[[Category:Low-Power Computing]]

Revision as of 12:46, 14 October 2010


Balsa is a hardware+software computer solution for use by language workers in remote areas, where infrastructure for computer use is a major problem. More about the goals see Balsa: Basic Language Software Appliance

So far, SIL has produced two prototypes of Balsa.

  1. Based on Xubuntu Intrepid, created by installing Xubuntu to a real system.
  2. Based on Xubuntu Jaunty, created using an automated builder process.

Work is ongoing to update the second of these to use Xubuntu Lucid as the base.

Other possible base systems for Balsa include Ubuntu Netbook Edition and MeeGo.


Prototype 1 (Intrepid)

This is available by downloading a tarball from the main Balsa site. This tarball is installed onto a newly-formatted SD card. It can be done on the XO itself by putting the tarball onto a USB flash drive and following the instructions.

The tarball was produced by a manual process which involved installing Xubuntu to a real system, adding users and installing packages, and then saving the result.

This prototype is described on the main site, so isn't described any further here.

Prototype 2 (Jaunty)

This prototype can also use the tarball distribution mechanism. However, due to the use of an automated builder that is driven by a description called a "buildfile", it is open to customization through editing of the buildfile before running the builder process.

The rest of this page refers to Prototype 2.

The Balsa User Environment

The Balsa user environment uses the launcher-based UI with a tabbed taskbar. There are six tabs:

  1. Work (screenshot)
  2. Write & Draw (screenshot)
  3. Learning & Fun (screenshot)
  4. Record & Play (screenshot)
  5. Internet (screenshot)
  6. Settings (screenshot)

Running the Builder

This section describes how an SD card with a bootable image is produced. This process is meant to be undertaken by a maintainer or distributor of Balsa only. It is not intended to be performed by language advisers or on-site technicians. They should simply download the finished image for installation to an SD card. (To do this, they can use the same process described on the main Balsa site, using the latest.tbz2 file that is created by the builder).

Resources needed and notes

  1. You will need a Xubuntu Jaunty CD. You can download the required tools from xubuntu.org. However, the builder can work with just the CD image file (.iso) so burning it to physical media is optional.
  2. The builder itself is about 25MB, and will download another 150MB as it runs. This is in addition to downloading the Xubuntu CD, which is about 650MB. The total download size is slightly larger than for downloading a built image, so using the builder is useful only if you want to customize the process, or keep up with improvements to the builder as they are released.
  3. Some partitions are mounted with nosuid,nodev options. The builder will not run on those partitions. In particular, if you set up Ubuntu with a separate home partition, it will have these options set by default. To run the builder, you can use a different partition or change these options. Either,
    1. To use a different partition, cd to a different partition, e.g. /var/tmp before you use the git command below. Or,
    2. To change the options:
sudo <your_favorite_text_editor> /etc/fstab
Locate the line that contains /home as the second item on the line. On the same line, remove the nosuid,nodev

Initial preparation

Download the balsa-builder tar file and unpack it into your home directory somewhere:

tar -xpf balsa-builder.tbz2

Alternatively, you can obtain an up-to-the-minute version of balsa-build using git as follows:

git clone git://git.lsdev.sil.org/balsa-builder.git

To keep this updated in the future, you will just need to run:

git pull

in the newly created balsa-builder directory.

Basic usage

Insert the Xubuntu CD (but don't run it). Alternatively, you can "loop-mount" the .iso file like this:

sudo mount -o loop Xubuntu_9.04_i386.iso /mnt

Note that the builder will find the CD image regardless of where you mount it.

Open a terminal and use cd to get to the newly created balsa-builder directory. Run this command:


This command will build a Balsa installation. Follow the instructions on screen.

You may then run this command:

./build-balsa.sh install

This command will install Balsa on an SD card. Note that you only need to build once. You can install as many times as you like.

Warning: the install command is currently broken, so use these instructions instead: Prepare a bootable SD card to run Balsa

Advanced usage

If at any time you wish to run individual parts of the installer, you can put one or more of the following words after the script name:

Command      Description
prerequisites Makes sure you have the right programs installed to build Balsa
image Creates the starting system image. Plain Xubuntu. The only step that requires the Xubuntu CD or .iso
teapot Modifies the plain Xubuntu image to make it XO compatible
balsa Modifies the XO compatible image to make it Balsa
install Installs to an SD card (see above)

For example, you could redo the Teapot and Balsa process without creating a new image like this:

./build-balsa.sh teapot balsa

Customizing the build

[under construction]


The card is ready to be put into an XO and booted. See:

After creating and copying the BalsaRoot SD card, you may insert the card into an unlocked OLPC XO computer. Turn the computer on and it will recognize and boot from the card.

A non-XO system will need some separate preparation. There are separate pages for:


Bugs may be reported using the Balsa Bugzilla database. Please check to see if the same or a similar bug exists in the database before adding a new one.

Contacting the developers

If you have any difficulty following these instructions, or have questions that are not covered here, you can contact the team in these ways:

  • Leave comments on the discussion tab associated with this page (requires registration). Please sign your comments using the "add signature" button in the editing toolbar
  • Use our IRC channel
  • Send a message to balsa-dev at linux.lsdev.sil.org

Running the builder creates a sibling directory to balsa-builder named balsa-results. In that directory it creates a file named latest_log. Including this in queries will help us to address any difficulties. When using IRC or the discussion tab, we recommend uploading the file to a service like pastebin.com and pasting the resulting URL.

Known bugs

Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited — Gilb's 3rd Law of Unreliability

Some of the applications included with Balsa have dialog boxes that are too large for netbook screens. If you hold down the <ALT> key while dragging the dialogue box, you can move the portions of the box that are off the screen onto the screen. Use this work-around to get access to buttons that are off the screen.

Consult the Balsa Bugzilla database for an up-to-date list of outstanding bugs.

Notes for Specific Applications Running Under Balsa