Add Packages To Ubuntu Preinstalled Images
Ubuntu delivers pre-installed images for OMAP3 and OMAP4, in particular on http://cdimage.ubuntu.com/ubuntu-netbook/ports/releases/.
These images are much faster to install (10 to 20 minutes) than standard "live" images (up to several hours). That's why these images for shipped by default. See this page for details.
Here are instructions to add your own packages to the pre-installed images. They assume that sufficient space is available. At the moment, the pre-installed root partition has 200-300 MB of free space.
You need to run the below manipulations on an
armv7 board (like OMAP3 and OMAP4 ones) running a GNU/Linux distribution. That's because
we are going to
chroot to an
Mounting the pre-installed rootfs
fdisk -lu maverick-preinstalled-netbook-armel+omap4.img and read the starting block for the rootfs partition:
You must set cylinders. You can do this from the extra functions menu.
Disk maverick-preinstalled-netbook-armel+omap4.img: 0 MB, 0 bytes 255 heads, 63 sectors/track, 0 cylinders, total 0 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System maverick-preinstalled-netbook-armel+omap4.img1 * 63 144584 72261 c W95 FAT32 (LBA) maverick-preinstalled-netbook-armel+omap4.img2 144585 4401809 2128612+ 83 Linux
Now, mount this partition:
mount -o loop,offset=$((144585*512)) ubuntu.img /mnt/rootfs
Modifying the pre-installed partition
chroot, replicate the basic filesystems that Ubuntu mounts:
for f in /proc /sys /dev /dev/pts /dev/shm /var/run /var/lock do sudo mount -o bind $f /mnt/rootfs/$f done
Without the above, some commands may not work properly, being unable to find data in
/sys in particular.
If you are behind a proxy, copy your files defining your proxy settings (typically
/etc/environment) under the same path
Also copy your name resolution settings to the rootfs:
sudo cp /etc/resolv.conf /mnt/rootfs/etc/resolv.conf
Modify the rootfs
sudo chroot /mnt/rootfs/
If you are using a special package source, you can add it to
Now, update your package list and install extra packages. For example:
apt-get update apt-get install openssh-server
Once you are done, exit the chroot:
sudo rm /mnt/rootfs/etc/resolv.conf
You may also undo your proxy setting changes (typically
Then, unmount the filesystems replicated in the chroot:
for f in /var/lock /var/run /dev/shm /dev/pts /dev /sys /proc do sudo umount /mnt/rootfs/$f done
You are done!