How to get the Ubuntu distribution
From IGEP - ISEE Wiki
Contents
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:
- The Ubuntu website ( http://www.ubuntu.com )
- Ubuntu on ARM ( http://www.ubuntu.com/products/whatisubuntu/arm )
- The rootstock project ( https://launchpad.net/project-rootstock )
- ARM rootfs from scratch ( https://wiki.ubuntu.com/ARM/RootfsFromScratch )
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 ---