Hi,

These are some very rough instructions for getting Maverick running on
an IGEPv2 board. Maybe they should go on the wiki somewhere, but I
wasn't sure where.

Running Maverick over NFS on an IGEPv2 board
============================================

I have the Ubuntu 9.04 "demo" image on a microSD card, and wanted to try 
running Maverick. To reproduce this recipe, you'll need the following:

  * microSD card reader

  * An installed Maverick rootfs (mine was created with qemu-debootstrap) on a 
system running an NFS server.

  * An IGEPv2 serial cable might be handy too.

Part 1, new kernel with existing Jaunty installation
----------------------------------------------------

The kernel which comes with the demo image, 2.6.28.10 (with IGEPv2 patches), 
has a few problems which prevent its use with Maverick. You need to use a newer 
version.

Grab a precompiled kernel (I used uImage-2.6.33.5-0-igep0020.bin) from:

  http://labs.igep.es/index.php/The_Linux_kernel

Now we need to make a ".ini" file which will boot this kernel. To use the 
existing (Jaunty) distribution on the SD card, use a config file like this:

--- cut ---
mmc init 0
echo "===== Setup boot settings                     ====="
setenv bootargs-base 'mem=512M console=ttyS2,115200n8 console=tty0 
omapfb.mode=dvi:1024x768mr...@60'
setenv mmc-bootargs 'setenv bootargs ${bootargs-base} root=/dev/mmcblk0p2 rw 
rootwait '
echo "===== Load uImage from mmc                    ====="
run mmc-bootargs
fatls mmc 0:1
fatload mmc 0 80200000 uImage-2.6.33.5-0-igep0020.bin
bootm 80200000
--- cut ---

Call this file "setup-ini.source". Now install the package "uboot-mkimage" on 
your host system and run:

mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot setup script' -d \
  setup-ini.source setup.ini

Copy setup.ini to the boot partition of the microSD card (backing up the 
original).

Now: you may find this is not sufficient to make the IGEPv2 boot. The problem 
is apparently bugs in the FAT support in the supplied version of uboot. This 
can be seen over the serial line in the output of "fatls": your kernel image 
should appear in the list.

If it does not, you might be able to work around it by doing the following:

  * Copy all files off the boot partition.
  
  * Reformat the boot partition (with the microSD card connected via a card 
reader to a Linux host) with:
  
        mkdosfs /dev/sdX1
    
    (note, adding "-F 32" did *not* work).

  * Copy all files back to the boot partition.

  * Don't forget to unmount!

Now, reinsert the card and Jaunty should boot with the new kernel (check with 
"uname -a").

Part 2, new kernel with Maverick over NFS root
----------------------------------------------

To boot with an NFS root, you will need a new setup.ini. Use the following 
source file:

== cut ==
mmc init 0
echo "===== Setup boot settings                     ====="
setenv bootargs-base 'mem=512M console=ttyS2,115200n8 console=tty0 
omapfb.mode=dvi:1024x768mr...@60'
setenv mmc-bootargs 'setenv bootargs ${bootargs-base} ip=dhcp root=/dev/nfs 
nfsroot=192.168.1.64:/mnt/bitbucket/jules/linaro/m-armel rw rootwait'
echo "===== Load uImage from mmc                    ====="
run mmc-bootargs
fatls mmc 0:1
fatload mmc 0 80200000 uImage-2.6.33.5-0-igep0020.bin
bootm 80200000
== cut ==

Substitute your NFS server for the "nfsroot" IP address, and the path on that 
server for the subsequent path. Use the instructions above to turn this into 
setup.ini, and copy to the microSD card (noting that the issue about FAT bugs 
still applies).

On the server, use a line like the following in /etc/exports (making local 
changes as necessary):

/mnt/bitbucket/jules/linaro/m-armel 
*.config(rw,no_root_squash,no_subtree_check,sync)

Note that "portmap" should be installed rather than "rpcbind", if your 
distribution offers a choice between the two (at least my board wouldn't boot, 
at least with the default configuration of the latter). Use "nfs-kernel-server" 
rather than "nfs-user-server", again if your distro offers the choice.

It's probably possible to use tftp/bootp to load a kernel instead: I
haven't experimented with that so far.

_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to