Revision as of 10:12, 20 August 2009 by Meizirkki (talk | contribs) (Xorg omapfb Drivers: Removed the useless symlink script and added the correct option to the xorg.conf)
Jump to: navigation, search

This page is about running a (ARM EABI) Ubuntu distribution at BeagleBoard. BeagleBoard will boot the (ARM EABI) Ubuntu distribution from SD card.

Note: for the best experience, make sure you have an LCD attached to the HDMI port, 2GB/4GB/8GB SD card, and a known good usb2.0 hub with mouse and keyboard.


2.6.29-oer* USB still flaky on the RevC ehci port.. --RobertCNelson 18:17, 6 May 2009 (UTC)

Kernel Problems:

Please email me (gmail), or post to the beagleboard google group, with a pastebin dump of your complete serial bootup. (I'm unable to use irc at work..)
Any builds listed in this wiki have been tested with RevB & RevC boards.. (however with not every single u-boot combination.)

Recommended Beagle Software

xloader xxxx Upgrade

U-Boot 2009.03+r22 Upgrade:

Warning note: RevB board + RevC Validation U-boot + 2.6.29-oer30 = NO USB (USB worked fine with 2.6.28)

Ubuntu Rootfs Install

Use Oliver's <ogra> script located here:

Development PC: Build Root File System

Note: 'rootstock', is ubuntu's new name for 'build-arm-rootfs', I've also made two changes to make it easier for the beagleboard. (Specify Serial port, and download *.deb image)

Changes from upstream used here:

Note: Use latest debootstrap, if the one posted here is no longer available.


sudo apt-get install qemu
sudo dpkg -i debootstrap_1.0.13~jaunty1_all.deb
sudo chmod u+x rootstock

Note: For USB WIFI adapters, add package "linux-firmware, wireless-tools" to the --seed WiFi Hints:

Changes in rootstock:

Serial Port: --serial ttyS2 (default is ttyS0 with no specifier)
Distribution Setting: --dist (jaunty or karmic)
External Image: --kernel-image or other..
(Note: dpkg hackers, anyway to do a silent install, with no user prompts?)

General Jaunty Image

sudo ./rootstock --fqdn <hostname> --login <rootuser> --password <rootuserpasswd> --imagesize <qemu image size> --seed <packages> --dist <jaunty/karmic> 
 --serial <ttySx>  --kernel-image <http>

Basic Jaunty (9.04) Beagleboard xfce4 image:

sudo ./rootstock --fqdn beagleboard --login ubuntu --password temppwd --imagesize 2G --seed xfce4,gdm --dist jaunty 
 --serial ttyS2 --kernel-image

Upon Completion, you should have:


Karmic Testing:

Ubuntu is currently in Alpha: 6ish Stage, so no promises anything will work.

Major Changes:

omapfb driver:

Note: Still built with armv5, ubuntu is waiting for the new cortex based builders..

Basic Karmic (9.10) Beagleboard xfce4 image:

sudo ./rootstock --fqdn beagleboard --login ubuntu --password temppwd --imagesize 2G --seed xfce4,gdm --dist karmic 
 --serial ttyS2 --kernel-image

Development PC: Format SD Card

You will need a 1GB SD card or greater.

Standard Console System : ~286MB
+ Desktop environment (lxde,gdm) : ~479MB

Starting with an empty SD card and using gparted, create:

50 MiB Primary Partition, fat32
Rest as ext2/ext3

Gparted Example:

Development PC: Setup SD uboot/uImage Partition


sudo apt-get install uboot-mkimage

Create U-boot compatible uImage:

mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux" -d ./vmlinuz-*  ./uImage

Mount your SD card fat32 partition. (/media/disk/) and copy the uImage to the first partition.

cd /media/disk
sudo cp ./<rootstock_temp>/uImage uImage

Development PC: Setup SD ext2/ext3 Partition

Mount your SD ext2/ext3 partition. (/media/disk/)

sudo tar xfp armel-rootfs-[date].tgz -C /media/disk

Development PC or Beagleboard: System Setup on the (ext2/ext3) Partition

Enable Network Access

Modify /etc/network/interfaces

auto eth0
iface eth0 inet dhcp

Manual: From the Command line

sudo ifconfig eth0 up
sudo dhclient eth0

Beagleboard: Setup U-boot for boot

Using a terminal program, stop u-boot and add these commands:

For Linux Kernel 2.6.29 and higher using DSS2

setenv bootcmd 'mmcinit; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000'
setenv bootcmd 'mmc init; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000' (r27)

setenv bootargs 'console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2 rootwait rootfstype=ext3 ro omapfb.mode=dvi:1280x720MR-16@60'

You shall adapt the resolution to you screen as following :

"1024x768MR-16@60""800x600MR-16@60" ...

Here is more explanation on dss video options : [1]

Beagleboard: First boot

Either login thru the serial terminal, or thru lcd console install linux-image*.deb

sudo dpkg -i /var/linux-image-*.deb
Create a symbolic link to the current kernel image? <yes>

Beagleboard: Install Kernel Image

Script File

Note: this will be updated from time to time. (tested off course, may need "sudo apt-get install wget")

sudo /bin/bash

Note: vmlinuz symbolic link (yes <or> no)... Still not sure this matters, i select <yes>...

Manual Method

You can open/edit the to see latest version.

sudo apt-get install uboot-mkimage 
(or any listed here: )
sudo dpkg -i linux-image*

Extract linux-image's vmlinuz-* (we need this to create the uImage, uboot uses to boot)

dpkg -x linux-image* ./temp

Mount fat32 partition

sudo mount /dev/mmcblk0p1 /mnt

Build uboot compatible image and copy to fat32 boot partition

sudo mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux" -d ./temp/boot/vmlinuz-*  /mnt/uImage

unmount fat32 partition

sudo umount /mnt

Clean up

rm -rfd temp

Reboot with your new uImage


Upgrade U-Boot

Using gparted, create a new 50MB Primary fat32 Partition on a blank SD card, or use your existing fat32 partition.

cd /media/disk
sudo wget
sudo mv u-boot-beagleboard-2009.05+r27+gitrd363f9cb0918a1b6b92e2e20d01543d0c4f53274-r27.bin u-boot-f.bin

Tested --RobertCNelson --RobertCNelson 21:41, 10 August 2009 (UTC) RevB5 + 2.6.29-oer40.5 & RevC2 + 2.6.29-oer40.5

Insert SD Card, boot Beagleboard and stop U-Boot from booting

mmcinit (or "mmc init")
fatload mmc 0 0x80200000 u-boot-f.bin
nand unlock
nandecc sw
nand erase 80000 160000
nand write.i 0x80200000 80000 160000

SGX Video Acceleration

Kernel Modules


wget -c
wget -c
sudo mkdir -p /lib/modules/`uname -r`/kernel/drivers/gpu/pvr/
sudo mv *.ko /lib/modules/`uname -r`/kernel/drivers/gpu/pvr/
sudo depmod -a omaplfb


wget -c
wget -c
sudo mkdir -p /lib/modules/`uname -r`/kernel/drivers/gpu/pvr/
sudo mv *.ko /lib/modules/`uname -r`/kernel/drivers/gpu/pvr/
sudo depmod -a omaplfb


Use atleast the


Note: the SDK will not extract directly on any arm platform, extract it first on an x86 machine and tar the resulting folder before transferring to the beagleboard.

System Libraries:

sudo ln -sf /usr/lib/ /usr/lib/
sudo ln -sf /usr/lib/ /usr/lib/

SDK lib's

sudo cp SDK_EXTRACTED_DIR/gfx_rel/*.so /usr/lib/

SDK pvrsrvinit

sudo cp SDK_EXTRACTED_DIR/gfx_rel/pvrsrvinit /usr/local/bin/


wget -c
gcc -o devmem2 devmem2.c
sudo cp devmem2 /usr/local/bin

Startup Script



modprobe omaplfb

pvr_maj=`grep "pvrsrvkm$" /proc/devices | cut -b1,2,3`

if [ -e /dev/pvrsrvkm ] ; then
    rm -f /dev/pvrsrvkm

mknod /dev/pvrsrvkm c $pvr_maj 0
chmod 666 /dev/pvrsrvkm

# This is from the SDK...

# Set SGX to full speed
/usr/local/bin/devmem2 0x48004b40 w 0


work in progress

Xorg omapfb Drivers


Note: Backport from Karmic

Note: These are built with neon optimizations:;a=blob;f=debian/rules;h=c2f0d5391c96c5abb60b1e691ad86bb27e0c17d8;hb=HEAD (line 48/49)


wget -c
sudo dpkg -i xserver-xorg-video-omap3_0.1.1-2_armel.deb


sudo apt-get install xserver-xorg-video-omap3



Section "Monitor"
    Identifier "Configured Monitor"

Section "Screen"
    Identifier "Default Screen"
    Device "Configured Video Device"
    #Limited by SGX?
    DefaultDepth 16

Section "Device"
    Identifier "Configured Video Device"
    Driver "omapfb"
    Option "fb" "/dev/fb0"


Sorry I don't have an S-Video TV, and this is documented in the source, so it would be really great if someone could fill this section in... --RobertCNelson 21:32, 13 July 2009 (UTC)


Please use v2.6.29-oer40.5:


Please use v2.6.29-oer40.5:

Karmic Testing

Ubuntu is currently in Alpha: 1->2 Stage, so no promises anything will work.

Major Changes:

omapfb driver: