Difference between revisions of "Build Environment Ubuntu 9.10"

From Gumstix User Wiki
Jump to: navigation, search
(Added new page on chrooting Ubuntu 7.10 on Ubuntu 9.10)
 
(Added to category How_to_-_Ubuntu)
Line 173: Line 173:
  
 
         bitbake gumstix-basic-image
 
         bitbake gumstix-basic-image
 +
 +
[[Category:How_to_-_Ubuntu]]

Revision as of 11:44, 13 November 2009

Build Environment Ubuntu 9.10 (Karmic Koala)

Despite the assertion on Build_Environment_Ubuntu_9.04, I was unable to build the basic gumstix image using the svn trunk. It seems the trunk uses some deprecated features of gcc. I would suggest trying to change symbolic links for gcc, g++, etc to point to version 4.1 instead of 4.4. If that works, then all is good. As an alternative, what you can do is install an older version of Ubuntu that is known to work in a chroot. Any program that is run in the chroot cannot "see" the real root file system, so all of the build tools it find will be the ones installed in that chroot directory. This HOWTO describes how to setup the build system with such a method.

Install debootstrap chroot

The first thing we need to do is install the chroot program that we'll be using. You can install these programs with the following two commands

       sudo apt-get install dchroot
       sudo apt-get install debootstrap

Create a Chroot Directory for Older Distro

Now we need to create a new directory that will act as the root for the older distribution's file system. Do this with the following command

       sudo mkdir /var/chroot

Edit Configuration

We now edit the configuration file for the chroot program. The file is found in /etc/schroot/schroot.conf, so open it with the following commands

       cd /etc/schroot
       sudo gedit schroot.conf

Since the build tools from the Gutsy distribution are known to work, I opted to install that distribution in my chroot. So add the following lines to the end of schroot.conf, replacing "YourUserName" with your actual user name

       [gutsy]
       description=Ubuntu 7.10 (Gutsy Gibbon)
       location=/var/chroot
       priority=3
       users=YourUserName
       groups=sbuild
       root-groups=root

Install Gutsy

Now we need to install the older distribution into this chroot. Do this with the following command

       sudo debootstrap --variant=buildd --arch i386 gutsy /var/chroot/ http://old-releases.ubuntu.com/ubuntu

If you would like to use a different distribution, just change "gutsy" to whichever distribution you want. Note you may have to use archives.ubuntu.com if the distribution isn't that old.

Login to Gutsy

No login to the chroot-ed distribution with

       sudo chroot /var/chroot

Install Dependencies

Below is a list of all the dependencies I had to install in order to get bitbake to make the gumstix-basic-image. wget and groff weren't reported by bitbake as required packages but I encountered build errors if they weren't present.

       apt-get install help2man 
       apt-get install diffstat 
       apt-get install texi2html 
       apt-get install cvs 
       apt-get install subversion 
       apt-get install bzip2 
       apt-get install gawk
       apt-get install texinfo         # makeinfo command
       apt-get install wget
       apt-get install groff           # nroff command (item 1059)

Download Build Files

Now we can download the build environment from gumstix. First create a directory to download them into. Note that we're still in the chroot-ed environment so when we say "/home/YourUserName" it will actually be installed in "/var/chroot/home/YourUserName". As always, replace "YourUserName" with your actual user name.

       mkdir /home/YourUserName
       cd /home/YourUserName
       mkdir gumstix
       cd gumstix

Then we can download the environment from subversion

       svn co https://gumstix.svn.sourceforge.net/svnroot/gumstix/trunk gumstix-oe

Make a "new" user

We can't run bitbake as root so we need to create a user in this chroot. I suggest using the same user name that you use in your "real" system.

       useradd  YourUserName
       passwd  YourUserName

Edit extras/profile

If you installed into a directory other than ~/gumstix/gumstix-oe then you'll need to edit a line in extras/profile to point to the right directory

       gedit gumstix-oe

Setup the Environment

To setup the environment so that the bitbake install script can find everything correctly we need to execute the profile script

       . /home/YourUserName/gumstix/gumstix-oe/extras/profile

or

       source /home/YourUserName/gumstix/gumstix-oe/extras/profile

Install the Included Bitbake

Now we can install bitbake with the setup script.

       cd /home/YourUserName/gumstix/gumstix-oe/bitbake
       ./setup.py install

Create Source Code Cache

We need to create the "global" source code cache for the chroot system. Start by creating a group called "oe"

       sudo groupadd oe

Then add yourself to it

       sudo usermod -a -G oe YourUserName

Then create the directory for caching source code

       sudo mkdir /usr/share/sources
       sudo chgrp oe /usr/share/sources
       sudo chmod 0775 /usr/share/sources
       sudo chmod ug+s /usr/share/sources

Login

We can't run bitbake as root so let's login

       su - YourUserName

Setup Build Environment

We need to setup the build environment again by executing the profile script.

       cd gumstix/gumstix-oe
       . extras/profile

Edit auto.conf

If building for something older than verdex, we need to edit the auto.conf file.

       gedit conf/auto.conf

Build Basic Image

And now we're ready to build the basic image.

       bitbake gumstix-basic-image