BeagleBoard Development Environment

From Crashcourse Wiki

Jump to: navigation, search

If you plan on simply downloading, flashing and running pre-built kernels and root filesystems, you might not need any additional development tools on your Linux host system. On the other hand, if you want to roll your own components, here's a shopping list of what you might need to install first to do BeagleBoard development on your host.

Contents

32-bit executables on a 64-bit system

If you're running a 64-bit (x86_64) version of Linux on your development host, you might need to install 32-bit compatibility for some downloadable tools (such as toolchains) to work. The fact that you need something like this will show up if you try to run something and get a run-time error complaining about a missing /lib/ld-linux.so.2 or something similar.

On x86_64 Fedora, that would involve:

# yum install glibc.i686

On other distros, you'll have to figure that out for yourself.

The toolchain

While there are a number of ways to get an appropriate toolchain, you can start with the one [here]. The only caveat is that you must install that particular toolchain under the /opt directory as it appears to be non-relocatable. Once you've done that, you can add the appropriate directory to your search path and try to compile the standard "Hello, world" program and see if that compiles.

Other potential toolchains will be documented here as they show up.

u-boot

If you want to build everything from scratch, you'll probably want the source for u-boot. And if you want to stay up-to-date, you might as well get it via git:

$ git clone git://git.denx.de/u-boot.git

Once that's done (and you've installed your toolchain), do a test build for the BeagleBoard with:

$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omap3_beagle_config
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

As long as you've installed your toolchain properly, that build should work. How to configure u-boot properly is beyond the scope of this installation page.

mkimage

Some build systems like Android require the host system to have a working mkimage utility to create the eventual uImage kernel image file. The easiest way to get one is to follow the instructions above for u-boot except build only the tools directory with:

$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- tools

and copy the resulting tools/mkimage executable to, say, /usr/local/bin. If you've done this properly, then you should see something like:

$ mkimage
Usage: mkimage -l image
          -l ==> list image header information
       mkimage [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image
          -A ==> set architecture to 'arch'
          -O ==> set operating system to 'os'
          -T ==> set image type to 'type'
          -C ==> set compression type 'comp'
          -a ==> set load address to 'addr' (hex)
          -e ==> set entry point to 'ep' (hex)
          -n ==> set image name to 'name'
          -d ==> use image data from 'datafile'
          -x ==> set XIP (execute in place)
       mkimage [-D dtc_options] -f fit-image.its fit-image
$

repo

Finally, if you want to build your images from Android source, you'll probably need the Android-specific repo utility, documented [here].

Return to main BeagleBoard page.

Personal tools