Build Environment Ubuntu 9.04

From Gumstix User Wiki
Revision as of 08:32, 9 July 2009 by 66.27.197.197 (Talk) (Setup Build Environment)

Jump to: navigation, search

This is based on the set-up for Ubuntu 8.10 with file modifications as described on this thread. gumstix-oe version is 318.

Setup Build Environment

1) Get Ubuntu linux 9.04, and install it on your computer; you can install a vmware version of Ubuntu too, but it will be slow during the building process.

Reconfigure sh to point to bash, not dash:

 sudo dpkg-reconfigure dash

Answer no when asked whether you want to install dash as /bin/sh.

2) Install (build-essential, help2man, diffstat, texi2html, texinfo, libncurses5-dev, cvs, gawk, python-dev, python-pysqlite2, python-psyco, ckermit, lrzsz, subversion) by using apt-get. i.e:

sudo apt-get update
sudo apt-get install build-essential help2man diffstat texi2html texinfo libncurses5-dev cvs gawk 
sudo apt-get install python-dev python-pysqlite2 python-psyco ckermit lrzsz subversion

3) Download the source from svn, caching the source code

mkdir ~/gumstix 
cd ~/gumstix 
svn co https://gumstix.svn.sourceforge.net/svnroot/gumstix/trunk gumstix-oe
cat gumstix-oe/extras/profile >> ~/.bashrc
sudo groupadd oe
sudo usermod -a -G oe YOUR_CURRENT_USERNAME
sudo mkdir /usr/share/sources
sudo chgrp oe /usr/share/sources
sudo chmod 0775 /usr/share/sources
sudo chmod ug+s /usr/share/sources

4) Downgrade to gcc-4.1 and g++-4.1 and change the links:

sudo aptitude install gcc-4.1 g++-4.1
sudo ln -sf /usr/bin/gcc-4.1 /usr/bin/gcc
sudo ln -sf /usr/bin/g++-4.1 /usr/bin/g++

Check the links are correct using:

ls -l /usr/bin/gcc
ls -l /usr/bin/g++

5) Log out and log in again.

6) Build the basic image, it will fail with an error in dbus:

bitbake gumstix-basic-image

Edit gumstix/gumstix-oe/tmp/work/i686-linux/dbus-native-1.0.1-r0/dbus-1.0.1/dbus/dbus-sysdeps-unix.c

Add this struct,

struct ucred { 
   unsigned int pid; 
   unsigned int uid; 
   unsigned int gid; 
};

after the macros.

7) Build the basic image, it will fail with an error in sumversion:

bitbake gumstix-basic-image

Edit gumstix/gumstix-oe/tmp/work/gumstix-custom-verdex-angstrom-linux-gnueabi/gumstix-kernel-2.6.21-r1/linux-2.6.21/scripts/mod/sumversion.c

Add this line,

 #include <limits.h> 

after all of the other includes.

8) Build the basic image again. If it fails with an error in gconf-dbus, do the following:

a. download file http://download.gnome.org/sources/GConf-dbus/2.16/GConf-dbus-2.16.0.tar.gz

b. move and rename this file to:

/usr/share/sources/trunk_developer.imendio.com_.svn.gconf-dbus_606_.tar.gz

9) Build the basic image again, this time it should work:

bitbake gumstix-basic-image

10) If everything builds ok, it could be a good idea to modify the dbus-sysdeps-unix.c and sumversion.c files in their respective packages in /usr/share/sources as otherwise everytime you do a rebuild they will be wiped. Note that dbus-sysdeps-unix.c is found in package dbus-1.0.1.tar.gz, and sumversion.c is found in package linux-2.6.21.tar.bz2.