Difference between revisions of "BeagleBoardUbuntu"

From eLinux.org
Jump to: navigation, search
m (Nice try, but it error's out at no hard disk found, i guess they didn't pull in debian's /mmcblk0p1 changes. ;))
m (Added gcc build defaults)
Line 1: Line 1:
 
[[Category: Linux]]
 
[[Category: Linux]]
 
[[Category: OMAP]]
 
[[Category: OMAP]]
Ubuntu 9.04 Alpha seems to be working quite well so here's a quick doc. Eventually this will probably be moved to ubuntu's wiki...
+
This page is about running a (ARM EABI) [http://www.ubuntu.com/ Ubuntu] distribution at [[BeagleBoard]]. BeagleBoard will boot the (ARM EABI) Ubuntu distribution from [[BeagleBoard#MMC.2FSD_boot|SD card]].
 +
 
 +
= Ubuntu gcc package build settings =
 +
 
 +
Ubuntu 9.04 - Beta Stage - Slated Release : April 23rd, 2009
 +
 
 +
Default gcc settings:
 +
-march=armv5t -mtune=cortex-a8 -mfpu=vfp -mfloat-abi=softfp
  
This page is about running a (ARM EABI) [http://www.ubuntu.com/ Ubuntu] distribution at [[BeagleBoard]]. BeagleBoard will boot the (ARM EABI) Ubuntu distribution from [[BeagleBoard#MMC.2FSD_boot|SD card]].
+
Ubuntu 9.10 - Not Available:
 +
 
 +
Possible gcc settings:
 +
-march=armv6 -mtune=cortex-a8 -mfpu=vfp -mfloat-abi=softfp
  
Note: Ubuntu 9.04 isn't officially released as of this edit date, although ubuntu development is in the alpha-5 stage, things could still stop working.
+
Ref: https://bugs.launchpad.net/ubuntu/+source/gcc-4.3/+bug/303232
  
 
= Recommended Beagle Software =  
 
= Recommended Beagle Software =  

Revision as of 08:30, 14 April 2009

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

Ubuntu gcc package build settings

Ubuntu 9.04 - Beta Stage - Slated Release : April 23rd, 2009

Default gcc settings:

-march=armv5t -mtune=cortex-a8 -mfpu=vfp -mfloat-abi=softfp

Ubuntu 9.10 - Not Available:

Possible gcc settings:

-march=armv6 -mtune=cortex-a8 -mfpu=vfp -mfloat-abi=softfp

Ref: https://bugs.launchpad.net/ubuntu/+source/gcc-4.3/+bug/303232

Recommended Beagle Software

xloader xxxx Upgrade

U-Boot 2009 (revC validation) Upgrade: http://elinux.org/BeagleBoardUbuntu#Upgrade_U-Boot

Ubuntu Rootfs Install

Use Oliver's <ogra> script located here: https://wiki.ubuntu.com/ARM/RootfsFromScratch

PC: Build Root File System

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

Requirements:

sudo apt-get install qemu
wget http://ports.ubuntu.com/pool/main/d/debootstrap/debootstrap_1.0.12_all.deb
sudo dpkg -i debootstrap_1.0.12_all.deb
wget http://people.ubuntu.com/~ogra/arm/build-arm-rootfs
sudo chmod u+x build-arm-rootfs 

General

sudo ./build-arm-rootfs --fqdn <hostname> --login <rootuser> --password <rootuserpasswd> --imagesize <qemu image size> --seed <packages>

lxde Destktop

sudo ./build-arm-rootfs --fqdn beagleboard --login ubuntu --password temppwd --imagesize 2G --seed lxde,gdm 

Xubuntu Desktop

sudo ./build-arm-rootfs --fqdn beagleboard --login ubuntu --password temppwd --imagesize 2G --seed xubuntu-desktop

Ubuntu Desktop

sudo ./build-arm-rootfs --fqdn beagleboard --login ubuntu --password temppwd --imagesize 3G --seed ubuntu-desktop

PC: Format SD Card

You will need a 1GB SD card or greater.

Standard System : ~xxxMB
+ Desktop environment (GNOME) : ~x.xGB

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

50 MiB Primary Partition, fat32
Rest as ext2/ext3

Gparted Example: http://nishanthmenon.blogspot.com/2008/08/how-to-boot-beagle.html

PC: Setup SD uboot/uImage Partition

Mount your SD card fat32 partition. (/media/disk/)

Note: Depending on how your system mounts the cards, you may have to run as sudo.

cd /media/disk/
wget http://www.rcn-ee.com/deb/kernel/CC-v2.6.28-79d042a-oer17
mv CC-v2.6.28-9a6536c-oer17 uImage

ext3
wget http://www.rcn-ee.com/deb/kernel/boot-scr/ubuntu-ext3.scr
mv ubuntu-ext3.scr boot.scr

ext2
wget http://www.rcn-ee.com/deb/kernel/boot-scr/ubuntu-ext2.scr
mv ubuntu-ext2.scr boot.scr

Need a different resolution or other setting in the *.scr's? See : http://elinux.org/BeagleBoardUbuntu#U-Boot_Script_Files

Note: CC-v2.6.28-9a6536c-oer8 uImage was built with most/all available usb wifi/ethernet adapter built in to get the beagleboard to connect to the internet. For most people this is all you'll need, however it is recommended to install one of the kernel image deb packages. (script is provided.)

PC: Setup SD ext2/ext3 Partition

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

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

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

Login thru Serial Port

Create file /etc/event.d/ttyS2

# ttyS2 - getty
#
# This service maintains a getty on tty6 from the point the system is
# started until it is shut down again.

start on runlevel 2
start on runlevel 3

stop on runlevel 0
stop on runlevel 1
stop on runlevel 4
stop on runlevel 5
stop on runlevel 6

respawn
exec /sbin/getty -L 115200 ttyS2

Note: ubuntu normaly doesn't have a 'root' user, however if you add one, make sure too add ttyS2 to /etc/securetty (by default ttyS0 & ttyS1 are already there)

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")

wget http://www.rcn-ee.com/deb/kernel/ubuntu-update-kernel.sh
sudo /bin/bash ubuntu-update-kernel.sh

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

Manual Method

You can open/edit the ubuntu-update-kernel.sh to see latest version.

sudo apt-get install uboot-mkimage 
wget http://www.rcn-ee.com/deb/kernel/beagle/jaunty/v2.6.28-79d042a-oer17/linux-image-2.6.28-oer17_1.0jaunty_armel.deb
(or any listed here: http://www.rcn-ee.com/deb/kernel/beagle/jaunty/ )
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

Advanced

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 http://beagleboard.googlecode.com/files/u-boot-f_revc_v3.bin

Tested with (U-Boot 2009.01-dirty (Feb 19 2009 - 12:22:31)) Archive: http://rcn-ee.homeip.net:81/dl/omap/uboot/u-boot-f_revc_v3.bin

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

mmcinit
fatload mmc 0 0x80200000 u-boot-f_revc_v3.bin
nand unlock
nand ecc sw
nandecc sw
nand erase 80000 160000
nand write.i 0x80200000 80000 160000
reset

Note: nandecc sw is a new command to replace nand ecc sw so versions of uboot before 2008.10 will throw an error, it's safe to ignore.

U-Boot Script Files

uboot-mkimage package is required

contents of ubuntu-ext3.cmd

setenv bootcmd 'mmcinit; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000'
setenv bootargs 'console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2 rootdelay=2 rootfstype=ext3 ro omap-dss.def_disp=lcd omapfb.video_mode=1280x720MR-24@60'
boot

Create *.scr file

mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Boot Time Label" -d ubuntu-ext3.cmd ubuntu-ext3.scr