Difference between revisions of "User:Spramanik"
Line 1: | Line 1: | ||
+ | <H1>Bitbake on Ubuntu </H1> | ||
− | + | <H2>Getting Started</H2> | |
− | + | <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: | 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> | ||
− | + | <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> | ||
− | + | <H2>Getting Bitbake</H2> | |
You can either download bitbake from: | You can either download bitbake from: | ||
Line 135: | Line 136: | ||
</UL> | </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." | 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" | OEROOT = "/home/yourname/slug" | ||
Line 155: | Line 156: | ||
OEINCLUDELOGS = "yes" | 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" | 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> | |
#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 | ||
− | + | <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: | ||
− | + | <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 | ||
− | + | <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 14:51, 9 February 2009
Contents
- 1 Bitbake on Ubuntu
- 1.1 Getting Started
- 1.2 Dependencies
- 1.3 Monotone
- 1.4 Getting Bitbake
- 1.5 Create the following files
- 1.6 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
- 1.7 Question / Comments
Bitbake on Ubuntu
Getting Started
- Download Ubuntu from: [1]
- Burn ISO Image to a disk
- Put Disk into machine of your choice (These examples are run on an Acer Aspire Model: KAW60)
- 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
- $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:
- $sudo mkdir bitbake
- $cd bitbake
- $sudo svn co svn://svn.berlios.de/bitbake/branches/bitbake-1.4 bitbake
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
- 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