Difference between revisions of "User:Spramanik"

From Gumstix User Wiki
Jump to: navigation, search
(remove category link)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
<H1>Bitbake on Ubuntu </H1>
 
<H1>Bitbake on Ubuntu </H1>
  
<H2>Getting Started</H2>
+
See my work posted on [http://www.gumstix.net/wiki/index.php?title=Bitbake_on_Ubuntu Bitbake on Ubuntu].
<OL>
+
<LI>Download Ubuntu from: [http://www.ubuntu.com/getubuntu/download]
+
<LI>Burn ISO Image to a disk
+
<LI>Put Disk into machine of your choice (These examples are run on an Acer Aspire Model: KAW60)
+
<LI>Install Ubuntu from Disk
+
</OL>
+
  
Once Ubuntu is up and running Type:
 
<UL>
 
<LI>$ sudo passwd
 
<LI>$ yourpassword
 
</UL>
 
  
Configure internet access using:
+
<H1>Question / Comments</H1>
<UL>
+
<LI>$ ifconfig eth0 xxx.xxx.xxx.xxx
+
OR 
+
<LI>$ net-setup
+
</UL>
+
 
+
Note: On the Acer, Ubuntu automatically connected
+
Note: Every command run with sudo will require yourpassword in order to run
+
Note: Most likely /bin/sh is linked to /bin/dash. If so, then change /bin/sh to link to /bin/bash. If you don't this could cause file corruption and the build image wont work! Run "sudo dpkg-reconfigure dash" and select "no" on the screen when given the option to install dash as /bin/sh.
+
 
+
 
+
<H2>Dependencies</H2>
+
There are a couple of dependencies which must be installed first:
+
<UL>
+
<LI>Monotone (or bitkeeper, but I used monotone)
+
<UL="circle">   
+
<LI>This requires that Boost is installed
+
</UL>
+
<LI>Pyscho JIT Compiler
+
<LI>Python compiler (should come with OS)
+
 
+
Download These from
+
[http://www.monotone.ca/]
+
[http://psyco.sourceforge.net/]
+
[http://www.boost.org/users/download/]
+
</UL>
+
 
+
Create a directory under your home directory called slug
+
<UL>
+
<LI>$cd /home/yourname
+
<LI>$mkdir slug
+
</UL>
+
 
+
Place all of the downloaded files into this directory and extract them.
+
Either by right clicking and choosing extract OR
+
<UL>
+
<LI>$ gunzip –d name followed by $ tar –xfv name
+
</UL>
+
 
+
<H2>Monotone</H2>
+
Monotone will not install without other dependencies.  Run the following:
+
 
+
<UL>
+
<LI>$ sudo apt-get install autoconf
+
<LI>$ sudo apt-get install automake
+
<LI>$ sudo apt-get install gettext
+
<LI>$ sudo apt-get install libboost-dev
+
<LI>$ sudo apt-get install libz-dev
+
<LI>$ sudo apt-get install g++
+
</UL>
+
 
+
Run the commands:
+
<UL>
+
<LI>$ sudo apt-get install boost_1_38_0
+
<LI>$ sudo apt-get install python
+
<LI>$ sudo apt-get install make
+
<LI>$ sudo apt-get install subversion
+
<LI>$ sudo apt-get install psycho 
+
  OR 
+
<LI>$ sudo ./setup.py install 
+
<LI>$sudo apt-get install mtn-0.42-linux-x86
+
</UL>
+
 
+
<H3>To Configure Monotone:</H3>
+
Create a configure script in /home/yourname/slug if one is not created.
+
Include the following lines in the script:
+
 
+
$aclocal-1.9&&autoreconf –install
+
$AUTOMAKE=automake-1.9 ACLOCAL=aclocal-1.9 autoreconf install
+
 
+
Download automake1.9  (if not installed) from [http://www.filewatcher.com/m/automake-1.9.6.tar.bz2.765505.0.0.html]
+
Extract and run
+
<UL>
+
<LI>$sudo apt-get install automake1.9
+
</UL>
+
 
+
Then run
+
<UL>
+
<LI>$sudo ./configure
+
</UL>
+
 
+
To fetch the monotone sources run:
+
<UL>
+
<LI>mtn --db=mt.mtn db init
+
<LI>mtn --db=mt.mtn pull monotone.ca “net.venge.monotone*”
+
<LI>mtn --db=mt.mtn --branch=net.venge.mnotone checkout monotone-sources
+
</UL>
+
 
+
<H2>Getting Bitbake</H2>
+
 
+
You can either download bitbake from:
+
[http://developer.berlios.de/projects/bitbake/]
+
OR go into /home/yourname/slug and run:
+
<UL>
+
<LI>$sudo mkdir bitbake
+
<LI>$cd bitbake
+
<LI>$sudo svn co svn://svn.berlios.de/bitbake/branches/bitbake-1.4 bitbake 
+
</UL>
+
 
+
Additional help can be found at:
+
<UL>
+
[http://bitbake.berlios.de/manual/]
+
If you downloaded bitbake, then save and extract the files in /home/yourname/slug
+
cd into the bitbake directory
+
You can either run:
+
 
+
<LI>$sudo apt-get install bitbake
+
OR
+
<LI>$ sudo ./setup.py install --prefix=/usr/local
+
</UL>
+
 
+
Run the following:
+
<UL>
+
<LI>$sudo mkdir openembedded
+
<LI>$cd openembedded
+
<LI>$sudo mkdir packages
+
<LI>$cd packages
+
<LI>$sudo mkdir file
+
<LI>$cd file
+
</UL>
+
 
+
<H2>Create the following files</H2>
+
 
+
<H3>Set-env</H3>
+
 
+
OEROOT="/home/yourname/slug" OESYS=$OEROOT/bitbake-1.8.12 PKGDIR=$OEROOT/openembedded OEBUILD=$OEROOT/build BBPATH=$OEBUILD:$PKGDIR:$OESYS PATH=$OESYS/bin:$PATH cd $OEBUILD LD_LIBRARY_PATH= export PATH LD_LIBRARY_PATH BBPATH export LANG=C unset LC_CTYPE unset CC unset CXX alias bb=bitbake echo "Environment set up for OpenEmbedded development."
+
 
+
<H3>Local.conf</H3>
+
 
+
OEROOT = "/home/yourname/slug"
+
DL_DIR = "${OEROOT}/sources"
+
BBFILES = ${OEROOT}/bitbake-1.8.12/openembedded/packages/*/*.bb
+
BBPATH = ${OEROOT}/bitbake-1.8.12
+
OEMASK = ""
+
PREFERRED_PROVIDERS = " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+
PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
+
PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
+
MACHINE = "nslu2"
+
DISTRO = "unslung"
+
OEINCLUDELOGS = "yes"
+
 
+
<H3>Hello-1.0.bb</H3>
+
 
+
DESCRIPTION = "hello world sample program"PR = "r0"DEPENDS = ""SRC_URI = "file://hello.c"S = "${WORKDIR}"do_compile () {    ${CC} ${CFLAGS} ${LDFLAGS} -o hello hello.c}do_install () {    install -d ${D}${bindir}/    install -m 0755 ${S}/hello ${D}${bindir}/}FILES_${PN} = "${bindir}/hello"
+
 
+
<H3>Hello.c</H3>
+
 
+
&#35;include "stdio.h“
+
main(){ printf("Hello World\n");}
+
 
+
<H2>Where to put the files:</H2>
+
<UL>
+
<LI>/home/yourname/slug/set-env
+
<LI>/home/yourname/slug/bitbake-1.8.12/openembedded/packages/hello-1.0.bb
+
<LI>/home/yourname/slug/bitbake-1.8.12/openembedded/packages/file/hello.c
+
<LI>/home/yourname/slug/bitbake-1.8.12/conf/local.conf
+
</UL>
+
 
+
In the bitbake.conf file – located in the conf folder, ensure that OEDIR is set to: /home/yourname/slug
+
Also ensure that you change the path in the files you just created to match your directory structure
+
 
+
 
+
In /home/yourname/slug run:
+
<UL>
+
<LI>$sudo ./set-env
+
</UL>
+
 
+
This sets up the openembedded environment which is needed to finish running everything from bitbake
+
 
+
<H2>Building Hello World</H2>
+
Once all files are in the correct place and the dependencies are installed, run the following:
+
<UL>
+
<LI>$cd /home/yourname/slug/bitbake-1.8.12/openembedded/packages
+
<LI>$bitbake world 
+
OR
+
<LI>$bitbake –b hello
+
</UL>
+
 
+
World will build everything in the folder
+
-b hello will only build the hello package
+
<UL>
+
<LI>$sudo apt-get install hello
+
<LI>$hello
+
</UL>
+
This will print out “hello world!”
+
 
+
 
+
<H2>Other Factors</H2>
+
These instructions will change depending on the OS being used.
+
Tutorial was based on information from: [http://www.gumstix.net/Software/view/Build-system-overview/Hello-world-tutorial/111.html]For More information please see the above mentioned site
+
 
+
<H2>Question / Comments</H2>
+
 
For other questions, comments, or if you find anything incorrect, please contact me at:
 
For other questions, comments, or if you find anything incorrect, please contact me at:
 
'''Sarah Pramanik - sarah.pramanik@gmail.com'''
 
'''Sarah Pramanik - sarah.pramanik@gmail.com'''

Latest revision as of 13:01, 24 March 2009

Bitbake on Ubuntu

See my work posted on Bitbake on Ubuntu.


Question / Comments

For other questions, comments, or if you find anything incorrect, please contact me at: Sarah Pramanik - sarah.pramanik@gmail.com