Difference between revisions of "User:Spramanik"
Line 1: | Line 1: | ||
− | + | Bitbake on Ubuntu | |
− | + | ||
Installing and Running Hello World | Installing and Running Hello World | ||
Line 9: | Line 8: | ||
Download Ubuntu from: | Download Ubuntu from: | ||
[http://www.ubuntu.com/getubuntu/download] | [http://www.ubuntu.com/getubuntu/download] | ||
+ | |||
Burn ISO Image to a disk | Burn ISO Image to a disk | ||
Put Disk into machine of your choice | Put Disk into machine of your choice | ||
Line 15: | Line 15: | ||
Once Ubuntu is up and running Type: | Once Ubuntu is up and running Type: | ||
− | + | <UL> | |
− | $ sudo passwd | + | <LI>$ sudo passwd |
− | $ yourpassword | + | <LI>$ yourpassword |
+ | </UL> | ||
Configure internet access using: | Configure internet access using: | ||
− | + | <UL> | |
− | $ ifconfig eth0 xxx.xxx.xxx.xxx | + | <LI>$ ifconfig eth0 xxx.xxx.xxx.xxx |
OR | OR | ||
− | $ net-setup | + | <LI>$ net-setup |
+ | </UL> | ||
Note: On the Acer, Ubuntu automatically connected | Note: On the Acer, Ubuntu automatically connected | ||
Line 31: | Line 33: | ||
Dependencies | Dependencies | ||
There are a couple of dependencies which must be installed first: | There are a couple of dependencies which must be installed first: | ||
− | Monotone (or bitkeeper, but I used monotone) | + | <UL> |
− | + | <LI>Monotone (or bitkeeper, but I used monotone) | |
− | Pyscho JIT Compiler | + | <UL="circle"> |
− | Python compiler (should come with OS) | + | <LI>This requires that Boost is installed |
+ | </UL> | ||
+ | <LI>Pyscho JIT Compiler | ||
+ | <LI>Python compiler (should come with OS) | ||
+ | |||
Download These from | Download These from | ||
[http://www.monotone.ca/] | [http://www.monotone.ca/] | ||
[http://psyco.sourceforge.net/] | [http://psyco.sourceforge.net/] | ||
[http://www.boost.org/users/download/] | [http://www.boost.org/users/download/] | ||
− | + | </UL> | |
Create a directory under your home directory called slug | Create a directory under your home directory called slug | ||
− | + | <UL> | |
− | cd /home/yourname | + | <LI>$cd /home/yourname |
− | mkdir slug | + | <LI>$mkdir slug |
+ | </UL> | ||
Place all of the downloaded files into this directory and extract them. | Place all of the downloaded files into this directory and extract them. | ||
Either by right clicking and choosing extract OR | Either by right clicking and choosing extract OR | ||
− | + | <UL> | |
− | $ gunzip –d name followed by $ tar –xfv name | + | <LI>$ gunzip –d name followed by $ tar –xfv name |
− | + | </UL> | |
Monotone | Monotone | ||
Monotone will not install without other dependencies. Run the following: | Monotone will not install without other dependencies. Run the following: | ||
− | $ sudo apt-get install autoconf | + | <UL> |
− | $ sudo apt-get install automake | + | <LI>$ sudo apt-get install autoconf |
− | $ sudo apt-get install gettext | + | <LI>$ sudo apt-get install automake |
− | $ sudo apt-get install libboost-dev | + | <LI>$ sudo apt-get install gettext |
− | $ sudo apt-get install libz-dev | + | <LI>$ sudo apt-get install libboost-dev |
− | $ sudo apt-get install g++ | + | <LI>$ sudo apt-get install libz-dev |
− | + | <LI>$ sudo apt-get install g++ | |
+ | </UL> | ||
Run the commands: | 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> | ||
− | + | '''To Configure Monotone:''' | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | '''To | + | |
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 83: | Line 92: | ||
Download automake1.9 (if not installed) from [http://www.filewatcher.com/m/automake-1.9.6.tar.bz2.765505.0.0.html] | 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 | Extract and run | ||
− | + | <UL> | |
− | $sudo apt-get install automake1.9 | + | <LI>$sudo apt-get install automake1.9 |
+ | </UL> | ||
Then run | Then run | ||
− | + | <UL> | |
− | $sudo ./configure | + | <LI>$sudo ./configure |
+ | </UL> | ||
To fetch the monotone sources run: | To fetch the monotone sources run: | ||
− | + | <UL> | |
− | mtn --db=mt.mtn db init | + | <LI>mtn --db=mt.mtn db init |
− | mtn --db=mt.mtn pull monotone.ca “net.venge.monotone*” | + | <LI>mtn --db=mt.mtn pull monotone.ca “net.venge.monotone*” |
− | mtn --db=mt.mtn --branch=net.venge.mnotone checkout monotone-sources | + | <LI>mtn --db=mt.mtn --branch=net.venge.mnotone checkout monotone-sources |
+ | </UL> | ||
'''Getting Bitbake''' | '''Getting Bitbake''' | ||
Line 100: | Line 112: | ||
You can either download bitbake from: | You can either download bitbake from: | ||
[http://developer.berlios.de/projects/bitbake/] | [http://developer.berlios.de/projects/bitbake/] | ||
− | OR | + | OR go into /home/yourname/slug and run: |
− | + | <UL> | |
− | $sudo mkdir bitbake | + | <LI>$sudo mkdir bitbake |
− | $cd bitbake | + | <LI>$cd bitbake |
− | $sudo svn co svn://svn.berlios.de/bitbake/branches/bitbake-1.4 bitbake | + | <LI>$sudo svn co svn://svn.berlios.de/bitbake/branches/bitbake-1.4 bitbake |
+ | </UL> | ||
Additional help can be found at | Additional help can be found at | ||
+ | <UL> | ||
[http://bitbake.berlios.de/manual/] | [http://bitbake.berlios.de/manual/] | ||
If you downloaded bitbake, then save and extract the files in /home/yourname/slug | If you downloaded bitbake, then save and extract the files in /home/yourname/slug | ||
Line 112: | Line 126: | ||
You can either run: | You can either run: | ||
− | $sudo apt-get install bitbake | + | <LI>$sudo apt-get install bitbake |
OR | OR | ||
− | $ sudo ./setup.py install --prefix=/usr/local | + | <LI>$ sudo ./setup.py install --prefix=/usr/local |
+ | </UL> | ||
Run the following: | Run the following: | ||
− | + | <UL> | |
− | $sudo mkdir openembedded | + | <LI>$sudo mkdir openembedded |
− | $cd openembedded | + | <LI>$cd openembedded |
− | $sudo mkdir packages | + | <LI>$sudo mkdir packages |
− | $cd packages | + | <LI>$cd packages |
− | $sudo mkdir file | + | <LI>$sudo mkdir file |
− | $cd file | + | <LI>$cd file |
+ | </UL> | ||
'''Create the following files''' | '''Create the following files''' | ||
Line 158: | Line 174: | ||
Where to put the files: | Where to put the files: | ||
+ | <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 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | 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 | Also ensure that you change the path in the files you just created to match your directory structure | ||
In /home/yourname/slug run: | In /home/yourname/slug run: | ||
− | + | <UL> | |
− | $sudo ./set-env | + | <LI>$sudo ./set-env |
+ | </UL> | ||
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 | + | '''''Building Hello World''''' |
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> | |
− | $cd /home/yourname/slug/bitbake-1.8.12/openembedded/packages | + | <LI>$cd /home/yourname/slug/bitbake-1.8.12/openembedded/packages |
− | $bitbake world | + | <LI>$bitbake world |
OR | OR | ||
− | $bitbake –b hello | + | <LI>$bitbake –b hello |
+ | </UL> | ||
World will build everything in the folder | World will build everything in the folder | ||
-b hello will only build the hello package | -b hello will only build the hello package | ||
− | + | <UL> | |
− | $sudo apt-get install hello | + | <LI>$sudo apt-get install hello |
− | $hello | + | <LI>$hello |
− | + | </UL> | |
This will print out “hello world!” | This will print out “hello world!” | ||
− | Other Factors | + | '''''Other Factors''''' |
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 | + | '''''Question / Comments''''' |
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@gmail.com''' | '''sarah.pramanik@gmail.com''' |
Revision as of 14:41, 9 February 2009
Bitbake on Ubuntu
Installing and Running Hello World By Sarah Pramanik
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 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!”
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@gmail.com