This is a page about TI's BeagleBoard.

Basic Requirements

X-Loader

X-Loader Download:

git clone git://gitorious.org/x-loader/x-loader.git

X-Loader Configure and Build:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- omap3530beagle_config
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- ift

Bootloader

Das U-Boot – the Universal Boot Loader http://www.denx.de/wiki/U-Boot

U-Boot Download:

Download U-Boot Tarball:

wget ftp://ftp.denx.de/pub/u-boot/u-boot-2011.06.tar.bz2
tar xjf u-boot-2011.06.tar.bz2
cd u-boot-2011.06/

Or via git:

git clone git://git.denx.de/u-boot.git
cd u-boot/
git checkout v2011.06 -b tmp

U-Boot Configure and Build:

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

Linux Kernel

Linux Build Script:

git://github.com/RobertCNelson/stable-kernel.git
cd stable-kernel/

Run Build Script:

./build_kernel.sh

The kernel uImage and modules will be under the deploy directory.

Root File System

wget -c http://rcn-ee.net/deb/rootfs/squeeze/squeeze-minimal-armel-2011-07-18.tar.xz

verify the image with:

md5sum squeeze-minimal-armel-2011-07-18.tar.xz
6354943d33059f36ee902204b825f50d  squeeze-minimal-armel-2011-07-18.tar.xz

Extract Image:

tar xJf squeeze-minimal-armel-2011-07-18.tar.xz

Setup microSD card

Erase microSD card: (assuming: /dev/mmcblk0, "sudo fdisk -l" is useful for determining the device id)

sudo parted --script /dev/mmcblk0 mklabel msdos

Setup Boot Partition:

fdisk 2.17.x

sudo fdisk ${FDISK_DOS} /dev/mmcblk0 << END
n
p
1
1
+64M
t
e
p
w
END

fdisk 2.18.x ->2.19.x

sudo fdisk -c=dos -u=cylinders /dev/mmcblk0 << END
n
p
1
1
+64M
t
e
p
w
END

Set Boot Flag
sudo parted --script /dev/mmcblk0 set 1 boot on

Format as fat
sudo mkfs.vfat -F 16 /dev/mmcblk0p1 -n boot

Create Partition Layout:
rootfs: ext3/4, rest of microSD card.

Mount the boot/rootfs partitions

Copy Boot Files:

Copy MLO to the boot partition

sudo cp ./MLO /media/boot/MLO

Copy u-boot.bin to the boot partition

sudo cp ./u-boot.bin /media/boot/u-boot.bin

Copy U-Boot BootScript:

boot.cmd

setenv bootcmd 'fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000'
setenv bootargs console=ttyO2,115200n8 console=tty0 root=/dev/mmcblk0p2 rootwait ro rootfstype=ext4 omapfb.mode=dvi:1280x720MR-16@60
boot

Run mkimage on boot.cmd to be useable by U-Boot:

mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Linux" -d ./boot.cmd ./boot.scr

Copy boot.scr to the boot partition

sudo cp ./boot.scr /media/boot/

Copy Kernel uImage:

sudo cp ./*.uImage /media/boot/uImage

Copy Root File System:

sudo tar xfvp armel-rootfs-201107180925.tar -C /media/rootfs/

Copy Kernel modules:

sudo tar xfv *-modules.tar.gz -C /media/rootfs/

Add Partition info to /etc/fstab:

sudo nano /media/rootfs/etc/fstab
add: /dev/mmcblk0p2 / ext4 errors=remount-ro 0 1

Add Serial Login:

sudo nano /media/rootfs/etc/inittab

edit last line:

from: S:2345:respawn:/sbin/getty 115200
to: S:2345:respawn:/sbin/getty 115200 ttyO2

Remove microSD card:

sync
sudo umount /dev/mmcblk0p2
sudo umount /dev/mmcblk0p1

First Boot:

Serial Boot log: