|
|
(19 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| + | <H1>Bitbake on Ubuntu </H1> |
| | | |
− | == Bitbake on Ubuntu == | + | See my work posted on [http://www.gumstix.net/wiki/index.php?title=Bitbake_on_Ubuntu Bitbake on Ubuntu]. |
| | | |
| | | |
− | Installing and Running
| + | <H1>Question / Comments</H1> |
− | Hello World
| + | |
− | By
| + | |
− | Sarah Pramanik
| + | |
− | | + | |
− | Getting Started
| + | |
− | | + | |
− | Download Ubuntu from:
| + | |
− | [http://www.ubuntu.com/getubuntu/download]
| + | |
− | 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)
| + | |
− | This requires that Boost is installed
| + | |
− | Pyscho JIT Compiler
| + | |
− | Python compiler (should come with OS)
| + | |
− | Download These from
| + | |
− | [http://www.monotone.ca/]
| + | |
− | [http://psyco.sourceforge.net/]
| + | |
− | [http://www.boost.org/users/download/]
| + | |
− | | + | |
− | | + | |
− | 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
| + | |
− | | + | |
− | Configuring
| + | |
− | 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 [http://www.filewatcher.com/m/automake-1.9.6.tar.bz2.765505.0.0.html]
| + | |
− | 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:
| + | |
− | [http://developer.berlios.de/projects/bitbake/]
| + | |
− | OR in /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
| + | |
− | [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:
| + | |
− | $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 run: $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: [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 | + | |
| 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 - sarah.pramanik@gmail.com''' |
For other questions, comments, or if you find anything incorrect, please contact me at:
Sarah Pramanik - sarah.pramanik@gmail.com