The BeagleBone is a low-power open source hardware single-board computer designed with open source software development in mind, and as a way of demonstrating the Texas Instrument’s OMAP3530 system-on-a-chip.

Initial steps

It comes with a 4GB SD card with a preinstalled Angström Linux. The simplest method to use the console is to connect the board to your PC with the supplied USB cable. It will bring up a serial interface (it should mount the SD card on the PC for the first time but this never worked for me – if it mounts the card for you, just unmount it). Use a terminal (like minicom, gtkterm or RealTerm in a Windows world) with the settings 115200 baud, 8 bits, 1 stop bit.

After bootup you can login with root without a password. The usb0 network interface should come up, if it doesn’t, issue the following commands on the Bone:

The boot process

There should be 2 partitions on the SD card, a smaller FAT32 boot partition (bootfs) and a larger system partition (rootfs, with an ext3, ext4 or other filesystem). The boot partition has the MLO and u-boot.img files. Some U-Boot versions search for the kernel image in the boot partition, some just simply mount the system partition and search for the image in it’s /boot folder. Make sure there’s only one kernel image on the SD card, preferably in the /boot folder of the rootfs.

If you want to replace the boot loader, just simply overwrite these files. Be sure to make a full backup of the SD card before you proceed with replacing the factory Angström distrib with your custom one. Put the SD card into a card reader on your PC and issue the following command:

1

sudoddif=/dev/sde bs=8M |bzip2-c> beaglebone-default.img.bz2

Replace /dev/sde with the SD card device file.

There are some commands you can use in the U-Boot shell. The most important ones are:

boot – boot default, i.e., run ‘bootcmd’

set bootfile something.img – sets the filename to load to the given parameter

The latter command missed some packages for me, install those and proceed. After everything’s finished, you’ll have a rootfs and a bootfs in the build/tmp-angstrom_v2012_05-eglibc/deploy/images/beaglebone directory. Simply erase everything on the SD card and copy the contents of these two files to their partitions.

I’ve tried several kernel sources for the BeagleBone and I found that the RobertCNelson tree is a fairly latest source and easily compilable one. You have to use the command clone instead of checkout. Sorry for the mistake.

when following the instructions above, the call of ./build_kernel.sh the compilation process starts. However, menu config is called.
I did not configure anything (since it should be a default config for the beaglebone there) and left the kernel configuratin dialog with exit. The compilation resumes but failed with:
*** End of the configuration.
*** Execute ‘make’ to start the build or try ‘make help’.

Finally I got it working…
I used a different checkout command to change the branch, didnt mix linux-stable with linux-dev and disabled multi-core compiling, which
gave spurious compilation errors at least on my system (AMD64).
(There is a youtube video by Derek Molloy, which shows the correct way. Thank you, Derek =>http://www.youtube.com/watch?v=HJ9nUqYMjqs)
See script below:
#! /bin/zsh
git clone https://github.com/RobertCNelson/linux-dev.git
cd linux-dev
git checkout origin/am33x-v3.2 -b am33x-v3.2
cd ..
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
cd linux-dev
cp system.sh.sample system.sh
vim system.sh
# In vim change the following settings:
# Line 14: Set CC to the _prefix_ of your arm crosscompile. In my case the arm gcc
# crosscompiler was named “armv7a-unknown-linux-gnueabi-gcc”, so set
# CC=armv7a-unknown-linux-gnueabi-
#
# Line 61: Let Linux_GIT point to the directory “linux-satble”, which get cloned by the
# according command above.
#
# Line 70: Uncomment “# ZRELADDR=0x80008000”
#
./build_kernel.sh
# In the kernel config simply save the default settings and exit. The kernel build
# proceed then.
# If you are on a multi core system crosscompiling the kernel and get build errors
# edit “linux-dev/version.sh”:
# Comment out line 6-9, where the CORES count is increased. At least on my system
# this was the root of spurious compilation errors.
#
# Good luck!
#
# Have a lot of fun!
# mcc
#