ISEE is a Spanish company selling OMAP3 boards, quite similar to BeagleBoard and a Gumstix Overo COM.

Latest version of the board is IGEPv2 and comes in two flavors: with and without wifi.

Their IGEPv2 product page has specs, photos, and links to support files.

Adding Wifi firmware

The optional wifi chip is supported in Linaro kernels, but the libertas module needs firmware files from the libertas-firmware package (in multiverse) to work.

Recipes

There are two recipes here:

  • Running Maverick using an NFS rootfs
    • Cutting edge rootfs with easy replacement
  • Running Lucid using SD card rootfs
    • Standalone board, stable development environment, suitable for installing maverick chroots on an NFS mount.


Running Maverick over NFS on an IGEPv2 board

This is from a post of Julian Brown to the linaro-dev list on running maverick on the IGEPv2 board over NFS.

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:

mmc init 0
echo "===== Setup boot settings                     ====="
setenv bootargs-base 'mem=512M console=ttyS2,115200n8 console=tty0 omapfb.mode=dvi:1024x768MR-16@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

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:

mmc init 0
echo "===== Setup boot settings                     ====="
setenv bootargs-base 'mem=512M console=ttyS2,115200n8 console=tty0 omapfb.mode=dvi:1024x768MR-16@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

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.


Running Lucid using an SD card rootfs

This recipe is derived from here: http://labs.igep.es/index.php/How_to_get_the_Ubuntu_distribution

On an x86/amd64 Lucid host machine

sudo apt-get install rootstock uboot-mkimage qemu

The next step gives you the kernel, initrd, and rootfs all in one. Ideally I would have it install lxde now, to match the "demo" OS that came with the board, but I found that it hung. Create minimal install for now, and install lxde later, once the board is running.

sudo bash rootstock --fqdn ubuntu --login jdoe --password letmein \
   --imagesize 2G \
   --seed wget,nano,linux-firmware,wireless-tools,usbutils,openssh-server,openssh-client \
   --dist lucid \
   --serial ttyS2 --components "main universe multiverse" \
   --kernel-image http://www.rcn-ee.net/deb/lucid/v2.6.33.5-l3/linux-image-2.6.33.5-l3_1.0lucid_armel.deb

mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux" -d vmlinuz-2.6.33.5-l3 uImage

mkimage -A arm -O linux -T ramdisk -C none -a 0 -e 0 -n initramfs -d initrd.img-2.6.33.5-l3 uInitrd

cat > boot.source << EOF
fatload mmc 0:1 0x80000000 uImage
fatload mmc 0:1 0x82000000 uInitrd
setenv bootargs vram=12M omapfb.mode=dvi:1280x720MR-16@60 root=/dev/mmcblk0p2 console=ttyS2,115200n8 fixrtc
bootm 0x80000000 0x82000000
EOF

mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Boot Script" -d boot.source boot.ini

Format the SD card with two paritions, mmcblk0p1 small fat-16 (label "boot"), and mmcblk0p2 large ext3 (label "rootfs").

cp uImage uInitrd boot.ini /media/boot

sudo tar xzpf armel-rootfs-<date>.tgz -C /media/rootfs/

ln -s ../init.d/ssh /media/rootfs/etc/rc2.d/S01ssh

Set up /media/rootfs/etc/network/interfaces - you'll need an "auto eth0" line and something to go with it.

Boot the target, log in (username/password:jdoe/letmein).

sudo apt-get install lxde gdm

ams: Actually, I only installed the lxde desktop so I could run it remotely using Xnest. If you want a graphical login on the video output, only then do you need gdm also. Not installing gdm means that Xorg doesn't start at boot time and eat memory and cycles.

  • Network Configuration

    The nm-applet did not configure the board for me (me is mounir.bsaibes@linaro.org). So, initially I was not able to be up and running on the network. Here is the work around I did, given I am running a home netwrok behind a router to an ISP.

    • ifconfig eth0 netmask 255.255.255.0 x.x.x.149 ( x.x.x is my home network did not include it here for security)
    • route add default gw x.x.x.1

Boards/Igep (last modified 2011-07-12 19:05:59)