Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 43 Next »

This is a page about TI's BeagleBoard and BeagleBoard xM.

Availability:

BeagleBoard Cx at Digi-Key
BeagleBoard xM at Digi-Key
CircuitCo 7inch LCD at Digi-Key

Basic Requirements

Bootloader

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

  • Note: Ubuntu Oneiric (11.10): "arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1" is currently broken to build this.

U-Boot Download:

Download U-Boot Tarball:

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

Or via git:
Download U-Boot via git:

git clone git://git.denx.de/u-boot.git
cd u-boot/
git checkout v2012.07 -b tmp

U-Boot Patches:

wget https://raw.github.com/RobertCNelson/Bootloader-Builder/master/patches/v2012.07/0001-enable-bootz-support-for-ti-omap-targets.patch
wget https://raw.github.com/RobertCNelson/Bootloader-Builder/master/patches/v2012.07/0001-beagle-fix-dvi-variable-set-higher-resolution.patch
wget https://raw.github.com/RobertCNelson/Bootloader-Builder/master/patches/v2012.07/0001-beagle-ulcd-passthru-support.patch
wget https://raw.github.com/RobertCNelson/Bootloader-Builder/master/patches/v2012.07/0002-beagle-add-kmsmode-for-ulcd-and-default-dtb_file.patch

patch -p1 < 0001-enable-bootz-support-for-ti-omap-targets.patch
patch -p1 < 0001-beagle-fix-dvi-variable-set-higher-resolution.patch
patch -p1 < 0001-beagle-ulcd-passthru-support.patch
patch -p1 < 0002-beagle-add-kmsmode-for-ulcd-and-default-dtb_file.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/

For Mainline v3.5.x

git checkout origin/v3.5.x -b v3.5.x

Run Build Script:

./build_kernel.sh

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

Debian Squeeze 6.0.5 (armel based) Root File System

Default User: debian
Password: temppwd

Root User: root
Root Password: root

wget -c http://rcn-ee.net/deb/minfs/squeeze/debian-6.0.5-minimal-armel-2012-08-19.tar.xz

verify the image with:

md5sum debian-6.0.5-minimal-armel-2012-08-19.tar.xz
d845432ec93e4e94706d4cf3041db45d  debian-6.0.5-minimal-armel-2012-08-19.tar.xz

Extract Image:

tar xJf debian-6.0.5-minimal-armel-2012-08-19.tar.xz

Debian Wheezy (snapshot) (armhf based) Root File System

Default User: debian
Password: temppwd

Root User: root
Root Password: root

wget -c http://rcn-ee.net/deb/minfs/wheezy/debian-wheezy-minimal-armhf-2012-08-19.tar.xz

verify the image with:

md5sum debian-wheezy-minimal-armhf-2012-08-19.tar.xz
71577a05d2b3dd1565de2a25b1cc4db0  debian-wheezy-minimal-armhf-2012-08-19.tar.xz

Extract Image:

tar xJf debian-wheezy-minimal-armhf-2012-08-19.tar.xz

Ubuntu 12.04 (Precise) (armhf based) Root File System

Default User: ubuntu
Password: temppwd

wget -c http://rcn-ee.net/deb/minfs/precise/ubuntu-12.04-minimal-armhf-2012-08-19.tar.xz

verify the image with:

md5sum ubuntu-12.04-minimal-armhf-2012-08-19.tar.xz
3a0d015072513aebb7c827ddfe87b273  ubuntu-12.04-minimal-armhf-2012-08-19.tar.xz

Extract Image:

tar xJf ubuntu-12.04-minimal-armhf-2012-08-19.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/MLO /media/boot/

Copy u-boot.img to the boot partition

sudo cp -v ./u-boot/u-boot.img /media/boot/

Create U-Boot "uEnv.txt" boot script: (nano uEnv.txt)

console=ttyO2,115200n8

#These are now set by default: uncomment/change if you need something else
#defaultdisplay=dvi
#dvimode=1280x720MR-16@60

mmcroot=/dev/mmcblk0p2 ro
mmcrootfstype=ext4 rootwait fixrtc

optargs=console=tty0

mmc_load_image=fatload mmc 0:1 0x80300000 zImage
mmc_load_initrd=fatload mmc 0:1 0x81600000 initrd.img; setenv initrd_size ${filesize}

deviceargs=setenv device_args buddy=${buddy} buddy2=${buddy2}
mmcargs=setenv bootargs console=${console} ${optargs} vram=${vram} omapfb.mode=${defaultdisplay}:${dvimode} omapdss.def_disp=${defaultdisplay} root=${mmcroot} rootfstype=${mmcrootfstype} ${device_args}

#Just: zImage
xyz_mmcboot=run mmc_load_image; echo Booting from mmc ...
loaduimage=run xyz_mmcboot; run deviceargs; run mmcargs; bootz 0x80300000

#zImage and initrd
#xyz_mmcboot=run mmc_load_image; run mmc_load_initrd; echo Booting from mmc ...
#loaduimage=run xyz_mmcboot; run deviceargs; run mmcargs; bootz 0x80300000 0x81600000:${initrd_size}

Copy uEnv.txt to the boot partition:

sudo cp -v ./uEnv.txt /media/boot/

Note: This repo tree is under active development, so the Kernel version can change on a daily basis...
Copy Kernel zImage:

sudo cp -v ./stable-kernel/deploy/3.2.24-x14.zImage /media/boot/zImage

Copy Root File System:

sudo tar xfvp ./*-*-minimal-arm*-*/armel-rootfs-*.tar -C /media/rootfs/

Copy Kernel modules:

sudo tar xfv ./stable-kernel/deploy/3.2.24-x14-modules.tar.gz -C /media/rootfs/

Tweak "/etc/fstab", the defaults should work for most boards:

sudo nano /media/rootfs/etc/fstab

Edit:

/dev/mmcblk0p2   /           auto   errors=remount-ro   0   1
/dev/mmcblk0p1   /boot/uboot auto   defaults            0   0
Enable Serial Login:

Debian:

sudo nano /media/rootfs/etc/inittab

edit last line:

from: T2:23:respawn:/sbin/getty -L  115200 vt102
to: T2:23:respawn:/sbin/getty -L ttyO2 115200 vt102

Ubuntu:

sudo nano /media/rootfs/etc/init/serial.conf

Add:

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty 115200 ttyO2

Remove microSD card:

sync
sudo umount /media/boot
sudo umount /media/rootfs

FAQ

No Ethernet:

  1. Check Power (aka use 5Volt DC Plug): The USB bus allows up to 100mA on initial connection and up to a max of 500mA can be requested by the end USB device. On the xM this is not enough to power the whole device and on the xM C there is an actual hardware switch to disable the smsc95xx usb hub/ethernet when powered by OTG (to prevent out of power crashes seen on the xM A/B with when users powered by OTG).
  2. Check Ethernet Cable/Plug: Is the Ethernet Cable actually plugged into the Beagle and Router?
  3. Check Modules: The smsc95xx kernel driver is usually built as an external module, double check that your kernel modules for this device are installed.
    debian@devel:~$ find /lib/modules/`uname -r`/kernel/ | grep smsc95xx
    /lib/modules/3.2.26-x14/kernel/drivers/net/usb/smsc95xx.ko
    
    debian@devel:~$ lsmod | grep smsc95xx
    smsc95xx               11302  0
    
  4. Reload smsc95xx kernel module (Checked all the above and the LAN LED's are still off)
    sudo rmmod smsc95xx
    sudo modprobe smsc95xx
    sudo /etc/init.d/networking restart
    
  • No labels