Ubuntu rootfs

  
 * Step 4

= Ubuntu file-system step 1: minimal file system generation = The current easiest way to get a Ubuntu file-system, is to generate it using the 'rootstock' tool.

The raw process (which is described in more details here after) is in 2 steps: > Generate a basic image using the rootstock Ubuntu tool > Boot on this basic file-system and install additional packages

The 1st step is discussed in this chapter.

Rootstock is a tool running on a Ubuntu host, relying on qemu, that permits to generate Ubuntu FS.

(Pre-requisites to generate Lucid images: Ubuntu workstation connected to internet with Karmic (09.10) or more recent Ubuntu release installed.)

sudo apt-get install rootstock
 * get the rootstock tool to generate the image:
 * If you are running a Ubuntu Lucid host, just run:
 * Else, download the latest .tar.gz version from here: https://launchpad.net/project-rootstock


 * read the rootstock page: https://wiki.ubuntu.com/ARM/RootfsFromScratch and at least install the required packages required to run rootstock

sudo rootstock -d lucid -f ubuntu -l ubuntu -p ubuntu --serial ttyO2 --locale en_US.UTF-8 -s ubuntu-minimal,openssh-server,nano Note that openssh-server and nano packages are just added for convenience.
 * to generate a minimal image, use the following command line (example to generate a lucid FS):

=> will generate a tgz images containing a basic FS.

= SD card preparation =


 * Format the SD card: see instructions provided here: http://omappedia.org/wiki/SD_Configuration
 * Copy MLO, U-boot.bin and uImage on 1st partition of SD card (FAT)
 * Copy root file system on 2nd partition of SD card (ext3)

Examples commands to achieve this, assuming the SD card is seen as /dev/sdc on your Ubuntu workstation (and the script to prepare the SD card is called 'mkcard.sh'): sudo mkcard.sh /dev/sdc sudo mkdir /mnt/mmc1 sudo mount /dev/sdc1 /mnt/mmc1 sudo mkdir /mnt/mmc2 sudo mount /dev/sdc2 /mnt/mmc2 sudo cp MLO /mnt/mmc1/ sudo cp u-boot.bin /mnt/mmc1/ sudo cp uImage /mnt/mmc1/ cd /mnt/mmc2 sudo tar xzf  sudo cp  /home/ubuntu cd - sudo umount /mnt/mmc1 sudo umount /mnt/mmc2

= Boot the board = At this stage, the SD card can be plugged into the OMAP4 board. Also connect the USB for serial console and terminal: this USB connector provides access to 4 serial ports. The 3rd one is used for the console/terminal.

Now switch-on the board. You shall get to the u-boot prompt and get a chance to interrupt the countdown.

The default bootargs embedded into u-boot may not enable you to boot directly from SD cardand for a ubuntu file-system. You shall set some u-boot environment variables to fix this. Type the following at the u-boot prompt: setenv bootargs console=ttyO2,115200n8 noinitrd mem=512M root=/dev/mmcblk0p2 rootdelay=1 ip=dhcp mmcinit 0; fatload mmc 0 0x80500000 uImage; bootm 80500000

Notes:
 * If you do not have an ethernet cable plugged to your board, replace “ip=dhcp” by “ip=none”.
 * The "root=" parameter may not be correct. If the boot fails, try with this one instead:  "root=/dev/mmcblk1p2"
 * In case you need to use the TI video accelerator, use "mem=463" instead of 512.

Once booted, you can log in console using user: ubuntu / password: ubuntu.

= Ubuntu file-system step 2: Install packages + customization = At this stage, a minimal Ubuntu filesystem is already up and running. It can be used as any Ubuntu running device (same commands set and setup).

This last step shows how to install the UI, and some useful customizations.

Add multiverse to the repository list
Update packages repository list: add 'multiverse' at the end of the line in /etc/apt/sources.list, and then sudo apt-get update

proxy setting
If you connect behind a firewall, you may want to setup going through a proxy: http_proxy=" " no_proxy="localhost" Defaults       env_reset +Defaults       env_keep="http_proxy no_proxy ftp_proxy https_proxy"
 * happen the following lines to /etc/environment (sudo nano /etc/environment):
 * edit the /etc/sudoers file, and apply the following change (sudo visudo):

Ubuntu Netbook Edition file system creation
The UNE file-system cannot be installed directly from rootstock, this is why we need to install it in this 2nd step. Basically, it consists in upgrading the minimal file-system by installing the UNE package.

Moreover, it is not possible today to boot a UNE file-system over NFS (boot over NFS is possible with non-graphical file-systems).

sudo apt-get install ubuntu-netbook
 * Intall the Ubuntu NEtbook package:

This can be quite long as many package are installed.

[daemon] AutomaticLogin=ubuntu AutomaticLoginEnable=true (If you created your file-system with a different user-name, replace 'ubuntu' by this user name)
 * Setup auto-login on GDM. Add the following to /etc/gdm/custom.conf

load-module module-console-kit
 * Avoid Pulse errors (reported into $HOME/.xsession-errors). Edit /etc/pulse/default.pa and comment the line containing:

Type the following command on the target: sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type bool --set /apps/gnome-screensaver/lock_enabled false or ensure the file /etc/gconf/gconf.xml.mandatory/%gconf-tree.xml contains at least the following entry:   
 * deactivate the screen-saver lock (UNE):

From the host, insert the SD card hosting the root file-system, and mount the partition hosting the root file-system. Go to the FS root and type: sudo tar c. | gzip -c > .tar.gz
 * Backup a file-system in a tarball: