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