Difference between revisions of "User:Spramanik"

From Gumstix User Wiki
Jump to: navigation, search
Line 1: Line 1:
 +
<H1>Bitbake on Ubuntu </H1>
  
== Bitbake on Ubuntu ==
+
<H2>Getting Started</H2>
 
+
<OL>
'''Getting Started'''
+
<LI>Download Ubuntu from: [http://www.ubuntu.com/getubuntu/download]
1. Download Ubuntu from: [http://www.ubuntu.com/getubuntu/download]
+
<LI>Burn ISO Image to a disk
2. Burn ISO Image to a disk
+
<LI>Put Disk into machine of your choice (These examples are run on an Acer Aspire Model: KAW60)
3. Put Disk into machine of your choice (These examples are run on an Acer Aspire Model: KAW60)
+
<LI>Install Ubuntu from Disk  
4. Install Ubuntu from Disk  
+
</OL>
  
 
Once Ubuntu is up and running Type:
 
Once Ubuntu is up and running Type:
Line 25: Line 26:
  
  
Dependencies
+
<H2>Dependencies</H2>
 
There are a couple of dependencies which must be installed first:
 
There are a couple of dependencies which must be installed first:
 
<UL>
 
<UL>
Line 53: Line 54:
 
</UL>
 
</UL>
  
Monotone
+
<H2>Monotone</H2>
 
Monotone will not install without other dependencies.  Run the following:
 
Monotone will not install without other dependencies.  Run the following:
  
Line 77: Line 78:
 
</UL>
 
</UL>
  
'''To Configure Monotone:'''
+
<H3>To Configure Monotone:</H3>
 
Create a configure script in /home/yourname/slug if one is not created.
 
Create a configure script in /home/yourname/slug if one is not created.
 
Include the following lines in the script:
 
Include the following lines in the script:
Line 102: Line 103:
 
</UL>
 
</UL>
  
'''Getting Bitbake'''
+
<H2>Getting Bitbake</H2>
  
 
You can either download bitbake from:
 
You can either download bitbake from:
Line 135: Line 136:
 
</UL>
 
</UL>
  
'''Create the following files'''
+
<H2>Create the following files</H2>
  
'''''Set-env'''''
+
<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."
 
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."
  
'''''Local.conf'''''
+
<H3>Local.conf</H3>
  
 
OEROOT = "/home/yourname/slug"
 
OEROOT = "/home/yourname/slug"
Line 155: Line 156:
 
OEINCLUDELOGS = "yes"
 
OEINCLUDELOGS = "yes"
  
'''''Hello-1.0.bb'''''
+
<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"
 
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"
  
'''''Hello.c'''''
+
<H3>Hello.c</H3>
  
 
#include "stdio.h“
 
#include "stdio.h“
Line 186: Line 187:
 
This sets up the openembedded environment which is needed to finish running everything from bitbake
 
This sets up the openembedded environment which is needed to finish running everything from bitbake
  
'''''Building Hello World'''''
+
<H2>Building Hello World<H2>
 
Once all files are in the correct place and the dependencies are installed, run the following:
 
Once all files are in the correct place and the dependencies are installed, run the following:
 
<UL>
 
<UL>
Line 204: Line 205:
  
  
'''''Other Factors'''''
+
<H2>Other Factors</H2>
 
These instructions will change depending on the OS being used.
 
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
 
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
  
'''''Question / Comments'''''
+
<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'''

Revision as of 15:51, 9 February 2009

Bitbake on Ubuntu

Getting Started

  1. Download Ubuntu from: [1]
  2. Burn ISO Image to a disk
  3. Put Disk into machine of your choice (These examples are run on an Acer Aspire Model: KAW60)
  4. Install Ubuntu from Disk

Once Ubuntu is up and running Type:

  • $ sudo passwd
  • $ yourpassword

Configure internet access using:

  • $ ifconfig eth0 xxx.xxx.xxx.xxx OR
  • $ net-setup

Note: On the Acer, Ubuntu automatically connected Note: Every command run with sudo will require yourpassword in order to run


Dependencies

There are a couple of dependencies which must be installed first:

  • Monotone (or bitkeeper, but I used monotone) <UL="circle">
  • This requires that Boost is installed
  • Pyscho JIT Compiler
  • Python compiler (should come with OS) Download These from [2] [3] [4] </UL> Create a directory under your home directory called slug
    • $cd /home/yourname
    • $mkdir slug

    Place all of the downloaded files into this directory and extract them. Either by right clicking and choosing extract OR

    • $ gunzip –d name followed by $ tar –xfv name

    Monotone

    Monotone will not install without other dependencies. Run the following:

    • $ sudo apt-get install autoconf
    • $ sudo apt-get install automake
    • $ sudo apt-get install gettext
    • $ sudo apt-get install libboost-dev
    • $ sudo apt-get install libz-dev
    • $ sudo apt-get install g++

    Run the commands:

    • $ sudo apt-get install boost_1_38_0
    • $ sudo apt-get install python
    • $ sudo apt-get install make
    • $ sudo apt-get install subversion
    • $ sudo apt-get install psycho OR
    • $ sudo ./setup.py install
    • $sudo apt-get install mtn-0.42-linux-x86

    To Configure Monotone:

    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 [5] Extract and run

    • $sudo apt-get install automake1.9

    Then run

    • $sudo ./configure

    To fetch the monotone sources run:

    • mtn --db=mt.mtn db init
    • mtn --db=mt.mtn pull monotone.ca “net.venge.monotone*”
    • mtn --db=mt.mtn --branch=net.venge.mnotone checkout monotone-sources

    Getting Bitbake

    You can either download bitbake from: [6]

    OR go into /home/yourname/slug and run:
    

    Additional help can be found at

      [7] If you downloaded bitbake, then save and extract the files in /home/yourname/slug cd into the bitbake directory You can either run:
    • $sudo apt-get install bitbake OR
    • $ sudo ./setup.py install --prefix=/usr/local

    Run the following:

    • $sudo mkdir openembedded
    • $cd openembedded
    • $sudo mkdir packages
    • $cd packages
    • $sudo mkdir file
    • $cd file

    Create the following files

    Set-env

    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."

    Local.conf

    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"

    Hello-1.0.bb

    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"

    Hello.c

    1. include "stdio.h“

    main() {

     printf("Hello World\n");
    

    }

    Where to put the files:

    • /home/yourname/slug/set-env
    • /home/yourname/slug/bitbake-1.8.12/openembedded/packages/hello-1.0.bb
    • /home/yourname/slug/bitbake-1.8.12/openembedded/packages/file/hello.c
    • /home/yourname/slug/bitbake-1.8.12/conf/local.conf

    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:

    • $sudo ./set-env

    This sets up the openembedded environment which is needed to finish running everything from bitbake

    Building Hello World<H2> Once all files are in the correct place and the dependencies are installed, run the following:
    • $cd /home/yourname/slug/bitbake-1.8.12/openembedded/packages
    • $bitbake world OR
    • $bitbake –b hello

    World will build everything in the folder -b hello will only build the hello package

    • $sudo apt-get install hello
    • $hello

    This will print out “hello world!”


    <H2>Other Factors

    These instructions will change depending on the OS being used. Tutorial was based on information from: [8]For More information please see the above mentioned site

    Question / Comments

    For other questions, comments, or if you find anything incorrect, please contact me at:

    Sarah Pramanik - sarah.pramanik@gmail.com