Compare commits
78 Commits
yocto-5.2.
...
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):
|
||||
return [ i.split() for i in (data or "").replace('\\n','\n').split('\n') if i ]
|
||||
|
||||
def removefile(f):
|
||||
try:
|
||||
os.remove(f)
|
||||
except:
|
||||
pass
|
||||
|
||||
def go(d, urls = None):
|
||||
"""
|
||||
Fetch all urls
|
||||
@@ -237,32 +243,14 @@ def go(d, urls = None):
|
||||
for u in urls:
|
||||
ud = urldata[u]
|
||||
m = ud.method
|
||||
premirror_fetch = True
|
||||
localpath = ""
|
||||
|
||||
if ud.localfile:
|
||||
if not m.try_premirror(u, ud, d):
|
||||
premirror_fetch = False
|
||||
# File already present along with md5 stamp file
|
||||
# Touch md5 file to show activity
|
||||
try:
|
||||
os.utime(ud.md5, None)
|
||||
except:
|
||||
# Errors aren't fatal here
|
||||
pass
|
||||
if not ud.localfile:
|
||||
continue
|
||||
|
||||
lf = bb.utils.lockfile(ud.lockfile)
|
||||
if not m.try_premirror(u, ud, d):
|
||||
premirror_fetch = False
|
||||
# If someone else fetched this before we got the lock,
|
||||
# notice and don't try again
|
||||
try:
|
||||
os.utime(ud.md5, None)
|
||||
except:
|
||||
# Errors aren't fatal here
|
||||
pass
|
||||
lf = bb.utils.lockfile(ud.lockfile)
|
||||
|
||||
if premirror_fetch:
|
||||
if m.try_premirror(u, ud, d):
|
||||
# First try fetching uri, u, from PREMIRRORS
|
||||
mirrors = mirror_from_string(bb.data.getVar('PREMIRRORS', d, True))
|
||||
localpath = try_mirrors(d, u, mirrors, False, m.forcefetch(u, ud, d))
|
||||
@@ -276,20 +264,26 @@ def go(d, urls = None):
|
||||
m.go(u, ud, d)
|
||||
localpath = ud.localpath
|
||||
except FetchError:
|
||||
# Remove any incomplete file
|
||||
removefile(ud.localpath)
|
||||
# Finally, try fetching uri, u, from MIRRORS
|
||||
mirrors = mirror_from_string(bb.data.getVar('MIRRORS', d, True))
|
||||
localpath = try_mirrors (d, u, mirrors)
|
||||
if not localpath or not os.path.exists(localpath):
|
||||
raise FetchError("Unable to fetch URL %s from any source." % u)
|
||||
|
||||
if localpath:
|
||||
ud.localpath = localpath
|
||||
|
||||
if ud.localfile:
|
||||
if not m.forcefetch(u, ud, d):
|
||||
Fetch.write_md5sum(u, ud, d)
|
||||
bb.utils.unlockfile(lf)
|
||||
ud.localpath = localpath
|
||||
if os.path.exists(ud.md5):
|
||||
# Touch the md5 file to show active use of the download
|
||||
try:
|
||||
os.utime(ud.md5, None)
|
||||
except:
|
||||
# Errors aren't fatal here
|
||||
pass
|
||||
else:
|
||||
Fetch.write_md5sum(u, ud, d)
|
||||
|
||||
bb.utils.unlockfile(lf)
|
||||
|
||||
def checkstatus(d):
|
||||
"""
|
||||
@@ -301,7 +295,7 @@ def checkstatus(d):
|
||||
for u in urldata:
|
||||
ud = urldata[u]
|
||||
m = ud.method
|
||||
bb.msg.note(1, bb.msg.domain.Fetcher, "Testing URL %s" % u)
|
||||
bb.msg.debug(1, bb.msg.domain.Fetcher, "Testing URL %s" % u)
|
||||
# First try checking uri, u, from PREMIRRORS
|
||||
mirrors = mirror_from_string(bb.data.getVar('PREMIRRORS', d, True))
|
||||
ret = try_mirrors(d, u, mirrors, True)
|
||||
@@ -484,6 +478,7 @@ def try_mirrors(d, uri, mirrors, check = False, force = False):
|
||||
import sys
|
||||
(type, value, traceback) = sys.exc_info()
|
||||
bb.msg.debug(2, bb.msg.domain.Fetcher, "Mirror fetch failure: %s" % value)
|
||||
removefile(ud.localpath)
|
||||
continue
|
||||
return None
|
||||
|
||||
|
||||
@@ -86,13 +86,23 @@ class Git(Fetch):
|
||||
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
|
||||
|
||||
def forcefetch(self, url, ud, d):
|
||||
if not self._contains_ref(ud.tag, d) or 'fullclone' in ud.parm:
|
||||
if 'fullclone' in ud.parm:
|
||||
return True
|
||||
if 'noclone' in ud.parm:
|
||||
return False
|
||||
if os.path.exists(ud.localpath):
|
||||
return False
|
||||
if not self._contains_ref(ud.tag, d):
|
||||
return True
|
||||
return False
|
||||
|
||||
def try_premirror(self, u, ud, d):
|
||||
if 'noclone' in ud.parm:
|
||||
return False
|
||||
if os.path.exists(ud.clonedir):
|
||||
return False
|
||||
if os.path.exists(ud.localpath):
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
@@ -109,24 +119,37 @@ class Git(Fetch):
|
||||
coname = '%s' % (ud.tag)
|
||||
codir = os.path.join(ud.clonedir, coname)
|
||||
|
||||
if not os.path.exists(ud.clonedir):
|
||||
# If we have no existing clone and no mirror tarball, try and obtain one
|
||||
if not os.path.exists(ud.clonedir) and not os.path.exists(repofile):
|
||||
try:
|
||||
Fetch.try_mirrors(ud.mirrortarball)
|
||||
bb.mkdirhier(ud.clonedir)
|
||||
os.chdir(ud.clonedir)
|
||||
runfetchcmd("tar -xzf %s" % (repofile), d)
|
||||
except:
|
||||
runfetchcmd("%s clone -n %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.clonedir), d)
|
||||
pass
|
||||
|
||||
# If the checkout doesn't exist and the mirror tarball does, extract it
|
||||
if not os.path.exists(ud.clonedir) and os.path.exists(repofile):
|
||||
bb.mkdirhier(ud.clonedir)
|
||||
os.chdir(ud.clonedir)
|
||||
runfetchcmd("tar -xzf %s" % (repofile), d)
|
||||
|
||||
# If the repo still doesn't exist, fallback to cloning it
|
||||
if not os.path.exists(ud.clonedir):
|
||||
runfetchcmd("%s clone -n %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.clonedir), d)
|
||||
|
||||
os.chdir(ud.clonedir)
|
||||
# Update the checkout if needed
|
||||
if not self._contains_ref(ud.tag, d) or 'fullclone' in ud.parm:
|
||||
# Remove all but the .git directory
|
||||
runfetchcmd("rm * -Rf", d)
|
||||
runfetchcmd("%s fetch %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.branch), d)
|
||||
if 'fullclone' in ud.parm:
|
||||
runfetchcmd("%s fetch --all" % (ud.basecmd), d)
|
||||
else:
|
||||
runfetchcmd("%s fetch %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.branch), d)
|
||||
runfetchcmd("%s fetch --tags %s://%s%s%s" % (ud.basecmd, ud.proto, username, ud.host, ud.path), d)
|
||||
runfetchcmd("%s prune-packed" % ud.basecmd, d)
|
||||
runfetchcmd("%s pack-redundant --all | xargs -r rm" % ud.basecmd, d)
|
||||
|
||||
# Generate a mirror tarball if needed
|
||||
os.chdir(ud.clonedir)
|
||||
mirror_tarballs = data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True)
|
||||
if mirror_tarballs != "0" or 'fullclone' in ud.parm:
|
||||
|
||||
@@ -1066,6 +1066,10 @@ class RunQueueExecute:
|
||||
for var in envvars:
|
||||
comps = var.split("=")
|
||||
env[comps[0]] = comps[1]
|
||||
fakedirs = (the_data.getVar("FAKEROOTDIRS", True) or "").split()
|
||||
for p in fakedirs:
|
||||
bb.mkdirhier(p)
|
||||
bb.msg.debug(2, bb.msg.domain.RunQueue, "Running %s:%s under fakeroot, state dir is %s" % (fn, taskname, fakedirs))
|
||||
|
||||
env['BB_TASKHASH'] = self.rqdata.runq_hash[task]
|
||||
env['PATH'] = self.cooker.configuration.initial_path
|
||||
|
||||
@@ -23,7 +23,7 @@ html:
|
||||
xsltproc $(XSLTOPTS) -o bsp-guide.html $(XSL_XHTML_URI) bsp-guide.xml
|
||||
|
||||
tarball: html
|
||||
tar -cvzf poky-ref-manual.tgz poky-ref-manual.html style.css screenshots/ss-sato.png poky-beaver.png poky-ref-manual.png
|
||||
tar -cvzf poky-ref-manual.tgz poky-ref-manual.html style.css figures/yocto-project-transp.png figures/poky-ref-manual.png
|
||||
|
||||
validate:
|
||||
xmllint --postvalid --xinclude --noout poky-ref-manual.xml
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
<copyright>
|
||||
<year>2010</year>
|
||||
<holder>Intel Corporation</holder>
|
||||
<holder>Linux Foundation</holder>
|
||||
</copyright>
|
||||
|
||||
<legalnotice>
|
||||
|
||||
@@ -105,8 +105,8 @@ meta-bsp/prebuilds/
|
||||
# We have a conf directory, add to BBPATH
|
||||
BBPATH := "${BBPATH}${LAYERDIR}"
|
||||
|
||||
# We have a packages directory, add to BBFILES
|
||||
BBFILES := "${BBFILES} ${LAYERDIR}/packages/*/*.bb"
|
||||
# We have a recipes directory containing .bb and .bbappend files, add to BBFILES
|
||||
BBFILES := "${BBFILES} ${LAYERDIR}/recipes/*/*.bb ${LAYERDIR}/recipes/*/*.bbappend"
|
||||
|
||||
BBFILE_COLLECTIONS += "bsp"
|
||||
BBFILE_PATTERN_bsp := "^${LAYERDIR}/"
|
||||
@@ -115,7 +115,7 @@ BBFILE_PRIORITY_bsp = "5"
|
||||
</para>
|
||||
|
||||
<para>
|
||||
which simply makes bitbake aware of the packages and conf directories.
|
||||
which simply makes bitbake aware of the recipes and conf directories.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -284,13 +284,13 @@ meta-bsp/packages/image-creator/image-creator-native_0.1.bb
|
||||
This allows the BSP layer to poke around and do whatever it might want to customise
|
||||
the original recipe.
|
||||
|
||||
.bbappend is expected to include the below two lines in the head (which may be changed
|
||||
in the future):
|
||||
If your recipe needs to reference extra files it can use the FILESEXTRAPATH variable
|
||||
to specify their location. The example below shows extra files contained in a folder
|
||||
called ${PN} (the package name).
|
||||
</para>
|
||||
|
||||
<programlisting>
|
||||
THISDIR := "${@os.path.dirname(bb.data.getVar('FILE', d, True))}"
|
||||
FILESPATH =. "${@base_set_filespath(["${THISDIR}/${PN}"], d)}:"
|
||||
FILESEXTRAPATHS := "${THISDIR}/${PN}"
|
||||
</programlisting>
|
||||
|
||||
<para>
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
<chapter id="platdev">
|
||||
<title>Platform Development with Poky</title>
|
||||
|
||||
<section id="platdev-appdev">
|
||||
<section id="platdev-appdev">
|
||||
<title>Software development</title>
|
||||
<para>
|
||||
Poky supports several methods of software development. You can use the method that is
|
||||
best for you. This chapter describes each development method.
|
||||
</para>
|
||||
|
||||
<section id="platdev-appdev-external-sdk">
|
||||
<section id="platdev-appdev-external-sdk">
|
||||
<title>External Development Using the Poky SDK</title>
|
||||
<para>
|
||||
The meta-toolchain and meta-toolchain-sdk targets (<link linkend='ref-images'>see
|
||||
@@ -27,7 +27,6 @@
|
||||
autotools are also set so that, for example, configure can find pre-generated test
|
||||
results for tests that need target hardware on which to run.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Using the toolchain with autotool-enabled packages is straightforward - just pass the
|
||||
appropriate host option to configure as in the following example:
|
||||
@@ -39,187 +38,367 @@
|
||||
CC=arm-poky-linux-gnueabi-gcc and LD=arm-poky-linux-gnueabi-ld
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id="platdev-appdev-external-anjuta">
|
||||
<title>Developing externally using the Anjuta plugin</title>
|
||||
|
||||
<para>
|
||||
An Anjuta IDE plugin exists to make developing software within the Poky framework
|
||||
easier for the application developer. It presents a graphical IDE from which the
|
||||
developer can cross compile an application then deploy and execute the output in a QEMU
|
||||
emulation session. It also supports cross debugging and profiling.
|
||||
</para>
|
||||
<!-- DISBALED, TOO BIG!
|
||||
<screenshot>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="screenshots/ss-anjuta-poky-1.png" format="PNG"/>
|
||||
</imageobject>
|
||||
<caption>
|
||||
<para>The Anjuta Poky SDK plugin showing an active QEMU session running Sato</para>
|
||||
</caption>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
-->
|
||||
<para>
|
||||
To use the plugin, a toolchain and SDK built by Poky is required along with Anjuta it's development
|
||||
headers and the Anjuta plugin. The Poky Anjuta plugin is available to download as a tarball at the
|
||||
<ulink url='http://labs.o-hand.com/anjuta-poky-sdk-plugin/'>OpenedHand labs</ulink> page or
|
||||
directly from the Poky Git repository located at git://git.pokylinux.org/anjuta-poky; a web interface
|
||||
to the repository can be accessed at <ulink url='http://git.pokylinux.org/?p=anjuta-poky.git;a=summary'/>.
|
||||
</para>
|
||||
<para>
|
||||
See the README file contained in the project for more information on dependencies and building
|
||||
the plugin. If you want to disable remote gdb debugging, please pass --diable-gdb-integration
|
||||
switch when doing configure.
|
||||
</para>
|
||||
|
||||
<section id="platdev-appdev-external-anjuta-setup">
|
||||
<title>Setting up the Anjuta plugin</title>
|
||||
|
||||
<para>Extract the tarball for the toolchain into / as root. The
|
||||
toolchain will be installed into
|
||||
<filename class="directory">/opt/poky</filename>.</para>
|
||||
|
||||
<para>To use the plugin, first open or create an existing
|
||||
project. If creating a new project the "C GTK+" project type
|
||||
will allow itself to be cross-compiled. However you should be
|
||||
aware that this uses glade for the UI.</para>
|
||||
|
||||
<para>To activate the plugin go to
|
||||
<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>,
|
||||
then choose <guilabel>General</guilabel> from the left hand side. Choose the
|
||||
Installed plugins tab, scroll down to <guilabel>Poky
|
||||
SDK</guilabel> and check the
|
||||
box. The plugin is now activated but first it must be
|
||||
configured.</para>
|
||||
</section>
|
||||
|
||||
<section id="platdev-appdev-external-anjuta-configuration">
|
||||
<title>Configuring the Anjuta plugin</title>
|
||||
<section id="using-the-eclipse-and-anjuta-plug-ins">
|
||||
<title>Using the Eclipse and Anjuta Plug-ins</title>
|
||||
<para>
|
||||
Yocto Project supports both Anjuta and Eclipse IDE plug-ins to make developing software
|
||||
easier for the application developer. The plug-ins provide capability
|
||||
extensions to the graphical IDE allowing for cross compilation,
|
||||
deployment and execution of the output in a QEMU emulation session.
|
||||
Support of these plug-ins also supports cross debugging and
|
||||
profiling. Additionally, the Eclipse plug-in provides a suite of tools
|
||||
that allows the developer to perform remote profiling, tracing, collection of
|
||||
power data, collection of latency data and collection of performance data.
|
||||
</para>
|
||||
|
||||
<para>The configuration options for the SDK can be found by choosing
|
||||
the <guilabel>Poky SDK</guilabel> icon from the left hand side. The following options
|
||||
need to be set:</para>
|
||||
<section id="the-eclipse-plug-in">
|
||||
<title>The Eclipse Plug-in</title>
|
||||
<para>
|
||||
To use the Eclipse plug-in, a toolchain and SDK built by Poky is required along with
|
||||
the Eclipse Framework (Helios 3.6).
|
||||
To install the plug-in you need to be in the Eclipse IDE and select
|
||||
the following menu:
|
||||
<literallayout class='monospaced'>
|
||||
Help -> Install New Software
|
||||
</literallayout>
|
||||
Specify the target URL as http://yocto./download (real link needed).
|
||||
</para>
|
||||
<para>
|
||||
If you want to download the source code for the plug-in you can find it in the Poky
|
||||
git repository, which has a web interface, and is located at
|
||||
<ulink url="http://git.pokylinux.org/cgit.cgi/eclipse-poky"></ulink>.
|
||||
</para>
|
||||
|
||||
<section id="installing-and-setting-up-the-eclipse-ide">
|
||||
<title>Installing and Setting up the Eclipse IDE</title>
|
||||
<para>
|
||||
If you don't have the Eclipse IDE (Helios 3.6) on your system you need to
|
||||
download and install it from <ulink url="http://www.eclipse.org/downloads"></ulink>.
|
||||
Choose the Eclipse Classic, which contains the Eclipse Platform, Java Development
|
||||
Tools (JDT), and the Plug-in Development Environment.
|
||||
</para>
|
||||
<para>
|
||||
NOTE: Due to the Java Virtual Machine's garbage collection (GC) process the
|
||||
permanent generation space (PermGen) is not cleaned up. This space is used
|
||||
to store meta-data descriptions of classes. The default value is set too small
|
||||
and it could trigger an out of memory error like the following:
|
||||
<literallayout class='monospaced'>
|
||||
Java.lang.OutOfMemoryError: PermGen space
|
||||
</literallayout>
|
||||
This error causes the applications to hang.
|
||||
</para>
|
||||
<para>
|
||||
To fix this issue you can use the <command>-vmargs</command>
|
||||
option when you start Eclipse to increase the size of the permenant generation space:
|
||||
<literallayout class='monospaced'>
|
||||
Eclipse -vmargs -XX:PermSize=256M
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><guilabel>SDK root</guilabel>: If we use external toolchain, we need to set SDK root.
|
||||
this is the root directory of the SDK's sysroot. For an i586 SDK this will be <filename
|
||||
class="directory">/opt/poky/</filename>.
|
||||
This directory will contain directories named like "bin",
|
||||
"include", "var", etc. under your selected target architecture subdirectory<filename class="directory">
|
||||
/opt/poky/sysroot/i586-poky-linux/</filename>. Needed cross compile tools are under
|
||||
<filename class ="directory">/opt/poky/sysroot/i586-pokysdk-linux/</filename>
|
||||
</para></listitem>
|
||||
<section id="installing-the-yocto-plug-in">
|
||||
<title>Installing the Yocto Plug-in</title>
|
||||
<para>
|
||||
Once you have the Eclipse IDE installed and configure you need to install the
|
||||
Yocto plug-in. You do this similar to installing the Eclipse plug-ins in the
|
||||
previous section.
|
||||
</para>
|
||||
<para>
|
||||
Do the following to install the Yocto plug-in into the Eclipse IDE:
|
||||
<itemizedlist>
|
||||
<listitem>Select the "Help -> Install New Software" item.</listitem>
|
||||
<listitem>In the "Work with:" area click "Add..." and enter the URL for
|
||||
the Yocto plug-in (we need to supply this URL).</listitem>
|
||||
<listitem>Finish out the installation of the update similar to any other
|
||||
Eclipse plug-in.</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id="configuring-yocto-eclipse-plug-in">
|
||||
<title>Configuring Yocto Eclipse plug-in</title>
|
||||
<para>
|
||||
To configure the Yocto Eclipse plug-in you need to select the mode and then the
|
||||
architecture with which you will be working. Start by selecting "Preferences"
|
||||
from the "Window" menu and then selecting "Yocto SDK".
|
||||
</para>
|
||||
<para>
|
||||
If you normally will use an installed Yocto
|
||||
SDK (under /opt/poky) select “SDK Root Mode”. Otherwise, if your crosstool chain
|
||||
and sysroot are within your poky tree, select “Poky Tree Mode”.
|
||||
If you are in SDK Root Mode you will need to provide your poky tree path, for
|
||||
example, $<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.
|
||||
this is the root directory of the poky build tree, if you build your i586 target architecture
|
||||
under the subdirectory of build_x86 within your poky tree, the Poky root directory should be
|
||||
<filename class="directory">${Poky_tree}/build_x86/</filename>.
|
||||
</para></listitem>
|
||||
<section id="using-the-yocto-eclipse-plug-in">
|
||||
<title>Using the Yocto Eclipse Plug-in</title>
|
||||
<para>
|
||||
As an example, this section shows you how to cross-compile a Yocto C autotools
|
||||
based project, deploy it into QEMU, and then run the debugger against it.
|
||||
You need to configure the project, trigger <command> autogen.sh</command>, build
|
||||
the image, start QEMU, and then debug.
|
||||
</para>
|
||||
<orderedlist>
|
||||
<listitem>Creating a Yocto Autotools Based Project Using a Template:
|
||||
Get to the Wizard selection by selecting the File -> New -> Project
|
||||
menu. Expand "C/C++" and select "C Project". Click "Next" and select a template
|
||||
to start with, for example "Hello World ANSI C Project". Complete the steps
|
||||
to create a new Yocto autotools based project using this template.</listitem>
|
||||
<listitem>Specify Specific Toolchain Configurations: By default the project
|
||||
uses the Yocto preferences settings as defined using the procedure in
|
||||
<link linkend="configuring-yocto-eclipse-plug-in"> the previous section</link>.
|
||||
If there are any specific setup requirements for the newly created project
|
||||
you need to reconfigure the Yocto plug-in through the menu selection
|
||||
Project -> Invoke Yocto Tools -> Reconfigure Yocto. Use this dialogue
|
||||
to specify specific toolchain and QEMU setups for the project.</listitem>
|
||||
<listitem>Building the Project: Trigger <command>autogen.sh</command> through
|
||||
Project -> Reconfigure Project. Then build the project using
|
||||
Project -> Build.</listitem>
|
||||
<listitem>Starting QEMU: Use the Run -> External Tools menu and see if there is
|
||||
a QEMU instance for the desired target. If there is click on the instance
|
||||
to start QEMU. If your target is not there then click "External Tools
|
||||
Configuration". You should find an instance of QEMU for your architecture
|
||||
under the entry under "Program". After the boot completes you are ready to
|
||||
deploy the image into QEMU.</listitem>
|
||||
<listitem>Debugging: To bring up your remote debugging configuration in the
|
||||
right-hand window highlight your project in “Project Explorer”, select
|
||||
the Run -> Debug Configurations menu item and expand “C/C++ Remote Application”.
|
||||
Next, select projectname_ gdb_target-poky-linux.
|
||||
You need to be sure that there is an
|
||||
entry for the remote target you want to deploy and cross debug with. If there
|
||||
is no entry then click "New..." to bring up the wizard. Using the wizard
|
||||
select TCF and enter the IP address of you remote target in the
|
||||
“Host name:” field. Back in the remote debug configure window,
|
||||
you need to specify the absolute path for the program on the remote target
|
||||
in the “Remote Absolute File Path for C/C++ Application” field. By default,
|
||||
the program deploys into the remote target. If you don't want this then check
|
||||
“Skip download to target path”. Finally, click "Debug” to start the remote
|
||||
debugging session.</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
|
||||
<listitem><para><guilabel>Target Architecture</guilabel>: this is the cross compile
|
||||
triplet, e.g. "i586-poky-linux". This target triplet is the prefix extracted from
|
||||
the set up script file name. For examle, "i586-poky-linux" is extracted from set up script file
|
||||
<filename>/opt/poky/environment-setup-i586-poky-linux</filename>
|
||||
</para></listitem>
|
||||
|
||||
<listitem><para><guilabel>Kernel</guilabel>: use the file chooser to select the kernel
|
||||
to use with QEMU</para></listitem>
|
||||
|
||||
<listitem><para><guilabel>Root filesystem</guilabel>: use the file chooser to select
|
||||
the root filesystem directory, this is the directory where you use "poky-extract-sdk" command to
|
||||
extract the poky-image-sdk tarball.</para></listitem>
|
||||
</itemizedlist>
|
||||
<!-- DISBALED, TOO BIG!
|
||||
<screenshot>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="screenshots/ss-anjuta-poky-2.png" format="PNG"/>
|
||||
</imageobject>
|
||||
<caption>
|
||||
<para>Anjuta Preferences Dialog</para>
|
||||
</caption>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
-->
|
||||
<section id="using-yocto-eclipse-plug-in-remote-tools-suite">
|
||||
<title>Using Yocto Eclipse plug-in Remote Tools Suite</title>
|
||||
<para>
|
||||
Remote tools let you do things like perform system profiling, kernel tracing,
|
||||
examine power consumption, and so forth. To see and access the remote tools use the
|
||||
Window -> YoctoTools menu.
|
||||
</para>
|
||||
<para>
|
||||
Once you pick a tool you need to configure it for the remote target. Every tool
|
||||
needs to have the connection configured. You have to select an existing TCF-based
|
||||
RSE connection to the remote target. If one does not exist you need to create one
|
||||
by clicking "New"
|
||||
</para>
|
||||
<para>
|
||||
Here are some specifics about the remote tools:
|
||||
<itemizedlist>
|
||||
<listitem>Oprofile: Selecting this tool causes the oprofile-server on the remote
|
||||
target to launch on the local host machine. To use the oprofile the oprofile-viewer
|
||||
must be installed on the local host machine and the oprofile-server must be
|
||||
installed on the remote target.</listitem>
|
||||
<listitem>lttng: Selecting this tool runs ustrace on the remote target, transfers
|
||||
the output data back to the local host machine and uses lttv-gui to graphically
|
||||
display the output. To use this tool the lttv-gui must be installed on the
|
||||
local host machine. See <ulink url="http://lttng.org/files/ust/manual/ust.html">
|
||||
</ulink> for information on how to use <command>lttng</command> to trace an
|
||||
application.
|
||||
<para>
|
||||
For "Application" you must supply the absolute path name to the application to
|
||||
be traced by user mode lttng. For example, typing <command>/path/to/foo"
|
||||
</command> triggers <command>usttrace /path/to/foo</command> on the
|
||||
remote target to trace the program <command>/path/to/foo</command>.
|
||||
</para>
|
||||
<para>
|
||||
"Argument" is passed to "usttrace" running on the remote target.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>powertop: Selecting this tool runs <command>powertop</command> on the
|
||||
remote target machine and displays the result in a new view called "powertop".
|
||||
<para>
|
||||
"Time to gather data(sec):" is the time passed in seconds before data is
|
||||
gathered from the remote target for analysis.
|
||||
</para>
|
||||
<para>
|
||||
"show pids in wakeups list:" corresponds to the <command>-p</command>
|
||||
argument passed to <command>powertop</command>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>latencytop and perf: The <command>latencytop</command> identifies
|
||||
system latency, while <command>perf</command> monitors the system's performance
|
||||
counter registers. Selecting either of these tools causes an RSE
|
||||
terminal view to appear in which you can run the tools. Both tools refresh the
|
||||
entire screen to display results while they run.</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="the-anjuta-plug-in">
|
||||
<title>The Anjuta Plug-in</title>
|
||||
<para>
|
||||
<emphasis>Note:</emphasis> We will stop Anjuta plug-in support after
|
||||
Yocto project 0.9 release. Its source
|
||||
code can be downloaded from git respository listed below, and free for the community to
|
||||
continue supporting it moving forward.
|
||||
</para>
|
||||
<para>
|
||||
An Anjuta IDE plugin exists to make developing software within the Poky framework
|
||||
easier for the application developer.
|
||||
It presents a graphical IDE with which you can cross compile an application
|
||||
then deploy and execute the output in a
|
||||
QEMU emulation session.
|
||||
It also supports cross debugging and profiling.
|
||||
</para>
|
||||
<para>
|
||||
To use the plugin, a toolchain and SDK built by Poky is required,
|
||||
Anjuta, it's development headers and the Anjuta plugin.
|
||||
The Poky Anjuta plugin is available to download as a tarball at the
|
||||
OpenedHand
|
||||
labs <ulink url="http://labs.o-hand.com/anjuta-poky-sdk-plugin/"></ulink> page or
|
||||
directly from the Poky Git repository located at
|
||||
<ulink url="git://git.pokylinux.org/anjuta-poky"></ulink>.
|
||||
You can also access a web interface to the repository at
|
||||
<ulink url="http://git.pokylinux.org/?p=anjuta-poky.git;a=summary"></ulink>.
|
||||
</para>
|
||||
<para>
|
||||
See the README file contained in the project for more information on
|
||||
Anjuta dependencies and building the plugin.
|
||||
If you want to disable remote gdb debugging,
|
||||
please pass the <command>--diable-gdb-integration</command> switch when doing
|
||||
configure.
|
||||
</para>
|
||||
<section id="setting-up-the-anjuta-plugin">
|
||||
<title>Setting Up the Anjuta Plug-in</title>
|
||||
<para>
|
||||
Follow these steps to set up the plug-in:
|
||||
<orderedlist>
|
||||
<listitem>Extract the tarball for the toolchain into / as root.
|
||||
The toolchain will be installed into <command>/opt/poky</command>.</listitem>
|
||||
<listitem>To use the plug-in, first open or create an existing project.
|
||||
If you are creating a new project, the "C GTK+"
|
||||
project type will allow itself to be cross-compiled.
|
||||
However you should be aware that this uses glade for the UI.</listitem>
|
||||
<listitem>To activate the plug-in go to Edit -> Preferences, then choose
|
||||
General from the left hand side.
|
||||
Choose the Installed plug-ins tab, scroll down to Poky SDK and
|
||||
check the box.</listitem>
|
||||
</orderedlist>
|
||||
The plug-in is now activated but not configured.
|
||||
See the next section to learn how to configure it.
|
||||
</para>
|
||||
</section>
|
||||
<section id="configuring-the-anjuta-plugin">
|
||||
<title>Configuring the Anjuta Plugin</title>
|
||||
<para>
|
||||
You can find the configuration options for the SDK by choosing the Poky
|
||||
SDK icon from the left hand side.
|
||||
You need to set the following options:
|
||||
<itemizedlist>
|
||||
<listitem>SDK root: If you use an external toolchain you need to set
|
||||
SDK root. This is the root directory of the
|
||||
SDK's sysroot.
|
||||
For an i586 SDK this will be <command>/opt/poky/</command>.
|
||||
This directory will contain <command>bin</command>, <command>include
|
||||
</command>, <command>var</command> and so forth under your
|
||||
selected target architecture subdirectory
|
||||
<command>/opt/poky/sysroot/i586-poky-linux/</command>.
|
||||
The cross comple tools you need are in
|
||||
<command>/opt/poky/sysroot/i586-pokysdk-linux/</command>.</listitem>
|
||||
<listitem>Poky root: If you have a local poky build tree, you need to
|
||||
set the Poky root.
|
||||
This is the root directory of the poky build tree.
|
||||
If you build your i586 target architecture under the subdirectory of
|
||||
<command>build_x86</command> within your poky tree, the Poky root directory
|
||||
should be <command>$<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 id="platdev-appdev-external-anjuta-usage">
|
||||
<title>Using the Anjuta plugin</title>
|
||||
|
||||
<para>As an example, cross-compiling a project, deploying it into
|
||||
QEMU and running a debugger against it and then doing a system
|
||||
wide profile.</para>
|
||||
|
||||
<para>Choose <menuchoice><guimenu>Build</guimenu><guimenuitem>Run
|
||||
Configure</guimenuitem></menuchoice> or
|
||||
<menuchoice><guimenu>Build</guimenu><guimenuitem>Run
|
||||
Autogenerate</guimenuitem></menuchoice> to run "configure"
|
||||
(or to run "autogen") for the project. This passes command line
|
||||
arguments to instruct it to cross-compile.</para>
|
||||
|
||||
<para>Next do
|
||||
<menuchoice><guimenu>Build</guimenu><guimenuitem>Build
|
||||
Project</guimenuitem></menuchoice> to build and compile the
|
||||
project. If you have previously built the project in the same
|
||||
tree without using the cross-compiler you may find that your
|
||||
project fails to link. Simply do
|
||||
<menuchoice><guimenu>Build</guimenu><guimenuitem>Clean
|
||||
Project</guimenuitem></menuchoice> to remove the old
|
||||
binaries. You may then try building again.</para>
|
||||
|
||||
<para>Next start QEMU by using
|
||||
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Start
|
||||
QEMU</guimenuitem></menuchoice>, this will start QEMU and
|
||||
will show any error messages in the message view. Once Poky has
|
||||
fully booted within QEMU you may now deploy into it.</para>
|
||||
|
||||
<para>Once built and QEMU is running, choose
|
||||
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Deploy</guimenuitem></menuchoice>,
|
||||
this will install the package into a temporary directory and
|
||||
then copy using rsync over SSH into the target. Progress and
|
||||
messages will be shown in the message view.</para>
|
||||
|
||||
<para>To debug a program installed into onto the target choose
|
||||
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Debug
|
||||
remote</guimenuitem></menuchoice>. This prompts for the
|
||||
local binary to debug and also the command line to run on the
|
||||
target. The command line to run should include the full path to
|
||||
the to binary installed in the target. This will start a
|
||||
gdbserver over SSH on the target and also an instance of a
|
||||
cross-gdb in a local terminal. This will be preloaded to connect
|
||||
to the server and use the <guilabel>SDK root</guilabel> to find
|
||||
symbols. This gdb will connect to the target and load in
|
||||
various libraries and the target program. You should setup any
|
||||
breakpoints or watchpoints now since you might not be able to
|
||||
interrupt the execution later. You may stop
|
||||
the debugger on the target using
|
||||
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Stop
|
||||
debugger</guimenuitem></menuchoice>.</para>
|
||||
|
||||
<para>It is also possible to execute a command in the target over
|
||||
SSH, the appropriate environment will be be set for the
|
||||
execution. Choose
|
||||
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Run
|
||||
remote</guimenuitem></menuchoice> to do this. This will open
|
||||
a terminal with the SSH command inside.</para>
|
||||
|
||||
<para>To do a system wide profile against the system running in
|
||||
QEMU choose
|
||||
<menuchoice><guimenu>Tools</guimenu><guimenuitem>Profile
|
||||
remote</guimenuitem></menuchoice>. This will start up
|
||||
OProfileUI with the appropriate parameters to connect to the
|
||||
server running inside QEMU and will also supply the path to the
|
||||
debug information necessary to get a useful profile.</para>
|
||||
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="platdev-appdev-qemu">
|
||||
<section id="platdev-appdev-qemu">
|
||||
<title>Developing externally in QEMU</title>
|
||||
<para>
|
||||
Running Poky QEMU images is covered in the <link
|
||||
@@ -348,9 +527,9 @@ $ bitbake matchbox-desktop -c devshell
|
||||
environmental variables such as CC to assist applications, such as make,
|
||||
find the correct tools.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="platdev-appdev-srcrev">
|
||||
<section id="platdev-appdev-srcrev">
|
||||
<title>Developing within Poky with an external SCM based package</title>
|
||||
|
||||
<para>
|
||||
@@ -369,8 +548,8 @@ $ bitbake matchbox-desktop -c devshell
|
||||
is the name of the package for which you want to enable automatic source
|
||||
revision updating.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="platdev-gdb-remotedebug">
|
||||
<title>Debugging with GDB Remotely</title>
|
||||
@@ -458,8 +637,8 @@ $ bitbake matchbox-desktop -c devshell
|
||||
A suitable gdb cross binary is required which runs on your host computer but
|
||||
knows about the the ABI of the remote target. This can be obtained from
|
||||
the the Poky toolchain, e.g.
|
||||
<filename>/opt/poky/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-poky-linux-gnueabi-gdb</filename>
|
||||
which "x86_64" is the host architecture, "arm" is the target architecture and "linux-gnueabi" the target ABI.
|
||||
<filename>/usr/local/poky/eabi-glibc/arm/bin/arm-poky-linux-gnueabi-gdb</filename>
|
||||
which "arm" is the target architecture and "linux-gnueabi" the target ABI.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -467,8 +646,7 @@ $ bitbake matchbox-desktop -c devshell
|
||||
the gdb-cross package so for example you would run:
|
||||
<programlisting>bitbake gdb-cross</programlisting>
|
||||
Once built, the cross gdb binary can be found at
|
||||
<programlisting>tmp/sysroots/<host-arch>/usr/bin/\
|
||||
<target-arch>-poky-<target-abi>/<target-arch>-poky-<target-abi>-gdb </programlisting>
|
||||
<programlisting>tmp/sysroots/<host-arch</usr/bin/<target-abi>-gdb </programlisting>
|
||||
</para>
|
||||
|
||||
</section>
|
||||
@@ -505,17 +683,17 @@ $ bitbake matchbox-desktop -c devshell
|
||||
by doing:
|
||||
</para>
|
||||
<programlisting>tmp/sysroots/i686-linux/usr/bin/opkg-cl -f \
|
||||
tmp/work/<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>
|
||||
<para>
|
||||
then,
|
||||
</para>
|
||||
<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
|
||||
|
||||
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>
|
||||
<para>
|
||||
which installs the debugging information too.
|
||||
@@ -528,7 +706,7 @@ tmp/work/<target-abi>/poky-image-sato-1.0-r0/opkg.conf \
|
||||
<para>
|
||||
To launch the host GDB, run the cross gdb binary identified above with
|
||||
the inferior binary specified on the commandline:
|
||||
<programlisting><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>
|
||||
as well as its debugging information. Once the gdb prompt
|
||||
appears, you must instruct GDB to load all the libraries
|
||||
@@ -650,10 +828,9 @@ $ opreport -cl
|
||||
|
||||
<para>
|
||||
A graphical user interface for OProfile is also available. You can
|
||||
either use prebuilt Debian packages from the <ulink
|
||||
url='http://debian.o-hand.com/'>OpenedHand repository</ulink> or
|
||||
download and build from svn at
|
||||
http://svn.o-hand.com/repos/oprofileui/trunk/. If the
|
||||
download and build it from svn at
|
||||
<ulink url="http://svn.o-hand.com/repos/oprofileui/trunk/"></ulink>.
|
||||
If the
|
||||
"tools-profile" image feature is selected, all necessary binaries
|
||||
are installed onto the target device for OProfileUI interaction.
|
||||
</para>
|
||||
@@ -819,6 +996,8 @@ $ opreport -cl
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
</chapter>
|
||||
<!--
|
||||
vim: expandtab tw=80 ts=4
|
||||
|
||||
@@ -606,7 +606,7 @@ BBLAYERS = " \
|
||||
|
||||
<para>
|
||||
Bitbake parses the conf/layer.conf of each of the layers in BBLAYERS
|
||||
to add the layers packages, classes and configuration to Poky.
|
||||
to add the recipes, classes and configuration contained within the layer to Poky.
|
||||
To create your own layer, independent of the main Poky repository,
|
||||
you need only create a directory with a conf/layer.conf file and
|
||||
add the directory to your bblayers.conf.
|
||||
@@ -617,9 +617,9 @@ BBLAYERS = " \
|
||||
<literallayout class='monospaced'># We have a conf and classes directory, add to BBPATH
|
||||
BBPATH := "${BBPATH}:${LAYERDIR}"
|
||||
|
||||
# We have a packages directory, add to BBFILES
|
||||
BBFILES := "${BBFILES} ${LAYERDIR}/packages/*/*.bb \
|
||||
${LAYERDIR}/packages/*/*.bbappend"
|
||||
# We have a recipes directory containing both .bb and .bbappend files, add to BBFILES
|
||||
BBFILES := "${BBFILES} ${LAYERDIR}/recipes/*/*.bb \
|
||||
${LAYERDIR}/recipes/*/*.bbappend"
|
||||
|
||||
BBFILE_COLLECTIONS += "emenlow"
|
||||
BBFILE_PATTERN_emenlow := "^${LAYERDIR}/"
|
||||
|
||||
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'>
|
||||
<title>Introduction</title>
|
||||
|
||||
<section id='intro-what-is'>
|
||||
<section id='intro-welcome'>
|
||||
<title>Welcome to Poky!</title>
|
||||
|
||||
<para>
|
||||
Poky is the the build tool in Yocto Project.
|
||||
It is at the heart of Yocto Project.
|
||||
You use Poky within Yocto Project to build the images (kernel software) for targeted hardware.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Before jumping into Poky you should have an understanding of Yokto Project.
|
||||
Be sure you are familiar with the information in the Yocto Project Quick Start.
|
||||
You can find this documentation on the public <ulink rul='http://yoctoproject.org/'>Yocto Project Website</ulink>.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>What is Poky?</title>
|
||||
|
||||
<para>
|
||||
|
||||
Poky is an open source platform build tool. It is a complete
|
||||
software development environment for the creation of Linux
|
||||
devices. It aids the design, development, building, debugging,
|
||||
simulation and testing of complete modern software stacks
|
||||
using Linux, the X Window System and GNOME Mobile
|
||||
based application frameworks. It is based on <ulink
|
||||
url='http://openembedded.org/'>OpenEmbedded</ulink> but has
|
||||
been customised with a particular focus.
|
||||
|
||||
Poky provides an open source Linux, X11, Matchbox, GTK+, Pimlico, Clutter, and other <ulink url='http://gnome.org/mobile'>GNOME Mobile</ulink> technologies based full platform build tool within Yocto Project.
|
||||
It creates a focused, stable, subset of OpenEmbedded that can be easily and reliably built and developed upon.
|
||||
Poky fully supports a wide range of x86 ARM, MIPS and PowerPC hardware and device virtulisation.
|
||||
</para>
|
||||
|
||||
<para> Poky was setup to:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Provide an open source Linux, X11, Matchbox, GTK+, Pimlico, Clutter, and other <ulink url='http://gnome.org/mobile'>GNOME Mobile</ulink> technologies based full platform build and development tool.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Create a focused, stable, subset of OpenEmbedded that can be easily and reliably built and developed upon.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Fully support a wide range of x86, ARM, MIPS, PowerPC hardware and device virtulisation</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>
|
||||
Poky is primarily a platform builder which generates filesystem images
|
||||
based on open source software such as the Kdrive X server, the Matchbox
|
||||
window manager, the GTK+ toolkit and the D-Bus message bus system. Images
|
||||
for many kinds of devices can be generated, however the standard example
|
||||
machines target QEMU full system emulation(x86, ARM, MIPS and PowerPC) and the ARM based
|
||||
Sharp Zaurus series of devices. Poky's ability to boot inside a QEMU
|
||||
machines target QEMU full system emulation(x86, ARM, MIPS and PowerPC) and
|
||||
real reference boards for each of these architectures.
|
||||
Poky's ability to boot inside a QEMU
|
||||
emulator makes it particularly suitable as a test platform for development
|
||||
of embedded software.
|
||||
</para>
|
||||
@@ -76,222 +72,32 @@
|
||||
|
||||
<section id='intro-manualoverview'>
|
||||
<title>Documentation Overview</title>
|
||||
|
||||
<para>
|
||||
The handbook is split into sections covering different aspects of Poky.
|
||||
The <link linkend='usingpoky'>'Using Poky' section</link> gives an overview
|
||||
of the components that make up Poky followed by information about using and
|
||||
debugging the Poky build system. The <link linkend='extendpoky'>'Extending Poky' section</link>
|
||||
gives information about how to extend and customise Poky along with advice
|
||||
on how to manage these changes.
|
||||
The <link linkend='bsp'>'Board Support Packages (BSP) - Developers Guide' section</link>
|
||||
gives information about how to develop BSP such as the common layout, the
|
||||
software hardware configuration options etc.
|
||||
The <link linkend='platdev'>'Platform Development with Poky'
|
||||
section</link> gives information about interaction between Poky and target
|
||||
hardware for common platform development tasks such as software development,
|
||||
debugging and profiling. The rest of the manual
|
||||
consists of several reference sections each giving details on a specific
|
||||
section of Poky functionality.
|
||||
The Poky User Guide is split into sections covering different aspects of Poky.
|
||||
The <link linkend='usingpoky'>'Using Poky' section</link> gives an overview of the components that make up Poky followed by information about using Poky and debugging images created in Yocto Project.
|
||||
The <link linkend='extendpoky'>'Extending Poky' section</link> gives information about how to extend and customise Poky along with advice on how to manage these changes.
|
||||
The <link linkend='platdev'>'Platform Development with Poky' section</link> gives information about interaction between Poky and target hardware for common platform development tasks such as software development, debugging and profiling.
|
||||
The rest of the manual consists of several reference sections each giving details on a specific section of Poky functionality.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This manual applies to Poky Release 3.3 (Green).
|
||||
</para>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<section id='intro-requirements'>
|
||||
<title>System Requirements</title>
|
||||
|
||||
<para>
|
||||
We recommend Debian-based distributions, in particular a recent Ubuntu
|
||||
release (10.04 or newer), as the host system for Poky. Nothing in Poky is
|
||||
distribution specific and
|
||||
other distributions will most likely work as long as the appropriate
|
||||
prerequisites are installed - we know of Poky being used successfully on Redhat,
|
||||
SUSE, Gentoo and Slackware host systems.
|
||||
distribution specific and other distributions will most likely work as long
|
||||
as the appropriate prerequisites are installed - we know of Poky being used
|
||||
successfully on Redhat, SUSE, Gentoo and Slackware host systems.
|
||||
For information on what you need to develop images using Yocto Project and Poky
|
||||
you should see the Yocto Project Quick Start on the public
|
||||
<ulink rul='http://yoctoproject.org/'>Yocto Project Website</ulink>.
|
||||
</para>
|
||||
|
||||
<para>On a Debian-based system, you need the following packages installed:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>build-essential</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>python (version 2.6 or later)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>diffstat</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>texinfo</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>texi2html</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>cvs</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>subversion</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>wget</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>gawk</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>help2man</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>chrpath</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>mercurial</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Furthermore if you wish to run an emulated Poky image using <ulink url='http://qemu.org'>QEMU</ulink> (as in the quickstart below) you will need the following packages installed:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>libgl1-mesa-dev</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>libglu1-mesa-dev</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>libsdl1.2-dev</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>bochsbios (only to run qemux86 images)</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>
|
||||
Debian users can add debian.o-hand.com to their APT sources (See
|
||||
<ulink url='http://debian.o-hand.com'/>
|
||||
for instructions on doing this) and then run <command>
|
||||
"apt-get install qemu poky-depends poky-scripts"</command> which will
|
||||
automatically install all these dependencies. Virtualisation images with
|
||||
Poky and all dependencies can also easily be built if required.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Poky can use a system provided QEMU or build its own depending on how it's
|
||||
configured. See the options in <filename>local.conf</filename> for more details.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='intro-quickstart'>
|
||||
<title>Quick Start</title>
|
||||
|
||||
<section id='intro-quickstart-build'>
|
||||
<title>Building and Running an Image</title>
|
||||
|
||||
<para>
|
||||
If you want to try Poky, you can do so in a few commands. The example below
|
||||
checks out the Poky source code, sets up a build environment, builds an
|
||||
image and then runs that image under the QEMU emulator in x86 system emulation mode:
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<literallayout class='monospaced'>
|
||||
$ wget http://pokylinux.org/releases/poky-green-3.3.tar.bz2
|
||||
$ tar xjvf poky-green-3.3.tar.bz2
|
||||
$ cd green-3.3/
|
||||
$ source poky-init-build-env
|
||||
$ bitbake poky-image-sato
|
||||
$ bitbake qemu-native
|
||||
$ runqemu qemux86
|
||||
</literallayout>
|
||||
</para>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
This process will need Internet access, about 20 GB of disk space
|
||||
available, and you should expect the build to take about 4 - 5 hours since
|
||||
it is building an entire Linux system from source including the toolchain!
|
||||
</para>
|
||||
</note>
|
||||
|
||||
<para>
|
||||
To build for other machines see the <glossterm><link
|
||||
linkend='var-MACHINE'>MACHINE</link></glossterm> variable in build/conf/local.conf.
|
||||
This file contains other useful configuration information and the default version
|
||||
has examples of common setup needs and is worth
|
||||
reading. To take advantage of multiple processor cores to speed up builds for example, set the
|
||||
<glossterm><link linkend='var-BB_NUMBER_THREADS'>BB_NUMBER_THREADS</link></glossterm>
|
||||
and <glossterm><link linkend='var-PARALLEL_MAKE'>PARALLEL_MAKE</link></glossterm> variables.
|
||||
|
||||
The images/kernels built by Poky are placed in the <filename class="directory">tmp/deploy/images</filename>
|
||||
directory.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You could also run <command>"poky-qemu zImage-qemuarm.bin poky-image-sato-qemuarm.ext2"
|
||||
</command> within the images directory if you have the poky-scripts Debian package
|
||||
installed from debian.o-hand.com. This allows the QEMU images to be used standalone
|
||||
outside the Poky build environment.
|
||||
</para>
|
||||
<para>
|
||||
To setup networking within QEMU see the <link linkend='usingpoky-install-qemu-networking'>
|
||||
QEMU/USB networking with IP masquerading</link> section.
|
||||
</para>
|
||||
|
||||
</section>
|
||||
<section id='intro-quickstart-qemu'>
|
||||
<title>Downloading and Using Prebuilt Images</title>
|
||||
|
||||
<para>
|
||||
Prebuilt images from Poky are also available if you just want to run the system
|
||||
under QEMU. To use these you need to:
|
||||
</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
Add debian.o-hand.com to your APT sources (See
|
||||
<ulink url='http://debian.o-hand.com'/> for instructions on doing this)
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Install patched QEMU and poky-scripts:</para>
|
||||
<para>
|
||||
<literallayout class='monospaced'>
|
||||
$ apt-get install qemu poky-scripts
|
||||
</literallayout>
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Download a Poky QEMU release kernel (*zImage*qemu*.bin) and compressed
|
||||
filesystem image (poky-image-*-qemu*.ext2.bz2) which
|
||||
you'll need to decompress with 'bzip2 -d'. These are available from the
|
||||
<ulink url='http://pokylinux.org/releases/green-3.3/'>last release</ulink>
|
||||
or from the <ulink url='http://autobuilder.pokylinux.org/'>autobuilder</ulink>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Start the image:</para>
|
||||
<para>
|
||||
<literallayout class='monospaced'>
|
||||
$ poky-qemu <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 id='intro-getit'>
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
xmlns="http://docbook.org/ns/docbook"
|
||||
>
|
||||
<bookinfo>
|
||||
|
||||
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref='poky-ref-manual.png'
|
||||
<imagedata fileref='figures/poky-ref-manual.png'
|
||||
format='SVG'
|
||||
align='center' scalefit='1' width='100%'/>
|
||||
</imageobject>
|
||||
@@ -17,7 +17,6 @@
|
||||
|
||||
<title>Poky Reference Manual</title>
|
||||
<subtitle>A Guide and Reference to Poky</subtitle>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Richard</firstname> <surname>Purdie</surname>
|
||||
@@ -44,15 +43,15 @@
|
||||
|
||||
<revhistory>
|
||||
<revision>
|
||||
<revnumber>3.3+git</revnumber>
|
||||
<date>20 Sept 2010</date>
|
||||
<revnumber>4.0+git</revnumber>
|
||||
<date>27 Oct 2010</date>
|
||||
<revremark>Poky Master Documentation</revremark>
|
||||
</revision>
|
||||
</revhistory>
|
||||
|
||||
<copyright>
|
||||
<year>2007-2010</year>
|
||||
<holder>Intel Corporation</holder>
|
||||
<holder>Linux Foundation</holder>
|
||||
</copyright>
|
||||
|
||||
<legalnotice>
|
||||
|
||||
@@ -118,14 +118,13 @@ h6 {
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
padding-top: 256px;
|
||||
background-image: url("poky-beaver.png");
|
||||
background-position: right top;
|
||||
float: right;
|
||||
background-image: url("figures/poky-ref-manual.png");
|
||||
background-position: left top;
|
||||
margin-top: -256px;
|
||||
padding-right: 50px;
|
||||
margin-left: 50px;
|
||||
text-align: right;
|
||||
width: 200px;
|
||||
width: 600px;
|
||||
}
|
||||
|
||||
h3.author {
|
||||
|
||||
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)
|
||||
}
|
||||
do_setscene[selfstamp] = "1"
|
||||
do_setscene[dirs] = "${PSEUDO_LOCALSTATEDIR}"
|
||||
addtask setscene before do_fetch
|
||||
|
||||
addtask fetch
|
||||
@@ -438,6 +437,9 @@ base_do_package() {
|
||||
addtask build after do_populate_sysroot
|
||||
do_build = ""
|
||||
do_build[func] = "1"
|
||||
do_build () {
|
||||
:
|
||||
}
|
||||
|
||||
python () {
|
||||
import exceptions, string
|
||||
@@ -483,6 +485,7 @@ python () {
|
||||
deps.append('virtual/fakeroot-native:do_populate_sysroot')
|
||||
bb.data.setVarFlag('do_package', 'depends', " ".join(deps),d)
|
||||
bb.data.setVarFlag('do_package', 'fakeroot', 1, d)
|
||||
bb.data.setVarFlag('do_package_setscene', 'fakeroot', 1, d)
|
||||
source_mirror_fetch = bb.data.getVar('SOURCE_MIRROR_FETCH', d, 0)
|
||||
if not source_mirror_fetch:
|
||||
need_host = bb.data.getVar('COMPATIBLE_HOST', d, 1)
|
||||
@@ -621,4 +624,32 @@ def check_gcc3(data):
|
||||
|
||||
return False
|
||||
|
||||
addtask cleanall after do_clean
|
||||
python do_cleanall() {
|
||||
sstate_clean_cachefiles(d)
|
||||
|
||||
localdata = bb.data.createCopy(d)
|
||||
bb.data.update_data(localdata)
|
||||
|
||||
dl_dir = bb.data.getVar('DL_DIR', localdata, True)
|
||||
dl_dir = os.path.realpath(dl_dir)
|
||||
|
||||
src_uri = bb.data.getVar('SRC_URI', localdata, True)
|
||||
if not src_uri:
|
||||
return
|
||||
for url in src_uri.split():
|
||||
try:
|
||||
local = bb.data.expand(bb.fetch.localpath(url, localdata), localdata)
|
||||
except bb.MalformedUrl, e:
|
||||
raise FuncFailed('Unable to generate local path for malformed uri: %s' % e)
|
||||
if local is None:
|
||||
continue
|
||||
local = os.path.realpath(local)
|
||||
if local.startswith(dl_dir):
|
||||
bb.note("Removing %s*" % local)
|
||||
oe.path.remove(local + "*")
|
||||
}
|
||||
do_cleanall[nostamp] = "1"
|
||||
|
||||
|
||||
EXPORT_FUNCTIONS do_setscene do_fetch do_unpack do_configure do_compile do_install do_package
|
||||
|
||||
@@ -39,7 +39,7 @@ python () {
|
||||
|
||||
# If we don't do this we try and run the mapping hooks while parsing which is slow
|
||||
# bitbake should really provide something to let us know this...
|
||||
if bb.data.getVar('__RUNQUEUE_DO_NOT_USE_EXTERNALLY', d, True) is not None:
|
||||
if bb.data.getVar('BB_WORKERCONTEXT', d, True) is not None:
|
||||
runtime_mapping_rename("PACKAGE_INSTALL", d)
|
||||
runtime_mapping_rename("PACKAGE_INSTALL_ATTEMPTONLY", d)
|
||||
}
|
||||
|
||||
@@ -70,8 +70,11 @@ def base_get_metadata_git_branch(path, d):
|
||||
return "<unknown>"
|
||||
|
||||
def base_get_metadata_git_revision(path, d):
|
||||
rev = os.popen("cd %s; git log -n 1 --pretty=oneline -- 2>&1" % path).read().split(" ")[0]
|
||||
if len(rev) != 0:
|
||||
return rev
|
||||
f = os.popen("cd %s; git log -n 1 --pretty=oneline -- 2>&1" % path)
|
||||
data = f.read()
|
||||
if f.close() is None:
|
||||
rev = data.split(" ")[0]
|
||||
if len(rev) != 0:
|
||||
return rev
|
||||
return "<unknown>"
|
||||
|
||||
|
||||
@@ -280,7 +280,6 @@ python () {
|
||||
deps.append('dpkg-native:do_populate_sysroot')
|
||||
deps.append('virtual/fakeroot-native:do_populate_sysroot')
|
||||
bb.data.setVarFlag('do_package_write_deb', 'depends', " ".join(deps), d)
|
||||
bb.data.setVarFlag('do_package_write_ipk', 'fakeroot', "1", d)
|
||||
}
|
||||
|
||||
python do_package_write_deb () {
|
||||
|
||||
@@ -325,6 +325,7 @@ python () {
|
||||
deps.append('virtual/fakeroot-native:do_populate_sysroot')
|
||||
bb.data.setVarFlag('do_package_write_ipk', 'depends', " ".join(deps), d)
|
||||
bb.data.setVarFlag('do_package_write_ipk', 'fakeroot', "1", d)
|
||||
bb.data.setVarFlag('do_package_write_ipk_setscene', 'fakeroot', "1", d)
|
||||
}
|
||||
|
||||
python do_package_write_ipk () {
|
||||
|
||||
@@ -437,18 +437,13 @@ python do_package_rpm () {
|
||||
|
||||
workdir = bb.data.getVar('WORKDIR', d, True)
|
||||
outdir = bb.data.getVar('DEPLOY_DIR_IPK', d, True)
|
||||
dvar = bb.data.getVar('D', d, True)
|
||||
tmpdir = bb.data.getVar('TMPDIR', d, True)
|
||||
pkgd = bb.data.getVar('PKGD', d, True)
|
||||
pkgdest = bb.data.getVar('PKGDEST', d, True)
|
||||
if not workdir or not outdir or not dvar or not tmpdir:
|
||||
if not workdir or not outdir or not pkgd or not tmpdir:
|
||||
bb.error("Variables incorrectly set, unable to package")
|
||||
return
|
||||
|
||||
if not os.path.exists(dvar):
|
||||
bb.debug(1, "Nothing installed, nothing to do")
|
||||
return
|
||||
|
||||
packages = bb.data.getVar('PACKAGES', d, True)
|
||||
if not packages or packages == '':
|
||||
bb.debug(1, "No packages; nothing to do")
|
||||
@@ -550,6 +545,7 @@ python () {
|
||||
deps.append('virtual/fakeroot-native:do_populate_sysroot')
|
||||
bb.data.setVarFlag('do_package_write_rpm', 'depends', " ".join(deps), d)
|
||||
bb.data.setVarFlag('do_package_write_rpm', 'fakeroot', 1, d)
|
||||
bb.data.setVarFlag('do_package_write_rpm_setscene', 'fakeroot', 1, d)
|
||||
}
|
||||
|
||||
SSTATETASKS += "do_package_write_rpm"
|
||||
|
||||
@@ -11,7 +11,9 @@ BB_DEFAULT_TASK = "rm_work_all"
|
||||
|
||||
do_rm_work () {
|
||||
# Ensure pseudo is no longer active
|
||||
${FAKEROOT} -S
|
||||
if [ -d ${WORKDIR}/pseudo ]; then
|
||||
${FAKEROOT} -S
|
||||
fi
|
||||
cd ${WORKDIR}
|
||||
for dir in *
|
||||
do
|
||||
|
||||
@@ -44,11 +44,12 @@ def sstate_init(name, d):
|
||||
ss['lockfiles'] = []
|
||||
return ss
|
||||
|
||||
def sstate_state_fromvars(d):
|
||||
task = bb.data.getVar('BB_CURRENTTASK', d, True)
|
||||
if not task:
|
||||
bb.fatal("sstate code running without task context?!")
|
||||
task = task.replace("_setscene", "")
|
||||
def sstate_state_fromvars(d, task = None):
|
||||
if task is None:
|
||||
task = bb.data.getVar('BB_CURRENTTASK', d, True)
|
||||
if not task:
|
||||
bb.fatal("sstate code running without task context?!")
|
||||
task = task.replace("_setscene", "")
|
||||
|
||||
name = bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-name', d), d)
|
||||
inputs = (bb.data.expand(bb.data.getVarFlag("do_" + task, 'sstate-inputdirs', d) or "", d)).split()
|
||||
@@ -153,11 +154,25 @@ def sstate_installpkg(ss, d):
|
||||
sstate_install(ss, d)
|
||||
|
||||
for plain in ss['plaindirs']:
|
||||
bb.mkdirhier(sstateinst + plain)
|
||||
oe.path.copytree(sstateinst + plain, bb.data.getVar('WORKDIR', d, True) + plain)
|
||||
workdir = d.getVar('WORKDIR', True)
|
||||
src = sstateinst + "/" + plain.replace(workdir, '')
|
||||
dest = plain
|
||||
bb.mkdirhier(src)
|
||||
bb.mkdirhier(dest)
|
||||
oe.path.copytree(src, dest)
|
||||
|
||||
return True
|
||||
|
||||
def sstate_clean_cachefile(ss, d):
|
||||
sstatepkg = bb.data.getVar('SSTATE_PKG', d, True) + '_' + ss['name'] + ".tgz"
|
||||
bb.note("Removing %s" % sstatepkg)
|
||||
oe.path.remove(sstatepkg)
|
||||
|
||||
def sstate_clean_cachefiles(d):
|
||||
for task in (bb.data.getVar('SSTATETASKS', d, True) or "").split():
|
||||
ss = sstate_state_fromvars(d, task[3:])
|
||||
sstate_clean_cachefile(ss, d)
|
||||
|
||||
def sstate_clean_manifest(manifest, d):
|
||||
import oe.path
|
||||
|
||||
@@ -263,6 +278,9 @@ def pstaging_fetch(sstatepkg, d):
|
||||
|
||||
dldir = bb.data.expand("${SSTATE_DIR}", localdata)
|
||||
srcuri = "file://" + os.path.basename(sstatepkg)
|
||||
|
||||
bb.mkdirhier(dldir)
|
||||
|
||||
bb.data.setVar('DL_DIR', dldir, localdata)
|
||||
bb.data.setVar('PREMIRRORS', mirrors, localdata)
|
||||
bb.data.setVar('SRC_URI', srcuri, localdata)
|
||||
@@ -270,8 +288,12 @@ def pstaging_fetch(sstatepkg, d):
|
||||
# Try a fetch from the sstate mirror, if it fails just return and
|
||||
# we will build the package
|
||||
try:
|
||||
bb.fetch.init([srcuri], pd)
|
||||
bb.fetch.go(pd, [srcuri])
|
||||
bb.fetch.init([srcuri], localdata)
|
||||
bb.fetch.go(localdata, [srcuri])
|
||||
# Need to optimise this, if using file:// urls, the fetcher just changes the local path
|
||||
# For now work around by symlinking
|
||||
if bb.data.expand(bb.fetch.localpath(srcuri, localdata), localdata) != sstatepkg:
|
||||
os.symlink(bb.data.expand(bb.fetch.localpath(srcuri, localdata), localdata), sstatepkg)
|
||||
except:
|
||||
pass
|
||||
|
||||
@@ -362,10 +384,10 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d):
|
||||
|
||||
srcuri = "file://" + os.path.basename(sstatefile)
|
||||
bb.data.setVar('SRC_URI', srcuri, localdata)
|
||||
bb.note(str(srcuri))
|
||||
#bb.note(str(srcuri))
|
||||
|
||||
try:
|
||||
bb.fetch.init(srcuri.split(), d)
|
||||
bb.fetch.init(srcuri.split(), localdata)
|
||||
bb.fetch.checkstatus(localdata)
|
||||
ret.append(task)
|
||||
except:
|
||||
|
||||
@@ -171,7 +171,7 @@ DESCRIPTION_${PN}-dbg ?= "${SUMMARY_${PN}-dbg}"
|
||||
DESCRIPTION_${PN}-dev ?= "${SUMMARY_${PN}-dev}"
|
||||
DESCRIPTION_${PN}-doc ?= "${SUMMARY_${PN}-doc}"
|
||||
LICENSE = "INVALID"
|
||||
MAINTAINER = "Poky Team <poky@openedhand.com>"
|
||||
MAINTAINER = "Yocto Project Team <poky@yoctoproject.org>"
|
||||
HOMEPAGE = "unknown"
|
||||
|
||||
# Package dependencies and provides.
|
||||
@@ -546,6 +546,7 @@ SRC_URI = "file://${FILE}"
|
||||
PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/"
|
||||
FAKEROOT = "PSEUDO_PREFIX=${STAGING_DIR_NATIVE}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_NOSYMLINKEXP=1 pseudo"
|
||||
FAKEROOTENV = "PSEUDO_PREFIX=${STAGING_DIR_NATIVE}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_NOSYMLINKEXP=1 LD_PRELOAD=libpseudo.so LD_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE}/pseudo/lib64:${STAGING_LIBDIR_NATIVE}/pseudo/lib"
|
||||
FAKEROOTDIRS = "${PSEUDO_LOCALSTATEDIR}"
|
||||
PREFERRED_PROVIDER_virtual/fakeroot-native ?= "pseudo-native"
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#@TYPE: Distribution#@NAME: Poky
|
||||
#@DESCRIPTION: Distribution configuration for OpenedHand (Poky)
|
||||
#@DESCRIPTION: Distribution configuration for the Yocto Project build by Poky
|
||||
|
||||
DISTRO = "poky"
|
||||
DISTRO_NAME = "OpenedHand Linux (Poky)"
|
||||
DISTRO_VERSION = "3.3+snapshot-${DATE}"
|
||||
DISTRO_NAME = "Yocto Linux (Built by Poky 4.0.1)"
|
||||
DISTRO_VERSION = "0.9"
|
||||
|
||||
MAINTAINER = "Poky <poky@openedhand.com>"
|
||||
MAINTAINER = "Poky <poky@yoctoproject.org>"
|
||||
|
||||
USER_CLASSES ?= ""
|
||||
|
||||
|
||||
@@ -159,3 +159,8 @@ ENABLE_BINARY_LOCALE_GENERATION = "1"
|
||||
# wish to perform the time-consuming step of generating all LIBC locales.
|
||||
# WARNING: this may break localisation!
|
||||
#GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
|
||||
|
||||
# Default to not build 32 bit libs on 64 bit systems, comment this
|
||||
# out if that is desired
|
||||
NO32LIBS = "1"
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#@DESCRIPTION: Machine configuration for running
|
||||
|
||||
TARGET_ARCH = "powerpc"
|
||||
PACKAGE_EXTRA_ARCHS = "ppce300"
|
||||
PACKAGE_EXTRA_ARCHS = "ppc603e"
|
||||
TARGET_FPU = "spe"
|
||||
|
||||
require conf/machine/include/tune-ppc603e.inc
|
||||
@@ -14,3 +14,5 @@ SERIAL_CONSOLE = "115200 ttyS0"
|
||||
MACHINE_FEATURES = "kernel26 keyboard pci ext2 ext3 serial"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/kernel = "linux-wrs"
|
||||
|
||||
UBOOT_ENTRYPOINT = "0x00000000"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
HAVE_TOUCHSCREEN=0
|
||||
HAVE_KEYBOARD=0
|
||||
HAVE_TOUCHSCREEN=1
|
||||
HAVE_KEYBOARD=1
|
||||
|
||||
DISPLAY_CAN_ROTATE=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://common/connman-dbus.c;beginline=1;endline=20;md5=de6b485c0e717a0236402d220187717a"
|
||||
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"
|
||||
|
||||
SRC_URI = "http://www.kernel.org/pub/linux/network/connman/connman-gnome-${PV}.tar.gz \
|
||||
file://connman-gnome.patch \
|
||||
file://connman-applet.desktop"
|
||||
file://remove-connman-property-desktop-file.patch"
|
||||
|
||||
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)} \
|
||||
-DTERMIO ${FULL_OPTIMIZATION} -Wall"
|
||||
|
||||
# Avoid binaries being marked as requiring an executable stack (which causes
|
||||
# issues with SELinux on the host)
|
||||
CFLAG_append_virtclass-native = " -Wa,--noexecstack"
|
||||
|
||||
# -02 does not work on mipsel: ssh hangs when it tries to read /dev/urandom
|
||||
CFLAG_mtx-1 := "${@'${CFLAG}'.replace('-O2', '')}"
|
||||
CFLAG_mtx-2 := "${@'${CFLAG}'.replace('-O2', '')}"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
require openssl.inc
|
||||
|
||||
PR = "r0"
|
||||
PR = "r2"
|
||||
SRC_URI += "file://debian/ca.patch \
|
||||
file://debian/config-hurd.patch;apply=no \
|
||||
file://debian/debian-targets.patch \
|
||||
|
||||
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
|
||||
PR = "r0"
|
||||
PR = "r1"
|
||||
|
||||
SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
|
||||
file://udhcpscript.patch \
|
||||
@@ -8,6 +8,7 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
|
||||
file://get_header_tar.patch \
|
||||
file://busybox-appletlib-dependency.patch \
|
||||
file://run-parts.in.usr-bin.patch \
|
||||
file://make-382-fix.patch \
|
||||
file://find-touchscreen.sh \
|
||||
file://busybox-cron \
|
||||
file://busybox-httpd \
|
||||
|
||||
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"
|
||||
FILESPATHPKG =. "eglibc-svn:"
|
||||
PR = "r9"
|
||||
PR = "r10"
|
||||
|
||||
EGLIBC_BRANCH="eglibc-2_12"
|
||||
SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http \
|
||||
@@ -11,7 +11,8 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http
|
||||
file://shorten-build-commands.patch \
|
||||
file://mips-rld-map-check.patch \
|
||||
file://etc/ld.so.conf \
|
||||
file://generate-supported.mk"
|
||||
file://generate-supported.mk \
|
||||
file://fix-for-make-3.82.diff"
|
||||
SRC_URI_append_virtclass-nativesdk = " file://ld-search-order.patch"
|
||||
S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
|
||||
B = "${WORKDIR}/build-${TARGET_SYS}"
|
||||
|
||||
@@ -11,6 +11,7 @@ early_setup() {
|
||||
mount -t proc proc /proc
|
||||
mount -t sysfs sysfs /sys
|
||||
udevd --daemon
|
||||
/sbin/udevadm trigger --action=add
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
PR = "r22"
|
||||
PR = "r23"
|
||||
|
||||
FILESPATH = "${FILE_DIRNAME}/qemu-${PV}"
|
||||
FILESDIR = "${WORKDIR}"
|
||||
@@ -21,6 +21,7 @@ SRC_URI = "\
|
||||
file://arm-cp15-fix.patch \
|
||||
file://cursor-shadow-fix.patch \
|
||||
file://vmware-vga-fifo-rewind.patch \
|
||||
file://fix-configure-checks.patch \
|
||||
file://powerpc_rom.bin"
|
||||
|
||||
do_install_append () {
|
||||
|
||||
@@ -5,7 +5,8 @@ LICENSE = "GPLv2"
|
||||
LIC_CHKSUM_FILES = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
|
||||
|
||||
SRC_URI = "http://download.savannah.gnu.org/releases/quilt/quilt-${PV}.tar.gz \
|
||||
file://install.patch"
|
||||
file://install.patch \
|
||||
file://gnu_patch_test_fix.patch"
|
||||
|
||||
inherit autotools
|
||||
|
||||
|
||||
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
|
||||
|
||||
PR = "r9"
|
||||
PR = "r10"
|
||||
|
||||
inherit update-rc.d update-alternatives
|
||||
|
||||
@@ -16,6 +16,7 @@ SRC_URI += "file://procmodule.patch;patch=1 \
|
||||
file://linux-limits.patch;patch=1 \
|
||||
file://sysctl.conf \
|
||||
file://procps.init \
|
||||
file://procps-3.2.8+gmake-3.82.patch \
|
||||
"
|
||||
|
||||
FILES = "${bindir}/top.${PN} ${base_bindir}/ps.${PN} ${bindir}/uptime.${PN} ${base_bindir}/kill.${PN} \
|
||||
|
||||
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"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=f30a9716ef3762e3467a2f62bf790f0a"
|
||||
|
||||
PR = "r15"
|
||||
PR = "r16"
|
||||
|
||||
SRC_URI = "http://download.berlios.de/tslib/tslib-${PV}.tar.bz2 \
|
||||
file://fix_version.patch;patch=1 \
|
||||
@@ -16,6 +16,8 @@ SRC_URI = "http://download.berlios.de/tslib/tslib-${PV}.tar.bz2 \
|
||||
file://tslib.sh"
|
||||
SRC_URI_append_mnci += " file://devfs.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
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
if [ -x /usr/bin/dbus-launch ]; then
|
||||
# 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"
|
||||
fi
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ DESCRIPTION = "Common X11 scripts"
|
||||
LICENSE = "GPLv2"
|
||||
SECTION = "x11"
|
||||
RDEPENDS_${PN} = "xmodmap xdpyinfo xtscal xinit formfactor"
|
||||
PR = "r38"
|
||||
PR = "r39"
|
||||
|
||||
SRC_URI = "file://etc"
|
||||
S = ${WORKDIR}
|
||||
|
||||
@@ -14,8 +14,8 @@ Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
|
||||
|
||||
Index: linux-2.6.34/include/linux/connector.h
|
||||
===================================================================
|
||||
--- linux-2.6.34.orig/include/linux/connector.h 2010-09-30 14:15:25.000000000 +0800
|
||||
+++ linux-2.6.34/include/linux/connector.h 2010-09-30 14:15:43.000000000 +0800
|
||||
--- linux-2.6.34.orig/include/linux/connector.h
|
||||
+++ linux-2.6.34/include/linux/connector.h
|
||||
@@ -48,7 +48,7 @@
|
||||
/*
|
||||
* Maximum connector's message size.
|
||||
|
||||
@@ -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"
|
||||
DEPENDS += "unifdef-native"
|
||||
PR = "r1"
|
||||
PR = "r2"
|
||||
|
||||
SRC_URI += "file://hayes-gone.patch \
|
||||
file://ppc_glibc_build_fix.patch \
|
||||
file://connector-msg-size-fix.patch"
|
||||
file://ppc_glibc_build_fix.patch \
|
||||
file://make-382.patch \
|
||||
file://connector-msg-size-fix.patch"
|
||||
|
||||
S = "${WORKDIR}/linux-${PV}"
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
|
||||
|
||||
DEPENDS += "gst-plugins-base libmusicbrainz tremor"
|
||||
|
||||
PR = "r2"
|
||||
PR = "r3"
|
||||
|
||||
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 \
|
||||
gnome-vfs-plugin-sftp"
|
||||
|
||||
PR = "r1"
|
||||
PR = "r2"
|
||||
|
||||
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 \
|
||||
speex"
|
||||
PR = "r0"
|
||||
PR = "r1"
|
||||
|
||||
inherit gettext
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
|
||||
file://gst/mpegstream/gstmpegparse.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9"
|
||||
|
||||
DEPENDS += "gst-plugins-base libid3tag libmad mpeg2dec liba52 lame"
|
||||
PR = "r0"
|
||||
PR = "r1"
|
||||
|
||||
inherit gettext
|
||||
|
||||
|
||||
@@ -7,7 +7,10 @@ DEPENDS = "gstreamer"
|
||||
|
||||
inherit autotools pkgconfig
|
||||
|
||||
SRC_URI = "http://gstreamer.freedesktop.org/src/${PN}/${PN}-${PV}.tar.bz2"
|
||||
FILESPATH =. "${FILE_DIRNAME}/gst-plugins:"
|
||||
|
||||
SRC_URI = "http://gstreamer.freedesktop.org/src/${PN}/${PN}-${PV}.tar.bz2 \
|
||||
file://make-382.patch"
|
||||
|
||||
EXTRA_OECONF = "--disable-valgrind --disable-debug --disable-examples "
|
||||
|
||||
|
||||
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"
|
||||
DEPENDS = "glib-2.0 gettext libxml2 bison-native flex-native"
|
||||
|
||||
PR = "r0"
|
||||
PR = "r1"
|
||||
|
||||
SRC_URI = "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.bz2 \
|
||||
file://check_fix.patch;patch=1 \
|
||||
file://gst-inspect-check-error.patch;patch=1"
|
||||
file://check_fix.patch \
|
||||
file://gst-inspect-check-error.patch \
|
||||
file://make-382.patch"
|
||||
|
||||
inherit autotools pkgconfig
|
||||
|
||||
|
||||
@@ -4,7 +4,9 @@ BUGTRACKER = "https://trac.xiph.org/newticket"
|
||||
SECTION = "libs"
|
||||
LICENSE = "BSD"
|
||||
|
||||
PR = "r0"
|
||||
DEPENDS = "libogg"
|
||||
|
||||
PR = "r1"
|
||||
|
||||
SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2 \
|
||||
file://no-docs.patch"
|
||||
|
||||
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"
|
||||
|
||||
PV = "0.0+svnr${SRCREV}"
|
||||
PR = "r4"
|
||||
PR = "r5"
|
||||
|
||||
S = "${WORKDIR}/${PN}"
|
||||
|
||||
SRC_URI = "svn://svn.o-hand.com/repos/misc/trunk;module=${PN};proto=http \
|
||||
file://gst_change_state.patch"
|
||||
file://gst_change_state.patch \
|
||||
file://make-382.patch"
|
||||
|
||||
inherit autotools pkgconfig
|
||||
|
||||
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-med.png \
|
||||
file://stock_volume-max.png \
|
||||
file://owl-video-widget.desktop"
|
||||
file://owl-video-widget.desktop \
|
||||
file://make-382.patch"
|
||||
|
||||
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"
|
||||
|
||||
PV = "0.12+git${SRCPV}"
|
||||
PR = "r0"
|
||||
PR = "r1"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
SRC_URI =+ "git://git.gnome.org/${PN};protocol=git"
|
||||
SRC_URI =+ "git://git.gnome.org/${PN};protocol=git \
|
||||
file://make-382.patch"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
|
||||
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"
|
||||
|
||||
PV = "0.4.11+git${SRCPV}"
|
||||
PR = "r0"
|
||||
PR = "r1"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
SRC_URI = "git://git.gnome.org/${PN};protocol=git"
|
||||
SRC_URI = "git://git.gnome.org/${PN};protocol=git \
|
||||
file://make-382.patch"
|
||||
|
||||
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"
|
||||
|
||||
PV = "0.0+svnr${SRCREV}"
|
||||
PR = "r2"
|
||||
PR = "r3"
|
||||
|
||||
SRC_URI = "svn://svn.o-hand.com/repos/web/branches;module=webkit;proto=http \
|
||||
file://link-with-g++.patch;patch=1"
|
||||
file://link-with-g++.patch \
|
||||
file://make-382.patch"
|
||||
|
||||
S = "${WORKDIR}/webkit"
|
||||
|
||||
|
||||
@@ -47,6 +47,11 @@ if [ ! -e "$ROOTFS_TARBALL" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Convert SDK_ROOTFS_DIR to a full pathname
|
||||
if [[ ${SDK_ROOTFS_DIR:0:1} != "/" ]]; then
|
||||
SDK_ROOTFS_DIR=$(pwd)/$SDK_ROOTFS_DIR
|
||||
fi
|
||||
|
||||
TAR_OPTS=""
|
||||
if [[ "$ROOTFS_TARBALL" =~ tar\.bz2$ ]]; then
|
||||
TAR_OPTS="-xjf"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Find a native sysroot to use - either from an in-tree Poky build or
|
||||
# from a toolchain installation in /opt/poky. It then ensures the variable
|
||||
# from a toolchain installation. It then ensures the variable
|
||||
# $POKY_NATIVE_SYSROOT is set to the sysroot's base directory, and sets
|
||||
# $PSEUDO to the path of the pseudo binary.
|
||||
#
|
||||
|
||||
@@ -31,9 +31,9 @@ usage() {
|
||||
echo " serial - enables a serial console on /dev/ttyS0"
|
||||
echo ""
|
||||
echo "Examples:"
|
||||
echo " $0 qemuarm"
|
||||
echo " $0 qemux86-64 poky-image-sato ext3"
|
||||
echo " $0 path/to/bzImage-qemux86.bin path/to/nfsrootdir/ serial"
|
||||
echo " $MYNAME qemuarm"
|
||||
echo " $MYNAME qemux86-64 poky-image-sato ext3"
|
||||
echo " $MYNAME path/to/bzImage-qemux86.bin path/to/nfsrootdir/ serial"
|
||||
exit 1
|
||||
}
|
||||
|
||||
@@ -51,6 +51,37 @@ SCRIPT_KERNEL_OPT=""
|
||||
|
||||
TMPDIR=""
|
||||
|
||||
# Determine whether the file is a kernel or QEMU image, and set the
|
||||
# appropriate variables
|
||||
process_filename() {
|
||||
filename=$1
|
||||
|
||||
# Extract the filename extension
|
||||
EXT=`echo $filename | awk -F . '{ print \$NF }'`
|
||||
# A file ending in .bin is a kernel
|
||||
if [ "x$EXT" = "xbin" ]; then
|
||||
if [ -z "$KERNEL" ]; then
|
||||
KERNEL=$filename
|
||||
else
|
||||
echo "Error: conflicting KERNEL args [$KERNEL] and [$filename]"
|
||||
usage
|
||||
fi
|
||||
elif [[ "x$EXT" == "xext2" || "x$EXT" == "xext3" ||
|
||||
"x$EXT" == "xjffs2" ]]; then
|
||||
# A file ending in a supportted fs type is a rootfs image
|
||||
if [[ -z "$FSTYPE" || "$FSTYPE" == "$EXT" ]]; then
|
||||
FSTYPE=$EXT
|
||||
ROOTFS=$filename
|
||||
else
|
||||
echo "Error: conflicting FSTYPE types [$FSTYPE] and [$EXT]"
|
||||
usage
|
||||
fi
|
||||
else
|
||||
echo "Error: unknown file arg [$filename]"
|
||||
usage
|
||||
fi
|
||||
}
|
||||
|
||||
# Parse command line args without requiring specific ordering. It's a
|
||||
# bit more complex, but offers a great user experience.
|
||||
i=1
|
||||
@@ -66,7 +97,7 @@ while [ $i -le $# ]; do
|
||||
fi
|
||||
;;
|
||||
"ext2" | "ext3" | "jffs2" | "nfs")
|
||||
if [ -z "$FSTYPE" ]; then
|
||||
if [[ -z "$FSTYPE" || "$FSTYPE" == "$arg" ]]; then
|
||||
FSTYPE=$arg
|
||||
else
|
||||
echo "Error: conflicting FSTYPE types [$FSTYPE] and [$arg]"
|
||||
@@ -75,8 +106,8 @@ while [ $i -le $# ]; do
|
||||
;;
|
||||
*-image-*)
|
||||
if [ -z "$ROOTFS" ]; then
|
||||
if [ -e "$arg" ]; then
|
||||
ROOTFS=$arg
|
||||
if [ -f "$arg" ]; then
|
||||
process_filename $arg
|
||||
else
|
||||
ROOTFS=$arg
|
||||
LAZY_ROOTFS="true"
|
||||
@@ -111,30 +142,7 @@ while [ $i -le $# ]; do
|
||||
usage
|
||||
fi
|
||||
elif [ -f "$arg" ]; then
|
||||
# Extract the filename extension
|
||||
EXT=`echo $arg | awk -F . '{ print \$NF }'`
|
||||
# A file ending in .bin is a kernel
|
||||
if [ "x$EXT" = "xbin" ]; then
|
||||
if [ -z "$KERNEL" ]; then
|
||||
KERNEL=$arg
|
||||
else
|
||||
echo "Error: conflicting KERNEL args [$KERNEL] and [$arg]"
|
||||
usage
|
||||
fi
|
||||
elif [[ "x$EXT" == "xext2" || "x$EXT" == "xext3" ||
|
||||
"x$EXT" == "xjffs2" ]]; then
|
||||
# A file ending in a supportted fs type is a rootfs image
|
||||
if [[ -z "$FSTYPE" || "$FSTYPE" == "$EXT" ]]; then
|
||||
FSTYPE=$EXT
|
||||
ROOTFS=$arg
|
||||
else
|
||||
echo "Error: conflicting FSTYPE types [$FSTYPE] and [$arg]"
|
||||
usage
|
||||
fi
|
||||
else
|
||||
echo "Error: unknown file arg [$arg]"
|
||||
usage
|
||||
fi
|
||||
process_filename $arg
|
||||
else
|
||||
echo "Error: unable to classify arg [$arg]"
|
||||
usage
|
||||
@@ -155,7 +163,7 @@ if [[ "$FSTYPE" == "nfs" && -z "$ROOTFS" ]]; then
|
||||
fi
|
||||
|
||||
if [ -z "$MACHINE" ]; then
|
||||
MACHINE=`basename $KERNEL | sed -r -e 's#.*-([a-z]+[0-9\-]*)-?[0-9]*..*#\1#'`
|
||||
MACHINE=`basename $KERNEL | sed 's/.*-\(qemux86-64\|qemux86\|qemuarm\|qemumips\|qemuppc\).*/\1/'`
|
||||
if [ -z "$MACHINE" ]; then
|
||||
echo "Error: Unable to set MACHINE from kernel filename [$KERNEL]"
|
||||
usage
|
||||
@@ -196,7 +204,7 @@ SPITZ_DEFAULT_ROOTFS="poky-image-sato"
|
||||
|
||||
setup_tmpdir() {
|
||||
if [ -z "$TMPDIR" ]; then
|
||||
if [ "x$BUILDDIR" = "x" ]; then
|
||||
if [ "x$BUILDDIR" = "x" -o ! -d "$BUILDDIR/tmp" ]; then
|
||||
# BUILDDIR unset, try and get TMPDIR from bitbake
|
||||
type -P bitbake &>/dev/null || {
|
||||
echo "In order for this script to dynamically infer paths";
|
||||
@@ -205,23 +213,29 @@ setup_tmpdir() {
|
||||
echo "before running this script" >&2;
|
||||
exit 1; }
|
||||
|
||||
# We have bitbake in PATH, get TMPDIR and BUILD_SYS
|
||||
# from the environment
|
||||
# We have bitbake in PATH, get TMPDIR from bitbake
|
||||
TMPDIR=`bitbake -e | grep TMPDIR=\" | cut -d '=' -f2 | cut -d '"' -f2`
|
||||
BUILD_SYS=`bitbake -e | grep BUILD_SYS=\" | cut -d '=' -f2 | cut -d '"' -f2`
|
||||
else
|
||||
BUILD_ARCH=`uname -m`
|
||||
BUILD_OS=`uname | tr '[A-Z]' '[a-z]'`
|
||||
BUILD_SYS="$BUILD_ARCH-$BUILD_OS"
|
||||
TMPDIR=$BUILDDIR/tmp
|
||||
fi
|
||||
if [ -z "$POKY_NATIVE_SYSROOT" ]; then
|
||||
POKY_NATIVE_SYSROOT=$TMPDIR/sysroots/$BUILD_SYS
|
||||
fi
|
||||
CROSSPATH=$POKY_NATIVE_SYSROOT/usr/bin
|
||||
fi
|
||||
}
|
||||
|
||||
setup_sysroot() {
|
||||
# Toolchain installs set up $POKY_NATIVE_SYSROOT in their
|
||||
# environment script. If that variable isn't set, we're
|
||||
# either in an in-tree poky scenario or the environment
|
||||
# script wasn't source'd.
|
||||
if [ -z "$POKY_NATIVE_SYSROOT" ]; then
|
||||
setup_tmpdir
|
||||
BUILD_ARCH=`uname -m`
|
||||
BUILD_OS=`uname | tr '[A-Z]' '[a-z]'`
|
||||
BUILD_SYS="$BUILD_ARCH-$BUILD_OS"
|
||||
|
||||
POKY_NATIVE_SYSROOT=$TMPDIR/sysroots/$BUILD_SYS
|
||||
fi
|
||||
}
|
||||
|
||||
# Locate a rootfs image based on defaults defined above
|
||||
findimage() {
|
||||
where=$1
|
||||
@@ -246,8 +260,6 @@ findimage() {
|
||||
}
|
||||
|
||||
if [[ -e "$ROOTFS" && -z "$FSTYPE" ]]; then
|
||||
setup_tmpdir
|
||||
|
||||
# Extract the filename extension
|
||||
EXT=`echo $ROOTFS | awk -F . '{ print \$NF }'`
|
||||
if [[ "x$EXT" == "xext2" || "x$EXT" == "xext3" ||
|
||||
@@ -273,7 +285,6 @@ fi
|
||||
# KERNEL is now set for all cases
|
||||
|
||||
if [ -z "$FSTYPE" ]; then
|
||||
setup_tmpdir
|
||||
eval FSTYPE=\$${machine2}_DEFAULT_FSTYPE
|
||||
|
||||
if [ -z "$FSTYPE" ]; then
|
||||
@@ -310,6 +321,9 @@ echo "KERNEL: [$KERNEL]"
|
||||
echo "ROOTFS: [$ROOTFS]"
|
||||
echo "FSTYPE: [$FSTYPE]"
|
||||
|
||||
setup_sysroot
|
||||
# POKY_NATIVE_SYSROOT is now set for all cases
|
||||
|
||||
# We can't run without a libGL.so
|
||||
libgl='no'
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
usage() {
|
||||
echo "sudo $0 <tap-dev> <native-sysroot-basedir>"
|
||||
echo "sudo $(basename $0) <tap-dev> <native-sysroot-basedir>"
|
||||
}
|
||||
|
||||
if [ $EUID -ne 0 ]; then
|
||||
@@ -46,13 +46,6 @@ NATIVE_SYSROOT_DIR=$2
|
||||
TUNCTL=$NATIVE_SYSROOT_DIR/usr/bin/tunctl
|
||||
if [ ! -e "$TUNCTL" ]; then
|
||||
echo "Error: Unable to find tunctl binary in '$NATIVE_SYSROOT_DIR/usr/bin'"
|
||||
|
||||
if [[ "$NATIVE_SYSROOT_DIR" =~ ^\/opt\/poky ]]; then
|
||||
echo "This shouldn't happen - something is wrong with your toolchain installation"
|
||||
else
|
||||
echo "Have you run 'bitbake meta-ide-support'?"
|
||||
fi
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
usage() {
|
||||
echo "sudo $0 <gid> <native-sysroot-basedir>"
|
||||
echo "sudo $(basename $0) <gid> <native-sysroot-basedir>"
|
||||
}
|
||||
|
||||
if [ $EUID -ne 0 ]; then
|
||||
@@ -53,13 +53,6 @@ NATIVE_SYSROOT_DIR=$2
|
||||
TUNCTL=$NATIVE_SYSROOT_DIR/usr/bin/tunctl
|
||||
if [ ! -x "$TUNCTL" ]; then
|
||||
echo "Error: Unable to find tunctl binary in '$NATIVE_SYSROOT_DIR/usr/bin'"
|
||||
|
||||
if [[ "$NATIVE_SYSROOT_DIR" =~ ^\/opt\/poky ]]; then
|
||||
echo "This shouldn't happen - something is wrong with your toolchain installation"
|
||||
else
|
||||
echo "Have you run 'bitbake meta-ide-support'?"
|
||||
fi
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
@@ -394,23 +394,9 @@ if [ "x$QEMUOPTIONS" = "x" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
SDKDIR="/opt/poky/sysroots"
|
||||
if [ "$MACHINE" = "qemuarm" -o "$MACHINE" = "spitz" -o "$MACHINE" = "borzoi" -o "$MACHINE" = "akita" -o "$MACHINE" = "nokia800" ]; then
|
||||
SDKPATH="$SDKDIR/arm-poky-linux-gnueabi/bin"
|
||||
fi
|
||||
|
||||
if [ "$MACHINE" = "qemux86" ]; then
|
||||
SDKPATH="$SDKDIR/i586-poky-linux/bin"
|
||||
fi
|
||||
|
||||
if [ "$MACHINE" = "qemux86-64" ]; then
|
||||
SDKPATH="$SDKDIR/x86_64-poky-linux/bin"
|
||||
fi
|
||||
|
||||
PATH=$CROSSPATH:$SDKPATH:$PATH
|
||||
PATH=$CROSSPATH:$POKY_NATIVE_SYSROOT/usr/bin:$PATH
|
||||
|
||||
QEMUBIN=`which $QEMU`
|
||||
|
||||
if [ ! -x "$QEMUBIN" ]; then
|
||||
echo "Error: No QEMU binary '$QEMU' could be found."
|
||||
cleanup
|
||||
|
||||