Sunday, March 21, 2010

Time to a Build...

Having been away for a while I decided I needed to just "start over" with the development system.  Since it has been over a year since I have used my development system I figured there 'may' have been some changes and upgrades done to the original bitbake/openembedded development environment and with the actual applications for the Gumstix line.

After configuring a new virtial machine (VMWare) and loading Ubuntu 8.04 Desktop I followed the instructions on the Gumstix WiKi (web link below) to install the bitbake/openembedded development system.  I use VMWare's free server package to allow me to run several different virtual machines on my development home computer.  If I did not use my machine in this fashion it would be a waste of resources (and I can do other things) while the Gumstix development system is performing long cross-compile operations - they can run as long as 18 - 24 hours at times.  I use the Linux Ubuntu 8.04 workstation (also free) as the core development system environment as that is the OS I am comfortable with - others use newer versions of Ubuntu along with other different versions of Linux (Debian, Centos, etc.) and have good success - I just like the Ubuntu 8.04 release and since the compile operations for the Gumstix is performed in a cross-compiler environment running Ubuntu 8.04 has minimal effect on the compiled output.  A Note:  Make sure you have all the tools or equivelent tools installed on your version/flavor of Linux to allow the Bitbake/Openembedded developement system to perform it's job otherwise you will get some errors during a build - sometimes very difficult to debug.

Speaking of installed tools - A couple of items I ran into during the installation and testing of the cross-compiling bitbake/openembedded environment - just some things to watch out for...  The list of additional items needed on the WiKi page left out the 'gettext' application - this is needed for some parts of the tools compilation process near the beginning of the environment build in performing the omap-console-build process.  It seems to me this was forgotten over a year ago - I guess they have some issues keeping track of the little problems but given the complexity of the environment it is understandable.

You can find the environment installation instructions here:  Setting Up a Gumstix Overo Build Environment   To install the 'missing' application just add 'gettext' to the list used for the apt-get installation for Ubuntu otherwise whatever your Linux version requires.  One nice feature of the Bitbake/Openembedded development system is the system will give you fairly accurate error messages so you should be able to determine if there are any tools missing that are required by the development system.

Once I had the development system setup and configured by the instructions listed above I built the omap-console-image package as instructed.  The installation (download of source code, dependency resolution and compiling of the required tools) of the cross-compiler toolsets was performed by the Bitbake/Openembedded system and the omap-console-image package was created as expected.  I have done this several times so know when it works and when it does not.  Only took about 16 hours or so to perform this 'initial' build due to all the tools needing to be compiled the first time through.  If you think you don't need to perform all of the steps in the setting up of the development environment you really do.  The last couple of steps (compiling the omap-console-image) actually installs the bulk of the specific tools you need on your version of Linux as they are tuned to your version.

Now the development system has performed the initial installation of all the software tools needed to build a console version of the Gumstix operating system (actually a version of Debian Linux) I performed the build of the 'omap-desktop-image'.  This image is the GUI version of the console image so uses the console image built components and additionally builds (cross-compiles) the Graphica Interface and a list of applications to install in the image.  Performing this build gets the GUI components compiled for the Gumstix so the next time they are needed they have already gone through the cross-compile process which saves considerable time when you make changes to the installed applications in an image.

Thank you!

No comments:

Post a Comment