How to get the Ubuntu distribution

From IGEP - ISEE Wiki

Revision as of 12:20, 26 May 2010 by Eballetbo (talk | contribs)

Jump to: navigation, search

How to get the Ubuntu distribution

The Ubuntu project is excited to be working with the ARM ecosystem to port Ubuntu for ARM-based devices. This work fits with our goals of making Ubuntu available as an open platform to as many people as possible. Some points to note:

  • Ubuntu will target the new ARM EABI.
  • For now, builds will expect a minimum of an ARMv5 instruction set.
  • Ubuntu will target ARM with VFP (Vector Floating Point).
  • We will continue to work with vendors to provide hardware drivers for various ARM-based devices.
  • Ubuntu will likely have a different set of kernels than Debian (although the specific set is still under discussion).

Overview of How-To

This How-To is meant to be a starting point for people to learn install an Ubuntu image for IGEP v2 devices as quickly and easily as possible.

This How-To works with the Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine but most of the contents are valid also for other GNU/Linux distributions. We do not issue any guarantee that this will work on other distributions.

This How-To will start out by a Make a bootable MMC card on Linux.

And then, we will cover the Getting a copy of a ubuntu root file system. These should give you a good basis overview of creating an ubuntu-based ARM root filesystem.

Requirements

  • Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine
  • A SD card at least 2GB ( recommended 4GB )

Feedback and Contributing

At any point, if you see a mistake you can contribute to this How-To.

References

Much of this How-To is extracted from different sources. If you would like to read some of the original articles or resources, please visit them and thank the authors:

Make a bootable MMC card on Linux

Thanks to Graeme Gregory and Steve Sakoman, you can now use a script to automate the tedious process of creating a bootable SD/microSD card.

Having followed this excellent tutorial it's time to mount your SD card boot partition (/media/boot). With your preferred editor create a boot-ini.source file like this.

# Set bootargs for ubuntu MMC boot
setenv bootargs 'mem=512M console=ttyS2,115200n8 console=tty0 omapfb.mode=dvi:1024x768MR-16@60 root=/dev/mmcblk0p2 rw rootwait '
# Read kernel from OneNAND
onenand read 80200000 280000 400000 
# and boot ...
bootm 80200000

And use the mkimage tool to convert this file into a script image which can be executed using U-Boot's source command.

$ source /usr/local/poky/eabi-glibc/arm/environment-setup
$ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot setup script' -d boot-ini.source boot.ini

The result will be a boot.ini file which you will copy to SD card boot partition

$ cp boot.ini /media/boot

Getting a copy of a ubuntu root file system

In order to get a copy of a ARM ubuntu root file system, you will need to install qemu and a recent version of debootstrap and the qemu package

$ 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

Next, you will download a helper program to build the rootfs

$ wget http://launchpad.net/project-rootstock/trunk/0.1/+download/rootstock-0.1.3.tar.gz
$ tar xzf rootstock-0.1.3.tar.gz
$ cd rootstock-0.1.3

The following example will create a tarball of ubuntu-desktop based image for your target device:

$ sudo ./rootstock --fqdn ubuntu --login jdoe --password letmein --imagesize 3G --seed ubuntu-desktop --dist jaunty

Typical images (example settings):

To build a xubuntu-desktop image use the following options:

   --imagesize 2G --seed xubuntu-desktop

For an ubuntu-desktop image (a similar size is needed if you want a kubuntu image):

   --imagesize 3G --seed ubuntu-desktop

A typical remote development comandline environment if you run an armel board headless (note that you should edit /etc/network/interfaces and set up your network device on first login for this):

   --imagesize 3G --seed build-essential,openssh-server

A very light desktop (lxde):

   --seed lxde,gdm

After few hours, a file named armel-rootfs-[date].tgz will be in your working directory

Next, mount your SD card ext3 partition (/media/rootfs) and untar the rootfs

$ sudo tar xzf armel-rootfs-[date].tgz -C /media/rootfs

Finally, umount the SD card, insert the card in your board and power up.

--- That's all folks ---