http://www.openembedded.org/api.php?action=feedcontributions&user=Xjqian&feedformat=atomOpenembedded.org - User contributions [en]2024-03-29T08:36:35ZUser contributionsMediaWiki 1.29.0http://www.openembedded.org/index.php?title=Required_software&diff=1142Required software2009-03-26T02:55:35Z<p>Xjqian: /* OpenEmbedded's Software Requirements */ Psyco JIT Compiler 32bit</p>
<hr />
<div>= OpenEmbedded's Software Requirements =<br />
<br />
This page is the reference of what software is needed. But [[OEandYourDistro]] is likely much faster in getting you that software actually installed.<br />
<br />
To use the OE build system the following software is required on your system:<br />
* [http://www.python.org/ Python] (Version 2.4.0 or later)<br />
** Note that you may also need certain development files for Python e.g. for bitbake's setup.py to work. Depending on the distribution you use you may want to look for a package called "python-dev", "python-devel", or similar.<br />
* [http://www.gnu.org/software/patch/patch.html GNU Patch] (Version 2.5.9 or later, see ftp://alpha.gnu.org/gnu/diffutils/ . It is a "testing release" and is not mirrored on the GNU mirrors.)<br />
* [http://www.gnu.org/software/m4/m4.html GNU m4]<br />
* [http://www.gnu.org/software/make/ GNU make] (Version 3.80 or later for hh.org kernels)<br />
* [http://psyco.sourceforge.net/ Psyco JIT Compiler] is recommended to increase performance (32bit only)<br />
* [http://ccache.samba.org/ ccache]<br />
* [http://www.perl.org/ perl] (needs newer than 5.0, how much newer? probably at least 5.6.2)<br />
* [http://invisible-island.net/diffstat/diffstat.html diffstat]<br />
* [http://developer.berlios.de/projects/bitbake bitbake]<br />
<br />
== Tools to download source files ==<br />
* wget <br />
* curl <br />
* ftp<br />
* [http://www.nongnu.org/cvs/ cvs]<br />
* [http://subversion.tigris.org/ subversion]<br />
* [http://git.or.cz/index.html git]<br />
<br />
== Tools to verify integrity of the downloaded sources ==<br />
* md5sum<br />
* sha256sum<br />
<br />
== Tools to unpack sources ==<br />
* tar<br />
* bzip2<br />
* gzip<br />
* unzip<br />
<br />
== Tools to build the various *-doc packages==<br />
* [http://www.jclark.com/jade/ Jade] or [http://www.netfolder.com/DSSSL/ OpenJade]<br />
** I don't know which of these is preferred<br />
* [http://sourceforge.net/projects/docbook/ Docbook] DTDs and DSSSL stylesheets<br />
* [http://sgmltools-lite.sourceforge.net/ sgmltools], called "sgmltools-lite" too<br />
* [http://sources.redhat.com/docbook-tools/ docbook-utils]<br />
** docbook-utils download is hard to find; look in ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES<br />
* [ftp://ftp.gnu.org/pub/gnu/texinfo/ Texinfo]<br />
* [http://www.nongnu.org/texi2html/ texi2html] (Perl script that converts Texinfo to HTML)<br />
<br />
== Other packages ==<br />
* [http://www.gnu.org/software/sed/sed.html GNU sed] 4.x<br />
* [http://www.gnu.org/software/bison/bison.html Bison]<br />
* bc (binary calculator), if you want to build a Zaurus 2.4 or any of the collie kernels<br />
* glibc headers (libc6-dev in Debian, glibc-devel in RPM based (in PLD also glibc-static is needed))<br />
* [http://www.pcre.org/ pcre headers] (Perl 5 Compatible Regular Expression Library, required for e.g. konqueror-embedded)<br />
* SDL headers to build qemu-native (apt-get install libsdl1.2-dev under Ubuntu/Debian)<br />
* [http://www.mktemp.org/mktemp/ mktemp] (required by quilt and used in some package patches)<br />
* help2man - Create simple man pages from --help output<br />
<br />
There is an ongoing effort to accurately document the required software within the OpenEmbedded and ultimately, this will be reflected in the ASSUME_PROVIDED variable.<br />
<br />
[[Category:User]]</div>Xjqianhttp://www.openembedded.org/index.php?title=Useful_targets&diff=1137Useful targets2009-03-25T11:21:01Z<p>Xjqian: /* gpe-image */ remove kernel</p>
<hr />
<div>== Overview ==<br />
<br />
Bitbake can build individual packages such as '''bitbake nano''' to build the single package '''nano''', but it's often more useful to build a set of things and say compile them into an image. <br />
<br />
== Images ==<br />
<br />
=== helloworld-image ===<br />
Builds an image, that if used as a root filesystem, will start a static executable that prints hello world, then loops infinitely. Can be used to test the Linux boot procedure into user space (init).<br />
<br />
=== bootstrap-image ===<br />
Build image contains task-base packages.<br />
<br />
=== console-image ===<br />
Build an image without the X11, gtk+, or qt windowing libraries.<br />
<br />
=== x11-image ===<br />
Builds an image with X11<br />
<br />
=== beagleboard-demo-image ===<br />
Builds the Angstrom distribution like Koen proposed.<br />
<br />
=== opie-image ===<br />
Build image based on the [http://opie.handhelds.org Open Palmtop Integrated Environment] (OPIE). OPIE is a completely Open Source based graphical user environment and suite of applications for small form-factor devices, such as PDAs, running Linux.<br />
<br />
=== opie-kdepim-image ===<br />
Build image based on the OPIE and full featured KDE-based PIM (pi-sync, ko/pi, ka/pi, etc).<br />
<br />
=== pivotboot-image ===<br />
Build image that is necessary to flash a Sharp SL C3000, Zaurus. It pivots after booting from the NAND and finalizes the install to the HD during the first boot.<br />
<br />
=== twin-image ===<br />
task-base plus a couple of editors nano and vim --- why two? and a mail reader mutt<br />
<br />
=== uml-image ===<br />
A root image for user-mode-linux. Includes task-base, and parts of opie I think.<br />
<br />
=== gpe-image ===<br />
Build a [http://gpe.handhelds.org/ GPE Palmtop Environment] based rootfs. The GPE provides a user interface environment for palmtop/handheld computers running the GNU/Linux or any other UNIX-like operating system.<br />
<br />
== Tasks ==<br />
<br />
=== task-base ===<br />
Build a kernel and core packages for a basic installation. You won't be able to do much more than ssh to the machine if this is all that's installed.<br />
<br />
=== task-dvb ===<br />
meta-package for DVB application (DVB = Digital Video Broadcasting).<br />
<br />
=== task-python-everything ===<br />
all of python.<br />
<br />
=== task-native-sdk ===<br />
<br />
mate-package for native (on-device) SDK<br />
<br />
== Meta ==<br />
<br />
The directory packages/meta contains most of these "meta" targets that build multiple packages but some of the more useful ones are detailed below:<br />
<br />
=== meta-opie ===<br />
Build all OPIE related packages and some more for OPIE based usage.<br />
<br />
=== meta-gpe ===<br />
Basic packages to go with gpe-image.<br />
<br />
== Other ==<br />
<br />
=== helloworld ===<br />
Builds a static executable that prints hello world, then loops infinitely.<br />
<br />
=== world ===<br />
Build everything. This takes a long time, a lot of network bandwidth, and a lot of disc space. Can also break your toolchain.<br />
<br />
=== package-index ===<br />
Target to update the "feed" files (Package*) to reflect the current set of .ipk's that exist in the deploy directory. Commonly used after building some packages individually to update the feed and allow them to be installed via a package manager or the opkg command line tools.<br />
<br />
=== virtual/kernel ===<br />
Builds the appropriate kernel for your device.<br />
<br />
[[Category:User]]</div>Xjqianhttp://www.openembedded.org/index.php?title=Useful_targets&diff=1136Useful targets2009-03-25T11:20:23Z<p>Xjqian: /* package-index */ opkg</p>
<hr />
<div>== Overview ==<br />
<br />
Bitbake can build individual packages such as '''bitbake nano''' to build the single package '''nano''', but it's often more useful to build a set of things and say compile them into an image. <br />
<br />
== Images ==<br />
<br />
=== helloworld-image ===<br />
Builds an image, that if used as a root filesystem, will start a static executable that prints hello world, then loops infinitely. Can be used to test the Linux boot procedure into user space (init).<br />
<br />
=== bootstrap-image ===<br />
Build image contains task-base packages.<br />
<br />
=== console-image ===<br />
Build an image without the X11, gtk+, or qt windowing libraries.<br />
<br />
=== x11-image ===<br />
Builds an image with X11<br />
<br />
=== beagleboard-demo-image ===<br />
Builds the Angstrom distribution like Koen proposed.<br />
<br />
=== opie-image ===<br />
Build image based on the [http://opie.handhelds.org Open Palmtop Integrated Environment] (OPIE). OPIE is a completely Open Source based graphical user environment and suite of applications for small form-factor devices, such as PDAs, running Linux.<br />
<br />
=== opie-kdepim-image ===<br />
Build image based on the OPIE and full featured KDE-based PIM (pi-sync, ko/pi, ka/pi, etc).<br />
<br />
=== pivotboot-image ===<br />
Build image that is necessary to flash a Sharp SL C3000, Zaurus. It pivots after booting from the NAND and finalizes the install to the HD during the first boot.<br />
<br />
=== twin-image ===<br />
task-base plus a couple of editors nano and vim --- why two? and a mail reader mutt<br />
<br />
=== uml-image ===<br />
A root image for user-mode-linux. Includes task-base, and parts of opie I think.<br />
<br />
=== gpe-image ===<br />
Build a [http://gpe.handhelds.org/ GPE Palmtop Environment] based kernel and rootfs. The GPE provides a user interface environment for palmtop/handheld computers running the GNU/Linux or any other UNIX-like operating system.<br />
<br />
== Tasks ==<br />
<br />
=== task-base ===<br />
Build a kernel and core packages for a basic installation. You won't be able to do much more than ssh to the machine if this is all that's installed.<br />
<br />
=== task-dvb ===<br />
meta-package for DVB application (DVB = Digital Video Broadcasting).<br />
<br />
=== task-python-everything ===<br />
all of python.<br />
<br />
=== task-native-sdk ===<br />
<br />
mate-package for native (on-device) SDK<br />
<br />
== Meta ==<br />
<br />
The directory packages/meta contains most of these "meta" targets that build multiple packages but some of the more useful ones are detailed below:<br />
<br />
=== meta-opie ===<br />
Build all OPIE related packages and some more for OPIE based usage.<br />
<br />
=== meta-gpe ===<br />
Basic packages to go with gpe-image.<br />
<br />
== Other ==<br />
<br />
=== helloworld ===<br />
Builds a static executable that prints hello world, then loops infinitely.<br />
<br />
=== world ===<br />
Build everything. This takes a long time, a lot of network bandwidth, and a lot of disc space. Can also break your toolchain.<br />
<br />
=== package-index ===<br />
Target to update the "feed" files (Package*) to reflect the current set of .ipk's that exist in the deploy directory. Commonly used after building some packages individually to update the feed and allow them to be installed via a package manager or the opkg command line tools.<br />
<br />
=== virtual/kernel ===<br />
Builds the appropriate kernel for your device.<br />
<br />
[[Category:User]]</div>Xjqianhttp://www.openembedded.org/index.php?title=GitPhraseBook&diff=668GitPhraseBook2008-10-12T07:24:35Z<p>Xjqian: /* Generating a ssh key */ link to mailing list for email address</p>
<hr />
<div>= Git Phrase Book =<br />
<br />
<br />
'''NOTE:''' For increased pleasure use git 1.5 or later.<br />
<br />
== Pointers ==<br />
There are plenty of good git tutorials on the net. A small collection of links can be seen below:<br />
<br />
* [http://git.or.cz/gitwiki/GitDocumentation Official Documentation]<br />
* [http://git.or.cz/gitwiki/GitCheatSheet Cheat Sheet]<br />
* [http://eagain.net/articles/git-for-computer-scientists/ Git For Computer Scientists]<br />
* [http://www.google.com/search?q=git+documentation&ie=utf-8&oe=utf-8&aq=t Google Search]<br />
<br />
== Setup ==<br />
<br />
<br />
=== Getting the data ===<br />
git clone git://git.openembedded.net/FIXME openembedded.git<br />
<br />
=== Upgrading your data (lurking) ===<br />
git pull --rebase<br />
<br />
This command will fetch new objects from the server, and try to put your local changes on top of the newly fetched revisions for your current branch. If you have no local revisions you will still be updated.<br />
<br />
=== Generating a ssh key ===<br />
To be able to push to the OpenEmbedded git server you will need to have the right permissions. This starts with having your public ssh key on the server. Generate a key and send the public key to the one of the core developers.<br />
<br />
# send the resulting pub key to koen, mickeyl, RP, or zecke [http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-October/006291.html [email address]]<br />
ssh-keygen -t rsa<br />
<br />
=== Checking out a branch ===<br />
# See which branches are available<br />
git branch -a<br />
<br />
# In theory create a branch and switch<br />
git checkout -b local origin/remote<br />
<br />
# you will now be in the dreambox branch and track this.<br />
git checkout -b org.openembedded.dreambox origin/org.openembedded.dreambox<br />
<br />
=== Configuring your tree for commits ===<br />
git config user.name "Your Name"<br />
git config user.mail "you@name"<br />
<br />
== Doing things with git ==<br />
<br />
=== Commit Message ===<br />
<package name> <version>| <package category> | <configfile/class name>: <summary> <br />
{ - <detail 1><br />
- <detail 2>}*<br />
<br />
=== Making your changes (old way) ===<br />
# if you have new files<br />
git add your/new/file<br />
<br />
# Commit everything<br />
git commit -a<br />
<br />
=== Making your changes (better way) ===<br />
git add your/changed/files<br />
git commit<br />
<br />
=== Making your changes (a cool way) ===<br />
git add -i<br />
git commit<br />
<br />
=== Amending to your changes ===<br />
You forgot something, no big deal, change the commit<br />
<br />
git add your/others/changes<br />
git commit --amend<br />
<br />
== Commiting someones else work ==<br />
git commit --author "Other One <other@one>"<br />
<br />
== Pushing your changes ==<br />
# just pushes the org.openembedded.dev<br />
git push origin org.openembedded.dev<br />
<br />
# just pushes your things to a test branch. Use the right branch! dangerous!<br />
git push origin org.openembedded.dev:yourname/testbranch<br />
<br />
# delete a branch<br />
git push origin :yourname/testbranch<br />
<br />
== Dealing with conflicts ==<br />
Git will tell you what needs resolving. You can use kdiff3, meld, or many other tools to resolve the conflict. Don't be afraid you can easily redo and undo everything.<br />
<br />
# Conflicts from here or something else<br />
git pull --rebase<br />
git status<br />
<br />
# Starts interactive resolver, TOOL can be kdiff3, meld or anything else<br />
git mergetool --tool=TOOL filename<br />
<br />
git rebase --continue or similar once everything got resolved<br />
<br />
== Working with git ==<br />
=== Feature branches ===<br />
==== Create your own short lived feature branch ====<br />
git checkout -b yourname/yourfeature origin/org.openembedded.dev<br />
<br />
==== Push your feature branch ====<br />
git push origin yourname/yourfeature<br />
<br />
==== Delete your branch after it was merged ====<br />
git push origin :yourname/yourfeature<br />
<br />
==== Upgrade/Rebase your branch to the latest version ====<br />
git fetch origin<br />
git rebase origin/org.openembedded.dev<br />
<br />
==== Change your history ====<br />
# select edit, squash, pick to say what to do with the commit<br />
<br />
git rebase -i origin/org.openembedded.dev<br />
<br />
# to abort the operation on a tricky merge<br />
git rebase --abort<br />
<br />
# to find out a previous state to use with git reset<br />
git reflog<br />
<br />
== Seeing changes ==<br />
<br />
=== Log ===<br />
# See what happened in a branch<br />
git log branch<br />
<br />
# See the change, HEAD or branch name will work too<br />
git show --color (COMMIT)<br />
<br />
# Only show you change on foo/file<br />
git show --color HEAD -- foo/file<br />
<br />
# Graphical browser<br />
gitk<br />
<br />
=== What did you change ===<br />
# Lists you the revs that are only in your branch compared to org.openembedded.dev<br />
git rev-list origin/org.openembedded.dev..<br />
<br />
== Other Interesting commands ==<br />
# fetch new revisions from all remote repositories<br />
git fetch<br />
<br />
# show you local branches and which branch you are in<br />
git branch<br />
<br />
# show you all branches<br />
git branch -a<br />
<br />
# create a branch and switch to it<br />
git checkout -b MYNAME origin/THEIRNAME<br />
<br />
# upgrade a branch<br />
git push origin org.openembedded.dev<br />
git reflog<br />
<br />
# Change your index to be at the state of REF<br />
git reset REF<br />
<br />
# Kill the last commit<br />
git reset HEAD^1<br />
<br />
== Examples ==<br />
<br />
<br />
=== Example 1: ===<br />
<br />
vi packages/gaim/gaim.inc<br />
git commit packages/gaim/gaim.inc<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gaim: make sure do_install does its job in gaim.inc<br />
* install lib to ${libdir} instead of /usr/lib<br />
* remove executable bits from docs<br />
<br />
=== Example 2: ===<br />
<br />
diff /tmp/foo.c /oe/work/gtk+-2.8.4-r0/gtk+-2.8.4/src/foo.c > gtk-2.8.4/fix-foo.patch<br />
vi gtk+_2.8.4.bb<br />
git add gtk-2.8.4/fix-foo.patch<br />
git commit gtk-2.8.4/fix-foo.patch gtk+_2.8.4.bb<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gtk+ 2.8.4: add patch for buffer overflow<br />
<br />
[[Category:Dev]]<br />
[[Category:User]]</div>Xjqian