Compare commits
78 Commits
uninative-
...
laverne
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0d3591db9c | ||
|
|
753f79806b | ||
|
|
50ece536ae | ||
|
|
fdcda41c5e | ||
|
|
6ceab2c76d | ||
|
|
0b8fcb95dd | ||
|
|
45526f5ecf | ||
|
|
d1fd60f69d | ||
|
|
7fa2b1c154 | ||
|
|
fd7a07b3a2 | ||
|
|
01bc47f4d4 | ||
|
|
12a3d41a24 | ||
|
|
ce4f835679 | ||
|
|
54f08d23cd | ||
|
|
8a3d0f375c | ||
|
|
0c2003f134 | ||
|
|
6e71b0a012 | ||
|
|
4b5c1c0530 | ||
|
|
171e709ae6 | ||
|
|
a8b8557e4c | ||
|
|
399e6b8008 | ||
|
|
290280b332 | ||
|
|
9e11fbf904 | ||
|
|
0f8244faba | ||
|
|
0cc23a8656 | ||
|
|
30c39cc97c | ||
|
|
261ca88596 | ||
|
|
72ddd5c202 | ||
|
|
6026999e81 | ||
|
|
c5ab4d56f9 | ||
|
|
b9d6950732 | ||
|
|
95b64df744 | ||
|
|
941855f0c0 | ||
|
|
17641a7ead | ||
|
|
c6e842d9f5 | ||
|
|
372186ff62 | ||
|
|
c718ef5b60 | ||
|
|
e160e68136 | ||
|
|
c42340603f | ||
|
|
1a0cf646cf | ||
|
|
3ed9ba33a3 | ||
|
|
88ff0a4470 | ||
|
|
7b6db199fa | ||
|
|
a28bc0d0b6 | ||
|
|
47cfaec4ea | ||
|
|
59df74164d | ||
|
|
b5419d931e | ||
|
|
1ddda942bd | ||
|
|
c115f07678 | ||
|
|
73be41e475 | ||
|
|
b96412845d | ||
|
|
f0c88f220e | ||
|
|
1a3140eaf6 | ||
|
|
e34401720d | ||
|
|
72aadcf274 | ||
|
|
411910bb98 | ||
|
|
23bae7e299 | ||
|
|
13642c439c | ||
|
|
784f9b3369 | ||
|
|
0826752c04 | ||
|
|
a168d77ea9 | ||
|
|
297c60afd8 | ||
|
|
0f49a2c359 | ||
|
|
37eec34886 | ||
|
|
2e793fe2bf | ||
|
|
2bf160150f | ||
|
|
c3a5bee36f | ||
|
|
4a5a659674 | ||
|
|
ce18dde858 | ||
|
|
e51e4870f0 | ||
|
|
440a4cfffb | ||
|
|
779288f438 | ||
|
|
c3fa1a6677 | ||
|
|
e8ea66f5ff | ||
|
|
476242adc4 | ||
|
|
e9ef9424a3 | ||
|
|
fc9c11de28 | ||
|
|
4ae9c0785e |
220
CHANGELOG
Normal 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
@@ -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
|
||||||
|
|
||||||
@@ -225,6 +225,12 @@ def init(urls, d, setup = True):
|
|||||||
def mirror_from_string(data):
|
def mirror_from_string(data):
|
||||||
return [ i.split() for i in (data or "").replace('\\n','\n').split('\n') if i ]
|
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):
|
def go(d, urls = None):
|
||||||
"""
|
"""
|
||||||
Fetch all urls
|
Fetch all urls
|
||||||
@@ -237,32 +243,14 @@ def go(d, urls = None):
|
|||||||
for u in urls:
|
for u in urls:
|
||||||
ud = urldata[u]
|
ud = urldata[u]
|
||||||
m = ud.method
|
m = ud.method
|
||||||
premirror_fetch = True
|
|
||||||
localpath = ""
|
localpath = ""
|
||||||
|
|
||||||
if ud.localfile:
|
if not ud.localfile:
|
||||||
if not m.try_premirror(u, ud, d):
|
continue
|
||||||
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
|
|
||||||
|
|
||||||
lf = bb.utils.lockfile(ud.lockfile)
|
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
|
|
||||||
|
|
||||||
if premirror_fetch:
|
if m.try_premirror(u, ud, d):
|
||||||
# First try fetching uri, u, from PREMIRRORS
|
# First try fetching uri, u, from PREMIRRORS
|
||||||
mirrors = mirror_from_string(bb.data.getVar('PREMIRRORS', d, True))
|
mirrors = mirror_from_string(bb.data.getVar('PREMIRRORS', d, True))
|
||||||
localpath = try_mirrors(d, u, mirrors, False, m.forcefetch(u, ud, d))
|
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)
|
m.go(u, ud, d)
|
||||||
localpath = ud.localpath
|
localpath = ud.localpath
|
||||||
except FetchError:
|
except FetchError:
|
||||||
|
# Remove any incomplete file
|
||||||
|
removefile(ud.localpath)
|
||||||
# Finally, try fetching uri, u, from MIRRORS
|
# Finally, try fetching uri, u, from MIRRORS
|
||||||
mirrors = mirror_from_string(bb.data.getVar('MIRRORS', d, True))
|
mirrors = mirror_from_string(bb.data.getVar('MIRRORS', d, True))
|
||||||
localpath = try_mirrors (d, u, mirrors)
|
localpath = try_mirrors (d, u, mirrors)
|
||||||
if not localpath or not os.path.exists(localpath):
|
if not localpath or not os.path.exists(localpath):
|
||||||
raise FetchError("Unable to fetch URL %s from any source." % u)
|
raise FetchError("Unable to fetch URL %s from any source." % u)
|
||||||
|
|
||||||
if localpath:
|
ud.localpath = localpath
|
||||||
ud.localpath = localpath
|
if os.path.exists(ud.md5):
|
||||||
|
# Touch the md5 file to show active use of the download
|
||||||
if ud.localfile:
|
try:
|
||||||
if not m.forcefetch(u, ud, d):
|
os.utime(ud.md5, None)
|
||||||
Fetch.write_md5sum(u, ud, d)
|
except:
|
||||||
bb.utils.unlockfile(lf)
|
# Errors aren't fatal here
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
Fetch.write_md5sum(u, ud, d)
|
||||||
|
|
||||||
|
bb.utils.unlockfile(lf)
|
||||||
|
|
||||||
def checkstatus(d):
|
def checkstatus(d):
|
||||||
"""
|
"""
|
||||||
@@ -301,7 +295,7 @@ def checkstatus(d):
|
|||||||
for u in urldata:
|
for u in urldata:
|
||||||
ud = urldata[u]
|
ud = urldata[u]
|
||||||
m = ud.method
|
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
|
# First try checking uri, u, from PREMIRRORS
|
||||||
mirrors = mirror_from_string(bb.data.getVar('PREMIRRORS', d, True))
|
mirrors = mirror_from_string(bb.data.getVar('PREMIRRORS', d, True))
|
||||||
ret = try_mirrors(d, u, mirrors, True)
|
ret = try_mirrors(d, u, mirrors, True)
|
||||||
@@ -484,6 +478,7 @@ def try_mirrors(d, uri, mirrors, check = False, force = False):
|
|||||||
import sys
|
import sys
|
||||||
(type, value, traceback) = sys.exc_info()
|
(type, value, traceback) = sys.exc_info()
|
||||||
bb.msg.debug(2, bb.msg.domain.Fetcher, "Mirror fetch failure: %s" % value)
|
bb.msg.debug(2, bb.msg.domain.Fetcher, "Mirror fetch failure: %s" % value)
|
||||||
|
removefile(ud.localpath)
|
||||||
continue
|
continue
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|||||||
@@ -86,13 +86,23 @@ class Git(Fetch):
|
|||||||
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
|
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
|
||||||
|
|
||||||
def forcefetch(self, url, ud, d):
|
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 True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def try_premirror(self, u, ud, d):
|
def try_premirror(self, u, ud, d):
|
||||||
|
if 'noclone' in ud.parm:
|
||||||
|
return False
|
||||||
if os.path.exists(ud.clonedir):
|
if os.path.exists(ud.clonedir):
|
||||||
return False
|
return False
|
||||||
|
if os.path.exists(ud.localpath):
|
||||||
|
return False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@@ -109,24 +119,37 @@ class Git(Fetch):
|
|||||||
coname = '%s' % (ud.tag)
|
coname = '%s' % (ud.tag)
|
||||||
codir = os.path.join(ud.clonedir, coname)
|
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:
|
try:
|
||||||
Fetch.try_mirrors(ud.mirrortarball)
|
Fetch.try_mirrors(ud.mirrortarball)
|
||||||
bb.mkdirhier(ud.clonedir)
|
|
||||||
os.chdir(ud.clonedir)
|
|
||||||
runfetchcmd("tar -xzf %s" % (repofile), d)
|
|
||||||
except:
|
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)
|
os.chdir(ud.clonedir)
|
||||||
|
# Update the checkout if needed
|
||||||
if not self._contains_ref(ud.tag, d) or 'fullclone' in ud.parm:
|
if not self._contains_ref(ud.tag, d) or 'fullclone' in ud.parm:
|
||||||
# Remove all but the .git directory
|
# Remove all but the .git directory
|
||||||
runfetchcmd("rm * -Rf", d)
|
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 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 prune-packed" % ud.basecmd, d)
|
||||||
runfetchcmd("%s pack-redundant --all | xargs -r rm" % ud.basecmd, d)
|
runfetchcmd("%s pack-redundant --all | xargs -r rm" % ud.basecmd, d)
|
||||||
|
|
||||||
|
# Generate a mirror tarball if needed
|
||||||
os.chdir(ud.clonedir)
|
os.chdir(ud.clonedir)
|
||||||
mirror_tarballs = data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True)
|
mirror_tarballs = data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True)
|
||||||
if mirror_tarballs != "0" or 'fullclone' in ud.parm:
|
if mirror_tarballs != "0" or 'fullclone' in ud.parm:
|
||||||
|
|||||||
@@ -1066,6 +1066,10 @@ class RunQueueExecute:
|
|||||||
for var in envvars:
|
for var in envvars:
|
||||||
comps = var.split("=")
|
comps = var.split("=")
|
||||||
env[comps[0]] = comps[1]
|
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['BB_TASKHASH'] = self.rqdata.runq_hash[task]
|
||||||
env['PATH'] = self.cooker.configuration.initial_path
|
env['PATH'] = self.cooker.configuration.initial_path
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ html:
|
|||||||
xsltproc $(XSLTOPTS) -o bsp-guide.html $(XSL_XHTML_URI) bsp-guide.xml
|
xsltproc $(XSLTOPTS) -o bsp-guide.html $(XSL_XHTML_URI) bsp-guide.xml
|
||||||
|
|
||||||
tarball: html
|
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:
|
validate:
|
||||||
xmllint --postvalid --xinclude --noout poky-ref-manual.xml
|
xmllint --postvalid --xinclude --noout poky-ref-manual.xml
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
<copyright>
|
<copyright>
|
||||||
<year>2010</year>
|
<year>2010</year>
|
||||||
<holder>Intel Corporation</holder>
|
<holder>Linux Foundation</holder>
|
||||||
</copyright>
|
</copyright>
|
||||||
|
|
||||||
<legalnotice>
|
<legalnotice>
|
||||||
|
|||||||
@@ -105,8 +105,8 @@ meta-bsp/prebuilds/
|
|||||||
# We have a conf directory, add to BBPATH
|
# We have a conf directory, add to BBPATH
|
||||||
BBPATH := "${BBPATH}${LAYERDIR}"
|
BBPATH := "${BBPATH}${LAYERDIR}"
|
||||||
|
|
||||||
# We have a packages directory, add to BBFILES
|
# We have a recipes directory containing .bb and .bbappend files, add to BBFILES
|
||||||
BBFILES := "${BBFILES} ${LAYERDIR}/packages/*/*.bb"
|
BBFILES := "${BBFILES} ${LAYERDIR}/recipes/*/*.bb ${LAYERDIR}/recipes/*/*.bbappend"
|
||||||
|
|
||||||
BBFILE_COLLECTIONS += "bsp"
|
BBFILE_COLLECTIONS += "bsp"
|
||||||
BBFILE_PATTERN_bsp := "^${LAYERDIR}/"
|
BBFILE_PATTERN_bsp := "^${LAYERDIR}/"
|
||||||
@@ -115,7 +115,7 @@ BBFILE_PRIORITY_bsp = "5"
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<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>
|
||||||
|
|
||||||
<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
|
This allows the BSP layer to poke around and do whatever it might want to customise
|
||||||
the original recipe.
|
the original recipe.
|
||||||
|
|
||||||
.bbappend is expected to include the below two lines in the head (which may be changed
|
If your recipe needs to reference extra files it can use the FILESEXTRAPATH variable
|
||||||
in the future):
|
to specify their location. The example below shows extra files contained in a folder
|
||||||
|
called ${PN} (the package name).
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
THISDIR := "${@os.path.dirname(bb.data.getVar('FILE', d, True))}"
|
FILESEXTRAPATHS := "${THISDIR}/${PN}"
|
||||||
FILESPATH =. "${@base_set_filespath(["${THISDIR}/${PN}"], d)}:"
|
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
|||||||
@@ -4,14 +4,14 @@
|
|||||||
<chapter id="platdev">
|
<chapter id="platdev">
|
||||||
<title>Platform Development with Poky</title>
|
<title>Platform Development with Poky</title>
|
||||||
|
|
||||||
<section id="platdev-appdev">
|
<section id="platdev-appdev">
|
||||||
<title>Software development</title>
|
<title>Software development</title>
|
||||||
<para>
|
<para>
|
||||||
Poky supports several methods of software development. You can use the method that is
|
Poky supports several methods of software development. You can use the method that is
|
||||||
best for you. This chapter describes each development method.
|
best for you. This chapter describes each development method.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<section id="platdev-appdev-external-sdk">
|
<section id="platdev-appdev-external-sdk">
|
||||||
<title>External Development Using the Poky SDK</title>
|
<title>External Development Using the Poky SDK</title>
|
||||||
<para>
|
<para>
|
||||||
The meta-toolchain and meta-toolchain-sdk targets (<link linkend='ref-images'>see
|
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
|
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.
|
results for tests that need target hardware on which to run.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Using the toolchain with autotool-enabled packages is straightforward - just pass the
|
Using the toolchain with autotool-enabled packages is straightforward - just pass the
|
||||||
appropriate host option to configure as in the following example:
|
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
|
CC=arm-poky-linux-gnueabi-gcc and LD=arm-poky-linux-gnueabi-ld
|
||||||
</literallayout>
|
</literallayout>
|
||||||
</para>
|
</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>
|
||||||
|
|
||||||
<section id="platdev-appdev-external-anjuta-configuration">
|
<section id="using-the-eclipse-and-anjuta-plug-ins">
|
||||||
<title>Configuring the Anjuta plugin</title>
|
<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
|
<section id="the-eclipse-plug-in">
|
||||||
the <guilabel>Poky SDK</guilabel> icon from the left hand side. The following options
|
<title>The Eclipse Plug-in</title>
|
||||||
need to be set:</para>
|
<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>
|
<section id="installing-the-yocto-plug-in">
|
||||||
|
<title>Installing the Yocto Plug-in</title>
|
||||||
<listitem><para><guilabel>SDK root</guilabel>: If we use external toolchain, we need to set SDK root.
|
<para>
|
||||||
this is the root directory of the SDK's sysroot. For an i586 SDK this will be <filename
|
Once you have the Eclipse IDE installed and configure you need to install the
|
||||||
class="directory">/opt/poky/</filename>.
|
Yocto plug-in. You do this similar to installing the Eclipse plug-ins in the
|
||||||
This directory will contain directories named like "bin",
|
previous section.
|
||||||
"include", "var", etc. under your selected target architecture subdirectory<filename class="directory">
|
</para>
|
||||||
/opt/poky/sysroot/i586-poky-linux/</filename>. Needed cross compile tools are under
|
<para>
|
||||||
<filename class ="directory">/opt/poky/sysroot/i586-pokysdk-linux/</filename>
|
Do the following to install the Yocto plug-in into the Eclipse IDE:
|
||||||
</para></listitem>
|
<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, $<Poky_tree>/build/.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Now you need to select the architecture.
|
||||||
|
Use the drop down list and select the architecture that you’ll be primarily
|
||||||
|
working against.
|
||||||
|
For target option, select your typical target QEMU vs External HW. If you
|
||||||
|
choose QEMU, you’ll 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.
|
<section id="using-the-yocto-eclipse-plug-in">
|
||||||
this is the root directory of the poky build tree, if you build your i586 target architecture
|
<title>Using the Yocto Eclipse Plug-in</title>
|
||||||
under the subdirectory of build_x86 within your poky tree, the Poky root directory should be
|
<para>
|
||||||
<filename class="directory">${Poky_tree}/build_x86/</filename>.
|
As an example, this section shows you how to cross-compile a Yocto C autotools
|
||||||
</para></listitem>
|
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
|
<section id="using-yocto-eclipse-plug-in-remote-tools-suite">
|
||||||
triplet, e.g. "i586-poky-linux". This target triplet is the prefix extracted from
|
<title>Using Yocto Eclipse plug-in Remote Tools Suite</title>
|
||||||
the set up script file name. For examle, "i586-poky-linux" is extracted from set up script file
|
<para>
|
||||||
<filename>/opt/poky/environment-setup-i586-poky-linux</filename>
|
Remote tools let you do things like perform system profiling, kernel tracing,
|
||||||
</para></listitem>
|
examine power consumption, and so forth. To see and access the remote tools use the
|
||||||
|
Window -> YoctoTools menu.
|
||||||
<listitem><para><guilabel>Kernel</guilabel>: use the file chooser to select the kernel
|
</para>
|
||||||
to use with QEMU</para></listitem>
|
<para>
|
||||||
|
Once you pick a tool you need to configure it for the remote target. Every tool
|
||||||
<listitem><para><guilabel>Root filesystem</guilabel>: use the file chooser to select
|
needs to have the connection configured. You have to select an existing TCF-based
|
||||||
the root filesystem directory, this is the directory where you use "poky-extract-sdk" command to
|
RSE connection to the remote target. If one does not exist you need to create one
|
||||||
extract the poky-image-sdk tarball.</para></listitem>
|
by clicking "New"
|
||||||
</itemizedlist>
|
</para>
|
||||||
<!-- DISBALED, TOO BIG!
|
<para>
|
||||||
<screenshot>
|
Here are some specifics about the remote tools:
|
||||||
<mediaobject>
|
<itemizedlist>
|
||||||
<imageobject>
|
<listitem>Oprofile: Selecting this tool causes the oprofile-server on the remote
|
||||||
<imagedata fileref="screenshots/ss-anjuta-poky-2.png" format="PNG"/>
|
target to launch on the local host machine. To use the oprofile the oprofile-viewer
|
||||||
</imageobject>
|
must be installed on the local host machine and the oprofile-server must be
|
||||||
<caption>
|
installed on the remote target.</listitem>
|
||||||
<para>Anjuta Preferences Dialog</para>
|
<listitem>lttng: Selecting this tool runs ustrace on the remote target, transfers
|
||||||
</caption>
|
the output data back to the local host machine and uses lttv-gui to graphically
|
||||||
</mediaobject>
|
display the output. To use this tool the lttv-gui must be installed on the
|
||||||
</screenshot>
|
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>$<poky_tree>/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>
|
||||||
|
|
||||||
<section id="platdev-appdev-external-anjuta-usage">
|
<section id="platdev-appdev-qemu">
|
||||||
<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">
|
|
||||||
<title>Developing externally in QEMU</title>
|
<title>Developing externally in QEMU</title>
|
||||||
<para>
|
<para>
|
||||||
Running Poky QEMU images is covered in the <link
|
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,
|
environmental variables such as CC to assist applications, such as make,
|
||||||
find the correct tools.
|
find the correct tools.
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section id="platdev-appdev-srcrev">
|
<section id="platdev-appdev-srcrev">
|
||||||
<title>Developing within Poky with an external SCM based package</title>
|
<title>Developing within Poky with an external SCM based package</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@@ -369,8 +548,8 @@ $ bitbake matchbox-desktop -c devshell
|
|||||||
is the name of the package for which you want to enable automatic source
|
is the name of the package for which you want to enable automatic source
|
||||||
revision updating.
|
revision updating.
|
||||||
</para>
|
</para>
|
||||||
|
</section>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id="platdev-gdb-remotedebug">
|
<section id="platdev-gdb-remotedebug">
|
||||||
<title>Debugging with GDB Remotely</title>
|
<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
|
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
|
knows about the the ABI of the remote target. This can be obtained from
|
||||||
the the Poky toolchain, e.g.
|
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>
|
<filename>/usr/local/poky/eabi-glibc/arm/bin/arm-poky-linux-gnueabi-gdb</filename>
|
||||||
which "x86_64" is the host architecture, "arm" is the target architecture and "linux-gnueabi" the target ABI.
|
which "arm" is the target architecture and "linux-gnueabi" the target ABI.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@@ -467,8 +646,7 @@ $ bitbake matchbox-desktop -c devshell
|
|||||||
the gdb-cross package so for example you would run:
|
the gdb-cross package so for example you would run:
|
||||||
<programlisting>bitbake gdb-cross</programlisting>
|
<programlisting>bitbake gdb-cross</programlisting>
|
||||||
Once built, the cross gdb binary can be found at
|
Once built, the cross gdb binary can be found at
|
||||||
<programlisting>tmp/sysroots/<host-arch>/usr/bin/\
|
<programlisting>tmp/sysroots/<host-arch</usr/bin/<target-abi>-gdb </programlisting>
|
||||||
<target-arch>-poky-<target-abi>/<target-arch>-poky-<target-abi>-gdb </programlisting>
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
@@ -505,17 +683,17 @@ $ bitbake matchbox-desktop -c devshell
|
|||||||
by doing:
|
by doing:
|
||||||
</para>
|
</para>
|
||||||
<programlisting>tmp/sysroots/i686-linux/usr/bin/opkg-cl -f \
|
<programlisting>tmp/sysroots/i686-linux/usr/bin/opkg-cl -f \
|
||||||
tmp/work/<target-abi>/poky-image-sato-1.0-r0/opkg.conf -o \
|
tmp/work/<target-abi>/poky-image-sato-1.0-r0/temp/opkg.conf -o \
|
||||||
tmp/rootfs/ update</programlisting>
|
tmp/rootfs/ update</programlisting>
|
||||||
<para>
|
<para>
|
||||||
then,
|
then,
|
||||||
</para>
|
</para>
|
||||||
<programlisting>tmp/sysroots/i686-linux/usr/bin/opkg-cl -f \
|
<programlisting>tmp/sysroots/i686-linux/usr/bin/opkg-cl -f \
|
||||||
tmp/work/<target-abi>/poky-image-sato-1.0-r0/opkg.conf \
|
tmp/work/<target-abi>/poky-image-sato-1.0-r0/temp/opkg.conf \
|
||||||
-o tmp/rootfs install foo
|
-o tmp/rootfs install foo
|
||||||
|
|
||||||
tmp/sysroots/i686-linux/usr/bin/opkg-cl -f \
|
tmp/sysroots/i686-linux/usr/bin/opkg-cl -f \
|
||||||
tmp/work/<target-abi>/poky-image-sato-1.0-r0/opkg.conf \
|
tmp/work/<target-abi>/poky-image-sato-1.0-r0/temp/opkg.conf \
|
||||||
-o tmp/rootfs install foo-dbg</programlisting>
|
-o tmp/rootfs install foo-dbg</programlisting>
|
||||||
<para>
|
<para>
|
||||||
which installs the debugging information too.
|
which installs the debugging information too.
|
||||||
@@ -528,7 +706,7 @@ tmp/work/<target-abi>/poky-image-sato-1.0-r0/opkg.conf \
|
|||||||
<para>
|
<para>
|
||||||
To launch the host GDB, run the cross gdb binary identified above with
|
To launch the host GDB, run the cross gdb binary identified above with
|
||||||
the inferior binary specified on the commandline:
|
the inferior binary specified on the commandline:
|
||||||
<programlisting><target-arch>-poky-<target-abi>-gdb rootfs/usr/bin/foo</programlisting>
|
<programlisting><target-abi>-gdb rootfs/usr/bin/foo</programlisting>
|
||||||
This loads the binary of program <emphasis>foo</emphasis>
|
This loads the binary of program <emphasis>foo</emphasis>
|
||||||
as well as its debugging information. Once the gdb prompt
|
as well as its debugging information. Once the gdb prompt
|
||||||
appears, you must instruct GDB to load all the libraries
|
appears, you must instruct GDB to load all the libraries
|
||||||
@@ -650,10 +828,9 @@ $ opreport -cl
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
A graphical user interface for OProfile is also available. You can
|
A graphical user interface for OProfile is also available. You can
|
||||||
either use prebuilt Debian packages from the <ulink
|
download and build it from svn at
|
||||||
url='http://debian.o-hand.com/'>OpenedHand repository</ulink> or
|
<ulink url="http://svn.o-hand.com/repos/oprofileui/trunk/"></ulink>.
|
||||||
download and build from svn at
|
If the
|
||||||
http://svn.o-hand.com/repos/oprofileui/trunk/. If the
|
|
||||||
"tools-profile" image feature is selected, all necessary binaries
|
"tools-profile" image feature is selected, all necessary binaries
|
||||||
are installed onto the target device for OProfileUI interaction.
|
are installed onto the target device for OProfileUI interaction.
|
||||||
</para>
|
</para>
|
||||||
@@ -819,6 +996,8 @@ $ opreport -cl
|
|||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</chapter>
|
</chapter>
|
||||||
<!--
|
<!--
|
||||||
vim: expandtab tw=80 ts=4
|
vim: expandtab tw=80 ts=4
|
||||||
|
|||||||
@@ -606,7 +606,7 @@ BBLAYERS = " \
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
Bitbake parses the conf/layer.conf of each of the layers in BBLAYERS
|
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,
|
To create your own layer, independent of the main Poky repository,
|
||||||
you need only create a directory with a conf/layer.conf file and
|
you need only create a directory with a conf/layer.conf file and
|
||||||
add the directory to your bblayers.conf.
|
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
|
<literallayout class='monospaced'># We have a conf and classes directory, add to BBPATH
|
||||||
BBPATH := "${BBPATH}:${LAYERDIR}"
|
BBPATH := "${BBPATH}:${LAYERDIR}"
|
||||||
|
|
||||||
# We have a packages directory, add to BBFILES
|
# We have a recipes directory containing both .bb and .bbappend files, add to BBFILES
|
||||||
BBFILES := "${BBFILES} ${LAYERDIR}/packages/*/*.bb \
|
BBFILES := "${BBFILES} ${LAYERDIR}/recipes/*/*.bb \
|
||||||
${LAYERDIR}/packages/*/*.bbappend"
|
${LAYERDIR}/recipes/*/*.bbappend"
|
||||||
|
|
||||||
BBFILE_COLLECTIONS += "emenlow"
|
BBFILE_COLLECTIONS += "emenlow"
|
||||||
BBFILE_PATTERN_emenlow := "^${LAYERDIR}/"
|
BBFILE_PATTERN_emenlow := "^${LAYERDIR}/"
|
||||||
|
|||||||
BIN
documentation/poky-ref-manual/figures/cropped-yocto-project-bw.png
Executable file
|
After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
BIN
documentation/poky-ref-manual/figures/yocto-project-transp.png
Executable file
|
After Width: | Height: | Size: 8.4 KiB |
@@ -4,43 +4,39 @@
|
|||||||
<chapter id='intro'>
|
<chapter id='intro'>
|
||||||
<title>Introduction</title>
|
<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>
|
<title>What is Poky?</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
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.
|
||||||
Poky is an open source platform build tool. It is a complete
|
It creates a focused, stable, subset of OpenEmbedded that can be easily and reliably built and developed upon.
|
||||||
software development environment for the creation of Linux
|
Poky fully supports a wide range of x86 ARM, MIPS and PowerPC hardware and device virtulisation.
|
||||||
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.
|
|
||||||
|
|
||||||
</para>
|
</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>
|
<para>
|
||||||
Poky is primarily a platform builder which generates filesystem images
|
Poky is primarily a platform builder which generates filesystem images
|
||||||
based on open source software such as the Kdrive X server, the Matchbox
|
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
|
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
|
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
|
machines target QEMU full system emulation(x86, ARM, MIPS and PowerPC) and
|
||||||
Sharp Zaurus series of devices. Poky's ability to boot inside a QEMU
|
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
|
emulator makes it particularly suitable as a test platform for development
|
||||||
of embedded software.
|
of embedded software.
|
||||||
</para>
|
</para>
|
||||||
@@ -76,222 +72,32 @@
|
|||||||
|
|
||||||
<section id='intro-manualoverview'>
|
<section id='intro-manualoverview'>
|
||||||
<title>Documentation Overview</title>
|
<title>Documentation Overview</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The handbook is split into sections covering different aspects of Poky.
|
The Poky User Guide is split into sections covering different aspects of Poky.
|
||||||
The <link linkend='usingpoky'>'Using Poky' section</link> gives an overview
|
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.
|
||||||
of the components that make up Poky followed by information about using and
|
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.
|
||||||
debugging the Poky build system. The <link linkend='extendpoky'>'Extending Poky' section</link>
|
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.
|
||||||
gives information about how to extend and customise Poky along with advice
|
The rest of the manual consists of several reference sections each giving details on a specific section of Poky functionality.
|
||||||
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.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This manual applies to Poky Release 3.3 (Green).
|
This manual applies to Poky Release 3.3 (Green).
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
<section id='intro-requirements'>
|
<section id='intro-requirements'>
|
||||||
<title>System Requirements</title>
|
<title>System Requirements</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
We recommend Debian-based distributions, in particular a recent Ubuntu
|
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
|
release (10.04 or newer), as the host system for Poky. Nothing in Poky is
|
||||||
distribution specific and
|
distribution specific and other distributions will most likely work as long
|
||||||
other distributions will most likely work as long as the appropriate
|
as the appropriate prerequisites are installed - we know of Poky being used
|
||||||
prerequisites are installed - we know of Poky being used successfully on Redhat,
|
successfully on Redhat, SUSE, Gentoo and Slackware host systems.
|
||||||
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>
|
||||||
|
|
||||||
<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 <kernel> <image>
|
|
||||||
</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>
|
||||||
|
|
||||||
<section id='intro-getit'>
|
<section id='intro-getit'>
|
||||||
|
|||||||
@@ -6,10 +6,10 @@
|
|||||||
xmlns="http://docbook.org/ns/docbook"
|
xmlns="http://docbook.org/ns/docbook"
|
||||||
>
|
>
|
||||||
<bookinfo>
|
<bookinfo>
|
||||||
|
|
||||||
<mediaobject>
|
<mediaobject>
|
||||||
<imageobject>
|
<imageobject>
|
||||||
<imagedata fileref='poky-ref-manual.png'
|
<imagedata fileref='figures/poky-ref-manual.png'
|
||||||
format='SVG'
|
format='SVG'
|
||||||
align='center' scalefit='1' width='100%'/>
|
align='center' scalefit='1' width='100%'/>
|
||||||
</imageobject>
|
</imageobject>
|
||||||
@@ -17,7 +17,6 @@
|
|||||||
|
|
||||||
<title>Poky Reference Manual</title>
|
<title>Poky Reference Manual</title>
|
||||||
<subtitle>A Guide and Reference to Poky</subtitle>
|
<subtitle>A Guide and Reference to Poky</subtitle>
|
||||||
|
|
||||||
<authorgroup>
|
<authorgroup>
|
||||||
<author>
|
<author>
|
||||||
<firstname>Richard</firstname> <surname>Purdie</surname>
|
<firstname>Richard</firstname> <surname>Purdie</surname>
|
||||||
@@ -44,15 +43,15 @@
|
|||||||
|
|
||||||
<revhistory>
|
<revhistory>
|
||||||
<revision>
|
<revision>
|
||||||
<revnumber>3.3+git</revnumber>
|
<revnumber>4.0+git</revnumber>
|
||||||
<date>20 Sept 2010</date>
|
<date>27 Oct 2010</date>
|
||||||
<revremark>Poky Master Documentation</revremark>
|
<revremark>Poky Master Documentation</revremark>
|
||||||
</revision>
|
</revision>
|
||||||
</revhistory>
|
</revhistory>
|
||||||
|
|
||||||
<copyright>
|
<copyright>
|
||||||
<year>2007-2010</year>
|
<year>2007-2010</year>
|
||||||
<holder>Intel Corporation</holder>
|
<holder>Linux Foundation</holder>
|
||||||
</copyright>
|
</copyright>
|
||||||
|
|
||||||
<legalnotice>
|
<legalnotice>
|
||||||
|
|||||||
@@ -118,14 +118,13 @@ h6 {
|
|||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
padding-top: 256px;
|
padding-top: 256px;
|
||||||
background-image: url("poky-beaver.png");
|
background-image: url("figures/poky-ref-manual.png");
|
||||||
background-position: right top;
|
background-position: left top;
|
||||||
float: right;
|
|
||||||
margin-top: -256px;
|
margin-top: -256px;
|
||||||
padding-right: 50px;
|
padding-right: 50px;
|
||||||
margin-left: 50px;
|
margin-left: 50px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
width: 200px;
|
width: 600px;
|
||||||
}
|
}
|
||||||
|
|
||||||
h3.author {
|
h3.author {
|
||||||
|
|||||||
BIN
documentation/poky-ref-manual/white-on-black-yp.png
Executable file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
documentation/template/yocto-project-qs.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
32
documentation/yocto-project-qs/Makefile
Normal 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)
|
||||||
BIN
documentation/yocto-project-qs/figures/building-an-image.png
Executable file
|
After Width: | Height: | Size: 14 KiB |
BIN
documentation/yocto-project-qs/figures/cropped-yocto-project-bw.png
Executable file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
documentation/yocto-project-qs/figures/using-a-pre-built-image.png
Executable file
|
After Width: | Height: | Size: 13 KiB |
BIN
documentation/yocto-project-qs/figures/white-on-black.png
Executable file
|
After Width: | Height: | Size: 18 KiB |
BIN
documentation/yocto-project-qs/figures/yocto-environment.png
Executable file
|
After Width: | Height: | Size: 62 KiB |
BIN
documentation/yocto-project-qs/figures/yocto-project-transp.png
Executable file
|
After Width: | Height: | Size: 8.4 KiB |
963
documentation/yocto-project-qs/style.css
Normal 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;
|
||||||
|
}
|
||||||
@@ -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>
|
||||||
365
documentation/yocto-project-qs/yocto-project-qs.xml
Normal 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><build_directory>/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 machine’s 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 <<emphasis>kernel</emphasis>> <<emphasis>image</emphasis>>
|
||||||
|
</literallayout>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</article>
|
||||||
|
<!--
|
||||||
|
vim: expandtab tw=80 ts=4
|
||||||
|
-->
|
||||||
@@ -135,7 +135,6 @@ python base_do_setscene () {
|
|||||||
bb.build.make_stamp("do_setscene", d)
|
bb.build.make_stamp("do_setscene", d)
|
||||||
}
|
}
|
||||||
do_setscene[selfstamp] = "1"
|
do_setscene[selfstamp] = "1"
|
||||||
do_setscene[dirs] = "${PSEUDO_LOCALSTATEDIR}"
|
|
||||||
addtask setscene before do_fetch
|
addtask setscene before do_fetch
|
||||||
|
|
||||||
addtask fetch
|
addtask fetch
|
||||||
@@ -438,6 +437,9 @@ base_do_package() {
|
|||||||
addtask build after do_populate_sysroot
|
addtask build after do_populate_sysroot
|
||||||
do_build = ""
|
do_build = ""
|
||||||
do_build[func] = "1"
|
do_build[func] = "1"
|
||||||
|
do_build () {
|
||||||
|
:
|
||||||
|
}
|
||||||
|
|
||||||
python () {
|
python () {
|
||||||
import exceptions, string
|
import exceptions, string
|
||||||
@@ -483,6 +485,7 @@ python () {
|
|||||||
deps.append('virtual/fakeroot-native:do_populate_sysroot')
|
deps.append('virtual/fakeroot-native:do_populate_sysroot')
|
||||||
bb.data.setVarFlag('do_package', 'depends', " ".join(deps),d)
|
bb.data.setVarFlag('do_package', 'depends', " ".join(deps),d)
|
||||||
bb.data.setVarFlag('do_package', 'fakeroot', 1, 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)
|
source_mirror_fetch = bb.data.getVar('SOURCE_MIRROR_FETCH', d, 0)
|
||||||
if not source_mirror_fetch:
|
if not source_mirror_fetch:
|
||||||
need_host = bb.data.getVar('COMPATIBLE_HOST', d, 1)
|
need_host = bb.data.getVar('COMPATIBLE_HOST', d, 1)
|
||||||
@@ -621,4 +624,32 @@ def check_gcc3(data):
|
|||||||
|
|
||||||
return False
|
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
|
EXPORT_FUNCTIONS do_setscene do_fetch do_unpack do_configure do_compile do_install do_package
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ python () {
|
|||||||
|
|
||||||
# If we don't do this we try and run the mapping hooks while parsing which is slow
|
# 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...
|
# 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", d)
|
||||||
runtime_mapping_rename("PACKAGE_INSTALL_ATTEMPTONLY", d)
|
runtime_mapping_rename("PACKAGE_INSTALL_ATTEMPTONLY", d)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,8 +70,11 @@ def base_get_metadata_git_branch(path, d):
|
|||||||
return "<unknown>"
|
return "<unknown>"
|
||||||
|
|
||||||
def base_get_metadata_git_revision(path, d):
|
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]
|
f = os.popen("cd %s; git log -n 1 --pretty=oneline -- 2>&1" % path)
|
||||||
if len(rev) != 0:
|
data = f.read()
|
||||||
return rev
|
if f.close() is None:
|
||||||
|
rev = data.split(" ")[0]
|
||||||
|
if len(rev) != 0:
|
||||||
|
return rev
|
||||||
return "<unknown>"
|
return "<unknown>"
|
||||||
|
|
||||||
|
|||||||
@@ -280,7 +280,6 @@ python () {
|
|||||||
deps.append('dpkg-native:do_populate_sysroot')
|
deps.append('dpkg-native:do_populate_sysroot')
|
||||||
deps.append('virtual/fakeroot-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_deb', 'depends', " ".join(deps), d)
|
||||||
bb.data.setVarFlag('do_package_write_ipk', 'fakeroot', "1", d)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
python do_package_write_deb () {
|
python do_package_write_deb () {
|
||||||
|
|||||||
@@ -325,6 +325,7 @@ python () {
|
|||||||
deps.append('virtual/fakeroot-native:do_populate_sysroot')
|
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', 'depends', " ".join(deps), d)
|
||||||
bb.data.setVarFlag('do_package_write_ipk', 'fakeroot', "1", 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 () {
|
python do_package_write_ipk () {
|
||||||
|
|||||||
@@ -437,18 +437,13 @@ python do_package_rpm () {
|
|||||||
|
|
||||||
workdir = bb.data.getVar('WORKDIR', d, True)
|
workdir = bb.data.getVar('WORKDIR', d, True)
|
||||||
outdir = bb.data.getVar('DEPLOY_DIR_IPK', 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)
|
tmpdir = bb.data.getVar('TMPDIR', d, True)
|
||||||
pkgd = bb.data.getVar('PKGD', d, True)
|
pkgd = bb.data.getVar('PKGD', d, True)
|
||||||
pkgdest = bb.data.getVar('PKGDEST', 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")
|
bb.error("Variables incorrectly set, unable to package")
|
||||||
return
|
return
|
||||||
|
|
||||||
if not os.path.exists(dvar):
|
|
||||||
bb.debug(1, "Nothing installed, nothing to do")
|
|
||||||
return
|
|
||||||
|
|
||||||
packages = bb.data.getVar('PACKAGES', d, True)
|
packages = bb.data.getVar('PACKAGES', d, True)
|
||||||
if not packages or packages == '':
|
if not packages or packages == '':
|
||||||
bb.debug(1, "No packages; nothing to do")
|
bb.debug(1, "No packages; nothing to do")
|
||||||
@@ -550,6 +545,7 @@ python () {
|
|||||||
deps.append('virtual/fakeroot-native:do_populate_sysroot')
|
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', 'depends', " ".join(deps), d)
|
||||||
bb.data.setVarFlag('do_package_write_rpm', 'fakeroot', 1, 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"
|
SSTATETASKS += "do_package_write_rpm"
|
||||||
|
|||||||
@@ -11,7 +11,9 @@ BB_DEFAULT_TASK = "rm_work_all"
|
|||||||
|
|
||||||
do_rm_work () {
|
do_rm_work () {
|
||||||
# Ensure pseudo is no longer active
|
# Ensure pseudo is no longer active
|
||||||
${FAKEROOT} -S
|
if [ -d ${WORKDIR}/pseudo ]; then
|
||||||
|
${FAKEROOT} -S
|
||||||
|
fi
|
||||||
cd ${WORKDIR}
|
cd ${WORKDIR}
|
||||||
for dir in *
|
for dir in *
|
||||||
do
|
do
|
||||||
|
|||||||
@@ -44,11 +44,12 @@ def sstate_init(name, d):
|
|||||||
ss['lockfiles'] = []
|
ss['lockfiles'] = []
|
||||||
return ss
|
return ss
|
||||||
|
|
||||||
def sstate_state_fromvars(d):
|
def sstate_state_fromvars(d, task = None):
|
||||||
task = bb.data.getVar('BB_CURRENTTASK', d, True)
|
if task is None:
|
||||||
if not task:
|
task = bb.data.getVar('BB_CURRENTTASK', d, True)
|
||||||
bb.fatal("sstate code running without task context?!")
|
if not task:
|
||||||
task = task.replace("_setscene", "")
|
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)
|
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()
|
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)
|
sstate_install(ss, d)
|
||||||
|
|
||||||
for plain in ss['plaindirs']:
|
for plain in ss['plaindirs']:
|
||||||
bb.mkdirhier(sstateinst + plain)
|
workdir = d.getVar('WORKDIR', True)
|
||||||
oe.path.copytree(sstateinst + plain, bb.data.getVar('WORKDIR', d, True) + plain)
|
src = sstateinst + "/" + plain.replace(workdir, '')
|
||||||
|
dest = plain
|
||||||
|
bb.mkdirhier(src)
|
||||||
|
bb.mkdirhier(dest)
|
||||||
|
oe.path.copytree(src, dest)
|
||||||
|
|
||||||
return True
|
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):
|
def sstate_clean_manifest(manifest, d):
|
||||||
import oe.path
|
import oe.path
|
||||||
|
|
||||||
@@ -263,6 +278,9 @@ def pstaging_fetch(sstatepkg, d):
|
|||||||
|
|
||||||
dldir = bb.data.expand("${SSTATE_DIR}", localdata)
|
dldir = bb.data.expand("${SSTATE_DIR}", localdata)
|
||||||
srcuri = "file://" + os.path.basename(sstatepkg)
|
srcuri = "file://" + os.path.basename(sstatepkg)
|
||||||
|
|
||||||
|
bb.mkdirhier(dldir)
|
||||||
|
|
||||||
bb.data.setVar('DL_DIR', dldir, localdata)
|
bb.data.setVar('DL_DIR', dldir, localdata)
|
||||||
bb.data.setVar('PREMIRRORS', mirrors, localdata)
|
bb.data.setVar('PREMIRRORS', mirrors, localdata)
|
||||||
bb.data.setVar('SRC_URI', srcuri, 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
|
# Try a fetch from the sstate mirror, if it fails just return and
|
||||||
# we will build the package
|
# we will build the package
|
||||||
try:
|
try:
|
||||||
bb.fetch.init([srcuri], pd)
|
bb.fetch.init([srcuri], localdata)
|
||||||
bb.fetch.go(pd, [srcuri])
|
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:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -362,10 +384,10 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d):
|
|||||||
|
|
||||||
srcuri = "file://" + os.path.basename(sstatefile)
|
srcuri = "file://" + os.path.basename(sstatefile)
|
||||||
bb.data.setVar('SRC_URI', srcuri, localdata)
|
bb.data.setVar('SRC_URI', srcuri, localdata)
|
||||||
bb.note(str(srcuri))
|
#bb.note(str(srcuri))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
bb.fetch.init(srcuri.split(), d)
|
bb.fetch.init(srcuri.split(), localdata)
|
||||||
bb.fetch.checkstatus(localdata)
|
bb.fetch.checkstatus(localdata)
|
||||||
ret.append(task)
|
ret.append(task)
|
||||||
except:
|
except:
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ DESCRIPTION_${PN}-dbg ?= "${SUMMARY_${PN}-dbg}"
|
|||||||
DESCRIPTION_${PN}-dev ?= "${SUMMARY_${PN}-dev}"
|
DESCRIPTION_${PN}-dev ?= "${SUMMARY_${PN}-dev}"
|
||||||
DESCRIPTION_${PN}-doc ?= "${SUMMARY_${PN}-doc}"
|
DESCRIPTION_${PN}-doc ?= "${SUMMARY_${PN}-doc}"
|
||||||
LICENSE = "INVALID"
|
LICENSE = "INVALID"
|
||||||
MAINTAINER = "Poky Team <poky@openedhand.com>"
|
MAINTAINER = "Yocto Project Team <poky@yoctoproject.org>"
|
||||||
HOMEPAGE = "unknown"
|
HOMEPAGE = "unknown"
|
||||||
|
|
||||||
# Package dependencies and provides.
|
# Package dependencies and provides.
|
||||||
@@ -546,6 +546,7 @@ SRC_URI = "file://${FILE}"
|
|||||||
PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/"
|
PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/"
|
||||||
FAKEROOT = "PSEUDO_PREFIX=${STAGING_DIR_NATIVE}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_NOSYMLINKEXP=1 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"
|
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"
|
PREFERRED_PROVIDER_virtual/fakeroot-native ?= "pseudo-native"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
#@TYPE: Distribution#@NAME: Poky
|
#@TYPE: Distribution#@NAME: Poky
|
||||||
#@DESCRIPTION: Distribution configuration for OpenedHand (Poky)
|
#@DESCRIPTION: Distribution configuration for the Yocto Project build by Poky
|
||||||
|
|
||||||
DISTRO = "poky"
|
DISTRO = "poky"
|
||||||
DISTRO_NAME = "OpenedHand Linux (Poky)"
|
DISTRO_NAME = "Yocto Linux (Built by Poky 4.0.1)"
|
||||||
DISTRO_VERSION = "3.3+snapshot-${DATE}"
|
DISTRO_VERSION = "0.9"
|
||||||
|
|
||||||
MAINTAINER = "Poky <poky@openedhand.com>"
|
MAINTAINER = "Poky <poky@yoctoproject.org>"
|
||||||
|
|
||||||
USER_CLASSES ?= ""
|
USER_CLASSES ?= ""
|
||||||
|
|
||||||
|
|||||||
@@ -159,3 +159,8 @@ ENABLE_BINARY_LOCALE_GENERATION = "1"
|
|||||||
# wish to perform the time-consuming step of generating all LIBC locales.
|
# wish to perform the time-consuming step of generating all LIBC locales.
|
||||||
# WARNING: this may break localisation!
|
# WARNING: this may break localisation!
|
||||||
#GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
|
#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"
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#@DESCRIPTION: Machine configuration for running
|
#@DESCRIPTION: Machine configuration for running
|
||||||
|
|
||||||
TARGET_ARCH = "powerpc"
|
TARGET_ARCH = "powerpc"
|
||||||
PACKAGE_EXTRA_ARCHS = "ppce300"
|
PACKAGE_EXTRA_ARCHS = "ppc603e"
|
||||||
TARGET_FPU = "spe"
|
TARGET_FPU = "spe"
|
||||||
|
|
||||||
require conf/machine/include/tune-ppc603e.inc
|
require conf/machine/include/tune-ppc603e.inc
|
||||||
@@ -14,3 +14,5 @@ SERIAL_CONSOLE = "115200 ttyS0"
|
|||||||
MACHINE_FEATURES = "kernel26 keyboard pci ext2 ext3 serial"
|
MACHINE_FEATURES = "kernel26 keyboard pci ext2 ext3 serial"
|
||||||
|
|
||||||
PREFERRED_PROVIDER_virtual/kernel = "linux-wrs"
|
PREFERRED_PROVIDER_virtual/kernel = "linux-wrs"
|
||||||
|
|
||||||
|
UBOOT_ENTRYPOINT = "0x00000000"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
HAVE_TOUCHSCREEN=0
|
HAVE_TOUCHSCREEN=1
|
||||||
HAVE_KEYBOARD=0
|
HAVE_KEYBOARD=1
|
||||||
|
|
||||||
DISPLAY_CAN_ROTATE=0
|
DISPLAY_CAN_ROTATE=0
|
||||||
DISPLAY_ORIENTATION=0
|
DISPLAY_ORIENTATION=0
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Encoding=UTF-8
|
|
||||||
Name=Connection Manager
|
|
||||||
Comment=Connection Manager applet
|
|
||||||
Icon=stock_internet
|
|
||||||
Exec=connman-applet
|
|
||||||
Terminal=false
|
|
||||||
Type=Application
|
|
||||||
Categories=Network;GTK;
|
|
||||||
|
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
diff -ruN connman-gnome-0.5-orig/po/POTFILES.in connman-gnome-0.5/po/POTFILES.in
|
||||||
|
--- connman-gnome-0.5-orig/po/POTFILES.in 2010-12-16 16:03:29.000000000 +0800
|
||||||
|
+++ connman-gnome-0.5/po/POTFILES.in 2010-12-17 10:27:17.000000000 +0800
|
||||||
|
@@ -4,4 +4,3 @@
|
||||||
|
properties/advanced.c
|
||||||
|
properties/ethernet.c
|
||||||
|
properties/wifi.c
|
||||||
|
-properties/connman-properties.desktop.in
|
||||||
|
diff -ruN connman-gnome-0.5-orig/properties/Makefile.am connman-gnome-0.5/properties/Makefile.am
|
||||||
|
--- connman-gnome-0.5-orig/properties/Makefile.am 2010-12-16 16:03:29.000000000 +0800
|
||||||
|
+++ connman-gnome-0.5/properties/Makefile.am 2010-12-17 10:27:09.000000000 +0800
|
||||||
|
@@ -17,16 +17,6 @@
|
||||||
|
|
||||||
|
INCLUDES = -I$(top_srcdir)/common
|
||||||
|
|
||||||
|
-desktopdir = $(datadir)/applications
|
||||||
|
-
|
||||||
|
-desktop_in_files = connman-properties.desktop.in
|
||||||
|
-
|
||||||
|
-desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
|
||||||
|
-
|
||||||
|
@INTLTOOL_DESKTOP_RULE@
|
||||||
|
|
||||||
|
-CLEANFILES = $(desktop_DATA)
|
||||||
|
-
|
||||||
|
-EXTRA_DIST = $(desktop_in_files)
|
||||||
|
-
|
||||||
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
diff -ruN connman-gnome-0.5-orig/properties/connman-properties.desktop.in connman-gnome-0.5/properties/connman-properties.desktop.in
|
||||||
|
--- connman-gnome-0.5-orig/properties/connman-properties.desktop.in 2010-12-16 16:03:29.000000000 +0800
|
||||||
|
+++ connman-gnome-0.5/properties/connman-properties.desktop.in 1970-01-01 08:00:00.000000000 +0800
|
||||||
|
@@ -1,10 +0,0 @@
|
||||||
|
-[Desktop Entry]
|
||||||
|
-Encoding=UTF-8
|
||||||
|
-_Name=Connection Management
|
||||||
|
-_Comment=Configure connection management
|
||||||
|
-Icon=stock_internet
|
||||||
|
-Exec=connman-properties
|
||||||
|
-Terminal=false
|
||||||
|
-Type=Application
|
||||||
|
-Categories=Settings;
|
||||||
|
-OnlyShowIn=GNOME;
|
||||||
@@ -6,17 +6,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
|
|||||||
file://properties/main.c;beginline=1;endline=20;md5=50c77c81871308b033ab7a1504626afb \
|
file://properties/main.c;beginline=1;endline=20;md5=50c77c81871308b033ab7a1504626afb \
|
||||||
file://common/connman-dbus.c;beginline=1;endline=20;md5=de6b485c0e717a0236402d220187717a"
|
file://common/connman-dbus.c;beginline=1;endline=20;md5=de6b485c0e717a0236402d220187717a"
|
||||||
DEPENDS = "gtk+ dbus"
|
DEPENDS = "gtk+ dbus"
|
||||||
PR = "r1"
|
PR = "r2"
|
||||||
|
|
||||||
RRECOMMENDS_${PN} = "python python-dbus connman connman-plugin-ethernet connman-plugin-loopback connman-plugin-udhcp connman-plugin-wifi connman-plugin-fake connman-plugin-bluetooth connman-plugin-dnsproxy"
|
RRECOMMENDS_${PN} = "python python-dbus connman connman-plugin-ethernet connman-plugin-loopback connman-plugin-udhcp connman-plugin-wifi connman-plugin-fake connman-plugin-bluetooth connman-plugin-dnsproxy"
|
||||||
|
|
||||||
SRC_URI = "http://www.kernel.org/pub/linux/network/connman/connman-gnome-${PV}.tar.gz \
|
SRC_URI = "http://www.kernel.org/pub/linux/network/connman/connman-gnome-${PV}.tar.gz \
|
||||||
file://connman-gnome.patch \
|
file://connman-gnome.patch \
|
||||||
file://connman-applet.desktop"
|
file://remove-connman-property-desktop-file.patch"
|
||||||
|
|
||||||
inherit autotools gtk-icon-cache
|
inherit autotools gtk-icon-cache
|
||||||
|
|
||||||
do_install_append() {
|
|
||||||
install -d ${D}${datadir}/applications/
|
|
||||||
install ${WORKDIR}/connman-applet.desktop ${D}${datadir}/applications/
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -17,6 +17,10 @@ AR_append = " r"
|
|||||||
CFLAG = "${@base_conditional('SITEINFO_ENDIANESS', 'le', '-DL_ENDIAN', '-DB_ENDIAN', d)} \
|
CFLAG = "${@base_conditional('SITEINFO_ENDIANESS', 'le', '-DL_ENDIAN', '-DB_ENDIAN', d)} \
|
||||||
-DTERMIO ${FULL_OPTIMIZATION} -Wall"
|
-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
|
# -02 does not work on mipsel: ssh hangs when it tries to read /dev/urandom
|
||||||
CFLAG_mtx-1 := "${@'${CFLAG}'.replace('-O2', '')}"
|
CFLAG_mtx-1 := "${@'${CFLAG}'.replace('-O2', '')}"
|
||||||
CFLAG_mtx-2 := "${@'${CFLAG}'.replace('-O2', '')}"
|
CFLAG_mtx-2 := "${@'${CFLAG}'.replace('-O2', '')}"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
require openssl.inc
|
require openssl.inc
|
||||||
|
|
||||||
PR = "r0"
|
PR = "r2"
|
||||||
SRC_URI += "file://debian/ca.patch \
|
SRC_URI += "file://debian/ca.patch \
|
||||||
file://debian/config-hurd.patch;apply=no \
|
file://debian/config-hurd.patch;apply=no \
|
||||||
file://debian/debian-targets.patch \
|
file://debian/debian-targets.patch \
|
||||||
|
|||||||
56
meta/recipes-core/busybox/busybox-1.16.2/make-382-fix.patch
Normal 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
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
require busybox.inc
|
require busybox.inc
|
||||||
PR = "r0"
|
PR = "r1"
|
||||||
|
|
||||||
SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
|
SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
|
||||||
file://udhcpscript.patch \
|
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://get_header_tar.patch \
|
||||||
file://busybox-appletlib-dependency.patch \
|
file://busybox-appletlib-dependency.patch \
|
||||||
file://run-parts.in.usr-bin.patch \
|
file://run-parts.in.usr-bin.patch \
|
||||||
|
file://make-382-fix.patch \
|
||||||
file://find-touchscreen.sh \
|
file://find-touchscreen.sh \
|
||||||
file://busybox-cron \
|
file://busybox-cron \
|
||||||
file://busybox-httpd \
|
file://busybox-httpd \
|
||||||
|
|||||||
25
meta/recipes-core/eglibc/eglibc-2.12/fix-for-make-3.82.diff
Normal 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 $@
|
||||||
|
|
||||||
@@ -2,7 +2,7 @@ require eglibc.inc
|
|||||||
|
|
||||||
DEPENDS += "gperf-native"
|
DEPENDS += "gperf-native"
|
||||||
FILESPATHPKG =. "eglibc-svn:"
|
FILESPATHPKG =. "eglibc-svn:"
|
||||||
PR = "r9"
|
PR = "r10"
|
||||||
|
|
||||||
EGLIBC_BRANCH="eglibc-2_12"
|
EGLIBC_BRANCH="eglibc-2_12"
|
||||||
SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http \
|
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://shorten-build-commands.patch \
|
||||||
file://mips-rld-map-check.patch \
|
file://mips-rld-map-check.patch \
|
||||||
file://etc/ld.so.conf \
|
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"
|
SRC_URI_append_virtclass-nativesdk = " file://ld-search-order.patch"
|
||||||
S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
|
S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
|
||||||
B = "${WORKDIR}/build-${TARGET_SYS}"
|
B = "${WORKDIR}/build-${TARGET_SYS}"
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ early_setup() {
|
|||||||
mount -t proc proc /proc
|
mount -t proc proc /proc
|
||||||
mount -t sysfs sysfs /sys
|
mount -t sysfs sysfs /sys
|
||||||
udevd --daemon
|
udevd --daemon
|
||||||
|
/sbin/udevadm trigger --action=add
|
||||||
}
|
}
|
||||||
|
|
||||||
read_args() {
|
read_args() {
|
||||||
|
|||||||
@@ -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"
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
require qemu.inc
|
require qemu.inc
|
||||||
|
|
||||||
PR = "r22"
|
PR = "r23"
|
||||||
|
|
||||||
FILESPATH = "${FILE_DIRNAME}/qemu-${PV}"
|
FILESPATH = "${FILE_DIRNAME}/qemu-${PV}"
|
||||||
FILESDIR = "${WORKDIR}"
|
FILESDIR = "${WORKDIR}"
|
||||||
@@ -21,6 +21,7 @@ SRC_URI = "\
|
|||||||
file://arm-cp15-fix.patch \
|
file://arm-cp15-fix.patch \
|
||||||
file://cursor-shadow-fix.patch \
|
file://cursor-shadow-fix.patch \
|
||||||
file://vmware-vga-fifo-rewind.patch \
|
file://vmware-vga-fifo-rewind.patch \
|
||||||
|
file://fix-configure-checks.patch \
|
||||||
file://powerpc_rom.bin"
|
file://powerpc_rom.bin"
|
||||||
|
|
||||||
do_install_append () {
|
do_install_append () {
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ LICENSE = "GPLv2"
|
|||||||
LIC_CHKSUM_FILES = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
|
LIC_CHKSUM_FILES = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
|
||||||
|
|
||||||
SRC_URI = "http://download.savannah.gnu.org/releases/quilt/quilt-${PV}.tar.gz \
|
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
|
inherit autotools
|
||||||
|
|
||||||
|
|||||||
19
meta/recipes-devtools/quilt/quilt/gnu_patch_test_fix.patch
Normal 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='.'
|
||||||
@@ -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)
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
require procps.inc
|
require procps.inc
|
||||||
|
|
||||||
PR = "r9"
|
PR = "r10"
|
||||||
|
|
||||||
inherit update-rc.d update-alternatives
|
inherit update-rc.d update-alternatives
|
||||||
|
|
||||||
@@ -16,6 +16,7 @@ SRC_URI += "file://procmodule.patch;patch=1 \
|
|||||||
file://linux-limits.patch;patch=1 \
|
file://linux-limits.patch;patch=1 \
|
||||||
file://sysctl.conf \
|
file://sysctl.conf \
|
||||||
file://procps.init \
|
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} \
|
FILES = "${bindir}/top.${PN} ${base_bindir}/ps.${PN} ${bindir}/uptime.${PN} ${base_bindir}/kill.${PN} \
|
||||||
|
|||||||
52
meta/recipes-graphics/tslib/tslib/32bitBE-support.patch
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
#! /bin/sh /usr/share/dpatch/dpatch-run
|
||||||
|
## 030-32bitBE-support.dpatch by Neil Williams <codehelp@debian.org>
|
||||||
|
##
|
||||||
|
## All lines beginning with `## DP:' are a description of the patch.
|
||||||
|
## DP: See bug #496759 - being tested upstream for 32bit BE devices
|
||||||
|
|
||||||
|
@DPATCH@
|
||||||
|
diff -urNad tslib-1.0~/plugins/input-raw.c tslib-1.0/plugins/input-raw.c
|
||||||
|
--- tslib-1.0~/plugins/input-raw.c 2008-12-09 10:56:47.000000000 +0000
|
||||||
|
+++ tslib-1.0/plugins/input-raw.c 2008-12-09 11:05:41.000000000 +0000
|
||||||
|
@@ -44,25 +44,33 @@
|
||||||
|
int using_syn;
|
||||||
|
};
|
||||||
|
|
||||||
|
+#define BITS_PER_LONG (sizeof(long) * 8)
|
||||||
|
+#ifndef EV_CNT
|
||||||
|
+#define EV_CNT (EV_MAX+1)
|
||||||
|
+#endif
|
||||||
|
+#ifndef ABS_CNT
|
||||||
|
+#define ABS_CNT (ABS_MAX+1)
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
static int check_fd(struct tslib_input *i)
|
||||||
|
{
|
||||||
|
struct tsdev *ts = i->module.dev;
|
||||||
|
int version;
|
||||||
|
- u_int32_t bit;
|
||||||
|
- u_int64_t absbit;
|
||||||
|
+ unsigned long bit[EV_CNT / BITS_PER_LONG + 1];
|
||||||
|
+ unsigned long absbit[ABS_MAX / BITS_PER_LONG + 1];
|
||||||
|
|
||||||
|
if (! ((ioctl(ts->fd, EVIOCGVERSION, &version) >= 0) &&
|
||||||
|
(version == EV_VERSION) &&
|
||||||
|
- (ioctl(ts->fd, EVIOCGBIT(0, sizeof(bit) * 8), &bit) >= 0) &&
|
||||||
|
- (bit & (1 << EV_ABS)) &&
|
||||||
|
- (ioctl(ts->fd, EVIOCGBIT(EV_ABS, sizeof(absbit) * 8), &absbit) >= 0) &&
|
||||||
|
- (absbit & (1 << ABS_X)) &&
|
||||||
|
- (absbit & (1 << ABS_Y)) && (absbit & (1 << ABS_PRESSURE)))) {
|
||||||
|
+ (ioctl(ts->fd, EVIOCGBIT(0, sizeof(bit)), bit) >= 0) &&
|
||||||
|
+ (bit[0] & (1 << EV_ABS)) &&
|
||||||
|
+ (ioctl(ts->fd, EVIOCGBIT(EV_ABS, sizeof(absbit)), absbit) >= 0) &&
|
||||||
|
+ (absbit[0] & (1 << ABS_X)) &&
|
||||||
|
+ (absbit[0] & (1 << ABS_Y)) && (absbit[0] & (1 << ABS_PRESSURE)))) {
|
||||||
|
fprintf(stderr, "selected device is not a touchscreen I understand\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (bit & (1 << EV_SYN))
|
||||||
|
+ if (bit[0] & (1 << EV_SYN))
|
||||||
|
i->using_syn = 1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
@@ -6,7 +6,7 @@ SECTION = "base"
|
|||||||
LICENSE = "LGPLv2"
|
LICENSE = "LGPLv2"
|
||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=f30a9716ef3762e3467a2f62bf790f0a"
|
LIC_FILES_CHKSUM = "file://COPYING;md5=f30a9716ef3762e3467a2f62bf790f0a"
|
||||||
|
|
||||||
PR = "r15"
|
PR = "r16"
|
||||||
|
|
||||||
SRC_URI = "http://download.berlios.de/tslib/tslib-${PV}.tar.bz2 \
|
SRC_URI = "http://download.berlios.de/tslib/tslib-${PV}.tar.bz2 \
|
||||||
file://fix_version.patch;patch=1 \
|
file://fix_version.patch;patch=1 \
|
||||||
@@ -16,6 +16,8 @@ SRC_URI = "http://download.berlios.de/tslib/tslib-${PV}.tar.bz2 \
|
|||||||
file://tslib.sh"
|
file://tslib.sh"
|
||||||
SRC_URI_append_mnci += " file://devfs.patch;patch=1"
|
SRC_URI_append_mnci += " file://devfs.patch;patch=1"
|
||||||
SRC_URI_append_mnci += " file://event1.patch;patch=1"
|
SRC_URI_append_mnci += " file://event1.patch;patch=1"
|
||||||
|
SRC_URI_append_qemumips += " file://32bitBE-support.patch;patch=1"
|
||||||
|
|
||||||
|
|
||||||
inherit autotools pkgconfig
|
inherit autotools pkgconfig
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
if [ -x /usr/bin/dbus-launch ]; then
|
if [ -x /usr/bin/dbus-launch ]; then
|
||||||
# As this is the X session script, always start a new DBus session.
|
# As this is the X session script, always start a new DBus session.
|
||||||
eval `dbus-launch --sh-syntax --exit-with-session`
|
eval `dbus-launch --sh-syntax --exit-with-session </dev/null`
|
||||||
echo "D-BUS per-session daemon address is: $DBUS_SESSION_BUS_ADDRESS"
|
echo "D-BUS per-session daemon address is: $DBUS_SESSION_BUS_ADDRESS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ DESCRIPTION = "Common X11 scripts"
|
|||||||
LICENSE = "GPLv2"
|
LICENSE = "GPLv2"
|
||||||
SECTION = "x11"
|
SECTION = "x11"
|
||||||
RDEPENDS_${PN} = "xmodmap xdpyinfo xtscal xinit formfactor"
|
RDEPENDS_${PN} = "xmodmap xdpyinfo xtscal xinit formfactor"
|
||||||
PR = "r38"
|
PR = "r39"
|
||||||
|
|
||||||
SRC_URI = "file://etc"
|
SRC_URI = "file://etc"
|
||||||
S = ${WORKDIR}
|
S = ${WORKDIR}
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
|
|||||||
|
|
||||||
Index: linux-2.6.34/include/linux/connector.h
|
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.orig/include/linux/connector.h
|
||||||
+++ linux-2.6.34/include/linux/connector.h 2010-09-30 14:15:43.000000000 +0800
|
+++ linux-2.6.34/include/linux/connector.h
|
||||||
@@ -48,7 +48,7 @@
|
@@ -48,7 +48,7 @@
|
||||||
/*
|
/*
|
||||||
* Maximum connector's message size.
|
* Maximum connector's message size.
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -2,11 +2,12 @@ require linux-libc-headers.inc
|
|||||||
|
|
||||||
INHIBIT_DEFAULT_DEPS = "1"
|
INHIBIT_DEFAULT_DEPS = "1"
|
||||||
DEPENDS += "unifdef-native"
|
DEPENDS += "unifdef-native"
|
||||||
PR = "r1"
|
PR = "r2"
|
||||||
|
|
||||||
SRC_URI += "file://hayes-gone.patch \
|
SRC_URI += "file://hayes-gone.patch \
|
||||||
file://ppc_glibc_build_fix.patch \
|
file://ppc_glibc_build_fix.patch \
|
||||||
file://connector-msg-size-fix.patch"
|
file://make-382.patch \
|
||||||
|
file://connector-msg-size-fix.patch"
|
||||||
|
|
||||||
S = "${WORKDIR}/linux-${PV}"
|
S = "${WORKDIR}/linux-${PV}"
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
|
|||||||
|
|
||||||
DEPENDS += "gst-plugins-base libmusicbrainz tremor"
|
DEPENDS += "gst-plugins-base libmusicbrainz tremor"
|
||||||
|
|
||||||
PR = "r2"
|
PR = "r3"
|
||||||
|
|
||||||
inherit gettext
|
inherit gettext
|
||||||
|
|
||||||
|
|||||||
@@ -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 \
|
RDEPENDS += "gnome-vfs-plugin-file gnome-vfs-plugin-http gnome-vfs-plugin-ftp \
|
||||||
gnome-vfs-plugin-sftp"
|
gnome-vfs-plugin-sftp"
|
||||||
|
|
||||||
PR = "r1"
|
PR = "r2"
|
||||||
|
|
||||||
inherit gettext
|
inherit gettext
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
|
|||||||
|
|
||||||
DEPENDS += "gst-plugins-base gconf cairo jpeg libpng gtk+ zlib libid3tag flac \
|
DEPENDS += "gst-plugins-base gconf cairo jpeg libpng gtk+ zlib libid3tag flac \
|
||||||
speex"
|
speex"
|
||||||
PR = "r0"
|
PR = "r1"
|
||||||
|
|
||||||
inherit gettext
|
inherit gettext
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
|
|||||||
file://gst/mpegstream/gstmpegparse.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9"
|
file://gst/mpegstream/gstmpegparse.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9"
|
||||||
|
|
||||||
DEPENDS += "gst-plugins-base libid3tag libmad mpeg2dec liba52 lame"
|
DEPENDS += "gst-plugins-base libid3tag libmad mpeg2dec liba52 lame"
|
||||||
PR = "r0"
|
PR = "r1"
|
||||||
|
|
||||||
inherit gettext
|
inherit gettext
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,10 @@ DEPENDS = "gstreamer"
|
|||||||
|
|
||||||
inherit autotools pkgconfig
|
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 "
|
EXTRA_OECONF = "--disable-valgrind --disable-debug --disable-examples "
|
||||||
|
|
||||||
|
|||||||
25
meta/recipes-multimedia/gstreamer/gst-plugins/make-382.patch
Normal 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
|
||||||
@@ -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
|
||||||
|
|
||||||
@@ -9,11 +9,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \
|
|||||||
file://gst/gst.h;beginline=1;endline=21;md5=8e5fe5e87d33a04479fde862e238eaa4"
|
file://gst/gst.h;beginline=1;endline=21;md5=8e5fe5e87d33a04479fde862e238eaa4"
|
||||||
DEPENDS = "glib-2.0 gettext libxml2 bison-native flex-native"
|
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 \
|
SRC_URI = "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.bz2 \
|
||||||
file://check_fix.patch;patch=1 \
|
file://check_fix.patch \
|
||||||
file://gst-inspect-check-error.patch;patch=1"
|
file://gst-inspect-check-error.patch \
|
||||||
|
file://make-382.patch"
|
||||||
|
|
||||||
inherit autotools pkgconfig
|
inherit autotools pkgconfig
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,9 @@ BUGTRACKER = "https://trac.xiph.org/newticket"
|
|||||||
SECTION = "libs"
|
SECTION = "libs"
|
||||||
LICENSE = "BSD"
|
LICENSE = "BSD"
|
||||||
|
|
||||||
PR = "r0"
|
DEPENDS = "libogg"
|
||||||
|
|
||||||
|
PR = "r1"
|
||||||
|
|
||||||
SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2 \
|
SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2 \
|
||||||
file://no-docs.patch"
|
file://no-docs.patch"
|
||||||
|
|||||||
11
meta/recipes-sato/owl-video-widget/libowl-av/make-382.patch
Normal 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"`
|
||||||
|
|
||||||
@@ -13,11 +13,12 @@ RDEPENDS = "gst-meta-base"
|
|||||||
RRECOMMENDS = "gst-meta-audio gst-meta-video"
|
RRECOMMENDS = "gst-meta-audio gst-meta-video"
|
||||||
|
|
||||||
PV = "0.0+svnr${SRCREV}"
|
PV = "0.0+svnr${SRCREV}"
|
||||||
PR = "r4"
|
PR = "r5"
|
||||||
|
|
||||||
S = "${WORKDIR}/${PN}"
|
S = "${WORKDIR}/${PN}"
|
||||||
|
|
||||||
SRC_URI = "svn://svn.o-hand.com/repos/misc/trunk;module=${PN};proto=http \
|
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
|
inherit autotools pkgconfig
|
||||||
|
|||||||
15
meta/recipes-sato/owl-video-widget/owl-video/make-382.patch
Normal 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"`
|
||||||
|
|
||||||
@@ -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-min.png \
|
||||||
file://stock_volume-med.png \
|
file://stock_volume-med.png \
|
||||||
file://stock_volume-max.png \
|
file://stock_volume-max.png \
|
||||||
file://owl-video-widget.desktop"
|
file://owl-video-widget.desktop \
|
||||||
|
file://make-382.patch"
|
||||||
|
|
||||||
inherit autotools pkgconfig
|
inherit autotools pkgconfig
|
||||||
|
|
||||||
|
|||||||
14
meta/recipes-sato/pimlico/contacts/make-382.patch
Normal 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"`
|
||||||
@@ -6,11 +6,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
|
|||||||
file://src/contacts-gtk.c;endline=23;md5=e1ee9b9e72045f2d3aa44cf17313b46e"
|
file://src/contacts-gtk.c;endline=23;md5=e1ee9b9e72045f2d3aa44cf17313b46e"
|
||||||
|
|
||||||
PV = "0.12+git${SRCPV}"
|
PV = "0.12+git${SRCPV}"
|
||||||
PR = "r0"
|
PR = "r1"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
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"
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
|
|||||||
16
meta/recipes-sato/pimlico/dates/make-382.patch
Normal 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"`
|
||||||
|
|
||||||
@@ -6,8 +6,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
|
|||||||
file://src/gconf-bridge.c;endline=22;md5=ad7626c6daf4aec590474a243f4912fa"
|
file://src/gconf-bridge.c;endline=22;md5=ad7626c6daf4aec590474a243f4912fa"
|
||||||
|
|
||||||
PV = "0.4.11+git${SRCPV}"
|
PV = "0.4.11+git${SRCPV}"
|
||||||
PR = "r0"
|
PR = "r1"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
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"
|
||||||
|
|||||||
15
meta/recipes-sato/web/web-webkit/make-382.patch
Normal 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"`
|
||||||
|
|
||||||
@@ -8,10 +8,11 @@ SECTION = "x11"
|
|||||||
DEPENDS = "libxml2 glib-2.0 gtk+ libglade webkit-gtk curl gconf js libowl"
|
DEPENDS = "libxml2 glib-2.0 gtk+ libglade webkit-gtk curl gconf js libowl"
|
||||||
|
|
||||||
PV = "0.0+svnr${SRCREV}"
|
PV = "0.0+svnr${SRCREV}"
|
||||||
PR = "r2"
|
PR = "r3"
|
||||||
|
|
||||||
SRC_URI = "svn://svn.o-hand.com/repos/web/branches;module=webkit;proto=http \
|
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"
|
S = "${WORKDIR}/webkit"
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,11 @@ if [ ! -e "$ROOTFS_TARBALL" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
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=""
|
TAR_OPTS=""
|
||||||
if [[ "$ROOTFS_TARBALL" =~ tar\.bz2$ ]]; then
|
if [[ "$ROOTFS_TARBALL" =~ tar\.bz2$ ]]; then
|
||||||
TAR_OPTS="-xjf"
|
TAR_OPTS="-xjf"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Find a native sysroot to use - either from an in-tree Poky build or
|
# 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
|
# $POKY_NATIVE_SYSROOT is set to the sysroot's base directory, and sets
|
||||||
# $PSEUDO to the path of the pseudo binary.
|
# $PSEUDO to the path of the pseudo binary.
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -31,9 +31,9 @@ usage() {
|
|||||||
echo " serial - enables a serial console on /dev/ttyS0"
|
echo " serial - enables a serial console on /dev/ttyS0"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Examples:"
|
echo "Examples:"
|
||||||
echo " $0 qemuarm"
|
echo " $MYNAME qemuarm"
|
||||||
echo " $0 qemux86-64 poky-image-sato ext3"
|
echo " $MYNAME qemux86-64 poky-image-sato ext3"
|
||||||
echo " $0 path/to/bzImage-qemux86.bin path/to/nfsrootdir/ serial"
|
echo " $MYNAME path/to/bzImage-qemux86.bin path/to/nfsrootdir/ serial"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,6 +51,37 @@ SCRIPT_KERNEL_OPT=""
|
|||||||
|
|
||||||
TMPDIR=""
|
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
|
# Parse command line args without requiring specific ordering. It's a
|
||||||
# bit more complex, but offers a great user experience.
|
# bit more complex, but offers a great user experience.
|
||||||
i=1
|
i=1
|
||||||
@@ -66,7 +97,7 @@ while [ $i -le $# ]; do
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"ext2" | "ext3" | "jffs2" | "nfs")
|
"ext2" | "ext3" | "jffs2" | "nfs")
|
||||||
if [ -z "$FSTYPE" ]; then
|
if [[ -z "$FSTYPE" || "$FSTYPE" == "$arg" ]]; then
|
||||||
FSTYPE=$arg
|
FSTYPE=$arg
|
||||||
else
|
else
|
||||||
echo "Error: conflicting FSTYPE types [$FSTYPE] and [$arg]"
|
echo "Error: conflicting FSTYPE types [$FSTYPE] and [$arg]"
|
||||||
@@ -75,8 +106,8 @@ while [ $i -le $# ]; do
|
|||||||
;;
|
;;
|
||||||
*-image-*)
|
*-image-*)
|
||||||
if [ -z "$ROOTFS" ]; then
|
if [ -z "$ROOTFS" ]; then
|
||||||
if [ -e "$arg" ]; then
|
if [ -f "$arg" ]; then
|
||||||
ROOTFS=$arg
|
process_filename $arg
|
||||||
else
|
else
|
||||||
ROOTFS=$arg
|
ROOTFS=$arg
|
||||||
LAZY_ROOTFS="true"
|
LAZY_ROOTFS="true"
|
||||||
@@ -111,30 +142,7 @@ while [ $i -le $# ]; do
|
|||||||
usage
|
usage
|
||||||
fi
|
fi
|
||||||
elif [ -f "$arg" ]; then
|
elif [ -f "$arg" ]; then
|
||||||
# Extract the filename extension
|
process_filename $arg
|
||||||
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
|
|
||||||
else
|
else
|
||||||
echo "Error: unable to classify arg [$arg]"
|
echo "Error: unable to classify arg [$arg]"
|
||||||
usage
|
usage
|
||||||
@@ -155,7 +163,7 @@ if [[ "$FSTYPE" == "nfs" && -z "$ROOTFS" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$MACHINE" ]; then
|
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
|
if [ -z "$MACHINE" ]; then
|
||||||
echo "Error: Unable to set MACHINE from kernel filename [$KERNEL]"
|
echo "Error: Unable to set MACHINE from kernel filename [$KERNEL]"
|
||||||
usage
|
usage
|
||||||
@@ -196,7 +204,7 @@ SPITZ_DEFAULT_ROOTFS="poky-image-sato"
|
|||||||
|
|
||||||
setup_tmpdir() {
|
setup_tmpdir() {
|
||||||
if [ -z "$TMPDIR" ]; then
|
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
|
# BUILDDIR unset, try and get TMPDIR from bitbake
|
||||||
type -P bitbake &>/dev/null || {
|
type -P bitbake &>/dev/null || {
|
||||||
echo "In order for this script to dynamically infer paths";
|
echo "In order for this script to dynamically infer paths";
|
||||||
@@ -205,23 +213,29 @@ setup_tmpdir() {
|
|||||||
echo "before running this script" >&2;
|
echo "before running this script" >&2;
|
||||||
exit 1; }
|
exit 1; }
|
||||||
|
|
||||||
# We have bitbake in PATH, get TMPDIR and BUILD_SYS
|
# We have bitbake in PATH, get TMPDIR from bitbake
|
||||||
# from the environment
|
|
||||||
TMPDIR=`bitbake -e | grep TMPDIR=\" | cut -d '=' -f2 | cut -d '"' -f2`
|
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
|
else
|
||||||
BUILD_ARCH=`uname -m`
|
|
||||||
BUILD_OS=`uname | tr '[A-Z]' '[a-z]'`
|
|
||||||
BUILD_SYS="$BUILD_ARCH-$BUILD_OS"
|
|
||||||
TMPDIR=$BUILDDIR/tmp
|
TMPDIR=$BUILDDIR/tmp
|
||||||
fi
|
fi
|
||||||
if [ -z "$POKY_NATIVE_SYSROOT" ]; then
|
|
||||||
POKY_NATIVE_SYSROOT=$TMPDIR/sysroots/$BUILD_SYS
|
|
||||||
fi
|
|
||||||
CROSSPATH=$POKY_NATIVE_SYSROOT/usr/bin
|
|
||||||
fi
|
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
|
# Locate a rootfs image based on defaults defined above
|
||||||
findimage() {
|
findimage() {
|
||||||
where=$1
|
where=$1
|
||||||
@@ -246,8 +260,6 @@ findimage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if [[ -e "$ROOTFS" && -z "$FSTYPE" ]]; then
|
if [[ -e "$ROOTFS" && -z "$FSTYPE" ]]; then
|
||||||
setup_tmpdir
|
|
||||||
|
|
||||||
# Extract the filename extension
|
# Extract the filename extension
|
||||||
EXT=`echo $ROOTFS | awk -F . '{ print \$NF }'`
|
EXT=`echo $ROOTFS | awk -F . '{ print \$NF }'`
|
||||||
if [[ "x$EXT" == "xext2" || "x$EXT" == "xext3" ||
|
if [[ "x$EXT" == "xext2" || "x$EXT" == "xext3" ||
|
||||||
@@ -273,7 +285,6 @@ fi
|
|||||||
# KERNEL is now set for all cases
|
# KERNEL is now set for all cases
|
||||||
|
|
||||||
if [ -z "$FSTYPE" ]; then
|
if [ -z "$FSTYPE" ]; then
|
||||||
setup_tmpdir
|
|
||||||
eval FSTYPE=\$${machine2}_DEFAULT_FSTYPE
|
eval FSTYPE=\$${machine2}_DEFAULT_FSTYPE
|
||||||
|
|
||||||
if [ -z "$FSTYPE" ]; then
|
if [ -z "$FSTYPE" ]; then
|
||||||
@@ -310,6 +321,9 @@ echo "KERNEL: [$KERNEL]"
|
|||||||
echo "ROOTFS: [$ROOTFS]"
|
echo "ROOTFS: [$ROOTFS]"
|
||||||
echo "FSTYPE: [$FSTYPE]"
|
echo "FSTYPE: [$FSTYPE]"
|
||||||
|
|
||||||
|
setup_sysroot
|
||||||
|
# POKY_NATIVE_SYSROOT is now set for all cases
|
||||||
|
|
||||||
# We can't run without a libGL.so
|
# We can't run without a libGL.so
|
||||||
libgl='no'
|
libgl='no'
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "sudo $0 <tap-dev> <native-sysroot-basedir>"
|
echo "sudo $(basename $0) <tap-dev> <native-sysroot-basedir>"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ $EUID -ne 0 ]; then
|
if [ $EUID -ne 0 ]; then
|
||||||
@@ -46,13 +46,6 @@ NATIVE_SYSROOT_DIR=$2
|
|||||||
TUNCTL=$NATIVE_SYSROOT_DIR/usr/bin/tunctl
|
TUNCTL=$NATIVE_SYSROOT_DIR/usr/bin/tunctl
|
||||||
if [ ! -e "$TUNCTL" ]; then
|
if [ ! -e "$TUNCTL" ]; then
|
||||||
echo "Error: Unable to find tunctl binary in '$NATIVE_SYSROOT_DIR/usr/bin'"
|
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
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "sudo $0 <gid> <native-sysroot-basedir>"
|
echo "sudo $(basename $0) <gid> <native-sysroot-basedir>"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ $EUID -ne 0 ]; then
|
if [ $EUID -ne 0 ]; then
|
||||||
@@ -53,13 +53,6 @@ NATIVE_SYSROOT_DIR=$2
|
|||||||
TUNCTL=$NATIVE_SYSROOT_DIR/usr/bin/tunctl
|
TUNCTL=$NATIVE_SYSROOT_DIR/usr/bin/tunctl
|
||||||
if [ ! -x "$TUNCTL" ]; then
|
if [ ! -x "$TUNCTL" ]; then
|
||||||
echo "Error: Unable to find tunctl binary in '$NATIVE_SYSROOT_DIR/usr/bin'"
|
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
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -394,23 +394,9 @@ if [ "x$QEMUOPTIONS" = "x" ]; then
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SDKDIR="/opt/poky/sysroots"
|
PATH=$CROSSPATH:$POKY_NATIVE_SYSROOT/usr/bin:$PATH
|
||||||
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
|
|
||||||
|
|
||||||
QEMUBIN=`which $QEMU`
|
QEMUBIN=`which $QEMU`
|
||||||
|
|
||||||
if [ ! -x "$QEMUBIN" ]; then
|
if [ ! -x "$QEMUBIN" ]; then
|
||||||
echo "Error: No QEMU binary '$QEMU' could be found."
|
echo "Error: No QEMU binary '$QEMU' could be found."
|
||||||
cleanup
|
cleanup
|
||||||
|
|||||||