Please note that User Registration has been temporarily disabled due to a recent increase in automated registrations. If anyone needs an account, please request one here: RequestAccount. Thanks for your patience!--Wmat (talk)
Please email User:Wmat if you experience any issues with the Request Account form.

Difference between revisions of "EBC Exercise 08 Installing Development Tools"

Jump to: navigation, search
m (Switched to BeagleBone Black page)
m (Updating for 29-Aug-2013)
Line 17: Line 17:
  host$ '''git clone git://'''
  host$ '''git clone git://'''
  host$ '''git git checkout origin/am33x-v3.8 -b am33x-v3.8'''
  host$ '''cd linux-dev.git'''
host$ '''git checkout origin/am33x-v3.8 -b am33x-v3.8'''
  host$ '''time git clone git://'''  (21 minutes)
  host$ '''time git clone git://'''  (21 minutes)
  host$ '''cp'''
  host$ '''cp'''
  host$ '''diff*'''
  host$ '''diff*'''
Line 34: Line 35:
  > #ZRELADDR=0x80008000
  > #ZRELADDR=0x80008000
Note: git git checkout ... should be git checkout origin/am33x-v3.8 -b am33x-v3.8. Also, after the clone you most likely need to cd into linux-dev.
Now get some more tools.
Now get some more tools.
  host$ '''sudo apt-get install -y uboot-tools ccache libncurses5-dev'''
  host$ '''sudo apt-get install -y uboot-tools ccache libncurses5-dev'''

Revision as of 15:23, 29 August 2013

thumb‎ Embedded Linux Class by Mark A. Yoder

3.8 Kernel

See EBC Exercise 08 Installing Development Tools 3.2 if you are working with the 3.2 kernel.

Early in the class most of the exercises we will do will all run on the BeagleBoard. You'll be able to edit (gedit), compile (gcc) and run all on the Beagle. Later, when we start compiling the kernel or the boot loader, (U-boot) you will need to cross compile on a Linux machine and copy the results to the Beagle.

The purpose of this exercise is to install all the tools needed for compiling on your host so they will be ready when you need them.

Instructions for building Ångström are given here; however there are a few changes you have to make. Here's what I did.

Tip: Run this exercise using a wired connection if you can. The Ubuntu wireless driver can be finicky, and if it stops working you'll have to restart some of this.

The 3.8 Kernel

3.8 Kernel

Make sure you installed the cross compiler (EBC Exercise 08a Cross-Compiling) before doing this exercise.

Note taken from Beaglebone: Adding USB Wi-Fi & Building a Linux Kernel starting around 4 minutes and ending around 21 minutes. Uses kernel from Robert C. Nelson's BeagleBone Black page.

host$ git clone git://
host$ cd linux-dev.git
host$ git checkout origin/am33x-v3.8 -b am33x-v3.8
host$ time git clone git://  (21 minutes)
host$ cp
host$ diff*
< CC=arm-linux-gnueabi-
> #CC=arm-linux-gnueabi-
< LINUX_GIT=~/BeagleBoard/linux-stable/
> #LINUX_GIT=/home/user/linux-stable/
< ZRELADDR=0x80008000
> #ZRELADDR=0x80008000

Now get some more tools.

host$ sudo apt-get install -y uboot-tools ccache libncurses5-dev
host$ sudo apt-get install build-essential
host$ sudo apt-get install device-tree-compiler lzop u-boot-tools ia32-libs

Then build the kernel.

host$ ./
+ Detected build host [Ubuntu 12.04.2 LTS]
Debian/Ubuntu/Mint: missing dependicies, please install:
sudo apt-get update
sudo apt-get install libncurses5-dev 
* Failed dependency check

I fixed this error by editing linux-dev/tools/ and commenting out the line:

#	dpkg -l | grep libncurses5-dev | grep ${deb_arch} >/dev/null || deb_pkgs="${deb_pkgs}libncurses5-dev "

It was looking for amd64 in the dpkg -l listing and it wasn't appearing.

Now install by inserting the SD to be installed on into your host machine and run:

host$ ./tools/

Mine failed because there wasn't enough space on the VFAT partition for uImage, however uImage isn't needed there, so I just editted and commented out line 160

#			mmc_partition_discover

This keeps it from installing on the VFAT partition.

Minimal Ubuntu Build

(The video says, but it isn't there.)

host$ wget
host$ xz -d ubuntu-raring-console-armhf-2013-03-28.tar.xz
host$ tar -xf ubuntu-raring-console-armhf-2013-03-28.tar

Put the SD card in a reader for your host and...

host$ ./ --mmc /dev/sdc --uboot bone

Ian's Notes: The builds are being updated constantly, so go to and find the latest build, if the one above does not work.

DAS U-boot

These instructions came from Robert C Nelson's


While we're at it, let's get the boot loader we'll be using. It takes some 40 seconds.

host$ cd ~/BeagleBoard
host$ git clone git://
host$ cd u-boot/
host$ git checkout v2013.04 -b tmp

U-Boot Patches

host$ wget
host$ patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch


Now configure and build. The first time takes some 1.5 minutes. After that it's only 5 seconds or so.

host$ source ~/ 
host$ make distclean
host$ make am335x_evm_config
host$ make


host$ scp u-boot.img root@beagle:.
beagle$ mkdir /media/mmcblk0p1
beagle$ mount /dev/mmcblk0p1 /media/mmcblk0p1
beagle$ cd /media/mmcblk0p1
beagle$ mv u-boot.img u-boot.img.orig  # Save the working u-boot
beagle$ cp ~/u-boot.img
beagle$ cp u-boot.img

Once installed you are ready for u-boot work.

thumb‎ Embedded Linux Class by Mark A. Yoder