|
|
(6 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>$ cd boost_1_38_0
| + | |
− | <LI>$ ./configure
| + | |
− | <LI>$ make install
| + | |
− | <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>
| + | |
− | | + | |
− | #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''' |
− |
| |
− |
| |
− | [[Category:How_to_-_Ubuntu]]
| |
For other questions, comments, or if you find anything incorrect, please contact me at:
Sarah Pramanik - sarah.pramanik@gmail.com