This is a page about TI's BeagleBoard.
Available:
BeagleBoard Cx at Digi-Key
BeagleBoard xM at Digi-Key
Basic Requirements
- ARM Cross Compiler
- Ubuntu (10.10 (Maverick Meerkat) mininum): sudo apt-get install gcc-arm-linux-gnueabi
- Linaro: https://launchpad.net/linaro-toolchain-binaries
- Bootloader
- Das U-Boot – the Universal Boot Loader http://www.denx.de/wiki/U-Boot
- Linux Kernel
- Linus's Mainline tree: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=summary
- Linux Omap tree: http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap.git
- ARM based rootfs
- Debian Squeeze: http://www.debian.org/
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.12.tar.bz2 tar xjf u-boot-2011.12.tar.bz2 cd u-boot-2011.12/
Or via git:
git clone git://git.denx.de/u-boot.git cd u-boot/ git checkout v2011.12 -b tmp
U-Boot Patches
wget https://raw.github.com/RobertCNelson/Bootloader-Builder/master/patches/0001-Revert-armv7-disable-L2-cache-in-cleanup_before_linu.patch wget https://raw.github.com/RobertCNelson/Bootloader-Builder/master/patches/0001-beagleboard-add-support-for-scanning-loop-through-ex.patch wget https://raw.github.com/RobertCNelson/Bootloader-Builder/master/patches/0002-omap-beagle-re-add-c4-support.patch wget https://raw.github.com/RobertCNelson/Bootloader-Builder/master/patches/0001-omap_hsmmc-Wait-for-CMDI-to-be-clear.patch patch -p1 < 0001-Revert-armv7-disable-L2-cache-in-cleanup_before_linu.patch patch -p1 < 0001-beagleboard-add-support-for-scanning-loop-through-ex.patch patch -p1 < 0002-omap-beagle-re-add-c4-support.patch patch -p1 < 0001-omap_hsmmc-Wait-for-CMDI-to-be-clear.patch
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 clone git://github.com/RobertCNelson/stable-kernel.git cd stable-kernel/
Run Build Script:
./build_kernel.sh
The kernel zImage and modules will be under the deploy directory.
Root File System
Default User: debian
Password: temppwd
Root User: root
Root Password: root
wget -c http://rcn-ee.net/deb/rootfs/squeeze/debian-6.0.4-minimal-armel-2012-02-28.tar.xz
verify the image with:
md5sum debian-6.0.4-minimal-armel-2012-02-28.tar.xz 67e0d02b65ee416584f8e10692a1bc59 debian-6.0.4-minimal-armel-2012-02-28.tar.xz
Extract Image:
tar xJf debian-6.0.4-minimal-armel-2012-02-28.tar.xz
Setup microSD card
For these instruction, we are assuming: DISK=/dev/mmcblk0, "sudo fdisk -l" is useful for determining the device id..
export DISK=/dev/mmcblk0
Erase microSD card:
sudo parted --script ${DISK} mklabel msdos
Setup Boot Partition:
sudo fdisk ${DISK} << __EOF__ n p 1 +64M t e p w __EOF__
Set Boot Flag
sudo parted --script ${DISK} set 1 boot on
Format as fat
DISK=/dev/mmcblk0 sudo mkfs.vfat -F 16 ${DISK}p1 -n boot (or) DISK=/dev/sdb sudo mkfs.vfat -F 16 ${DISK}1 -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 -v ./u-boot-2011.12/MLO /media/boot/MLO
Copy u-boot.img to the boot partition
sudo cp -v ./u-boot-2011.12/u-boot.img /media/boot/u-boot.img
Copy U-Boot BootScript:
create a new file: uEnv.txt
bootfile=uImage address_uimage=0x80300000 console=ttyO2,115200n8 defaultdisplay=dvi dvimode=1280x720MR-16@60 mmcroot=/dev/mmcblk0p2 ro mmcrootfstype=ext4 rootwait fixrtc optargs=console=tty0 mmc_load_uimage=fatload mmc 0:1 ${address_uimage} ${bootfile} #dvi->defaultdisplay mmcargs=setenv bootargs console=${console} ${optargs} mpurate=${mpurate} buddy=${buddy} buddy2=${buddy2} vram=${vram} omapfb.mode=${defaultdisplay}:${dvimode} omapdss.def_disp=${defaultdisplay} root=${mmcroot} rootfstype=${mmcrootfstype} loaduimage=run mmc_load_uimage; echo Booting from mmc ...; run mmcargs; bootm ${address_uimage}
Run mkimage on the Kernel zImage to create a U-Boot uImage file:
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "3.2.7-x5" -d ./stable-kernel/deploy/3.2.7-x5.zImage ./uImage
Copy uEnv.txt to the boot partition
sudo cp -v ./uEnv.txt /media/boot/
Copy Kernel uImage:
sudo cp -v ./uImage /media/boot/uImage
Copy Root File System:
sudo tar xfvp ./debian-*-minimal-armel-*/armel-rootfs-*.tar -C /media/rootfs/
Copy Kernel modules:
sudo tar xfv ./stable-kernel/deploy/3.2.7-x5-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 /media/boot sudo umount /media/rootfs
First Boot:
Serial Boot log:
beagle_debian_3.0.x.txt