Compare commits

...

72 Commits

Author SHA1 Message Date
Beth Flanagan
45526f5ecf Set release to correct version: poky.conf
Correcting release version in poky.conf

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
2011-02-04 11:44:57 -08:00
Beth Flanagan
d1fd60f69d Setting Yocto rev number to 4.1: poky.conf
Found just prior to mirror push. Modified poky.conf to use the correct
version.

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
2011-02-03 17:43:11 -08:00
Beth Flanagan
7fa2b1c154 Laverne 4.1 release: NOTES and CHANGELOG
Name: Laverne
Version: 4.0.1
Built from Revision: fd7a07b3a2
Build Date: Jan 26 2011
Builder: autobuilder.pokylinux.org

Commit of final release notes and changelog for Laverne 4.1

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
2011-02-03 13:24:07 -08:00
Scott Garman
fd7a07b3a2 poky-extract-sdk: allow relative paths for extract-dir
psuedo needs a full path to its pid file, so convert
relative extract-dir paths to full ones.

The symptom of this bug is receiving the following error:

pseudo: Couldn't open relative/path/to/var/pseudo/pseudo.pid: No such file or directory

This fixes [BUGID #670]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2011-01-25 09:31:49 +00:00
Beth Flanagan
01bc47f4d4 quilt: Fixed configure test for patch --version.
OpenSuSE 11.3 uses GNU patch 2.6.1.81-5b68 which breaks quilt's
configure test for patch version.

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
2011-01-14 12:08:54 +00:00
Richard Purdie
12a3d41a24 image.bbclass: Use the dedicated BB_WORKERCONTEXT, not bitbake internals to detect context
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-14 12:08:45 +00:00
Richard Purdie
ce4f835679 scripts/poky-qemu: Improve tmp layout assumption
If someone has changed TMPDIR in local.conf to a non-standard location, the
poky-qemu script currently doesn't handle this and assumes if BUILDDIR is set,
$BUILDDIR/tmp will exist.

Its simple to check if this exists and if not, to ask bitbake where the
directory is so this patch changes the code to do that.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2011-01-14 12:07:46 +00:00
Scott Garman
54f08d23cd Make poky-qemu and related scripts work with arbitrary SDK locations
* No longer assume SDK toolchains are installed in /opt/poky
* [BUGFIX #568] where specifying paths to both the kernel and fs
  image caused an error due to POKY_NATIVE_SYSROOT never being
  set, triggering failure of poky-qemu-ifup/ifdown
* Cosmetic improvements to usage() functions by using basename

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2011-01-14 12:07:29 +00:00
Scott Garman
8a3d0f375c poky-qemu: Fix issues when running Yocto 0.9 release images
This fixes two bugs with poky-qemu when it is run from a
standalone meta-toolchain setup.

[BUGFIX #535] and [BUGFIX #536]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2011-01-14 12:07:11 +00:00
Paul Eggleton
0c2003f134 openssl: restore -Wall flag
The -Wall flag was unintentionally removed from the end of the CFLAG var in
089612794d by me. This patch puts it back in.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-12-16 15:44:15 +00:00
Joshua Lock
6e71b0a012 web-webkit: fix for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-15 14:31:21 +00:00
Joshua Lock
4b5c1c0530 contacts: fix for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-15 14:10:46 +00:00
Joshua Lock
171e709ae6 dates: fix for Make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-15 14:10:46 +00:00
Joshua Lock
a8b8557e4c owl-video-widget: fix Makefile for super strict make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-15 12:35:41 +00:00
Joshua Lock
399e6b8008 libowl-av: fix for Make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-14 18:58:21 +00:00
Joshua Lock
290280b332 gst-plugins: fix for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-14 17:56:53 +00:00
Joshua Lock
9e11fbf904 gstreamer: fix to comply with make 3.82's stricter parser
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-14 15:39:42 +00:00
Joshua Lock
0f8244faba linux-libc-headers: fix for Make 3.82
Fix the kernel Makefile for use with Make 3.82 by splitting mixed implicit and
normal rules into separate rules.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-14 12:49:13 +00:00
Joshua Lock
0cc23a8656 busybox: additional fixes for Make 3.82
There where still some mixed implicit and normal rules in the Busybox Makefile,
Update our existing make-382.patch to split these into separate rules.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-14 12:23:24 +00:00
Joshua Lock
30c39cc97c procps: fix for build against make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-10 17:32:33 +00:00
Joshua Lock
261ca88596 busybox: import upstream patch for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-10 16:52:32 +00:00
Joshua Lock
72ddd5c202 eglibc: fix build of eglibc-initial for make 3.82
Make 3.82, as shipped with Fedora 14, fixes some holes in the parser which in
turn breaks behaviour of some Makefiles. Most notably eglibc's.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-12-10 16:50:39 +00:00
Paul Eggleton
6026999e81 qemu: fix failure to find zlib header files during configure
Corrects problems during configure of qemu-native due to the BUILD_CFLAGS
not being included when attempting to compile the test program for zlib
within the configure script.

Signed-off-by: Paul Eggleton <paul.eggleton@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-12-10 14:56:36 +00:00
Paul Eggleton
c5ab4d56f9 openssl-native: disable execstack flag to prevent problems with SELinux
The execstack flag gets set on libcrypto.so by default which causes SELinux
to prevent it from being loaded on systems using SELinux, which includes
Fedora. This patch disables the execstack flag. (Note: Red Hat do this in
their openssl packaging.)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2010-12-10 11:37:14 +00:00
Joshua Lock
b9d6950732 documentation/bsp: update to reference FILESEXTRAPATHS
It's no longer neccesarry to define THISDIR and FILESPATH in each bbappend
recipe. Should you need to reference extra files you should use FILESEXTRAPATHS

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-10-24 01:02:40 -07:00
Richard Purdie
95b64df744 documentation: Update copyright to the Linux Foundation
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-24 01:02:39 -07:00
Richard Purdie
941855f0c0 documentation/yocto-qs: Fix references to a poky-qemu package and replace with the yocto toolchain tarball
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-24 01:02:39 -07:00
Scott Rifenbark
17641a7ead Removed text from section 5.1.2.1.1.
Removed several blocks of text from section 5.1.2.1.1
"Installing and Setting up the Eclipse IDE".  This text according
to Jessica was no longer needed.
2010-10-24 01:02:39 -07:00
Scott Rifenbark
c6e842d9f5 Corrected the package command for Debian-based hosts.
Corrected a typo listing the package libsdl1.2-dev as libsdll.2-dev.
Also added the package mercurial.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-24 01:02:39 -07:00
Scott Rifenbark
372186ff62 Added package installation requirements.
Added commands to support package installation of RPM-based host systems
to the example.  Input based on feedback from Dirk.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-24 01:02:39 -07:00
Scott Rifenbark
c718ef5b60 Re-inserted Poky Image as part of the front matter.
I have inserted the Poky image in the front matter again because the
book is a Poky Guide.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-24 01:02:39 -07:00
Richard Purdie
e160e68136 documentation/poky-ref-manual: Fix image makefile to reference the image
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-24 01:02:39 -07:00
Scott Rifenbark
c42340603f Moved the Poky image file to the "Figures" folder.
The image file was in the same directory as the main reference manual
files.  So I moved the file into subdirectory "Figures" with other
figures.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-24 01:02:39 -07:00
Scott Rifenbark
1a0cf646cf Re-installed the Poky Handbook image at the top of the manual
I could not get the Yocto Project logo to appear correctly in the book
after the title.  I also decided that since Poky is by no means
going away that this book should have that image associated with it
as it is the Poky Reference Manual.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-24 01:02:39 -07:00
Scott Rifenbark
3ed9ba33a3 Updated the yocto-environment picture and added example command edits.
When scaled to fit the page the picture had a black vertical line
artifact to the right.  I snipped out the image a little tigher to
eliminate this line.

I also incorporated Dirk's comments tightening up the sequence of
example commands to do the build.  I incorporated Fedora 14 note
and addition of the BB_NUMBER_THREADS and PARALLEL_MAKE variables.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-24 01:02:38 -07:00
Richard Purdie
88ff0a4470 rm_work.bbclass: Handle case where pseudo directory doesn't exist
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 17:05:29 -07:00
Richard Purdie
7b6db199fa bitbake/fetch: When fetchers return errors, ensure any partial download is cleared
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 17:05:14 -07:00
Richard Purdie
a28bc0d0b6 package_deb: The packaging command itself is run under fakeroot so these lines are totally unneeded
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 15:26:54 -07:00
Richard Purdie
47cfaec4ea classes: Only enable fakeroot on setscene tasks with packaging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:14:13 -07:00
Richard Purdie
59df74164d bitbake/fetch: Make URL checking slightly less verbose (distracting with the sstate code)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:13:59 -07:00
Richard Purdie
b5419d931e sstate: Fix mirror handling for file:// urls
The fetcher has special handling for file:// mirror urls, being efficient and
just providing an updated path. Unfortunately the sstate fetching code wasn't
able to handle this. This patch detects this and injects a symlink to ensure
everything works. It also fixes some datastore references to be correct and
ensures the sstate download directory exists if it doesn't already.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:13:51 -07:00
Richard Purdie
1ddda942bd pseudo/fakeroot: Move the pseudo directory creation into bitbake
If sstate was used to accelerate a build, the pseudo directory might not have
been created leading to subsequent task failures.

Also, sstate packages were not being installed under pseudo context meaning
file permissions could have been lost.

Fix these problems by creating a FAKEROOTDIRS variable which bitbake ensures
exists before running tasks and running the appropriate setscene tasks under
fakeroot context.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:13:40 -07:00
Richard Purdie
c115f07678 package_deb: Fix a typo meaning the debian packaging was not running in the fakeroot evnironment
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:13:30 -07:00
Richard Purdie
73be41e475 package_rpm: Don't check for the existence of dvar as its never used
If a sstate package exists for the package task but not for the rpm packaging
task, the output from the package task will be used. The directory pointed
to by dvar will not exist under this scenario.

Since the directory is never used by the packaging process remove the
check, substituting the pkgd variable which is always present and used.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:13:22 -07:00
Richard Purdie
b96412845d base.bbclass: Ensure an empty do_build tasks exists to silence a warning
The message "WARNING: Function do_build doesn't exist" doesn't look professional,
so fix the underlying problem even if this warning is harmless.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:13:12 -07:00
Richard Purdie
f0c88f220e sstate: Fix broken plaindirs support
When installing a sstate package, directories tracked by plaindirs were being installed
to the incorrect location. With the current implementation this was limited to
the do_package task.

This patch ensures plaindirs tracked files are created in the correct location, fixing
the bug where these files would go missing.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:12:55 -07:00
Dexuan Cui
1a3140eaf6 libtheora: add DEPENDS on libogg
This is used to fix the following build failure:

 checking for oggpackB_read... no
| configure: error: newer libogg version (1.1 or later) required

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2010-10-22 11:12:40 -07:00
Richard Purdie
e34401720d base/sstate: Add cleanall task to remove downloads and sstate cached files
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:12:28 -07:00
Richard Purdie
72aadcf274 local.conf.sample: Default to not building 32 bit libs on 64 bit systems as most people don't need it and it confuses them
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:12:19 -07:00
Richard Purdie
411910bb98 metadata_scm: Ensure that if an SCM isn't present, we dont print a revision of 'fatal:' as it looks bad
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-22 11:12:09 -07:00
Richard Purdie
23bae7e299 docmentation/yocto-project-qs: Fix Yocto Environment graphic
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-21 22:26:55 +01:00
Scott Rifenbark
13642c439c Removed first link to openembedded and replaced with more general text.
The link to openembedded was used to reference Linux distributions supporting
Yocto Project.  The link has been removed and replaced with more generic
text so as to not have to link to openembedded.  Text used is
"A Host system running a supported Linux distribution (i.e. recent releases
of Fedora, OpenSUSE, Debian, and Ubuntu)."

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 14:10:47 -07:00
Scott Rifenbark
784f9b3369 Updated the first figure in the quick start.
This conceptual figure has been replaced by a more detailed work
flow representing YP.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 14:01:34 -07:00
Scott Rifenbark
0826752c04 Corrected link to the yocto website.
This link was incorrect and has been changed to yoctoproject.com.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 13:40:11 -07:00
Scott Rifenbark
a168d77ea9 Updated supporting text to reflect new poky-4.0-build directory in example
The example commands that build an image were updated to reflect the
real 4.0 release.  I updated the paragraph after the example commands
to refer to the new release used in the command examples.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 13:11:46 -07:00
Richard Purdie
297c60afd8 documentation-project-qs: Remove stray ]
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-21 20:56:02 +01:00
Richard Purdie
0f49a2c359 documentation/qs-guide: Fix urls for release
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-21 20:56:02 +01:00
Saul Wold
37eec34886 Yocto Project 0.9 - Poky Laverne 4.0 Release
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-21 20:54:57 +01:00
Scott Rifenbark
2e793fe2bf Edits as described below:
1) Wording change based on Darren's input of making Linux kernel sound like the only open source part of YL

2) Removal of the "v" option for the tar command example.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 12:16:42 -07:00
Bruce Ashfield
2bf160150f mpc8315e-rdb: align PACKAGE_EXTRA_ARCHS with tuning
Fixes [BUGID #500]

While the tuning for the mpc8315e is 603e, the PACKAGE_EXTRA_ARCHES
was ppce300. This created a mismatch and resulted in rootfs assembly
issues due to missing locales.

We align both at 603 and can revist a better tuning in the future.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2010-10-21 15:27:39 +01:00
Scott Rifenbark
c3a5bee36f Review changes applied.
1. Added Richard Purdie's general editing feedback to the "Welcome" and
"Introducing the Yocto Project Development Environment" sections.

2. Added Kevin Tian's feedback:  1) changed "Sudo" to "sudo", 2) reversed
the order of the sample "cd" and "source" commands since the "source" command
builds the directory structure first so changing to the directory before running
"source" made no sense, 3) removed the "bitbake qemu-native" command.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 15:25:55 +01:00
Scott Rifenbark
4a5a659674 Updated figure.
Feedback from Kevin Tian suggested that the outer box be labeled "QEMU" rather
than "Target."  Also that the two inner boxes be "Set of Emulated Devices" and
"Target CPU."  Final change was the use of "Yocto Project Scripts" rather than
"Yocto Linux Scripts."

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 15:25:55 +01:00
Scott Rifenbark
ce18dde858 Updated this figure to correctly capaitalize opkg, zyper, and app-get
Feedback from Kevin Tian suggested "OPKG" should be lower-case.
Also, use of "zypper" instead of "YUM."  I also lower-cased
"apt-get."

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 15:25:55 +01:00
Scott Rifenbark
e51e4870f0 Removed reference to pre-build in section 5.3.2, "Using OprofileUI".
The "Using OprofileUI" section had a description of how to use a
pre-built UI and how to download and build one.  Feedback from Jessica
Zhang suggested removing the instruction for using a pre-built UI.
All that remains in the first paragraph now is instruction on how
to download and build the UI.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 15:25:55 +01:00
Scott Rifenbark
440a4cfffb Added the Anjuta Plug-in information
Added section 5.1.2.2 "The Anjuta Plug-in" into the Poky Reference Manual.
    This section consists of sub-sections 5.1.2.2.1 "Setting Up the Anjuta
    Plug-in", 5.1.2.2.2 "Configuring the Anjuta Plug-in", and 5.1.2.2.3 "Using
    the Anjuta Plug-in".  This information was in the original Poky Handbook
    but had been removed by me since I thought it was not going to be supported
    for the 0.9 Yocto Release.  It has now been restored with a note indicating
    that Anjuta will not be supported post 0.9 release.

    I did some general text editing in each section for readability.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2010-10-21 15:25:55 +01:00
Richard Purdie
779288f438 documentation/pokt-ref-manual: Update with Yocto branding
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-21 15:25:55 +01:00
Richard Purdie
c3fa1a6677 documentation: Add Yocto quickstart guide
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-21 15:25:55 +01:00
Richard Purdie
e8ea66f5ff documentation/poky-ref-manual: Update packages references to recipes and make sure bbappend files are included in example BBFILES lines
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-20 10:12:25 -07:00
Richard Purdie
476242adc4 bitbake/fetch/git: Ensure fullclone repositories are fully fetched
The git fetcher was failing to pull in new branches into a git
repository mirror tarball as the git fetch command being used didn't
add new remote branches.

This patch uses "git fetch --all" for fullclones to ensure any
new remote branches are cloned correctly.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-20 10:10:51 -07:00
Richard Purdie
e9ef9424a3 bitbake/fetcher: Deal with a ton of different bugs
The more we try and patch up the fetcher code, the more things break. The
code blocks in question are practically unreadable and are full of corner
cases where fetching could fail. In summary the issues noticed included:

a) Always fetching strange broken urls from the premirror for "noclone"
   git repositories
b) Not creating or rewriting .md5 stamp files inconsistently
c) Always fetching git source mirror tarballs from the premirror even
   if they already exist but the checkout directory does now
d) Passing "None" values to os.access() and os.path.extsts() checks under
   certain circumstances
e) Not using fetched git mirror tarballs if the preexist and always
   try and fetch them.

This patch rewrites the sections of code in question to be simpler and
more readable, fixing the above problems and most likely other odd
corner cases.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-20 10:09:12 -07:00
Richard Purdie
fc9c11de28 bitbake/fetch/git.py: Fix git fetcher to correctly use mirror tarballs
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-20 10:09:01 -07:00
Saul Wold
4ae9c0785e poky.conf: Update DISTRO_NAME and DISTRO_VERSION for the Yocto Project Release
Signed-off-by: Saul Wold <Saul.Wold@intel.com>
2010-10-18 11:54:36 -07:00
80 changed files with 2651 additions and 615 deletions

220
CHANGELOG Normal file
View File

@@ -0,0 +1,220 @@
commit fd7a07b3a2153826bedda2ef76b9a33ab2791680
Author: Scott Garman <scott.a.garman@intel.com>
Date: Fri Jan 21 14:15:05 2011 -0800
poky-extract-sdk: allow relative paths for extract-dir
psuedo needs a full path to its pid file, so convert
relative extract-dir paths to full ones.
The symptom of this bug is receiving the following error:
pseudo: Couldn't open relative/path/to/var/pseudo/pseudo.pid: No such file or directory
This fixes [BUGID #670]
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
commit 01bc47f4d47df3276b4b6c2583bcddd834fd5050
Author: Beth Flanagan <elizabeth.flanagan@intel.com>
Date: Wed Nov 3 17:20:00 2010 -0700
quilt: Fixed configure test for patch --version.
OpenSuSE 11.3 uses GNU patch 2.6.1.81-5b68 which breaks quilt's
configure test for patch version.
Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
commit 12a3d41a24db79ae6c0491defffcf4f4753001cf
Author: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Fri Jan 14 11:57:18 2011 +0000
image.bbclass: Use the dedicated BB_WORKERCONTEXT, not bitbake internals to detect context
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
commit ce4f8356796bc797d9156ed252a4ed638a2150d5
Author: Richard Purdie <rpurdie@linux.intel.com>
Date: Wed Dec 15 23:22:16 2010 +0000
scripts/poky-qemu: Improve tmp layout assumption
If someone has changed TMPDIR in local.conf to a non-standard location, the
poky-qemu script currently doesn't handle this and assumes if BUILDDIR is set,
$BUILDDIR/tmp will exist.
Its simple to check if this exists and if not, to ask bitbake where the
directory is so this patch changes the code to do that.
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
commit 54f08d23cd7d0de6aec31f4764389ff4dab2990d
Author: Scott Garman <scott.a.garman@intel.com>
Date: Tue Dec 7 20:59:06 2010 -0800
Make poky-qemu and related scripts work with arbitrary SDK locations
* No longer assume SDK toolchains are installed in /opt/poky
* [BUGFIX #568] where specifying paths to both the kernel and fs
image caused an error due to POKY_NATIVE_SYSROOT never being
set, triggering failure of poky-qemu-ifup/ifdown
* Cosmetic improvements to usage() functions by using basename
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
commit 8a3d0f375ce416ada1a5443e4a8e467504001beb
Author: Scott Garman <scott.a.garman@intel.com>
Date: Fri Nov 12 16:31:13 2010 -0800
poky-qemu: Fix issues when running Yocto 0.9 release images
This fixes two bugs with poky-qemu when it is run from a
standalone meta-toolchain setup.
[BUGFIX #535] and [BUGFIX #536]
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
commit 0c2003f13434c77f901a976523478d37d8aadb48
Author: Paul Eggleton <paul.eggleton@linux.intel.com>
Date: Thu Dec 16 10:29:50 2010 +0000
openssl: restore -Wall flag
The -Wall flag was unintentionally removed from the end of the CFLAG var in
089612794d4d8d9c79bd2a4365d6df78371f7f40 by me. This patch puts it back in.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
commit 6e71b0a012f0676c06b7b4788d932f320fca0b74
Author: Joshua Lock <josh@linux.intel.com>
Date: Wed Dec 15 14:31:21 2010 +0000
web-webkit: fix for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 4b5c1c053000d297956f08949ffde7454ee33c5d
Author: Joshua Lock <josh@linux.intel.com>
Date: Wed Dec 15 13:42:15 2010 +0000
contacts: fix for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 171e709ae6f4b1a7640bf393f57aa787648cdc0f
Author: Joshua Lock <josh@linux.intel.com>
Date: Wed Dec 15 12:58:09 2010 +0000
dates: fix for Make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit a8b8557e4cb34b594bb620eb276bcaf7a8e0a8e3
Author: Joshua Lock <josh@linux.intel.com>
Date: Wed Dec 15 12:27:52 2010 +0000
owl-video-widget: fix Makefile for super strict make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 399e6b8008cb0b8cc0b75efd48dd821a6cf5a8a8
Author: Joshua Lock <josh@linux.intel.com>
Date: Tue Dec 14 18:29:43 2010 +0000
libowl-av: fix for Make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 290280b332570ec73301f76765b1c5f2de20a9fd
Author: Joshua Lock <josh@linux.intel.com>
Date: Tue Dec 14 17:56:53 2010 +0000
gst-plugins: fix for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 9e11fbf9048b17526ca8160d82b69f386595c9a7
Author: Joshua Lock <josh@linux.intel.com>
Date: Tue Dec 14 15:39:42 2010 +0000
gstreamer: fix to comply with make 3.82's stricter parser
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 0f8244faba5c36c0580081c112ea27ce683af99b
Author: Joshua Lock <josh@linux.intel.com>
Date: Tue Dec 14 12:49:13 2010 +0000
linux-libc-headers: fix for Make 3.82
Fix the kernel Makefile for use with Make 3.82 by splitting mixed implicit and
normal rules into separate rules.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 0cc23a86562d0ce1e236ceb4a56a8f19d400192f
Author: Joshua Lock <josh@linux.intel.com>
Date: Tue Dec 14 12:21:33 2010 +0000
busybox: additional fixes for Make 3.82
There where still some mixed implicit and normal rules in the Busybox Makefile,
Update our existing make-382.patch to split these into separate rules.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 30c39cc97c384134661300e107d7a81f257f8034
Author: Joshua Lock <josh@linux.intel.com>
Date: Fri Nov 12 16:36:54 2010 +0000
procps: fix for build against make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 261ca885962ba9606bcad4c5415927a79fdd7b96
Author: Joshua Lock <josh@linux.intel.com>
Date: Tue Nov 9 12:18:14 2010 +0000
busybox: import upstream patch for make 3.82
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 72ddd5c20246a5d5b1752b58a61ef75b4c39cc40
Author: Joshua Lock <josh@linux.intel.com>
Date: Tue Nov 9 12:14:28 2010 +0000
eglibc: fix build of eglibc-initial for make 3.82
Make 3.82, as shipped with Fedora 14, fixes some holes in the parser which in
turn breaks behaviour of some Makefiles. Most notably eglibc's.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
commit 6026999e81042a7f6560f9bce04390865509b235
Author: Paul Eggleton <paul.eggleton@intel.com>
Date: Fri Nov 19 15:03:32 2010 +0000
qemu: fix failure to find zlib header files during configure
Corrects problems during configure of qemu-native due to the BUILD_CFLAGS
not being included when attempting to compile the test program for zlib
within the configure script.
Signed-off-by: Paul Eggleton <paul.eggleton@intel.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
commit c5ab4d56f97a0e45b124d40c9f536541be04c201
Author: Paul Eggleton <paul.eggleton@intel.com>
Date: Wed Nov 17 11:37:47 2010 +0000
openssl-native: disable execstack flag to prevent problems with SELinux
The execstack flag gets set on libcrypto.so by default which causes SELinux
to prevent it from being loaded on systems using SELinux, which includes
Fedora. This patch disables the execstack flag. (Note: Red Hat do this in
their openssl packaging.)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>

70
NOTES Normal file
View File

@@ -0,0 +1,70 @@
Name: Laverne
Version: 4.0.1
Built from Revision: fd7a07b3a2153826bedda2ef76b9a33ab2791680
Build Date: Jan 26 2011
Builder: autobuilder.pokylinux.org
The Laverne 4.0.1 Release ensures you can use Poky Laverne on systems running
Fedora 14 and Opensuse 11.3, fixes issues with the poky-qemu script, and fixes
several other bugs. For the full changelog for Laverne 4.0.1 please read
CHANGELOG.
Following are descriptions of fixes and known issues.
Fixes
------------------------
* Make 3.82, as shipped with Fedora 14, included parser bug fixes that
resulted in a much stricter parser. As a result, the Makefiles could not be
parsed for many of the software versions shipped with Laverne. The Makefiles
in the following recipes were fixed:
o eglibc
o busybox
o procps
o linux-libc-headers
o gstreamer
o gst-plugins
o libowl-av
o owl-video-widget
o dates
o contacts
o web-webkit
* The ability to build openssl-native on a system that has SELINUX enabled
was restored. (We disabled the execstack flag at compile time.)
* A host-intrusion issue caused by a failure in QEMU to find zlib headers
during configure was fixed. The issue was causing qemu-native to use the
system zlib if it was present. If the system zlib was not present the build
would fail.
* Stability and usability enhancements, which included handling relative
filesystem paths, were made to poky-qemu scripts.
* The run-time remapping of package names when adding extra packages to an
image via the IMAGE_INSTALL mechanism were fixed.
* The configure test in quilt for GNU patch was fixed to that it correctly
detects the version.
Known Issues
------------------------
* The mpc3815e-rbd and routerstationpro machines were untested and not a
part of the official Laverne 4.0 release. These machines are still unusable
for this Laverne 4.0.1 release.
o mpx3815e-rdb will not boot due to a kernel/uboot issue Bug #685
o routerstation will not boot (by default) due to incorrect boot
parameters Bug #681
o routerstationpro debug messages related to the ethernet driver print
during boot Bug #679
* Shutdown/poweroff on qemuarm does not cleanly halt the virtual machine.
To workaround this issue use the reboot command. Using this command avoids
a "power-cycle" and instead cleanly shuts down the VM Bug #684
* Two "Connection Manager" icons appear in the Sato UI. This duplication has
been fixed in master. Note that you can use either icon to launch the
connectivity UI. Bug #683
* The on-screen keyboard incorrectly launches in the qemumips machine. This
issue is due to a mis-configured formfactor file Bug #682

View File

@@ -225,6 +225,12 @@ def init(urls, d, setup = True):
def mirror_from_string(data):
return [ i.split() for i in (data or "").replace('\\n','\n').split('\n') if i ]
def removefile(f):
try:
os.remove(f)
except:
pass
def go(d, urls = None):
"""
Fetch all urls
@@ -237,32 +243,14 @@ def go(d, urls = None):
for u in urls:
ud = urldata[u]
m = ud.method
premirror_fetch = True
localpath = ""
if ud.localfile:
if not m.try_premirror(u, ud, d):
premirror_fetch = False
# File already present along with md5 stamp file
# Touch md5 file to show activity
try:
os.utime(ud.md5, None)
except:
# Errors aren't fatal here
pass
if not ud.localfile:
continue
lf = bb.utils.lockfile(ud.lockfile)
if not m.try_premirror(u, ud, d):
premirror_fetch = False
# If someone else fetched this before we got the lock,
# notice and don't try again
try:
os.utime(ud.md5, None)
except:
# Errors aren't fatal here
pass
lf = bb.utils.lockfile(ud.lockfile)
if premirror_fetch:
if m.try_premirror(u, ud, d):
# First try fetching uri, u, from PREMIRRORS
mirrors = mirror_from_string(bb.data.getVar('PREMIRRORS', d, True))
localpath = try_mirrors(d, u, mirrors, False, m.forcefetch(u, ud, d))
@@ -276,20 +264,26 @@ def go(d, urls = None):
m.go(u, ud, d)
localpath = ud.localpath
except FetchError:
# Remove any incomplete file
removefile(ud.localpath)
# Finally, try fetching uri, u, from MIRRORS
mirrors = mirror_from_string(bb.data.getVar('MIRRORS', d, True))
localpath = try_mirrors (d, u, mirrors)
if not localpath or not os.path.exists(localpath):
raise FetchError("Unable to fetch URL %s from any source." % u)
if localpath:
ud.localpath = localpath
if ud.localfile:
if not m.forcefetch(u, ud, d):
Fetch.write_md5sum(u, ud, d)
bb.utils.unlockfile(lf)
ud.localpath = localpath
if os.path.exists(ud.md5):
# Touch the md5 file to show active use of the download
try:
os.utime(ud.md5, None)
except:
# Errors aren't fatal here
pass
else:
Fetch.write_md5sum(u, ud, d)
bb.utils.unlockfile(lf)
def checkstatus(d):
"""
@@ -301,7 +295,7 @@ def checkstatus(d):
for u in urldata:
ud = urldata[u]
m = ud.method
bb.msg.note(1, bb.msg.domain.Fetcher, "Testing URL %s" % u)
bb.msg.debug(1, bb.msg.domain.Fetcher, "Testing URL %s" % u)
# First try checking uri, u, from PREMIRRORS
mirrors = mirror_from_string(bb.data.getVar('PREMIRRORS', d, True))
ret = try_mirrors(d, u, mirrors, True)
@@ -484,6 +478,7 @@ def try_mirrors(d, uri, mirrors, check = False, force = False):
import sys
(type, value, traceback) = sys.exc_info()
bb.msg.debug(2, bb.msg.domain.Fetcher, "Mirror fetch failure: %s" % value)
removefile(ud.localpath)
continue
return None

View File

@@ -86,13 +86,23 @@ class Git(Fetch):
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
def forcefetch(self, url, ud, d):
if not self._contains_ref(ud.tag, d) or 'fullclone' in ud.parm:
if 'fullclone' in ud.parm:
return True
if 'noclone' in ud.parm:
return False
if os.path.exists(ud.localpath):
return False
if not self._contains_ref(ud.tag, d):
return True
return False
def try_premirror(self, u, ud, d):
if 'noclone' in ud.parm:
return False
if os.path.exists(ud.clonedir):
return False
if os.path.exists(ud.localpath):
return False
return True
@@ -109,24 +119,37 @@ class Git(Fetch):
coname = '%s' % (ud.tag)
codir = os.path.join(ud.clonedir, coname)
if not os.path.exists(ud.clonedir):
# If we have no existing clone and no mirror tarball, try and obtain one
if not os.path.exists(ud.clonedir) and not os.path.exists(repofile):
try:
Fetch.try_mirrors(ud.mirrortarball)
bb.mkdirhier(ud.clonedir)
os.chdir(ud.clonedir)
runfetchcmd("tar -xzf %s" % (repofile), d)
except:
runfetchcmd("%s clone -n %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.clonedir), d)
pass
# If the checkout doesn't exist and the mirror tarball does, extract it
if not os.path.exists(ud.clonedir) and os.path.exists(repofile):
bb.mkdirhier(ud.clonedir)
os.chdir(ud.clonedir)
runfetchcmd("tar -xzf %s" % (repofile), d)
# If the repo still doesn't exist, fallback to cloning it
if not os.path.exists(ud.clonedir):
runfetchcmd("%s clone -n %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.clonedir), d)
os.chdir(ud.clonedir)
# Update the checkout if needed
if not self._contains_ref(ud.tag, d) or 'fullclone' in ud.parm:
# Remove all but the .git directory
runfetchcmd("rm * -Rf", d)
runfetchcmd("%s fetch %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.branch), d)
if 'fullclone' in ud.parm:
runfetchcmd("%s fetch --all" % (ud.basecmd), d)
else:
runfetchcmd("%s fetch %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.branch), d)
runfetchcmd("%s fetch --tags %s://%s%s%s" % (ud.basecmd, ud.proto, username, ud.host, ud.path), d)
runfetchcmd("%s prune-packed" % ud.basecmd, d)
runfetchcmd("%s pack-redundant --all | xargs -r rm" % ud.basecmd, d)
# Generate a mirror tarball if needed
os.chdir(ud.clonedir)
mirror_tarballs = data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True)
if mirror_tarballs != "0" or 'fullclone' in ud.parm:

View File

@@ -1066,6 +1066,10 @@ class RunQueueExecute:
for var in envvars:
comps = var.split("=")
env[comps[0]] = comps[1]
fakedirs = (the_data.getVar("FAKEROOTDIRS", True) or "").split()
for p in fakedirs:
bb.mkdirhier(p)
bb.msg.debug(2, bb.msg.domain.RunQueue, "Running %s:%s under fakeroot, state dir is %s" % (fn, taskname, fakedirs))
env['BB_TASKHASH'] = self.rqdata.runq_hash[task]
env['PATH'] = self.cooker.configuration.initial_path

View File

@@ -23,7 +23,7 @@ html:
xsltproc $(XSLTOPTS) -o bsp-guide.html $(XSL_XHTML_URI) bsp-guide.xml
tarball: html
tar -cvzf poky-ref-manual.tgz poky-ref-manual.html style.css screenshots/ss-sato.png poky-beaver.png poky-ref-manual.png
tar -cvzf poky-ref-manual.tgz poky-ref-manual.html style.css figures/yocto-project-transp.png figures/poky-ref-manual.png
validate:
xmllint --postvalid --xinclude --noout poky-ref-manual.xml

View File

@@ -37,7 +37,7 @@
<copyright>
<year>2010</year>
<holder>Intel Corporation</holder>
<holder>Linux Foundation</holder>
</copyright>
<legalnotice>

View File

@@ -105,8 +105,8 @@ meta-bsp/prebuilds/
# We have a conf directory, add to BBPATH
BBPATH := "${BBPATH}${LAYERDIR}"
# We have a packages directory, add to BBFILES
BBFILES := "${BBFILES} ${LAYERDIR}/packages/*/*.bb"
# We have a recipes directory containing .bb and .bbappend files, add to BBFILES
BBFILES := "${BBFILES} ${LAYERDIR}/recipes/*/*.bb ${LAYERDIR}/recipes/*/*.bbappend"
BBFILE_COLLECTIONS += "bsp"
BBFILE_PATTERN_bsp := "^${LAYERDIR}/"
@@ -115,7 +115,7 @@ BBFILE_PRIORITY_bsp = "5"
</para>
<para>
which simply makes bitbake aware of the packages and conf directories.
which simply makes bitbake aware of the recipes and conf directories.
</para>
<para>
@@ -284,13 +284,13 @@ meta-bsp/packages/image-creator/image-creator-native_0.1.bb
This allows the BSP layer to poke around and do whatever it might want to customise
the original recipe.
.bbappend is expected to include the below two lines in the head (which may be changed
in the future):
If your recipe needs to reference extra files it can use the FILESEXTRAPATH variable
to specify their location. The example below shows extra files contained in a folder
called ${PN} (the package name).
</para>
<programlisting>
THISDIR := "${@os.path.dirname(bb.data.getVar('FILE', d, True))}"
FILESPATH =. "${@base_set_filespath(["${THISDIR}/${PN}"], d)}:"
FILESEXTRAPATHS := "${THISDIR}/${PN}"
</programlisting>
<para>

View File

@@ -4,14 +4,14 @@
<chapter id="platdev">
<title>Platform Development with Poky</title>
<section id="platdev-appdev">
<section id="platdev-appdev">
<title>Software development</title>
<para>
Poky supports several methods of software development. You can use the method that is
best for you. This chapter describes each development method.
</para>
<section id="platdev-appdev-external-sdk">
<section id="platdev-appdev-external-sdk">
<title>External Development Using the Poky SDK</title>
<para>
The meta-toolchain and meta-toolchain-sdk targets (<link linkend='ref-images'>see
@@ -27,7 +27,6 @@
autotools are also set so that, for example, configure can find pre-generated test
results for tests that need target hardware on which to run.
</para>
<para>
Using the toolchain with autotool-enabled packages is straightforward - just pass the
appropriate host option to configure as in the following example:
@@ -39,187 +38,367 @@
CC=arm-poky-linux-gnueabi-gcc and LD=arm-poky-linux-gnueabi-ld
</literallayout>
</para>
</section>
<section id="platdev-appdev-external-anjuta">
<title>Developing externally using the Anjuta plugin</title>
<para>
An Anjuta IDE plugin exists to make developing software within the Poky framework
easier for the application developer. It presents a graphical IDE from which the
developer can cross compile an application then deploy and execute the output in a QEMU
emulation session. It also supports cross debugging and profiling.
</para>
<!-- DISBALED, TOO BIG!
<screenshot>
<mediaobject>
<imageobject>
<imagedata fileref="screenshots/ss-anjuta-poky-1.png" format="PNG"/>
</imageobject>
<caption>
<para>The Anjuta Poky SDK plugin showing an active QEMU session running Sato</para>
</caption>
</mediaobject>
</screenshot>
-->
<para>
To use the plugin, a toolchain and SDK built by Poky is required along with Anjuta it's development
headers and the Anjuta plugin. The Poky Anjuta plugin is available to download as a tarball at the
<ulink url='http://labs.o-hand.com/anjuta-poky-sdk-plugin/'>OpenedHand labs</ulink> page or
directly from the Poky Git repository located at git://git.pokylinux.org/anjuta-poky; a web interface
to the repository can be accessed at <ulink url='http://git.pokylinux.org/?p=anjuta-poky.git;a=summary'/>.
</para>
<para>
See the README file contained in the project for more information on dependencies and building
the plugin. If you want to disable remote gdb debugging, please pass --diable-gdb-integration
switch when doing configure.
</para>
<section id="platdev-appdev-external-anjuta-setup">
<title>Setting up the Anjuta plugin</title>
<para>Extract the tarball for the toolchain into / as root. The
toolchain will be installed into
<filename class="directory">/opt/poky</filename>.</para>
<para>To use the plugin, first open or create an existing
project. If creating a new project the "C GTK+" project type
will allow itself to be cross-compiled. However you should be
aware that this uses glade for the UI.</para>
<para>To activate the plugin go to
<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>,
then choose <guilabel>General</guilabel> from the left hand side. Choose the
Installed plugins tab, scroll down to <guilabel>Poky
SDK</guilabel> and check the
box. The plugin is now activated but first it must be
configured.</para>
</section>
<section id="platdev-appdev-external-anjuta-configuration">
<title>Configuring the Anjuta plugin</title>
<section id="using-the-eclipse-and-anjuta-plug-ins">
<title>Using the Eclipse and Anjuta Plug-ins</title>
<para>
Yocto Project supports both Anjuta and Eclipse IDE plug-ins to make developing software
easier for the application developer. The plug-ins provide capability
extensions to the graphical IDE allowing for cross compilation,
deployment and execution of the output in a QEMU emulation session.
Support of these plug-ins also supports cross debugging and
profiling. Additionally, the Eclipse plug-in provides a suite of tools
that allows the developer to perform remote profiling, tracing, collection of
power data, collection of latency data and collection of performance data.
</para>
<para>The configuration options for the SDK can be found by choosing
the <guilabel>Poky SDK</guilabel> icon from the left hand side. The following options
need to be set:</para>
<section id="the-eclipse-plug-in">
<title>The Eclipse Plug-in</title>
<para>
To use the Eclipse plug-in, a toolchain and SDK built by Poky is required along with
the Eclipse Framework (Helios 3.6).
To install the plug-in you need to be in the Eclipse IDE and select
the following menu:
<literallayout class='monospaced'>
Help -> Install New Software
</literallayout>
Specify the target URL as http://yocto./download (real link needed).
</para>
<para>
If you want to download the source code for the plug-in you can find it in the Poky
git repository, which has a web interface, and is located at
<ulink url="http://git.pokylinux.org/cgit.cgi/eclipse-poky"></ulink>.
</para>
<section id="installing-and-setting-up-the-eclipse-ide">
<title>Installing and Setting up the Eclipse IDE</title>
<para>
If you don't have the Eclipse IDE (Helios 3.6) on your system you need to
download and install it from <ulink url="http://www.eclipse.org/downloads"></ulink>.
Choose the Eclipse Classic, which contains the Eclipse Platform, Java Development
Tools (JDT), and the Plug-in Development Environment.
</para>
<para>
NOTE: Due to the Java Virtual Machine's garbage collection (GC) process the
permanent generation space (PermGen) is not cleaned up. This space is used
to store meta-data descriptions of classes. The default value is set too small
and it could trigger an out of memory error like the following:
<literallayout class='monospaced'>
Java.lang.OutOfMemoryError: PermGen space
</literallayout>
This error causes the applications to hang.
</para>
<para>
To fix this issue you can use the <command>-vmargs</command>
option when you start Eclipse to increase the size of the permenant generation space:
<literallayout class='monospaced'>
Eclipse -vmargs -XX:PermSize=256M
</literallayout>
</para>
</section>
<itemizedlist>
<listitem><para><guilabel>SDK root</guilabel>: If we use external toolchain, we need to set SDK root.
this is the root directory of the SDK's sysroot. For an i586 SDK this will be <filename
class="directory">/opt/poky/</filename>.
This directory will contain directories named like "bin",
"include", "var", etc. under your selected target architecture subdirectory<filename class="directory">
/opt/poky/sysroot/i586-poky-linux/</filename>. Needed cross compile tools are under
<filename class ="directory">/opt/poky/sysroot/i586-pokysdk-linux/</filename>
</para></listitem>
<section id="installing-the-yocto-plug-in">
<title>Installing the Yocto Plug-in</title>
<para>
Once you have the Eclipse IDE installed and configure you need to install the
Yocto plug-in. You do this similar to installing the Eclipse plug-ins in the
previous section.
</para>
<para>
Do the following to install the Yocto plug-in into the Eclipse IDE:
<itemizedlist>
<listitem>Select the "Help -> Install New Software" item.</listitem>
<listitem>In the "Work with:" area click "Add..." and enter the URL for
the Yocto plug-in (we need to supply this URL).</listitem>
<listitem>Finish out the installation of the update similar to any other
Eclipse plug-in.</listitem>
</itemizedlist>
</para>
</section>
<section id="configuring-yocto-eclipse-plug-in">
<title>Configuring Yocto Eclipse plug-in</title>
<para>
To configure the Yocto Eclipse plug-in you need to select the mode and then the
architecture with which you will be working. Start by selecting "Preferences"
from the "Window" menu and then selecting "Yocto SDK".
</para>
<para>
If you normally will use an installed Yocto
SDK (under /opt/poky) select “SDK Root Mode”. Otherwise, if your crosstool chain
and sysroot are within your poky tree, select “Poky Tree Mode”.
If you are in SDK Root Mode you will need to provide your poky tree path, for
example, $&lt;Poky_tree&gt;/build/.
</para>
<para>
Now you need to select the architecture.
Use the drop down list and select the architecture that youll be primarily
working against.
For target option, select your typical target QEMU vs External HW. If you
choose QEMU, youll need to specify your QEMU kernel file with full path and the
rootfs mount point. Yocto QEMU boots off user mode NFS, Please refer to QEMU
section for how to set it up. (Section TBD)
</para>
<para>
Save all your settings and they become your defaults for every new Yocto project
created using the Eclipse IDE.
</para>
</section>
<listitem><para><guilabel>Poky root</guilabel>: If we have local poky build tree, we need to set the Poky root.
this is the root directory of the poky build tree, if you build your i586 target architecture
under the subdirectory of build_x86 within your poky tree, the Poky root directory should be
<filename class="directory">${Poky_tree}/build_x86/</filename>.
</para></listitem>
<section id="using-the-yocto-eclipse-plug-in">
<title>Using the Yocto Eclipse Plug-in</title>
<para>
As an example, this section shows you how to cross-compile a Yocto C autotools
based project, deploy it into QEMU, and then run the debugger against it.
You need to configure the project, trigger <command> autogen.sh</command>, build
the image, start QEMU, and then debug.
</para>
<orderedlist>
<listitem>Creating a Yocto Autotools Based Project Using a Template:
Get to the Wizard selection by selecting the File -> New -> Project
menu. Expand "C/C++" and select "C Project". Click "Next" and select a template
to start with, for example "Hello World ANSI C Project". Complete the steps
to create a new Yocto autotools based project using this template.</listitem>
<listitem>Specify Specific Toolchain Configurations: By default the project
uses the Yocto preferences settings as defined using the procedure in
<link linkend="configuring-yocto-eclipse-plug-in"> the previous section</link>.
If there are any specific setup requirements for the newly created project
you need to reconfigure the Yocto plug-in through the menu selection
Project -> Invoke Yocto Tools -> Reconfigure Yocto. Use this dialogue
to specify specific toolchain and QEMU setups for the project.</listitem>
<listitem>Building the Project: Trigger <command>autogen.sh</command> through
Project -> Reconfigure Project. Then build the project using
Project -> Build.</listitem>
<listitem>Starting QEMU: Use the Run -> External Tools menu and see if there is
a QEMU instance for the desired target. If there is click on the instance
to start QEMU. If your target is not there then click "External Tools
Configuration". You should find an instance of QEMU for your architecture
under the entry under "Program". After the boot completes you are ready to
deploy the image into QEMU.</listitem>
<listitem>Debugging: To bring up your remote debugging configuration in the
right-hand window highlight your project in “Project Explorer”, select
the Run -> Debug Configurations menu item and expand “C/C++ Remote Application”.
Next, select projectname_ gdb_target-poky-linux.
You need to be sure that there is an
entry for the remote target you want to deploy and cross debug with. If there
is no entry then click "New..." to bring up the wizard. Using the wizard
select TCF and enter the IP address of you remote target in the
“Host name:” field. Back in the remote debug configure window,
you need to specify the absolute path for the program on the remote target
in the “Remote Absolute File Path for C/C++ Application” field. By default,
the program deploys into the remote target. If you don't want this then check
“Skip download to target path”. Finally, click "Debug” to start the remote
debugging session.</listitem>
</orderedlist>
</section>
<listitem><para><guilabel>Target Architecture</guilabel>: this is the cross compile
triplet, e.g. "i586-poky-linux". This target triplet is the prefix extracted from
the set up script file name. For examle, "i586-poky-linux" is extracted from set up script file
<filename>/opt/poky/environment-setup-i586-poky-linux</filename>
</para></listitem>
<listitem><para><guilabel>Kernel</guilabel>: use the file chooser to select the kernel
to use with QEMU</para></listitem>
<listitem><para><guilabel>Root filesystem</guilabel>: use the file chooser to select
the root filesystem directory, this is the directory where you use "poky-extract-sdk" command to
extract the poky-image-sdk tarball.</para></listitem>
</itemizedlist>
<!-- DISBALED, TOO BIG!
<screenshot>
<mediaobject>
<imageobject>
<imagedata fileref="screenshots/ss-anjuta-poky-2.png" format="PNG"/>
</imageobject>
<caption>
<para>Anjuta Preferences Dialog</para>
</caption>
</mediaobject>
</screenshot>
-->
<section id="using-yocto-eclipse-plug-in-remote-tools-suite">
<title>Using Yocto Eclipse plug-in Remote Tools Suite</title>
<para>
Remote tools let you do things like perform system profiling, kernel tracing,
examine power consumption, and so forth. To see and access the remote tools use the
Window -> YoctoTools menu.
</para>
<para>
Once you pick a tool you need to configure it for the remote target. Every tool
needs to have the connection configured. You have to select an existing TCF-based
RSE connection to the remote target. If one does not exist you need to create one
by clicking "New"
</para>
<para>
Here are some specifics about the remote tools:
<itemizedlist>
<listitem>Oprofile: Selecting this tool causes the oprofile-server on the remote
target to launch on the local host machine. To use the oprofile the oprofile-viewer
must be installed on the local host machine and the oprofile-server must be
installed on the remote target.</listitem>
<listitem>lttng: Selecting this tool runs ustrace on the remote target, transfers
the output data back to the local host machine and uses lttv-gui to graphically
display the output. To use this tool the lttv-gui must be installed on the
local host machine. See <ulink url="http://lttng.org/files/ust/manual/ust.html">
</ulink> for information on how to use <command>lttng</command> to trace an
application.
<para>
For "Application" you must supply the absolute path name to the application to
be traced by user mode lttng. For example, typing <command>/path/to/foo"
</command> triggers <command>usttrace /path/to/foo</command> on the
remote target to trace the program <command>/path/to/foo</command>.
</para>
<para>
"Argument" is passed to "usttrace" running on the remote target.
</para>
</listitem>
<listitem>powertop: Selecting this tool runs <command>powertop</command> on the
remote target machine and displays the result in a new view called "powertop".
<para>
"Time to gather data(sec):" is the time passed in seconds before data is
gathered from the remote target for analysis.
</para>
<para>
"show pids in wakeups list:" corresponds to the <command>-p</command>
argument passed to <command>powertop</command>
</para>
</listitem>
<listitem>latencytop and perf: The <command>latencytop</command> identifies
system latency, while <command>perf</command> monitors the system's performance
counter registers. Selecting either of these tools causes an RSE
terminal view to appear in which you can run the tools. Both tools refresh the
entire screen to display results while they run.</listitem>
</itemizedlist>
</para>
</section>
</section>
<section id="the-anjuta-plug-in">
<title>The Anjuta Plug-in</title>
<para>
<emphasis>Note:</emphasis> We will stop Anjuta plug-in support after
Yocto project 0.9 release. Its source
code can be downloaded from git respository listed below, and free for the community to
continue supporting it moving forward.
</para>
<para>
An Anjuta IDE plugin exists to make developing software within the Poky framework
easier for the application developer.
It presents a graphical IDE with which you can cross compile an application
then deploy and execute the output in a
QEMU emulation session.
It also supports cross debugging and profiling.
</para>
<para>
To use the plugin, a toolchain and SDK built by Poky is required,
Anjuta, it's development headers and the Anjuta plugin.
The Poky Anjuta plugin is available to download as a tarball at the
OpenedHand
labs <ulink url="http://labs.o-hand.com/anjuta-poky-sdk-plugin/"></ulink> page or
directly from the Poky Git repository located at
<ulink url="git://git.pokylinux.org/anjuta-poky"></ulink>.
You can also access a web interface to the repository at
<ulink url="http://git.pokylinux.org/?p=anjuta-poky.git;a=summary"></ulink>.
</para>
<para>
See the README file contained in the project for more information on
Anjuta dependencies and building the plugin.
If you want to disable remote gdb debugging,
please pass the <command>--diable-gdb-integration</command> switch when doing
configure.
</para>
<section id="setting-up-the-anjuta-plugin">
<title>Setting Up the Anjuta Plug-in</title>
<para>
Follow these steps to set up the plug-in:
<orderedlist>
<listitem>Extract the tarball for the toolchain into / as root.
The toolchain will be installed into <command>/opt/poky</command>.</listitem>
<listitem>To use the plug-in, first open or create an existing project.
If you are creating a new project, the "C GTK+"
project type will allow itself to be cross-compiled.
However you should be aware that this uses glade for the UI.</listitem>
<listitem>To activate the plug-in go to Edit -> Preferences, then choose
General from the left hand side.
Choose the Installed plug-ins tab, scroll down to Poky SDK and
check the box.</listitem>
</orderedlist>
The plug-in is now activated but not configured.
See the next section to learn how to configure it.
</para>
</section>
<section id="configuring-the-anjuta-plugin">
<title>Configuring the Anjuta Plugin</title>
<para>
You can find the configuration options for the SDK by choosing the Poky
SDK icon from the left hand side.
You need to set the following options:
<itemizedlist>
<listitem>SDK root: If you use an external toolchain you need to set
SDK root. This is the root directory of the
SDK's sysroot.
For an i586 SDK this will be <command>/opt/poky/</command>.
This directory will contain <command>bin</command>, <command>include
</command>, <command>var</command> and so forth under your
selected target architecture subdirectory
<command>/opt/poky/sysroot/i586-poky-linux/</command>.
The cross comple tools you need are in
<command>/opt/poky/sysroot/i586-pokysdk-linux/</command>.</listitem>
<listitem>Poky root: If you have a local poky build tree, you need to
set the Poky root.
This is the root directory of the poky build tree.
If you build your i586 target architecture under the subdirectory of
<command>build_x86</command> within your poky tree, the Poky root directory
should be <command>$&lt;poky_tree&gt;/build_x86/</command>.</listitem>
<listitem>Target Architecture: This is the cross compile triplet,
for example, "i586-poky-linux".
This target triplet is the prefix extracted from the set up script file
name.
For example, "i586-poky-linux" is extracted from the
set up script file
<command>/opt/poky/environment-setup-i586-poky-linux</command>.</listitem>
<listitem>Kernel: Use the file chooser to select the kernel to use
with QEMU.</listitem>
<listitem>Root filesystem: Use the file chooser to select the root
filesystem directory. This directory is where you use the
<command>poky-extract-sdk</command> to extract the poky-image-sdk
tarball.</listitem>
</itemizedlist>
</para>
</section>
<section id="using-the-anjuta-plug-in">
<title>Using the Anjuta Plug-in</title>
<para>
This section uses an example that cross-compiles a project, deploys it into
QEMU, runs a debugger against it and then does a system wide profile.
<orderedlist>
<listitem>Choose Build -> Run Configure or Build -> Run Autogenerate to run
"configure" or autogen, respectively for the project.
Either command passes command-line arguments to instruct the
cross-compile.</listitem>
<listitem>Select Build -> Build Project to build and compile the project.
If you have previously built the project in the same tree without using
the cross-compiler you might find that your project fails to link.
If this is the case, simply select Build -> Clean Project to remove the
old binaries.
After you clean the project you can then try building it again.</listitem>
<listitem>Start QEMU by selecting Tools -> Start QEMU. This menu selection
starts QEMU and will show any error messages in the message view.
Once Poky has fully booted within QEMU you can now deploy the project
into it.</listitem>
<listitem>Once the project is built and you have QEMU running choose
Tools -> Deploy.
This selection installs the package into a temporary
directory and then copies using rsync over SSH into the target.
Progress and messages appear in the message view.</listitem>
<listitem>To debug a program installed onto the target choose
Tools -> Debug remote.
This selection prompts you for the local binary to debug and also the
command line to run on the target.
The command line to run should include the full path to the to binary
installed in the target.
This will start a gdbserver over SSH on the target and also an instance
of a cross-gdb in a local terminal.
This will be preloaded to connect to the server and use the SDK root to
find symbols.
This gdb will connect to the target and load in various libraries and the
target program.
You should setup any breakpoints or watchpoints now since you might not
be able to interrupt the execution later.
You can stop the debugger on the target using Tools -> Stop debugger.</listitem>
<listitem>It is also possible to execute a command in the target over SSH,
the appropriate environment will be be set for the execution.
Choose Tools -> Run remote to do this.
This selection opens a terminal with the SSH command inside.</listitem>
<listitem>To do a system wide profile against the system running in QEMU choose
Tools -> Profile remote.
This selection starts up OProfileUI with the appropriate parameters to
connect to the server running inside QEMU and also supplies the path
to the debug information necessary to get a useful profile.</listitem>
</orderedlist>
</para>
</section>
</section>
</section>
<section id="platdev-appdev-external-anjuta-usage">
<title>Using the Anjuta plugin</title>
<para>As an example, cross-compiling a project, deploying it into
QEMU and running a debugger against it and then doing a system
wide profile.</para>
<para>Choose <menuchoice><guimenu>Build</guimenu><guimenuitem>Run
Configure</guimenuitem></menuchoice> or
<menuchoice><guimenu>Build</guimenu><guimenuitem>Run
Autogenerate</guimenuitem></menuchoice> to run "configure"
(or to run "autogen") for the project. This passes command line
arguments to instruct it to cross-compile.</para>
<para>Next do
<menuchoice><guimenu>Build</guimenu><guimenuitem>Build
Project</guimenuitem></menuchoice> to build and compile the
project. If you have previously built the project in the same
tree without using the cross-compiler you may find that your
project fails to link. Simply do
<menuchoice><guimenu>Build</guimenu><guimenuitem>Clean
Project</guimenuitem></menuchoice> to remove the old
binaries. You may then try building again.</para>
<para>Next start QEMU by using
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Start
QEMU</guimenuitem></menuchoice>, this will start QEMU and
will show any error messages in the message view. Once Poky has
fully booted within QEMU you may now deploy into it.</para>
<para>Once built and QEMU is running, choose
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Deploy</guimenuitem></menuchoice>,
this will install the package into a temporary directory and
then copy using rsync over SSH into the target. Progress and
messages will be shown in the message view.</para>
<para>To debug a program installed into onto the target choose
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Debug
remote</guimenuitem></menuchoice>. This prompts for the
local binary to debug and also the command line to run on the
target. The command line to run should include the full path to
the to binary installed in the target. This will start a
gdbserver over SSH on the target and also an instance of a
cross-gdb in a local terminal. This will be preloaded to connect
to the server and use the <guilabel>SDK root</guilabel> to find
symbols. This gdb will connect to the target and load in
various libraries and the target program. You should setup any
breakpoints or watchpoints now since you might not be able to
interrupt the execution later. You may stop
the debugger on the target using
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Stop
debugger</guimenuitem></menuchoice>.</para>
<para>It is also possible to execute a command in the target over
SSH, the appropriate environment will be be set for the
execution. Choose
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Run
remote</guimenuitem></menuchoice> to do this. This will open
a terminal with the SSH command inside.</para>
<para>To do a system wide profile against the system running in
QEMU choose
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Profile
remote</guimenuitem></menuchoice>. This will start up
OProfileUI with the appropriate parameters to connect to the
server running inside QEMU and will also supply the path to the
debug information necessary to get a useful profile.</para>
</section>
</section>
<section id="platdev-appdev-qemu">
<section id="platdev-appdev-qemu">
<title>Developing externally in QEMU</title>
<para>
Running Poky QEMU images is covered in the <link
@@ -348,9 +527,9 @@ $ bitbake matchbox-desktop -c devshell
environmental variables such as CC to assist applications, such as make,
find the correct tools.
</para>
</section>
</section>
<section id="platdev-appdev-srcrev">
<section id="platdev-appdev-srcrev">
<title>Developing within Poky with an external SCM based package</title>
<para>
@@ -369,8 +548,8 @@ $ bitbake matchbox-desktop -c devshell
is the name of the package for which you want to enable automatic source
revision updating.
</para>
</section>
</section>
</section>
<section id="platdev-gdb-remotedebug">
<title>Debugging with GDB Remotely</title>
@@ -458,8 +637,8 @@ $ bitbake matchbox-desktop -c devshell
A suitable gdb cross binary is required which runs on your host computer but
knows about the the ABI of the remote target. This can be obtained from
the the Poky toolchain, e.g.
<filename>/opt/poky/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-poky-linux-gnueabi-gdb</filename>
which "x86_64" is the host architecture, "arm" is the target architecture and "linux-gnueabi" the target ABI.
<filename>/usr/local/poky/eabi-glibc/arm/bin/arm-poky-linux-gnueabi-gdb</filename>
which "arm" is the target architecture and "linux-gnueabi" the target ABI.
</para>
<para>
@@ -467,8 +646,7 @@ $ bitbake matchbox-desktop -c devshell
the gdb-cross package so for example you would run:
<programlisting>bitbake gdb-cross</programlisting>
Once built, the cross gdb binary can be found at
<programlisting>tmp/sysroots/&lt;host-arch&gt;/usr/bin/\
&lt;target-arch&gt;-poky-&lt;target-abi&gt;/&lt;target-arch&gt;-poky-&lt;target-abi&gt;-gdb </programlisting>
<programlisting>tmp/sysroots/&lt;host-arch&lt;/usr/bin/&lt;target-abi&gt;-gdb </programlisting>
</para>
</section>
@@ -505,17 +683,17 @@ $ bitbake matchbox-desktop -c devshell
by doing:
</para>
<programlisting>tmp/sysroots/i686-linux/usr/bin/opkg-cl -f \
tmp/work/&lt;target-abi&gt;/poky-image-sato-1.0-r0/opkg.conf -o \
tmp/work/&lt;target-abi&gt;/poky-image-sato-1.0-r0/temp/opkg.conf -o \
tmp/rootfs/ update</programlisting>
<para>
then,
</para>
<programlisting>tmp/sysroots/i686-linux/usr/bin/opkg-cl -f \
tmp/work/&lt;target-abi&gt;/poky-image-sato-1.0-r0/opkg.conf \
tmp/work/&lt;target-abi&gt;/poky-image-sato-1.0-r0/temp/opkg.conf \
-o tmp/rootfs install foo
tmp/sysroots/i686-linux/usr/bin/opkg-cl -f \
tmp/work/&lt;target-abi&gt;/poky-image-sato-1.0-r0/opkg.conf \
tmp/work/&lt;target-abi&gt;/poky-image-sato-1.0-r0/temp/opkg.conf \
-o tmp/rootfs install foo-dbg</programlisting>
<para>
which installs the debugging information too.
@@ -528,7 +706,7 @@ tmp/work/&lt;target-abi&gt;/poky-image-sato-1.0-r0/opkg.conf \
<para>
To launch the host GDB, run the cross gdb binary identified above with
the inferior binary specified on the commandline:
<programlisting>&lt;target-arch&gt;-poky-&lt;target-abi&gt;-gdb rootfs/usr/bin/foo</programlisting>
<programlisting>&lt;target-abi&gt;-gdb rootfs/usr/bin/foo</programlisting>
This loads the binary of program <emphasis>foo</emphasis>
as well as its debugging information. Once the gdb prompt
appears, you must instruct GDB to load all the libraries
@@ -650,10 +828,9 @@ $ opreport -cl
<para>
A graphical user interface for OProfile is also available. You can
either use prebuilt Debian packages from the <ulink
url='http://debian.o-hand.com/'>OpenedHand repository</ulink> or
download and build from svn at
http://svn.o-hand.com/repos/oprofileui/trunk/. If the
download and build it from svn at
<ulink url="http://svn.o-hand.com/repos/oprofileui/trunk/"></ulink>.
If the
"tools-profile" image feature is selected, all necessary binaries
are installed onto the target device for OProfileUI interaction.
</para>
@@ -819,6 +996,8 @@ $ opreport -cl
</section>
</section>
</chapter>
<!--
vim: expandtab tw=80 ts=4

View File

@@ -606,7 +606,7 @@ BBLAYERS = " \
<para>
Bitbake parses the conf/layer.conf of each of the layers in BBLAYERS
to add the layers packages, classes and configuration to Poky.
to add the recipes, classes and configuration contained within the layer to Poky.
To create your own layer, independent of the main Poky repository,
you need only create a directory with a conf/layer.conf file and
add the directory to your bblayers.conf.
@@ -617,9 +617,9 @@ BBLAYERS = " \
<literallayout class='monospaced'># We have a conf and classes directory, add to BBPATH
BBPATH := "${BBPATH}:${LAYERDIR}"
# We have a packages directory, add to BBFILES
BBFILES := "${BBFILES} ${LAYERDIR}/packages/*/*.bb \
${LAYERDIR}/packages/*/*.bbappend"
# We have a recipes directory containing both .bb and .bbappend files, add to BBFILES
BBFILES := "${BBFILES} ${LAYERDIR}/recipes/*/*.bb \
${LAYERDIR}/recipes/*/*.bbappend"
BBFILE_COLLECTIONS += "emenlow"
BBFILE_PATTERN_emenlow := "^${LAYERDIR}/"

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@@ -4,43 +4,39 @@
<chapter id='intro'>
<title>Introduction</title>
<section id='intro-what-is'>
<section id='intro-welcome'>
<title>Welcome to Poky!</title>
<para>
Poky is the the build tool in Yocto Project.
It is at the heart of Yocto Project.
You use Poky within Yocto Project to build the images (kernel software) for targeted hardware.
</para>
<para>
Before jumping into Poky you should have an understanding of Yokto Project.
Be sure you are familiar with the information in the Yocto Project Quick Start.
You can find this documentation on the public <ulink rul='http://yoctoproject.org/'>Yocto Project Website</ulink>.
</para>
</section>
<section>
<title>What is Poky?</title>
<para>
Poky is an open source platform build tool. It is a complete
software development environment for the creation of Linux
devices. It aids the design, development, building, debugging,
simulation and testing of complete modern software stacks
using Linux, the X Window System and GNOME Mobile
based application frameworks. It is based on <ulink
url='http://openembedded.org/'>OpenEmbedded</ulink> but has
been customised with a particular focus.
Poky provides an open source Linux, X11, Matchbox, GTK+, Pimlico, Clutter, and other <ulink url='http://gnome.org/mobile'>GNOME Mobile</ulink> technologies based full platform build tool within Yocto Project.
It creates a focused, stable, subset of OpenEmbedded that can be easily and reliably built and developed upon.
Poky fully supports a wide range of x86 ARM, MIPS and PowerPC hardware and device virtulisation.
</para>
<para> Poky was setup to:</para>
<itemizedlist>
<listitem>
<para>Provide an open source Linux, X11, Matchbox, GTK+, Pimlico, Clutter, and other <ulink url='http://gnome.org/mobile'>GNOME Mobile</ulink> technologies based full platform build and development tool.</para>
</listitem>
<listitem>
<para>Create a focused, stable, subset of OpenEmbedded that can be easily and reliably built and developed upon.</para>
</listitem>
<listitem>
<para>Fully support a wide range of x86, ARM, MIPS, PowerPC hardware and device virtulisation</para>
</listitem>
</itemizedlist>
<para>
Poky is primarily a platform builder which generates filesystem images
based on open source software such as the Kdrive X server, the Matchbox
window manager, the GTK+ toolkit and the D-Bus message bus system. Images
for many kinds of devices can be generated, however the standard example
machines target QEMU full system emulation(x86, ARM, MIPS and PowerPC) and the ARM based
Sharp Zaurus series of devices. Poky's ability to boot inside a QEMU
machines target QEMU full system emulation(x86, ARM, MIPS and PowerPC) and
real reference boards for each of these architectures.
Poky's ability to boot inside a QEMU
emulator makes it particularly suitable as a test platform for development
of embedded software.
</para>
@@ -76,222 +72,32 @@
<section id='intro-manualoverview'>
<title>Documentation Overview</title>
<para>
The handbook is split into sections covering different aspects of Poky.
The <link linkend='usingpoky'>'Using Poky' section</link> gives an overview
of the components that make up Poky followed by information about using and
debugging the Poky build system. The <link linkend='extendpoky'>'Extending Poky' section</link>
gives information about how to extend and customise Poky along with advice
on how to manage these changes.
The <link linkend='bsp'>'Board Support Packages (BSP) - Developers Guide' section</link>
gives information about how to develop BSP such as the common layout, the
software hardware configuration options etc.
The <link linkend='platdev'>'Platform Development with Poky'
section</link> gives information about interaction between Poky and target
hardware for common platform development tasks such as software development,
debugging and profiling. The rest of the manual
consists of several reference sections each giving details on a specific
section of Poky functionality.
The Poky User Guide is split into sections covering different aspects of Poky.
The <link linkend='usingpoky'>'Using Poky' section</link> gives an overview of the components that make up Poky followed by information about using Poky and debugging images created in Yocto Project.
The <link linkend='extendpoky'>'Extending Poky' section</link> gives information about how to extend and customise Poky along with advice on how to manage these changes.
The <link linkend='platdev'>'Platform Development with Poky' section</link> gives information about interaction between Poky and target hardware for common platform development tasks such as software development, debugging and profiling.
The rest of the manual consists of several reference sections each giving details on a specific section of Poky functionality.
</para>
<para>
This manual applies to Poky Release 3.3 (Green).
</para>
</section>
<section id='intro-requirements'>
<title>System Requirements</title>
<para>
We recommend Debian-based distributions, in particular a recent Ubuntu
release (10.04 or newer), as the host system for Poky. Nothing in Poky is
distribution specific and
other distributions will most likely work as long as the appropriate
prerequisites are installed - we know of Poky being used successfully on Redhat,
SUSE, Gentoo and Slackware host systems.
distribution specific and other distributions will most likely work as long
as the appropriate prerequisites are installed - we know of Poky being used
successfully on Redhat, SUSE, Gentoo and Slackware host systems.
For information on what you need to develop images using Yocto Project and Poky
you should see the Yocto Project Quick Start on the public
<ulink rul='http://yoctoproject.org/'>Yocto Project Website</ulink>.
</para>
<para>On a Debian-based system, you need the following packages installed:</para>
<itemizedlist>
<listitem>
<para>build-essential</para>
</listitem>
<listitem>
<para>python (version 2.6 or later)</para>
</listitem>
<listitem>
<para>diffstat</para>
</listitem>
<listitem>
<para>texinfo</para>
</listitem>
<listitem>
<para>texi2html</para>
</listitem>
<listitem>
<para>cvs</para>
</listitem>
<listitem>
<para>subversion</para>
</listitem>
<listitem>
<para>wget</para>
</listitem>
<listitem>
<para>gawk</para>
</listitem>
<listitem>
<para>help2man</para>
</listitem>
<listitem>
<para>chrpath</para>
</listitem>
<listitem>
<para>mercurial</para>
</listitem>
</itemizedlist>
<para>Furthermore if you wish to run an emulated Poky image using <ulink url='http://qemu.org'>QEMU</ulink> (as in the quickstart below) you will need the following packages installed:</para>
<itemizedlist>
<listitem>
<para>libgl1-mesa-dev</para>
</listitem>
<listitem>
<para>libglu1-mesa-dev</para>
</listitem>
<listitem>
<para>libsdl1.2-dev</para>
</listitem>
<listitem>
<para>bochsbios (only to run qemux86 images)</para>
</listitem>
</itemizedlist>
<para>
Debian users can add debian.o-hand.com to their APT sources (See
<ulink url='http://debian.o-hand.com'/>
for instructions on doing this) and then run <command>
"apt-get install qemu poky-depends poky-scripts"</command> which will
automatically install all these dependencies. Virtualisation images with
Poky and all dependencies can also easily be built if required.
</para>
<para>
Poky can use a system provided QEMU or build its own depending on how it's
configured. See the options in <filename>local.conf</filename> for more details.
</para>
</section>
<section id='intro-quickstart'>
<title>Quick Start</title>
<section id='intro-quickstart-build'>
<title>Building and Running an Image</title>
<para>
If you want to try Poky, you can do so in a few commands. The example below
checks out the Poky source code, sets up a build environment, builds an
image and then runs that image under the QEMU emulator in x86 system emulation mode:
</para>
<para>
<literallayout class='monospaced'>
$ wget http://pokylinux.org/releases/poky-green-3.3.tar.bz2
$ tar xjvf poky-green-3.3.tar.bz2
$ cd green-3.3/
$ source poky-init-build-env
$ bitbake poky-image-sato
$ bitbake qemu-native
$ runqemu qemux86
</literallayout>
</para>
<note>
<para>
This process will need Internet access, about 20 GB of disk space
available, and you should expect the build to take about 4 - 5 hours since
it is building an entire Linux system from source including the toolchain!
</para>
</note>
<para>
To build for other machines see the <glossterm><link
linkend='var-MACHINE'>MACHINE</link></glossterm> variable in build/conf/local.conf.
This file contains other useful configuration information and the default version
has examples of common setup needs and is worth
reading. To take advantage of multiple processor cores to speed up builds for example, set the
<glossterm><link linkend='var-BB_NUMBER_THREADS'>BB_NUMBER_THREADS</link></glossterm>
and <glossterm><link linkend='var-PARALLEL_MAKE'>PARALLEL_MAKE</link></glossterm> variables.
The images/kernels built by Poky are placed in the <filename class="directory">tmp/deploy/images</filename>
directory.
</para>
<para>
You could also run <command>"poky-qemu zImage-qemuarm.bin poky-image-sato-qemuarm.ext2"
</command> within the images directory if you have the poky-scripts Debian package
installed from debian.o-hand.com. This allows the QEMU images to be used standalone
outside the Poky build environment.
</para>
<para>
To setup networking within QEMU see the <link linkend='usingpoky-install-qemu-networking'>
QEMU/USB networking with IP masquerading</link> section.
</para>
</section>
<section id='intro-quickstart-qemu'>
<title>Downloading and Using Prebuilt Images</title>
<para>
Prebuilt images from Poky are also available if you just want to run the system
under QEMU. To use these you need to:
</para>
<itemizedlist>
<listitem>
<para>
Add debian.o-hand.com to your APT sources (See
<ulink url='http://debian.o-hand.com'/> for instructions on doing this)
</para>
</listitem>
<listitem>
<para>Install patched QEMU and poky-scripts:</para>
<para>
<literallayout class='monospaced'>
$ apt-get install qemu poky-scripts
</literallayout>
</para>
</listitem>
<listitem>
<para>
Download a Poky QEMU release kernel (*zImage*qemu*.bin) and compressed
filesystem image (poky-image-*-qemu*.ext2.bz2) which
you'll need to decompress with 'bzip2 -d'. These are available from the
<ulink url='http://pokylinux.org/releases/green-3.3/'>last release</ulink>
or from the <ulink url='http://autobuilder.pokylinux.org/'>autobuilder</ulink>.
</para>
</listitem>
<listitem>
<para>Start the image:</para>
<para>
<literallayout class='monospaced'>
$ poky-qemu &lt;kernel&gt; &lt;image&gt;
</literallayout>
</para>
</listitem>
</itemizedlist>
<note><para>
A patched version of QEMU is required at present. A suitable version is available from
<ulink url='http://debian.o-hand.com'/>, it can be built
by poky (bitbake qemu-native) or can be downloaded/built as part of the toolchain/SDK tarballs.
</para></note>
</section>
</section>
<section id='intro-getit'>

View File

@@ -6,10 +6,10 @@
xmlns="http://docbook.org/ns/docbook"
>
<bookinfo>
<mediaobject>
<imageobject>
<imagedata fileref='poky-ref-manual.png'
<imagedata fileref='figures/poky-ref-manual.png'
format='SVG'
align='center' scalefit='1' width='100%'/>
</imageobject>
@@ -17,7 +17,6 @@
<title>Poky Reference Manual</title>
<subtitle>A Guide and Reference to Poky</subtitle>
<authorgroup>
<author>
<firstname>Richard</firstname> <surname>Purdie</surname>
@@ -44,15 +43,15 @@
<revhistory>
<revision>
<revnumber>3.3+git</revnumber>
<date>20 Sept 2010</date>
<revnumber>4.0+git</revnumber>
<date>27 Oct 2010</date>
<revremark>Poky Master Documentation</revremark>
</revision>
</revhistory>
<copyright>
<year>2007-2010</year>
<holder>Intel Corporation</holder>
<holder>Linux Foundation</holder>
</copyright>
<legalnotice>

View File

@@ -118,14 +118,13 @@ h6 {
background-color: transparent;
background-repeat: no-repeat;
padding-top: 256px;
background-image: url("poky-beaver.png");
background-position: right top;
float: right;
background-image: url("figures/poky-ref-manual.png");
background-position: left top;
margin-top: -256px;
padding-right: 50px;
margin-left: 50px;
text-align: right;
width: 200px;
width: 600px;
}
h3.author {

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,32 @@
XSLTOPTS = --stringparam html.stylesheet style.css \
--xinclude
XSL_BASE_URI = http://docbook.sourceforge.net/release/xsl/current
XSL_XHTML_URI = $(XSL_BASE_URI)/xhtml/docbook.xsl
all: html tarball
##
# These URI should be rewritten by your distribution's xml catalog to
# match your localy installed XSL stylesheets.
html:
# See http://www.sagehill.net/docbookxsl/HtmlOutput.html
# xsltproc $(XSLTOPTS) -o yocto-project-qs.html $(XSL_XHTML_URI) yocto-project-qs.xml
xsltproc $(XSLTOPTS) -o yocto-project-qs.html yocto-project-qs-customization.xsl yocto-project-qs.xml
tarball: html
tar -cvzf yocto-project-qs.tgz yocto-project-qs.html style.css figures/yocto-environment.png figures/building-an-image.png figures/using-a-pre-built-image.png figures/yocto-project-transp.png
validate:
xmllint --postvalid --xinclude --noout yocto-project-qs.xml
OUTPUTS = yocto-project-qs.tgz yocto-project-qs.html
SOURCES = *.png *.xml *.css
publish:
scp -r $(OUTPUTS) $(SOURCES) o-hand.com:/srv/www/pokylinux.org/doc/
clean:
rm -f $(OUTPUTS)

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@@ -0,0 +1,963 @@
/*
Generic XHTML / DocBook XHTML CSS Stylesheet.
Browser wrangling and typographic design by
Oyvind Kolas / pippin@gimp.org
Customised for Poky by
Matthew Allum / mallum@o-hand.com
Thanks to:
Liam R. E. Quin
William Skaggs
Jakub Steiner
Structure
---------
The stylesheet is divided into the following sections:
Positioning
Margins, paddings, width, font-size, clearing.
Decorations
Borders, style
Colors
Colors
Graphics
Graphical backgrounds
Nasty IE tweaks
Workarounds needed to make it work in internet explorer,
currently makes the stylesheet non validating, but up until
this point it is validating.
Mozilla extensions
Transparency for footer
Rounded corners on boxes
*/
/*************** /
/ Positioning /
/ ***************/
body {
font-family: Verdana, Sans, sans-serif;
min-width: 640px;
width: 80%;
margin: 0em auto;
padding: 2em 5em 5em 5em;
color: #333;
}
h1,h2,h3,h4,h5,h6,h7 {
font-family: Arial, Sans;
color:#999999;
clear: both;
}
h1 {
font-size: 2em;
text-align: left;
padding: 0em 0em 0em 0em;
margin: 2em 0em 0em 0em;
}
h2.subtitle {
margin: 0.10em 0em 3.0em 0em;
padding: 0em 0em 0em 0em;
font-size: 1.8em;
padding-left: 20%;
font-weight: normal;
font-style: italic;
}
h2 {
margin: 2em 0em 0.66em 0em;
padding: 0.5em 0em 0em 0em;
font-size: 1.5em;
font-weight: normal;
}
h3.subtitle {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
font-size: 142.14%;
text-align: right;
}
h3 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 140%;
font-weight: normal;
}
h4 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 120%;
font-weight: normal;
}
h5 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 110.000%;
border-bottom: 1px solid black;
}
h6 {
margin: 1em 0em 0em 0em;
padding: 1em 0em 0em 0em;
font-size: 80%;
font-weight: normal;
}
.authorgroup {
background-color: transparent;
background-repeat: no-repeat;
padding-top: 256px;
background-image: url("../figures/yocto-project-bw.png");
background-position: top;
margin-top: -256px;
padding-right: 50px;
margin-left: 50px;
text-align: center;
width: 600px;
}
h3.author {
margin: 0em 0me 0em 0em;
padding: 0em 0em 0em 0em;
font-weight: normal;
font-size: 100%;
clear: both;
}
.author tt.email {
font-size: 66%;
}
.titlepage hr {
width: 0em;
clear: both;
}
.revhistory {
padding-top: 2em;
clear: both;
}
.toc,
.list-of-tables,
.list-of-examples,
.list-of-figures {
padding: 1.33em 0em 2.5em 0em;
}
.toc p,
.list-of-tables p,
.list-of-figures p,
.list-of-examples p {
padding: 0em 0em 0em 0em;
padding: 0em 0em 0.3em;
margin: 1.5em 0em 0em 0em;
}
.toc p b,
.list-of-tables p b,
.list-of-figures p b,
.list-of-examples p b{
font-size: 100.0%;
font-weight: bold;
}
.toc dl,
.list-of-tables dl,
.list-of-figures dl,
.list-of-examples dl {
margin: 0em 0em 0.5em 0em;
padding: 0em 0em 0em 0em;
}
.toc dt {
margin: 0em 0em 0em 0em;
padding: 0em 0em 0em 0em;
}
.toc dd {
margin: 0em 0em 0em 2.6em;
padding: 0em 0em 0em 0em;
}
div.glossary dl,
div.variablelist dl {
}
.glossary dl dt,
.variablelist dl dt,
.variablelist dl dt span.term {
font-weight: normal;
width: 20em;
text-align: right;
}
.variablelist dl dt {
margin-top: 0.5em;
}
.glossary dl dd,
.variablelist dl dd {
margin-top: -1em;
margin-left: 25.5em;
}
.glossary dd p,
.variablelist dd p {
margin-top: 0em;
margin-bottom: 1em;
}
div.calloutlist table td {
padding: 0em 0em 0em 0em;
margin: 0em 0em 0em 0em;
}
div.calloutlist table td p {
margin-top: 0em;
margin-bottom: 1em;
}
div p.copyright {
text-align: left;
}
div.legalnotice p.legalnotice-title {
margin-bottom: 0em;
}
p {
line-height: 1.5em;
margin-top: 0em;
color: black; font-size: 100%;
}
dl {
padding-top: 0em;
}
hr {
border: solid 1px;
}
.mediaobject,
.mediaobjectco {
text-align: center;
}
img {
border: none;
}
ul {
padding: 0em 0em 0em 1.5em;
}
ul li {
padding: 0em 0em 0em 0em;
}
ul li p {
text-align: left;
}
table {
width :100%;
}
th {
padding: 0.25em;
text-align: left;
font-weight: normal;
vertical-align: top;
}
td {
padding: 0.25em;
vertical-align: top;
}
p a[id] {
margin: 0px;
padding: 0px;
display: inline;
background-image: none;
}
a {
text-decoration: underline;
color: #444;
}
pre {
overflow: auto;
}
a:hover {
text-decoration: underline;
/*font-weight: bold;*/
}
div.informalfigure,
div.informalexample,
div.informaltable,
div.figure,
div.table,
div.example {
margin: 1em 0em;
padding: 1em;
page-break-inside: avoid;
}
div.informalfigure p.title b,
div.informalexample p.title b,
div.informaltable p.title b,
div.figure p.title b,
div.example p.title b,
div.table p.title b{
padding-top: 0em;
margin-top: 0em;
font-size: 100%;
font-weight: normal;
}
.mediaobject .caption,
.mediaobject .caption p {
text-align: center;
font-size: 80%;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
.epigraph {
padding-left: 55%;
margin-bottom: 1em;
}
.epigraph p {
text-align: left;
}
.epigraph .quote {
font-style: italic;
}
.epigraph .attribution {
font-style: normal;
text-align: right;
}
span.application {
font-style: italic;
}
.programlisting {
font-family: monospace;
font-size: 80%;
white-space: pre;
margin: 1.33em 0em;
padding: 1.33em;
}
.tip,
.warning,
.caution,
.note {
margin-top: 1em;
margin-bottom: 1em;
}
/* force full width of table within div */
.tip table,
.warning table,
.caution table,
.note table {
border: none;
width: 100%;
}
.tip table th,
.warning table th,
.caution table th,
.note table th {
padding: 0.8em 0.0em 0.0em 0.0em;
margin : 0em 0em 0em 0em;
}
.tip p,
.warning p,
.caution p,
.note p {
margin-top: 0.5em;
margin-bottom: 0.5em;
padding-right: 1em;
text-align: left;
}
.acronym {
text-transform: uppercase;
}
b.keycap,
.keycap {
padding: 0.09em 0.3em;
margin: 0em;
}
.itemizedlist li {
clear: none;
}
.filename {
font-size: medium;
font-family: Courier, monospace;
}
div.navheader, div.heading{
position: absolute;
left: 0em;
top: 0em;
width: 100%;
background-color: #cdf;
width: 100%;
}
div.navfooter, div.footing{
position: fixed;
left: 0em;
bottom: 0em;
background-color: #eee;
width: 100%;
}
div.navheader td,
div.navfooter td {
font-size: 66%;
}
div.navheader table th {
/*font-family: Georgia, Times, serif;*/
/*font-size: x-large;*/
font-size: 80%;
}
div.navheader table {
border-left: 0em;
border-right: 0em;
border-top: 0em;
width: 100%;
}
div.navfooter table {
border-left: 0em;
border-right: 0em;
border-bottom: 0em;
width: 100%;
}
div.navheader table td a,
div.navfooter table td a {
color: #777;
text-decoration: none;
}
/* normal text in the footer */
div.navfooter table td {
color: black;
}
div.navheader table td a:visited,
div.navfooter table td a:visited {
color: #444;
}
/* links in header and footer */
div.navheader table td a:hover,
div.navfooter table td a:hover {
text-decoration: underline;
background-color: transparent;
color: #33a;
}
div.navheader hr,
div.navfooter hr {
display: none;
}
.qandaset tr.question td p {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
}
.qandaset tr.answer td p {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
}
.answer td {
padding-bottom: 1.5em;
}
.emphasis {
font-weight: bold;
}
/************* /
/ decorations /
/ *************/
.titlepage {
}
.part .title {
}
.subtitle {
border: none;
}
/*
h1 {
border: none;
}
h2 {
border-top: solid 0.2em;
border-bottom: solid 0.06em;
}
h3 {
border-top: 0em;
border-bottom: solid 0.06em;
}
h4 {
border: 0em;
border-bottom: solid 0.06em;
}
h5 {
border: 0em;
}
*/
.programlisting {
border: solid 1px;
}
div.figure,
div.table,
div.informalfigure,
div.informaltable,
div.informalexample,
div.example {
border: 1px solid;
}
.tip,
.warning,
.caution,
.note {
border: 1px solid;
}
.tip table th,
.warning table th,
.caution table th,
.note table th {
border-bottom: 1px solid;
}
.question td {
border-top: 1px solid black;
}
.answer {
}
b.keycap,
.keycap {
border: 1px solid;
}
div.navheader, div.heading{
border-bottom: 1px solid;
}
div.navfooter, div.footing{
border-top: 1px solid;
}
/********* /
/ colors /
/ *********/
body {
color: #333;
background: white;
}
a {
background: transparent;
}
a:hover {
background-color: #dedede;
}
h1,
h2,
h3,
h4,
h5,
h6,
h7,
h8 {
background-color: transparent;
}
hr {
border-color: #aaa;
}
.tip, .warning, .caution, .note {
border-color: #aaa;
}
.tip table th,
.warning table th,
.caution table th,
.note table th {
border-bottom-color: #aaa;
}
.warning {
background-color: #fea;
}
.caution {
background-color: #fea;
}
.tip {
background-color: #eff;
}
.note {
background-color: #dfc;
}
.glossary dl dt,
.variablelist dl dt,
.variablelist dl dt span.term {
color: #044;
}
div.figure,
div.table,
div.example,
div.informalfigure,
div.informaltable,
div.informalexample {
border-color: #aaa;
}
pre.programlisting {
color: black;
background-color: #fff;
border-color: #aaa;
border-width: 2px;
}
.guimenu,
.guilabel,
.guimenuitem {
background-color: #eee;
}
b.keycap,
.keycap {
background-color: #eee;
border-color: #999;
}
div.navheader {
border-color: black;
}
div.navfooter {
border-color: black;
}
/*********** /
/ graphics /
/ ***********/
/*
body {
background-image: url("images/body_bg.jpg");
background-attachment: fixed;
}
.navheader,
.note,
.tip {
background-image: url("images/note_bg.jpg");
background-attachment: fixed;
}
.warning,
.caution {
background-image: url("images/warning_bg.jpg");
background-attachment: fixed;
}
.figure,
.informalfigure,
.example,
.informalexample,
.table,
.informaltable {
background-image: url("images/figure_bg.jpg");
background-attachment: fixed;
}
*/
h1,
h2,
h3,
h4,
h5,
h6,
h7{
}
/*
Example of how to stick an image as part of the title.
div.article .titlepage .title
{
background-image: url("figures/white-on-black.png");
background-position: center;
background-repeat: repeat-x;
}
*/
div.preface .titlepage .title,
div.colophon .title,
div.chapter .titlepage .title,
div.article .titlepage .title
{
}
div.section div.section .titlepage .title,
div.sect2 .titlepage .title {
background: none;
}
h1.title {
background-color: transparent;
background-image: url("figures/yocto-project-bw.png");
background-repeat: no-repeat;
height: 256px;
text-indent: -9000px;
overflow:hidden;
}
h2.subtitle {
background-color: transparent;
text-indent: -9000px;
overflow:hidden;
width: 0px;
display: none;
}
/*************************************** /
/ pippin.gimp.org specific alterations /
/ ***************************************/
/*
div.heading, div.navheader {
color: #777;
font-size: 80%;
padding: 0;
margin: 0;
text-align: left;
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 50px;
background: url('/gfx/heading_bg.png') transparent;
background-repeat: repeat-x;
background-attachment: fixed;
border: none;
}
div.heading a {
color: #444;
}
div.footing, div.navfooter {
border: none;
color: #ddd;
font-size: 80%;
text-align:right;
width: 100%;
padding-top: 10px;
position: absolute;
bottom: 0px;
left: 0px;
background: url('/gfx/footing_bg.png') transparent;
}
*/
/****************** /
/ nasty ie tweaks /
/ ******************/
/*
div.heading, div.navheader {
width:expression(document.body.clientWidth + "px");
}
div.footing, div.navfooter {
width:expression(document.body.clientWidth + "px");
margin-left:expression("-5em");
}
body {
padding:expression("4em 5em 0em 5em");
}
*/
/**************************************** /
/ mozilla vendor specific css extensions /
/ ****************************************/
/*
div.navfooter, div.footing{
-moz-opacity: 0.8em;
}
div.figure,
div.table,
div.informalfigure,
div.informaltable,
div.informalexample,
div.example,
.tip,
.warning,
.caution,
.note {
-moz-border-radius: 0.5em;
}
b.keycap,
.keycap {
-moz-border-radius: 0.3em;
}
*/
table tr td table tr td {
display: none;
}
hr {
display: none;
}
table {
border: 0em;
}
.photo {
float: right;
margin-left: 1.5em;
margin-bottom: 1.5em;
margin-top: 0em;
max-width: 17em;
border: 1px solid gray;
padding: 3px;
background: white;
}
.seperator {
padding-top: 2em;
clear: both;
}
#validators {
margin-top: 5em;
text-align: right;
color: #777;
}
@media print {
body {
font-size: 8pt;
}
.noprint {
display: none;
}
}
.tip,
.note {
background: #91ae35;
color: #fff;
padding: 20px;
margin: 20px;
}
.tip h3,
.note h3 {
padding: 0em;
margin: 0em;
font-size: 2em;
font-weight: bold;
color: #fff;
}
.tip a,
.note a {
color: #fff;
text-decoration: underline;
}

View File

@@ -0,0 +1,8 @@
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl" />
<xsl:param name="generate.toc" select="'article nop'"></xsl:param>
</xsl:stylesheet>

View File

@@ -0,0 +1,365 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<article id='intro'>
<imagedata fileref="figures/yocto-project-transp.png" width="6in" depth="1in" align="right" scale="25" />
<section id='fake-title'>
<title>Yocto Project Quick Start</title>
</section>
<section id='welcome'>
<title>Welcome!</title>
<para>
Welcome to the Yocto Project!
The Yocto Project (YP) is an open-source collaboration project focused on embedded Linux
developers.
Amongst other things, YP uses the Poky build tool to construct complete Linux images.
</para>
<para>
This short document will give you some basic information about the environment as well
as let you experience it in its simplest form.
After reading this document you will have a basic understanding of what the Yocto Project is
and how to use some of its core components.
This document steps you through a simple example showing you how to build a small image
and run it using the QEMU emulator.
</para>
<para>
For complete information on the Yocto Project you should check out the
<ulink url='http://www.yoctoproject.org'>Yocto Project Website</ulink>.
You can find the latest builds, breaking news, full development documentation, and a
rich Yocto Project Development Community into which you can tap.
</para>
</section>
<section id='yp-intro'>
<title>Introducing the Yocto Project Development Environment</title>
<para>
The Yocto Project through the Poky build tool provides an open source development
environment targeting the ARM, MIPS, PowerPC and x86 architectures for a variety of
platforms including x86-64 and emulated ones.
You can use components from the the Yocto Project to design, develop, build, debug, simulate,
and test the complete software stack using Linux, the X Window System, GNOME Mobile-based
application frameworks, and Qt frameworks.
</para>
<para></para>
<para></para>
<mediaobject>
<imageobject>
<imagedata fileref="figures/yocto-environment.png"
format="PNG" align='center' scalefit='1' width="100%"/>
</imageobject>
<caption>
<para>The Yocto Project Development Environment</para>
</caption>
</mediaobject>
<para>
Yocto Project:
</para>
<itemizedlist>
<listitem>
<para>Provides a recent Linux kernel along with a set of system commands and libraries suitable for the embedded environment.</para>
</listitem>
<listitem>
<para>Makes available system components such as X11, Matchbox, GTK+, Pimlico, Clutter,
GuPNP and Qt (among others) so you can create a richer user interface experience on
devices that use displays or have a GUI.
For devices that don't have a GUI or display you simply would not employ these
components.</para>
</listitem>
<listitem>
<para>Creates a focused and stable core compatible with the OpenEmbedded
project with which you can easily and reliably build and develop.</para>
</listitem>
<listitem>
<para>Fully supports a wide range of hardware and device emulation through the QEMU
Emulator.</para>
</listitem>
</itemizedlist>
<para>
Yocto Project can generate images for many kinds of devices.
However, the standard example machines target QEMU full system emulation for x86, ARM, MIPS,
and PPC based architectures as well as specific hardware such as the Intel Desktop Board
DH55TC.
Because an image developed with Yocto Project can boot inside a QEMU emulator, the
development environment works nicely as a test platform for developing embedded software.
</para>
<para>
Another important Yocto Project feature is the Sato reference User Interface.
This optional GNOME mobile-based UI, which is intended for devices with
resolution but restricted size screens, sits neatly on top of a device using the
GNOME Mobile Stack providing a well defined user experience.
Implemented in its own layer, it makes it clear to developers how they can implement
their own UIs on top of Yocto Linux.
</para>
</section>
<section id='resources'>
<title>What You Need and How You Get It</title>
<para>
You need these things to develop in the Yocto Project environment:
</para>
<itemizedlist>
<listitem>
<para>A host system running a supported Linux distribution (i.e. recent releases of
Fedora, OpenSUSE, Debian, and Ubuntu).</para>
</listitem>
<listitem>
<para>The right packages.</para>
</listitem>
<listitem>
<para>A release of Yocto Project.</para>
</listitem>
</itemizedlist>
<section id='the-linux-distro'>
<title>The Linux Distribution</title>
<para>
This document assumes you are running a reasonably current Linux-based host system.
The examples work for both Debian-based and RPM-based distributions.
</para>
</section>
<section id='packages'>
<title>The Packages</title>
<para>
The packages you need for a Debian-based host are shown in the following command:
</para>
<literallayout class='monospaced'>
$ sudo apt-get install sed wget cvs subversion git-core coreutils \
unzip texi2html texinfo libsdl1.2-dev docbook-utils gawk \
python-pysqlite2 diffstat help2man make gcc build-essential \
g++ desktop-file-utils chrpath libgl1-mesa-dev libglu1-mesa-dev \
mercurial
</literallayout>
<para>
The packages you need for an RPM-based host like Fedora are shown in these commands:
</para>
<literallayout class='monospaced'>
$ sudo yum groupinstall "development tools"
$ sudo yum install python m4 make wget curl ftp hg tar bzip2 gzip \
unzip python-psyco perl texinfo texi2html diffstat openjade \
docbook-style-dsssl sed docbook-style-xsl docbook-dtds \
docbook-utils sed bc glibc-devel ccache pcre pcre-devel quilt \
groff linuxdoc-tools patch linuxdoc-tools cmake help2man \
perl-ExtUtils-MakeMaker tcl-devel gettext chrpath ncurses apr \
SDL-devel mesa-libGL-devel mesa-libGLU-devel
</literallayout>
<para>
<emphasis>NOTE:</emphasis> Packages vary in number and name for other Linux distributions.
The commands here should work. We are interested, though, to learn what works for you.
You can find more information for package requirements on common Linux distributions
at <ulink url="http://wiki.openembedded.net/index.php/OEandYourDistro"></ulink>.
However, you should be careful when using this information as the information applies
to old Linux distributions that are known to not work with a current Poky install.
</para>
</section>
<section id='releases'>
<title>Yocto Project Release</title>
<para>
The latest release images for the Yocto Project are kept at
<ulink url="http://yoctoproject.org/downloads/yoctolinux-0.9/"></ulink>.
Nightly and developmental builds are also maintained. However, for this
document a released version of Yocto Project is used.
</para>
</section>
</section>
<section id='test-run'>
<title>A Quick Test Run</title>
<para>
Now that you have your system requirements in order you can give Yocto Project a try.
This section presents some steps that let you do the following:
</para>
<itemizedlist>
<listitem>
<para>Build an image and run it in the emulator</para>
</listitem>
<listitem>
<para>Or, use a pre-built image and run it in the emulator</para>
</listitem>
</itemizedlist>
<section id='building-image'>
<title>Building an Image</title>
<para>
In the development environment you will need to build an image whenever you change hardware support, add or change system libraries, or add or change services that have dependencies.
</para>
<mediaobject>
<imageobject>
<imagedata fileref="figures/building-an-image.png" format="PNG" align='center' scalefit='1'/>
</imageobject>
<caption>
<para>Building an Image</para>
</caption>
</mediaobject>
<para>
Use the following commands from a shell on your Debian-based host to build your image.
The build creates an entire Linux system including the Toolchain from the source.
</para>
<para><emphasis>NOTE:</emphasis> The build process using Sato currently consumes
50GB of disk space.
To allow for variations in the build process and for future package expansion we
recommend 100GB of free disk space.
</para>
<para>
<literallayout class='monospaced'>
$ wget http://www.yoctoproject.org/downloads/poky/poky-laverne-4.0.tar.bz2
$ tar xjf poky-laverne-4.0.tar.bz2
$ source poky-4.0/poky-init-build-env poky-4.0-build
</literallayout>
</para>
<itemizedlist>
<listitem><para>The first two commands extract the Yocto Project files from the
release area and place them into a subdirectory of your current directory
(<command>poky-4.0-build</command> in this example).</para></listitem>
<listitem><para>The <command>$ source</command> command creates the directory and places
you there.
The build directory contains all the object files used during the build.
The default build directory is <command>poky-4.0-build</command>.
Note that you can change the target architecture by editing the
<command>&lt;build_directory&gt;/conf/local.conf</command> file.
By default the target architecture is qemux86.</para></listitem>
</itemizedlist>
<para>
Now might be a good time to edit the <command>conf/local.conf</command>
file.
The defaults should all be fine. However, you might want to look at the variables
BB_NUMBER_THREADS and PARALLEL_MAKE.
By default, these variables are commented out.
</para>
<para>
Continue with the following command to build the OS image for the target, which is
poky-image-sato in this example.
<literallayout class='monospaced'>
$ bitbake poky-image-sato
</literallayout>
<emphasis>NOTE:</emphasis> If you are running Fedora 14 or another distribution
with GNU make 3.82 you might have to run the following two
<command>$bitbake</command> commands instead:
<literallayout class='monospaced'>
$ bitbake make-native
$ bitbake poky-image-sato
</literallayout>
The final command runs the image:
<literallayout class='monospaced'>
$ poky-qemu qemux86
</literallayout>
The build process could take several hours the first time you run it.
Depending on the number of processor and cores, the amount or RAM, the speed of your
internet connection and other factors.
After the initial build, subsequent builds run much faster.
</para>
</section>
<section id='using-pre-built'>
<title>Using a Pre-Built Binaries and QEMU</title>
<para>
If hardware, libraries and services are stable you can use a pre-built image of the image, kernel and toolchain and just run it on the target using the emulator QEMU.
This situation is perfect for developing application software.
</para>
<para></para>
<para></para>
<para></para>
<mediaobject>
<imageobject>
<imagedata fileref="figures/using-a-pre-built-image.png" format="PNG" align='center' scalefit='1'/>
</imageobject>
<caption>
<para>Using a Pre-Built Image</para>
</caption>
</mediaobject>
<para>
For this scenario you need to do three things:
</para>
<itemizedlist>
<listitem>
<para>
Install the standalone Yocto toolchain tarball
</para>
</listitem>
<listitem>
<para>
Download the pre-built kernel that will run on QEMU.
You need to be sure to get the QEMU image that matches your target machines architecture (e.g. x86, ARM, etc.).
</para>
</listitem>
<listitem>
<para>
Download and decompress the file image system.
</para>
</listitem>
</itemizedlist>
<para>
You can download the pre-built toolchain which includes the poky-qemu script and support files from <ulink url='http://yoctoproject.org/downloads/yoctolinux-0.9/toolchain/'></ulink>. These are available for i586 (32-bit) and x86_64 (64 bit) host machines, targeting each of the 5 supported target architectures. The tarballs are self contained and install into /opt/poky.
Use these commands to install the toolchain tarball (taking the 64 bit host, 32 bit i586 target as an example):
</para>
<para>
<literallayout class='monospaced'>
$ cd /
$ sudo tar -xvjf yoctolinux-eglibc-x86_64-i586-toolchain-sdk-0.9.tar.bz2
</literallayout>
</para>
<para>
You can download the pre-built Linux kernel and the file image system from <ulink url='http://yoctoproject.org/downloads/yoctolinux-0.9/'></ulink>.
The kernel and file image system have the following forms, respectively:
</para>
<literallayout class='monospaced'>
*zImage*qemu*.bin
poky-image-*-qemu*.ext2.bz2
</literallayout>
<para>
You must decompress the file image system using the following command:
</para>
<literallayout class='monospaced'>
$ bzip2 -d
</literallayout>
<para>
You can now start the emulator using these commands (assuming an 32 bit i586 target):
</para>
<literallayout class='monospaced'>
$ source /opt/poky/environment-setup-i586-poky-linux
$ poky-qemu &lt;<emphasis>kernel</emphasis>&gt; &lt;<emphasis>image</emphasis>&gt;
</literallayout>
</section>
</section>
</article>
<!--
vim: expandtab tw=80 ts=4
-->

View File

@@ -135,7 +135,6 @@ python base_do_setscene () {
bb.build.make_stamp("do_setscene", d)
}
do_setscene[selfstamp] = "1"
do_setscene[dirs] = "${PSEUDO_LOCALSTATEDIR}"
addtask setscene before do_fetch
addtask fetch
@@ -438,6 +437,9 @@ base_do_package() {
addtask build after do_populate_sysroot
do_build = ""
do_build[func] = "1"
do_build () {
:
}
python () {
import exceptions, string
@@ -483,6 +485,7 @@ python () {
deps.append('virtual/fakeroot-native:do_populate_sysroot')
bb.data.setVarFlag('do_package', 'depends', " ".join(deps),d)
bb.data.setVarFlag('do_package', 'fakeroot', 1, d)
bb.data.setVarFlag('do_package_setscene', 'fakeroot', 1, d)
source_mirror_fetch = bb.data.getVar('SOURCE_MIRROR_FETCH', d, 0)
if not source_mirror_fetch:
need_host = bb.data.getVar('COMPATIBLE_HOST', d, 1)
@@ -621,4 +624,32 @@ def check_gcc3(data):
return False
addtask cleanall after do_clean
python do_cleanall() {
sstate_clean_cachefiles(d)
localdata = bb.data.createCopy(d)
bb.data.update_data(localdata)
dl_dir = bb.data.getVar('DL_DIR', localdata, True)
dl_dir = os.path.realpath(dl_dir)
src_uri = bb.data.getVar('SRC_URI', localdata, True)
if not src_uri:
return
for url in src_uri.split():
try:
local = bb.data.expand(bb.fetch.localpath(url, localdata), localdata)
except bb.MalformedUrl, e:
raise FuncFailed('Unable to generate local path for malformed uri: %s' % e)
if local is None:
continue
local = os.path.realpath(local)
if local.startswith(dl_dir):
bb.note("Removing %s*" % local)
oe.path.remove(local + "*")
}
do_cleanall[nostamp] = "1"
EXPORT_FUNCTIONS do_setscene do_fetch do_unpack do_configure do_compile do_install do_package

View File

@@ -39,7 +39,7 @@ python () {
# If we don't do this we try and run the mapping hooks while parsing which is slow
# bitbake should really provide something to let us know this...
if bb.data.getVar('__RUNQUEUE_DO_NOT_USE_EXTERNALLY', d, True) is not None:
if bb.data.getVar('BB_WORKERCONTEXT', d, True) is not None:
runtime_mapping_rename("PACKAGE_INSTALL", d)
runtime_mapping_rename("PACKAGE_INSTALL_ATTEMPTONLY", d)
}

View File

@@ -70,8 +70,11 @@ def base_get_metadata_git_branch(path, d):
return "<unknown>"
def base_get_metadata_git_revision(path, d):
rev = os.popen("cd %s; git log -n 1 --pretty=oneline -- 2>&1" % path).read().split(" ")[0]
if len(rev) != 0:
return rev
f = os.popen("cd %s; git log -n 1 --pretty=oneline -- 2>&1" % path)
data = f.read()
if f.close() is None:
rev = data.split(" ")[0]
if len(rev) != 0:
return rev
return "<unknown>"

View File

@@ -280,7 +280,6 @@ python () {
deps.append('dpkg-native:do_populate_sysroot')
deps.append('virtual/fakeroot-native:do_populate_sysroot')
bb.data.setVarFlag('do_package_write_deb', 'depends', " ".join(deps), d)
bb.data.setVarFlag('do_package_write_ipk', 'fakeroot', "1", d)
}
python do_package_write_deb () {

View File

@@ -325,6 +325,7 @@ python () {
deps.append('virtual/fakeroot-native:do_populate_sysroot')
bb.data.setVarFlag('do_package_write_ipk', 'depends', " ".join(deps), d)
bb.data.setVarFlag('do_package_write_ipk', 'fakeroot', "1", d)
bb.data.setVarFlag('do_package_write_ipk_setscene', 'fakeroot', "1", d)
}
python do_package_write_ipk () {

View File

@@ -437,18 +437,13 @@ python do_package_rpm () {
workdir = bb.data.getVar('WORKDIR', d, True)
outdir = bb.data.getVar('DEPLOY_DIR_IPK', d, True)
dvar = bb.data.getVar('D', d, True)
tmpdir = bb.data.getVar('TMPDIR', d, True)
pkgd = bb.data.getVar('PKGD', d, True)
pkgdest = bb.data.getVar('PKGDEST', d, True)
if not workdir or not outdir or not dvar or not tmpdir:
if not workdir or not outdir or not pkgd or not tmpdir:
bb.error("Variables incorrectly set, unable to package")
return
if not os.path.exists(dvar):
bb.debug(1, "Nothing installed, nothing to do")
return
packages = bb.data.getVar('PACKAGES', d, True)
if not packages or packages == '':
bb.debug(1, "No packages; nothing to do")
@@ -550,6 +545,7 @@ python () {
deps.append('virtual/fakeroot-native:do_populate_sysroot')
bb.data.setVarFlag('do_package_write_rpm', 'depends', " ".join(deps), d)
bb.data.setVarFlag('do_package_write_rpm', 'fakeroot', 1, d)
bb.data.setVarFlag('do_package_write_rpm_setscene', 'fakeroot', 1, d)
}
SSTATETASKS += "do_package_write_rpm"

View File

@@ -11,7 +11,9 @@ BB_DEFAULT_TASK = "rm_work_all"
do_rm_work () {
# Ensure pseudo is no longer active
${FAKEROOT} -S
if [ -d ${WORKDIR}/pseudo ]; then
${FAKEROOT} -S
fi
cd ${WORKDIR}
for dir in *
do

View File

@@ -44,11 +44,12 @@ def sstate_init(name, d):
ss['lockfiles'] = []
return ss
def sstate_state_fromvars(d):
task = bb.data.getVar('BB_CURRENTTASK', d, True)
if not task:
bb.fatal("sstate code running without task context?!")
task = task.replace("_setscene", "")
def sstate_state_fromvars(d, task = None):
if task is None:
task = bb.data.getVar('BB_CURRENTTASK', d, True)
if not task:
bb.fatal("sstate code running without task context?!")
task = task.replace("_setscene", "")
name = bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-name', d), d)
inputs = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-inputdirs', d) or "", d)).split()
@@ -153,11 +154,25 @@ def sstate_installpkg(ss, d):
sstate_install(ss, d)
for plain in ss['plaindirs']:
bb.mkdirhier(sstateinst + plain)
oe.path.copytree(sstateinst + plain, bb.data.getVar('WORKDIR', d, True) + plain)
workdir = d.getVar('WORKDIR', True)
src = sstateinst + "/" + plain.replace(workdir, '')
dest = plain
bb.mkdirhier(src)
bb.mkdirhier(dest)
oe.path.copytree(src, dest)
return True
def sstate_clean_cachefile(ss, d):
sstatepkg = bb.data.getVar('SSTATE_PKG', d, True) + '_' + ss['name'] + ".tgz"
bb.note("Removing %s" % sstatepkg)
oe.path.remove(sstatepkg)
def sstate_clean_cachefiles(d):
for task in (bb.data.getVar('SSTATETASKS', d, True) or "").split():
ss = sstate_state_fromvars(d, task[3:])
sstate_clean_cachefile(ss, d)
def sstate_clean_manifest(manifest, d):
import oe.path
@@ -263,6 +278,9 @@ def pstaging_fetch(sstatepkg, d):
dldir = bb.data.expand("${SSTATE_DIR}", localdata)
srcuri = "file://" + os.path.basename(sstatepkg)
bb.mkdirhier(dldir)
bb.data.setVar('DL_DIR', dldir, localdata)
bb.data.setVar('PREMIRRORS', mirrors, localdata)
bb.data.setVar('SRC_URI', srcuri, localdata)
@@ -270,8 +288,12 @@ def pstaging_fetch(sstatepkg, d):
# Try a fetch from the sstate mirror, if it fails just return and
# we will build the package
try:
bb.fetch.init([srcuri], pd)
bb.fetch.go(pd, [srcuri])
bb.fetch.init([srcuri], localdata)
bb.fetch.go(localdata, [srcuri])
# Need to optimise this, if using file:// urls, the fetcher just changes the local path
# For now work around by symlinking
if bb.data.expand(bb.fetch.localpath(srcuri, localdata), localdata) != sstatepkg:
os.symlink(bb.data.expand(bb.fetch.localpath(srcuri, localdata), localdata), sstatepkg)
except:
pass
@@ -362,10 +384,10 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d):
srcuri = "file://" + os.path.basename(sstatefile)
bb.data.setVar('SRC_URI', srcuri, localdata)
bb.note(str(srcuri))
#bb.note(str(srcuri))
try:
bb.fetch.init(srcuri.split(), d)
bb.fetch.init(srcuri.split(), localdata)
bb.fetch.checkstatus(localdata)
ret.append(task)
except:

View File

@@ -171,7 +171,7 @@ DESCRIPTION_${PN}-dbg ?= "${SUMMARY_${PN}-dbg}"
DESCRIPTION_${PN}-dev ?= "${SUMMARY_${PN}-dev}"
DESCRIPTION_${PN}-doc ?= "${SUMMARY_${PN}-doc}"
LICENSE = "INVALID"
MAINTAINER = "Poky Team <poky@openedhand.com>"
MAINTAINER = "Yocto Project Team <poky@yoctoproject.org>"
HOMEPAGE = "unknown"
# Package dependencies and provides.
@@ -546,6 +546,7 @@ SRC_URI = "file://${FILE}"
PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/"
FAKEROOT = "PSEUDO_PREFIX=${STAGING_DIR_NATIVE}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_NOSYMLINKEXP=1 pseudo"
FAKEROOTENV = "PSEUDO_PREFIX=${STAGING_DIR_NATIVE}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_NOSYMLINKEXP=1 LD_PRELOAD=libpseudo.so LD_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE}/pseudo/lib64:${STAGING_LIBDIR_NATIVE}/pseudo/lib"
FAKEROOTDIRS = "${PSEUDO_LOCALSTATEDIR}"
PREFERRED_PROVIDER_virtual/fakeroot-native ?= "pseudo-native"

View File

@@ -1,11 +1,11 @@
#@TYPE: Distribution#@NAME: Poky
#@DESCRIPTION: Distribution configuration for OpenedHand (Poky)
#@DESCRIPTION: Distribution configuration for the Yocto Project build by Poky
DISTRO = "poky"
DISTRO_NAME = "OpenedHand Linux (Poky)"
DISTRO_VERSION = "3.3+snapshot-${DATE}"
DISTRO_NAME = "Yocto Linux (Built by Poky 4.0.1)"
DISTRO_VERSION = "0.9"
MAINTAINER = "Poky <poky@openedhand.com>"
MAINTAINER = "Poky <poky@yoctoproject.org>"
USER_CLASSES ?= ""

View File

@@ -159,3 +159,8 @@ ENABLE_BINARY_LOCALE_GENERATION = "1"
# wish to perform the time-consuming step of generating all LIBC locales.
# WARNING: this may break localisation!
#GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
# Default to not build 32 bit libs on 64 bit systems, comment this
# out if that is desired
NO32LIBS = "1"

View File

@@ -2,7 +2,7 @@
#@DESCRIPTION: Machine configuration for running
TARGET_ARCH = "powerpc"
PACKAGE_EXTRA_ARCHS = "ppce300"
PACKAGE_EXTRA_ARCHS = "ppc603e"
TARGET_FPU = "spe"
require conf/machine/include/tune-ppc603e.inc

View File

@@ -17,6 +17,10 @@ AR_append = " r"
CFLAG = "${@base_conditional('SITEINFO_ENDIANESS', 'le', '-DL_ENDIAN', '-DB_ENDIAN', d)} \
-DTERMIO ${FULL_OPTIMIZATION} -Wall"
# Avoid binaries being marked as requiring an executable stack (which causes
# issues with SELinux on the host)
CFLAG_append_virtclass-native = " -Wa,--noexecstack"
# -02 does not work on mipsel: ssh hangs when it tries to read /dev/urandom
CFLAG_mtx-1 := "${@'${CFLAG}'.replace('-O2', '')}"
CFLAG_mtx-2 := "${@'${CFLAG}'.replace('-O2', '')}"

View File

@@ -1,6 +1,6 @@
require openssl.inc
PR = "r0"
PR = "r2"
SRC_URI += "file://debian/ca.patch \
file://debian/config-hurd.patch;apply=no \
file://debian/debian-targets.patch \

View File

@@ -0,0 +1,56 @@
From ef6c6d8cfef071435ccf275ad404a501626b706c Mon Sep 17 00:00:00 2001
From: Thomas Chou <thomas@wytron.com.tw>
Date: Tue, 19 Oct 2010 07:17:12 +0000
Subject: mkmakefile: make 3.82 fix
Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
---
Index: busybox-1.16.2/scripts/mkmakefile
===================================================================
--- busybox-1.16.2.orig/scripts/mkmakefile
+++ busybox-1.16.2/scripts/mkmakefile
@@ -31,6 +31,9 @@ all:
Makefile:;
-\$(filter-out all Makefile,\$(MAKECMDGOALS)) %/:
+\$(filter-out all Makefile,\$(MAKECMDGOALS)):
+ \$(MAKE) -C \$(KERNELSRC) O=\$(KERNELOUTPUT) \$@
+
+%/:
\$(MAKE) -C \$(KERNELSRC) O=\$(KERNELOUTPUT) \$@
EOF
Index: busybox-1.16.2/Makefile
===================================================================
--- busybox-1.16.2.orig/Makefile
+++ busybox-1.16.2/Makefile
@@ -428,11 +428,15 @@ ifeq ($(config-targets),1)
-include $(srctree)/arch/$(ARCH)/Makefile
export KBUILD_DEFCONFIG
-config %config: scripts_basic outputmakefile FORCE
+config: scripts_basic outputmakefile FORCE
$(Q)mkdir -p include
$(Q)$(MAKE) $(build)=scripts/kconfig $@
$(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
+%config: scripts_basic outputmakefile FORCE
+ $(Q)mkdir -p include
+ $(Q)$(MAKE) $(build)=scripts/kconfig $@
+ $(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
else
# ===========================================================================
# Build targets only - this includes busybox, arch specific targets, clean
@@ -1280,7 +1284,10 @@ endif
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
# Modules
-/ %/: prepare scripts FORCE
+%/: prepare scripts FORCE
+ $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
+ $(build)=$(build-dir)
+/: prepare scripts FORCE
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir)
%.ko: prepare scripts FORCE

View File

@@ -1,5 +1,5 @@
require busybox.inc
PR = "r0"
PR = "r1"
SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
file://udhcpscript.patch \
@@ -8,6 +8,7 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
file://get_header_tar.patch \
file://busybox-appletlib-dependency.patch \
file://run-parts.in.usr-bin.patch \
file://make-382-fix.patch \
file://find-touchscreen.sh \
file://busybox-cron \
file://busybox-httpd \

View File

@@ -0,0 +1,25 @@
Make 3.82, as shipped with Fedora 14, fixes some holes in the parser which in
turn breaks behaviour of some Makefiles. Most notably eglibc's.
http://www.mail-archive.com/bug-make@gnu.org/msg06220.html
Fix back-ported from glibc/eglibc revision control.
JL 13/10/10
Index: libc/manual/Makefile
===================================================================
--- libc.orig/manual/Makefile
+++ libc/manual/Makefile
@@ -243,7 +243,10 @@ ifdef objpfx
.PHONY: stubs
stubs: $(objpfx)stubs
endif
-$(objpfx)stubs ../po/manual.pot $(objpfx)stamp%:
+$(objpfx)stubs ../po/manual.pot:
+ $(make-target-directory)
+ touch $@
+$(objpfx)stamp%:
$(make-target-directory)
touch $@

View File

@@ -2,7 +2,7 @@ require eglibc.inc
DEPENDS += "gperf-native"
FILESPATHPKG =. "eglibc-svn:"
PR = "r9"
PR = "r10"
EGLIBC_BRANCH="eglibc-2_12"
SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http \
@@ -11,7 +11,8 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http
file://shorten-build-commands.patch \
file://mips-rld-map-check.patch \
file://etc/ld.so.conf \
file://generate-supported.mk"
file://generate-supported.mk \
file://fix-for-make-3.82.diff"
SRC_URI_append_virtclass-nativesdk = " file://ld-search-order.patch"
S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
B = "${WORKDIR}/build-${TARGET_SYS}"

View File

@@ -0,0 +1,20 @@
In native builds, qemu can fail to find zlib development files in the native
sysroot and the build machine might not have zlib-dev packages installed.
Add CFLAGS to qemu's CFLAGS which in the native case means BUILD_CFLAGS are
added and files in the sysroot can be found.
Patch from Paul Eggleton, Comments by RP 28/11/10
Index: qemu-0.12.4/configure
===================================================================
--- qemu-0.12.4.orig/configure
+++ qemu-0.12.4/configure
@@ -99,6 +99,7 @@ QEMU_CFLAGS="-Wstrict-prototypes -Wredun
QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
QEMU_CFLAGS="-U_FORTIFY_SOURCE $QEMU_CFLAGS"
QEMU_CFLAGS="-I. -I\$(SRC_PATH) $QEMU_CFLAGS"
+QEMU_CFLAGS="$QEMU_CFLAGS $CFLAGS"
LDFLAGS="-g $LDFLAGS"
gcc_flags="-Wold-style-declaration -Wold-style-definition"

View File

@@ -1,6 +1,6 @@
require qemu.inc
PR = "r22"
PR = "r23"
FILESPATH = "${FILE_DIRNAME}/qemu-${PV}"
FILESDIR = "${WORKDIR}"
@@ -21,6 +21,7 @@ SRC_URI = "\
file://arm-cp15-fix.patch \
file://cursor-shadow-fix.patch \
file://vmware-vga-fifo-rewind.patch \
file://fix-configure-checks.patch \
file://powerpc_rom.bin"
do_install_append () {

View File

@@ -5,7 +5,8 @@ LICENSE = "GPLv2"
LIC_CHKSUM_FILES = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRC_URI = "http://download.savannah.gnu.org/releases/quilt/quilt-${PV}.tar.gz \
file://install.patch"
file://install.patch \
file://gnu_patch_test_fix.patch"
inherit autotools

View File

@@ -0,0 +1,19 @@
# quilt's configure tosses an error with patch @ GNU patch 2.6.1.81-5b68
#
# Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
--- quilt-0.48/configure 2010-11-03 11:50:55.280329802 -0700
+++ quilt-0.48/configure 2010-11-03 11:52:43.705354080 -0700
@@ -5896,7 +5896,12 @@
echo $ECHO_N "checking the version of $PATCH... $ECHO_C" >&6; }
if $PATCH --version 2> /dev/null | grep GNU >/dev/null; then
set -- `$PATCH --version 2> /dev/null`
- patch_version=$2
+ #
+ if test x$1 = xGNU ; then
+ patch_version=$3
+ else
+ patch_version=$2
+ fi
{ echo "$as_me:$LINENO: result: $patch_version" >&5
echo "${ECHO_T}$patch_version" >&6; }
saved_IFS=$IFS; IFS='.'

View File

@@ -0,0 +1,17 @@
Fix for stricter Makefile parser in Make 3.82 take from Gentoo bugzilla:
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-process/procps/files/procps-3.2.8%2Bgmake-3.82.patch?revision=1.1
Index: procps-3.2.8/Makefile
===================================================================
--- procps-3.2.8.orig/Makefile
+++ procps-3.2.8/Makefile
@@ -174,7 +174,8 @@ INSTALL := $(BINFILES) $(MANFILES)
# want this rule first, use := on ALL, and ALL not filled in yet
all: do_all
--include */module.mk
+-include proc/module.mk
+-include ps/module.mk
do_all: $(ALL)

View File

@@ -1,6 +1,6 @@
require procps.inc
PR = "r9"
PR = "r10"
inherit update-rc.d update-alternatives
@@ -16,6 +16,7 @@ SRC_URI += "file://procmodule.patch;patch=1 \
file://linux-limits.patch;patch=1 \
file://sysctl.conf \
file://procps.init \
file://procps-3.2.8+gmake-3.82.patch \
"
FILES = "${bindir}/top.${PN} ${base_bindir}/ps.${PN} ${bindir}/uptime.${PN} ${base_bindir}/kill.${PN} \

View File

@@ -14,8 +14,8 @@ Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Index: linux-2.6.34/include/linux/connector.h
===================================================================
--- linux-2.6.34.orig/include/linux/connector.h 2010-09-30 14:15:25.000000000 +0800
+++ linux-2.6.34/include/linux/connector.h 2010-09-30 14:15:43.000000000 +0800
--- linux-2.6.34.orig/include/linux/connector.h
+++ linux-2.6.34/include/linux/connector.h
@@ -48,7 +48,7 @@
/*
* Maximum connector's message size.

View File

@@ -0,0 +1,36 @@
Index: linux-2.6.34/arch/powerpc/Makefile
===================================================================
--- linux-2.6.34.orig/arch/powerpc/Makefile
+++ linux-2.6.34/arch/powerpc/Makefile
@@ -158,9 +158,10 @@ drivers-$(CONFIG_OPROFILE) += arch/power
# Default to zImage, override when needed
all: zImage
-BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% simpleImage.%
+BOOT_TARGETS1 = zImage zImage.initrd uImage
+BOOT_TARGETS2 = zImage% dtbImage% treeImage.% cuImage.% simpleImage.%
-PHONY += $(BOOT_TARGETS)
+PHONY += $(BOOT_TARGETS1) $(BOOT_TARGETS2)
boot := arch/$(ARCH)/boot
@@ -175,10 +176,16 @@ relocs_check: arch/powerpc/relocs_check.
zImage: relocs_check
endif
-$(BOOT_TARGETS): vmlinux
+$(BOOT_TARGETS1): vmlinux
$(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
-bootwrapper_install %.dtb:
+$(BOOT_TARGETS2): vmlinux
+ $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
+
+bootwrapper_install:
+ $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
+
+%.dtb:
$(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
define archhelp

View File

@@ -2,11 +2,12 @@ require linux-libc-headers.inc
INHIBIT_DEFAULT_DEPS = "1"
DEPENDS += "unifdef-native"
PR = "r1"
PR = "r2"
SRC_URI += "file://hayes-gone.patch \
file://ppc_glibc_build_fix.patch \
file://connector-msg-size-fix.patch"
file://ppc_glibc_build_fix.patch \
file://make-382.patch \
file://connector-msg-size-fix.patch"
S = "${WORKDIR}/linux-${PV}"

View File

@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
DEPENDS += "gst-plugins-base libmusicbrainz tremor"
PR = "r2"
PR = "r3"
inherit gettext

View File

@@ -10,7 +10,7 @@ DEPENDS += "virtual/libx11 alsa-lib freetype gnome-vfs liboil libogg libvorbis l
RDEPENDS += "gnome-vfs-plugin-file gnome-vfs-plugin-http gnome-vfs-plugin-ftp \
gnome-vfs-plugin-sftp"
PR = "r1"
PR = "r2"
inherit gettext

View File

@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
DEPENDS += "gst-plugins-base gconf cairo jpeg libpng gtk+ zlib libid3tag flac \
speex"
PR = "r0"
PR = "r1"
inherit gettext

View File

@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
file://gst/mpegstream/gstmpegparse.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9"
DEPENDS += "gst-plugins-base libid3tag libmad mpeg2dec liba52 lame"
PR = "r0"
PR = "r1"
inherit gettext

View File

@@ -7,7 +7,10 @@ DEPENDS = "gstreamer"
inherit autotools pkgconfig
SRC_URI = "http://gstreamer.freedesktop.org/src/${PN}/${PN}-${PV}.tar.bz2"
FILESPATH =. "${FILE_DIRNAME}/gst-plugins:"
SRC_URI = "http://gstreamer.freedesktop.org/src/${PN}/${PN}-${PV}.tar.bz2 \
file://make-382.patch"
EXTRA_OECONF = "--disable-valgrind --disable-debug --disable-examples "

View File

@@ -0,0 +1,25 @@
Index: gst-plugins-base-0.10.29/common/gtk-doc-plugins.mak
===================================================================
--- gst-plugins-base-0.10.29.orig/common/gtk-doc-plugins.mak
+++ gst-plugins-base-0.10.29/common/gtk-doc-plugins.mak
@@ -352,7 +352,7 @@ dist-hook: dist-check-gtkdoc dist-hook-l
-cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
-cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
cd $(distdir) && rm -f $(DISTCLEANFILES)
- -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
+ -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
.PHONY : dist-hook-local docs
Index: gst-plugins-base-0.10.29/common/gtk-doc.mak
===================================================================
--- gst-plugins-base-0.10.29.orig/common/gtk-doc.mak
+++ gst-plugins-base-0.10.29/common/gtk-doc.mak
@@ -232,6 +232,6 @@ dist-hook: dist-check-gtkdoc dist-hook-l
-cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
-cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
cd $(distdir) && rm -f $(DISTCLEANFILES)
- -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
+ -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
.PHONY : dist-hook-local docs

View File

@@ -0,0 +1,32 @@
The whitespaces instead of tabs here cause the new, stricter, parser in make
3.82 to barf on the doc makefiles.
This patch should no longer be required in more recent gstreamer version
JL - 14/12/10
Index: gstreamer-0.10.29/common/gtk-doc.mak
===================================================================
--- gstreamer-0.10.29.orig/common/gtk-doc.mak
+++ gstreamer-0.10.29/common/gtk-doc.mak
@@ -232,6 +232,6 @@ dist-hook: dist-check-gtkdoc dist-hook-l
-cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
-cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
cd $(distdir) && rm -f $(DISTCLEANFILES)
- -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
+ -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
.PHONY : dist-hook-local docs
Index: gstreamer-0.10.29/common/gtk-doc-plugins.mak
===================================================================
--- gstreamer-0.10.29.orig/common/gtk-doc-plugins.mak
+++ gstreamer-0.10.29/common/gtk-doc-plugins.mak
@@ -352,7 +352,7 @@ dist-hook: dist-check-gtkdoc dist-hook-l
-cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
-cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
cd $(distdir) && rm -f $(DISTCLEANFILES)
- -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
+ -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
.PHONY : dist-hook-local docs

View File

@@ -9,11 +9,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \
file://gst/gst.h;beginline=1;endline=21;md5=8e5fe5e87d33a04479fde862e238eaa4"
DEPENDS = "glib-2.0 gettext libxml2 bison-native flex-native"
PR = "r0"
PR = "r1"
SRC_URI = "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.bz2 \
file://check_fix.patch;patch=1 \
file://gst-inspect-check-error.patch;patch=1"
file://check_fix.patch \
file://gst-inspect-check-error.patch \
file://make-382.patch"
inherit autotools pkgconfig

View File

@@ -4,7 +4,9 @@ BUGTRACKER = "https://trac.xiph.org/newticket"
SECTION = "libs"
LICENSE = "BSD"
PR = "r0"
DEPENDS = "libogg"
PR = "r1"
SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2 \
file://no-docs.patch"

View File

@@ -0,0 +1,11 @@
Index: libowl-av/Makefile.am
===================================================================
--- libowl-av.orig/Makefile.am
+++ libowl-av/Makefile.am
@@ -14,5 +14,5 @@ EXTRA_DIST = libowl-av.pc.in libowl-av.v
MAINTAINERCLEANFILES = aclocal.m4 compile config.guess config.sub configure depcomp intltool-extract intltool-merge intltool-update install-sh ltmain.sh Makefile.in missing
snapshot:
- $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"`
+ $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"`

View File

@@ -13,11 +13,12 @@ RDEPENDS = "gst-meta-base"
RRECOMMENDS = "gst-meta-audio gst-meta-video"
PV = "0.0+svnr${SRCREV}"
PR = "r4"
PR = "r5"
S = "${WORKDIR}/${PN}"
SRC_URI = "svn://svn.o-hand.com/repos/misc/trunk;module=${PN};proto=http \
file://gst_change_state.patch"
file://gst_change_state.patch \
file://make-382.patch"
inherit autotools pkgconfig

View File

@@ -0,0 +1,15 @@
Make 3.82 is much stricter and demands tabs. Obey.
JL - 15/12/10
Index: video/Makefile.am
===================================================================
--- video.orig/Makefile.am
+++ video/Makefile.am
@@ -4,5 +4,5 @@ SUBDIRS = src
MAINTAINERCLEANFILES = aclocal.m4 compile config.guess config.sub configure depcomp intltool-extract intltool-merge intltool-update install-sh ltmain.sh Makefile.in missing
snapshot:
- $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"`
+ $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"`

View File

@@ -21,7 +21,8 @@ SRC_URI = "svn://svn.o-hand.com/repos/misc/trunk;module=video;proto=http \
file://stock_volume-min.png \
file://stock_volume-med.png \
file://stock_volume-max.png \
file://owl-video-widget.desktop"
file://owl-video-widget.desktop \
file://make-382.patch"
inherit autotools pkgconfig

View File

@@ -0,0 +1,14 @@
Fix for stricter parser in make 3.82. This fix has been pushed to upstream git.
JL - 15/12/10
Index: git/Makefile.am
===================================================================
--- git.orig/Makefile.am
+++ git/Makefile.am
@@ -11,4 +11,4 @@ DISTCLEANFILES = $(INTLTOOL_BUILT)
MAINTAINERCLEANFILES = aclocal.m4 compile config.guess config.sub configure depcomp $(INTLTOOL_BUILT:=.in) install-sh ltmain.sh mkinstalldirs Makefile.in missing
snapshot:
- $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"`
+ $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"`

View File

@@ -6,11 +6,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://src/contacts-gtk.c;endline=23;md5=e1ee9b9e72045f2d3aa44cf17313b46e"
PV = "0.12+git${SRCPV}"
PR = "r0"
PR = "r1"
S = "${WORKDIR}/git"
SRC_URI =+ "git://git.gnome.org/${PN};protocol=git"
SRC_URI =+ "git://git.gnome.org/${PN};protocol=git \
file://make-382.patch"
S = "${WORKDIR}/git"

View File

@@ -0,0 +1,16 @@
Make 3.82 is offended by the use of spaces instead of tabs. This has been fixed
in upstream git.
JL - 15/12/10
Index: git/Makefile.am
===================================================================
--- git.orig/Makefile.am
+++ git/Makefile.am
@@ -7,5 +7,5 @@ DISTCLEANFILES = intltool-extract intlto
MAINTAINERCLEANFILES = $(DISTCLEANFILES) aclocal.m4 compile config.guess config.sub configure depcomp install-sh ltmain.sh Makefile.in missing
snapshot:
- $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"`
+ $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"`

View File

@@ -6,8 +6,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
file://src/gconf-bridge.c;endline=22;md5=ad7626c6daf4aec590474a243f4912fa"
PV = "0.4.11+git${SRCPV}"
PR = "r0"
PR = "r1"
S = "${WORKDIR}/git"
SRC_URI = "git://git.gnome.org/${PN};protocol=git"
SRC_URI = "git://git.gnome.org/${PN};protocol=git \
file://make-382.patch"

View File

@@ -0,0 +1,15 @@
Make 3.82 does not allow 8 spaces instead of a tab
JL - 15/12/10
Index: webkit/Makefile.am
===================================================================
--- webkit.orig/Makefile.am
+++ webkit/Makefile.am
@@ -5,5 +5,5 @@ SUBDIRS = src data
MAINTAINERCLEANFILES = aclocal.m4 compile config.guess config.sub configure depcomp install-sh ltmain.sh Makefile.in missing
snapshot:
- $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"`
+ $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"`

View File

@@ -8,10 +8,11 @@ SECTION = "x11"
DEPENDS = "libxml2 glib-2.0 gtk+ libglade webkit-gtk curl gconf js libowl"
PV = "0.0+svnr${SRCREV}"
PR = "r2"
PR = "r3"
SRC_URI = "svn://svn.o-hand.com/repos/web/branches;module=webkit;proto=http \
file://link-with-g++.patch;patch=1"
file://link-with-g++.patch \
file://make-382.patch"
S = "${WORKDIR}/webkit"

View File

@@ -47,6 +47,11 @@ if [ ! -e "$ROOTFS_TARBALL" ]; then
exit 1
fi
# Convert SDK_ROOTFS_DIR to a full pathname
if [[ ${SDK_ROOTFS_DIR:0:1} != "/" ]]; then
SDK_ROOTFS_DIR=$(pwd)/$SDK_ROOTFS_DIR
fi
TAR_OPTS=""
if [[ "$ROOTFS_TARBALL" =~ tar\.bz2$ ]]; then
TAR_OPTS="-xjf"

View File

@@ -1,7 +1,7 @@
#!/bin/bash
#
# Find a native sysroot to use - either from an in-tree Poky build or
# from a toolchain installation in /opt/poky. It then ensures the variable
# from a toolchain installation. It then ensures the variable
# $POKY_NATIVE_SYSROOT is set to the sysroot's base directory, and sets
# $PSEUDO to the path of the pseudo binary.
#

View File

@@ -31,9 +31,9 @@ usage() {
echo " serial - enables a serial console on /dev/ttyS0"
echo ""
echo "Examples:"
echo " $0 qemuarm"
echo " $0 qemux86-64 poky-image-sato ext3"
echo " $0 path/to/bzImage-qemux86.bin path/to/nfsrootdir/ serial"
echo " $MYNAME qemuarm"
echo " $MYNAME qemux86-64 poky-image-sato ext3"
echo " $MYNAME path/to/bzImage-qemux86.bin path/to/nfsrootdir/ serial"
exit 1
}
@@ -51,6 +51,37 @@ SCRIPT_KERNEL_OPT=""
TMPDIR=""
# Determine whether the file is a kernel or QEMU image, and set the
# appropriate variables
process_filename() {
filename=$1
# Extract the filename extension
EXT=`echo $filename | awk -F . '{ print \$NF }'`
# A file ending in .bin is a kernel
if [ "x$EXT" = "xbin" ]; then
if [ -z "$KERNEL" ]; then
KERNEL=$filename
else
echo "Error: conflicting KERNEL args [$KERNEL] and [$filename]"
usage
fi
elif [[ "x$EXT" == "xext2" || "x$EXT" == "xext3" ||
"x$EXT" == "xjffs2" ]]; then
# A file ending in a supportted fs type is a rootfs image
if [[ -z "$FSTYPE" || "$FSTYPE" == "$EXT" ]]; then
FSTYPE=$EXT
ROOTFS=$filename
else
echo "Error: conflicting FSTYPE types [$FSTYPE] and [$EXT]"
usage
fi
else
echo "Error: unknown file arg [$filename]"
usage
fi
}
# Parse command line args without requiring specific ordering. It's a
# bit more complex, but offers a great user experience.
i=1
@@ -66,7 +97,7 @@ while [ $i -le $# ]; do
fi
;;
"ext2" | "ext3" | "jffs2" | "nfs")
if [ -z "$FSTYPE" ]; then
if [[ -z "$FSTYPE" || "$FSTYPE" == "$arg" ]]; then
FSTYPE=$arg
else
echo "Error: conflicting FSTYPE types [$FSTYPE] and [$arg]"
@@ -75,8 +106,8 @@ while [ $i -le $# ]; do
;;
*-image-*)
if [ -z "$ROOTFS" ]; then
if [ -e "$arg" ]; then
ROOTFS=$arg
if [ -f "$arg" ]; then
process_filename $arg
else
ROOTFS=$arg
LAZY_ROOTFS="true"
@@ -111,30 +142,7 @@ while [ $i -le $# ]; do
usage
fi
elif [ -f "$arg" ]; then
# Extract the filename extension
EXT=`echo $arg | awk -F . '{ print \$NF }'`
# A file ending in .bin is a kernel
if [ "x$EXT" = "xbin" ]; then
if [ -z "$KERNEL" ]; then
KERNEL=$arg
else
echo "Error: conflicting KERNEL args [$KERNEL] and [$arg]"
usage
fi
elif [[ "x$EXT" == "xext2" || "x$EXT" == "xext3" ||
"x$EXT" == "xjffs2" ]]; then
# A file ending in a supportted fs type is a rootfs image
if [[ -z "$FSTYPE" || "$FSTYPE" == "$EXT" ]]; then
FSTYPE=$EXT
ROOTFS=$arg
else
echo "Error: conflicting FSTYPE types [$FSTYPE] and [$arg]"
usage
fi
else
echo "Error: unknown file arg [$arg]"
usage
fi
process_filename $arg
else
echo "Error: unable to classify arg [$arg]"
usage
@@ -155,7 +163,7 @@ if [[ "$FSTYPE" == "nfs" && -z "$ROOTFS" ]]; then
fi
if [ -z "$MACHINE" ]; then
MACHINE=`basename $KERNEL | sed -r -e 's#.*-([a-z]+[0-9\-]*)-?[0-9]*..*#\1#'`
MACHINE=`basename $KERNEL | sed 's/.*-\(qemux86-64\|qemux86\|qemuarm\|qemumips\|qemuppc\).*/\1/'`
if [ -z "$MACHINE" ]; then
echo "Error: Unable to set MACHINE from kernel filename [$KERNEL]"
usage
@@ -196,7 +204,7 @@ SPITZ_DEFAULT_ROOTFS="poky-image-sato"
setup_tmpdir() {
if [ -z "$TMPDIR" ]; then
if [ "x$BUILDDIR" = "x" ]; then
if [ "x$BUILDDIR" = "x" -o ! -d "$BUILDDIR/tmp" ]; then
# BUILDDIR unset, try and get TMPDIR from bitbake
type -P bitbake &>/dev/null || {
echo "In order for this script to dynamically infer paths";
@@ -205,23 +213,29 @@ setup_tmpdir() {
echo "before running this script" >&2;
exit 1; }
# We have bitbake in PATH, get TMPDIR and BUILD_SYS
# from the environment
# We have bitbake in PATH, get TMPDIR from bitbake
TMPDIR=`bitbake -e | grep TMPDIR=\" | cut -d '=' -f2 | cut -d '"' -f2`
BUILD_SYS=`bitbake -e | grep BUILD_SYS=\" | cut -d '=' -f2 | cut -d '"' -f2`
else
BUILD_ARCH=`uname -m`
BUILD_OS=`uname | tr '[A-Z]' '[a-z]'`
BUILD_SYS="$BUILD_ARCH-$BUILD_OS"
TMPDIR=$BUILDDIR/tmp
fi
if [ -z "$POKY_NATIVE_SYSROOT" ]; then
POKY_NATIVE_SYSROOT=$TMPDIR/sysroots/$BUILD_SYS
fi
CROSSPATH=$POKY_NATIVE_SYSROOT/usr/bin
fi
}
setup_sysroot() {
# Toolchain installs set up $POKY_NATIVE_SYSROOT in their
# environment script. If that variable isn't set, we're
# either in an in-tree poky scenario or the environment
# script wasn't source'd.
if [ -z "$POKY_NATIVE_SYSROOT" ]; then
setup_tmpdir
BUILD_ARCH=`uname -m`
BUILD_OS=`uname | tr '[A-Z]' '[a-z]'`
BUILD_SYS="$BUILD_ARCH-$BUILD_OS"
POKY_NATIVE_SYSROOT=$TMPDIR/sysroots/$BUILD_SYS
fi
}
# Locate a rootfs image based on defaults defined above
findimage() {
where=$1
@@ -246,8 +260,6 @@ findimage() {
}
if [[ -e "$ROOTFS" && -z "$FSTYPE" ]]; then
setup_tmpdir
# Extract the filename extension
EXT=`echo $ROOTFS | awk -F . '{ print \$NF }'`
if [[ "x$EXT" == "xext2" || "x$EXT" == "xext3" ||
@@ -273,7 +285,6 @@ fi
# KERNEL is now set for all cases
if [ -z "$FSTYPE" ]; then
setup_tmpdir
eval FSTYPE=\$${machine2}_DEFAULT_FSTYPE
if [ -z "$FSTYPE" ]; then
@@ -310,6 +321,9 @@ echo "KERNEL: [$KERNEL]"
echo "ROOTFS: [$ROOTFS]"
echo "FSTYPE: [$FSTYPE]"
setup_sysroot
# POKY_NATIVE_SYSROOT is now set for all cases
# We can't run without a libGL.so
libgl='no'

View File

@@ -27,7 +27,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
usage() {
echo "sudo $0 <tap-dev> <native-sysroot-basedir>"
echo "sudo $(basename $0) <tap-dev> <native-sysroot-basedir>"
}
if [ $EUID -ne 0 ]; then
@@ -46,13 +46,6 @@ NATIVE_SYSROOT_DIR=$2
TUNCTL=$NATIVE_SYSROOT_DIR/usr/bin/tunctl
if [ ! -e "$TUNCTL" ]; then
echo "Error: Unable to find tunctl binary in '$NATIVE_SYSROOT_DIR/usr/bin'"
if [[ "$NATIVE_SYSROOT_DIR" =~ ^\/opt\/poky ]]; then
echo "This shouldn't happen - something is wrong with your toolchain installation"
else
echo "Have you run 'bitbake meta-ide-support'?"
fi
exit 1
fi

View File

@@ -34,7 +34,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
usage() {
echo "sudo $0 <gid> <native-sysroot-basedir>"
echo "sudo $(basename $0) <gid> <native-sysroot-basedir>"
}
if [ $EUID -ne 0 ]; then
@@ -53,13 +53,6 @@ NATIVE_SYSROOT_DIR=$2
TUNCTL=$NATIVE_SYSROOT_DIR/usr/bin/tunctl
if [ ! -x "$TUNCTL" ]; then
echo "Error: Unable to find tunctl binary in '$NATIVE_SYSROOT_DIR/usr/bin'"
if [[ "$NATIVE_SYSROOT_DIR" =~ ^\/opt\/poky ]]; then
echo "This shouldn't happen - something is wrong with your toolchain installation"
else
echo "Have you run 'bitbake meta-ide-support'?"
fi
exit 1
fi

View File

@@ -394,23 +394,9 @@ if [ "x$QEMUOPTIONS" = "x" ]; then
return
fi
SDKDIR="/opt/poky/sysroots"
if [ "$MACHINE" = "qemuarm" -o "$MACHINE" = "spitz" -o "$MACHINE" = "borzoi" -o "$MACHINE" = "akita" -o "$MACHINE" = "nokia800" ]; then
SDKPATH="$SDKDIR/arm-poky-linux-gnueabi/bin"
fi
if [ "$MACHINE" = "qemux86" ]; then
SDKPATH="$SDKDIR/i586-poky-linux/bin"
fi
if [ "$MACHINE" = "qemux86-64" ]; then
SDKPATH="$SDKDIR/x86_64-poky-linux/bin"
fi
PATH=$CROSSPATH:$SDKPATH:$PATH
PATH=$CROSSPATH:$POKY_NATIVE_SYSROOT/usr/bin:$PATH
QEMUBIN=`which $QEMU`
if [ ! -x "$QEMUBIN" ]; then
echo "Error: No QEMU binary '$QEMU' could be found."
cleanup