mirror of
https://git.yoctoproject.org/poky
synced 2026-03-25 10:02:22 +01:00
Compare commits
453 Commits
uninative-
...
gatesgarth
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
13143ea85a | ||
|
|
686e2a9f47 | ||
|
|
bc71ec0f1d | ||
|
|
264a1c06d4 | ||
|
|
b0a2adf311 | ||
|
|
2a05cec305 | ||
|
|
cfe478f8d3 | ||
|
|
976f69ff1b | ||
|
|
0f6ea144a7 | ||
|
|
cec9cfb059 | ||
|
|
9c1e94752e | ||
|
|
779ca22928 | ||
|
|
f2d2136dbb | ||
|
|
7d3fb188bf | ||
|
|
6a751048e5 | ||
|
|
60c8482769 | ||
|
|
79c4792da2 | ||
|
|
ed4434939c | ||
|
|
1471ca2def | ||
|
|
2d61bddfa5 | ||
|
|
65368059b8 | ||
|
|
2f718bb3c3 | ||
|
|
454dcd199d | ||
|
|
5faaedd8e3 | ||
|
|
1c8bded8ed | ||
|
|
b492191d87 | ||
|
|
78c99742b8 | ||
|
|
d583c78d87 | ||
|
|
22d26f0759 | ||
|
|
3e8da09b5f | ||
|
|
7fbb685c63 | ||
|
|
9bcddff5ca | ||
|
|
912e5fcc4b | ||
|
|
8c373141b7 | ||
|
|
1da8912b03 | ||
|
|
4c9d9b7985 | ||
|
|
008f229249 | ||
|
|
580089c762 | ||
|
|
18cbfe6369 | ||
|
|
207c859da9 | ||
|
|
94a83886ed | ||
|
|
e302900997 | ||
|
|
8679e29df1 | ||
|
|
7594d55a1d | ||
|
|
7d2219bd53 | ||
|
|
5f8ab6eaa7 | ||
|
|
91e4a1c1e1 | ||
|
|
f841c22370 | ||
|
|
849ef02127 | ||
|
|
5aa9ae3984 | ||
|
|
2446ab2622 | ||
|
|
62402e177a | ||
|
|
786cd996ae | ||
|
|
a303c6e376 | ||
|
|
8a49013827 | ||
|
|
fb086586d8 | ||
|
|
ebd1ea905d | ||
|
|
7489588559 | ||
|
|
ee15a42fd0 | ||
|
|
0260fe4044 | ||
|
|
f477a14f9e | ||
|
|
ea4682c61d | ||
|
|
f1b820e368 | ||
|
|
a9b7ac5cf9 | ||
|
|
08665a81dc | ||
|
|
033e3715e6 | ||
|
|
430d1124c9 | ||
|
|
7d600f2169 | ||
|
|
65a55f99e7 | ||
|
|
19fc1d8c27 | ||
|
|
90882c04d5 | ||
|
|
a633251fc8 | ||
|
|
9b9bcb8443 | ||
|
|
03381dda4b | ||
|
|
1e73a6df2e | ||
|
|
c6a72c1cf0 | ||
|
|
9b73242941 | ||
|
|
4aaa1a4f94 | ||
|
|
2d88e1c209 | ||
|
|
ef8583231a | ||
|
|
b215bdfbde | ||
|
|
d5d99f8594 | ||
|
|
33747b73cc | ||
|
|
09cc67b9da | ||
|
|
7cd15f2e65 | ||
|
|
dee8235c61 | ||
|
|
e4720d0883 | ||
|
|
844a850e46 | ||
|
|
f484b4e183 | ||
|
|
a93d0c1f6d | ||
|
|
26d01d44fb | ||
|
|
867a2067b2 | ||
|
|
0ddc879d61 | ||
|
|
b1cfaaa574 | ||
|
|
6ed895d2b2 | ||
|
|
c3ed60b147 | ||
|
|
12d767f88c | ||
|
|
f943f43cc1 | ||
|
|
1c0cb223c5 | ||
|
|
d4717c095b | ||
|
|
b31f266193 | ||
|
|
bab310bf0f | ||
|
|
631940f199 | ||
|
|
22424ef670 | ||
|
|
02c47f0892 | ||
|
|
bd513ea099 | ||
|
|
edc8051bc0 | ||
|
|
e4f5e6a39b | ||
|
|
30d921b46a | ||
|
|
fce639f1eb | ||
|
|
09cb090549 | ||
|
|
f77d5bf0d4 | ||
|
|
c623e03ca8 | ||
|
|
94cd506ff2 | ||
|
|
f1249679ca | ||
|
|
adeda0b970 | ||
|
|
edb299e2ba | ||
|
|
8b9b189c2e | ||
|
|
0b0067e432 | ||
|
|
56d8cb8a97 | ||
|
|
e35f1eef03 | ||
|
|
6bf6d80b17 | ||
|
|
2f94f81479 | ||
|
|
462b40d819 | ||
|
|
45d0de3cdf | ||
|
|
591609738e | ||
|
|
adffa47daf | ||
|
|
37448a2251 | ||
|
|
3be4d4e2c3 | ||
|
|
8ae5a32559 | ||
|
|
f30d83ad4e | ||
|
|
fecf21863f | ||
|
|
aadac9ddbf | ||
|
|
4e4523aae4 | ||
|
|
2c69b69d69 | ||
|
|
3f2a97c3be | ||
|
|
d63c5f0d45 | ||
|
|
ebecd278de | ||
|
|
bb6ad86558 | ||
|
|
3a7c2e82d0 | ||
|
|
5386ab7aa4 | ||
|
|
ec877cbf3f | ||
|
|
0d87f87894 | ||
|
|
51c48e60f3 | ||
|
|
3c79df1465 | ||
|
|
75a7326f4e | ||
|
|
b876718823 | ||
|
|
0298de9a8a | ||
|
|
c8dc8687b7 | ||
|
|
6bc15eb887 | ||
|
|
4119c8e247 | ||
|
|
cd0fb6c0e7 | ||
|
|
b0a4a761aa | ||
|
|
ea1720b2fb | ||
|
|
ceb37a91c1 | ||
|
|
b43ba849f9 | ||
|
|
0d3ddf4ada | ||
|
|
af3a007ce2 | ||
|
|
d907873a54 | ||
|
|
1ff574dd16 | ||
|
|
94e5e60156 | ||
|
|
900b3f0782 | ||
|
|
95c5a1a2f6 | ||
|
|
2c2ce8063b | ||
|
|
ccfa84bf18 | ||
|
|
316333ec91 | ||
|
|
0b80065bea | ||
|
|
7bec49614c | ||
|
|
764b0f9f5e | ||
|
|
e3b307a4e3 | ||
|
|
dfd91796bd | ||
|
|
f651389dfa | ||
|
|
c0f7e0cf02 | ||
|
|
126fed5e60 | ||
|
|
c08762baeb | ||
|
|
e63e8599d8 | ||
|
|
1874f7f505 | ||
|
|
d5d6286a66 | ||
|
|
3bd4bf96cc | ||
|
|
41244407a0 | ||
|
|
f2139c483a | ||
|
|
6673eba881 | ||
|
|
c2feb63de8 | ||
|
|
a7ce6533ed | ||
|
|
95a02ba29c | ||
|
|
13ff17c145 | ||
|
|
1511e2f714 | ||
|
|
97a5bd47f9 | ||
|
|
20f18e4ff0 | ||
|
|
10470e6cc9 | ||
|
|
86c5922ebc | ||
|
|
a367523b55 | ||
|
|
6093edcc61 | ||
|
|
5d7728629a | ||
|
|
ac41e4a597 | ||
|
|
9df355c5f1 | ||
|
|
35be325c3b | ||
|
|
5842b2920c | ||
|
|
0003ed2b1c | ||
|
|
1d3cd3c2a5 | ||
|
|
49164d9cc1 | ||
|
|
2933296278 | ||
|
|
ecb66ea62e | ||
|
|
226c23ea54 | ||
|
|
f5287edae4 | ||
|
|
0e51506da3 | ||
|
|
110b6cb2ef | ||
|
|
09f368042f | ||
|
|
e9217245ee | ||
|
|
5b7bb2d5e0 | ||
|
|
67eb23b907 | ||
|
|
6a35ab437f | ||
|
|
68443cef53 | ||
|
|
2cf4a6a630 | ||
|
|
708f3ca9ac | ||
|
|
a72b80cf49 | ||
|
|
f1e1f86a8e | ||
|
|
6d64517635 | ||
|
|
e4de6d1752 | ||
|
|
70143264ec | ||
|
|
aaf7efefba | ||
|
|
76e69a2391 | ||
|
|
74ac483b01 | ||
|
|
7945041ca8 | ||
|
|
6c2eb8edc9 | ||
|
|
3436674697 | ||
|
|
8488b2d64a | ||
|
|
dccc532bfb | ||
|
|
0504472517 | ||
|
|
75c020c4b1 | ||
|
|
77911740ef | ||
|
|
8e23c6ec37 | ||
|
|
558a9149e0 | ||
|
|
c35cb3135e | ||
|
|
18ca369a5d | ||
|
|
677f227c3c | ||
|
|
cb502e4d64 | ||
|
|
482b1fc4d9 | ||
|
|
3a2dbf05a1 | ||
|
|
95057b9cde | ||
|
|
9de9e2e319 | ||
|
|
b97e7a717c | ||
|
|
1a0b7ca08e | ||
|
|
d61b32f627 | ||
|
|
58e578f7b6 | ||
|
|
d2c89a6f15 | ||
|
|
7e9fc45c23 | ||
|
|
a708630b4f | ||
|
|
d8b7d59e66 | ||
|
|
c9009b4554 | ||
|
|
b3bb553816 | ||
|
|
cbb1e7b388 | ||
|
|
a54010ae2e | ||
|
|
12d5688120 | ||
|
|
13166073da | ||
|
|
5251cbb92a | ||
|
|
38d5c5e7fd | ||
|
|
349d741c39 | ||
|
|
a4d614791b | ||
|
|
f643bfd10e | ||
|
|
60ca60be6f | ||
|
|
43e9b30386 | ||
|
|
671fe65b31 | ||
|
|
0f87a1f6bb | ||
|
|
2632e00c4d | ||
|
|
c6381a506f | ||
|
|
c804eb79c1 | ||
|
|
9b5e60d77a | ||
|
|
c966c76b04 | ||
|
|
c461987cf6 | ||
|
|
6aaea5fdb2 | ||
|
|
f602d3cffc | ||
|
|
4b94d45be2 | ||
|
|
2dee41a4fc | ||
|
|
dbde090045 | ||
|
|
d8a902440c | ||
|
|
a1296d40a1 | ||
|
|
44bc055c8c | ||
|
|
6df2d6ed74 | ||
|
|
4f7fddd848 | ||
|
|
3c451a8437 | ||
|
|
b2990440f2 | ||
|
|
b21e49829f | ||
|
|
6d900d2a59 | ||
|
|
c274a8cadb | ||
|
|
aa17223a61 | ||
|
|
b691810dde | ||
|
|
3ebe50c1ca | ||
|
|
28a1c56fb4 | ||
|
|
b247aba61a | ||
|
|
4c765197cf | ||
|
|
55e3ed56ec | ||
|
|
f39148a492 | ||
|
|
4c4d4a7718 | ||
|
|
c18d4712dc | ||
|
|
84a841b5b9 | ||
|
|
67925a6731 | ||
|
|
85167b3594 | ||
|
|
c78be2d8f8 | ||
|
|
2df017eb77 | ||
|
|
ada7232e51 | ||
|
|
ad798f5ecf | ||
|
|
40f269cf29 | ||
|
|
ce150eaae2 | ||
|
|
fe8298ec3b | ||
|
|
c67209dad5 | ||
|
|
a7e3826362 | ||
|
|
b7dc6f3bcf | ||
|
|
49b9491dc3 | ||
|
|
6e07fe76f0 | ||
|
|
cd52edb8e1 | ||
|
|
bd166d6318 | ||
|
|
6de89a57c4 | ||
|
|
a72a790aa2 | ||
|
|
5a3039c721 | ||
|
|
38b27effa5 | ||
|
|
38e98fdbc8 | ||
|
|
d10f2e57d3 | ||
|
|
dfc8a15c8c | ||
|
|
dce87b88fe | ||
|
|
ce6e7b9f3f | ||
|
|
ad77210892 | ||
|
|
089ea89f89 | ||
|
|
f7e9bff5fc | ||
|
|
5829cb869b | ||
|
|
8c0bbcc2a5 | ||
|
|
e7e96971dc | ||
|
|
e876c23cd8 | ||
|
|
b471e29b8d | ||
|
|
5a775fb147 | ||
|
|
4aa58e1fb5 | ||
|
|
28dfda38e1 | ||
|
|
b274b3434f | ||
|
|
b7f1e76954 | ||
|
|
be91887ecb | ||
|
|
bbf022e7cc | ||
|
|
41a242460d | ||
|
|
910cd78a08 | ||
|
|
1d4c135f22 | ||
|
|
12bf442946 | ||
|
|
999af8ca43 | ||
|
|
36f99e5a39 | ||
|
|
5f107f8cc4 | ||
|
|
70133b22d0 | ||
|
|
72e5b4225f | ||
|
|
00f21a210a | ||
|
|
7fa83081fc | ||
|
|
28530c28f9 | ||
|
|
e7c956337a | ||
|
|
9a5ad5f02e | ||
|
|
1153cc5919 | ||
|
|
c34acd279e | ||
|
|
6006b3514f | ||
|
|
e6cd9ba1a8 | ||
|
|
9e3e30f9a2 | ||
|
|
4687a1722c | ||
|
|
87af2a9001 | ||
|
|
94594f1cbf | ||
|
|
af2b905514 | ||
|
|
943ef2fad8 | ||
|
|
76dac9d657 | ||
|
|
333f24caec | ||
|
|
e5bd9b93b4 | ||
|
|
a4ff9dd2dc | ||
|
|
2d3224bf20 | ||
|
|
e6f6420d98 | ||
|
|
f0b8b3a960 | ||
|
|
fef73fcd3a | ||
|
|
d12e2d67c9 | ||
|
|
eeb98ec6ae | ||
|
|
3f2bc0a2e1 | ||
|
|
cbd023e0db | ||
|
|
307146220b | ||
|
|
d754cd3a49 | ||
|
|
3d5309b736 | ||
|
|
369b6e0192 | ||
|
|
e03e489758 | ||
|
|
321e17803e | ||
|
|
086ed4af2a | ||
|
|
67ff1d9ffb | ||
|
|
8de9b33e14 | ||
|
|
afe59c8e1d | ||
|
|
f6434fde67 | ||
|
|
e46465c718 | ||
|
|
e4156f232b | ||
|
|
bfa254bd1a | ||
|
|
4315a12330 | ||
|
|
9b58e1d1a8 | ||
|
|
f4ff33fd11 | ||
|
|
f9f50c5638 | ||
|
|
23eef02eff | ||
|
|
bef1f4761e | ||
|
|
8b9bdf1d1e | ||
|
|
1a4b81a392 | ||
|
|
c111b692cc | ||
|
|
701e43727a | ||
|
|
dedca9ecb7 | ||
|
|
d890775c90 | ||
|
|
fd3e68b355 | ||
|
|
678eafa74d | ||
|
|
c2014927f2 | ||
|
|
c5b7872dab | ||
|
|
2691a54e91 | ||
|
|
e2de476001 | ||
|
|
45c8a7e583 | ||
|
|
4d2fd8ddd3 | ||
|
|
ea0af53e2a | ||
|
|
2d342da2a3 | ||
|
|
f1b304df93 | ||
|
|
b569f2a414 | ||
|
|
411f541288 | ||
|
|
83477f0280 | ||
|
|
7e7893983f | ||
|
|
e3a67d60cc | ||
|
|
23a0428069 | ||
|
|
b74901b816 | ||
|
|
010625f35a | ||
|
|
0647439a0a | ||
|
|
87a05c7316 | ||
|
|
5c33ee311c | ||
|
|
3ad92d4d09 | ||
|
|
5e5a7fd73d | ||
|
|
3269613984 | ||
|
|
b955cbdcfb | ||
|
|
58e47e1b70 | ||
|
|
bb0524e189 | ||
|
|
7d58c8bed6 | ||
|
|
5232b03e22 | ||
|
|
e2312cd887 | ||
|
|
f552970178 | ||
|
|
d59e28ea73 | ||
|
|
61642ef429 | ||
|
|
7f6f1519b9 | ||
|
|
528de6bc4f | ||
|
|
0ccf16fab3 | ||
|
|
4e513e2b86 | ||
|
|
1272d1b8fc | ||
|
|
686396e3dc | ||
|
|
2fa7fde32f | ||
|
|
72050b72e2 | ||
|
|
2fa97151cd | ||
|
|
e67a7af07c | ||
|
|
2306702899 | ||
|
|
f652c4d1b8 | ||
|
|
ca1ed50ab3 | ||
|
|
46db037b1f | ||
|
|
70761072f5 | ||
|
|
efa68c6490 | ||
|
|
3daa976efb | ||
|
|
4d35e4b168 | ||
|
|
dff89518bd | ||
|
|
cdae385f7d | ||
|
|
b7a7dde44a |
@@ -26,7 +26,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
|
|||||||
if sys.getfilesystemencoding() != "utf-8":
|
if sys.getfilesystemencoding() != "utf-8":
|
||||||
sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.")
|
sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.")
|
||||||
|
|
||||||
__version__ = "1.49.0"
|
__version__ = "1.48.0"
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
if __version__ != bb.__version__:
|
if __version__ != bb.__version__:
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ readypipeinfd = int(sys.argv[3])
|
|||||||
logfile = sys.argv[4]
|
logfile = sys.argv[4]
|
||||||
lockname = sys.argv[5]
|
lockname = sys.argv[5]
|
||||||
sockname = sys.argv[6]
|
sockname = sys.argv[6]
|
||||||
timeout = sys.argv[7]
|
timeout = float(sys.argv[7])
|
||||||
xmlrpcinterface = (sys.argv[8], int(sys.argv[9]))
|
xmlrpcinterface = (sys.argv[8], int(sys.argv[9]))
|
||||||
if xmlrpcinterface[0] == "None":
|
if xmlrpcinterface[0] == "None":
|
||||||
xmlrpcinterface = (None, xmlrpcinterface[1])
|
xmlrpcinterface = (None, xmlrpcinterface[1])
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
# You can set these variables from the command line, and also
|
# You can set these variables from the command line, and also
|
||||||
# from the environment for the first two.
|
# from the environment for the first two.
|
||||||
SPHINXOPTS ?= -j auto
|
SPHINXOPTS ?=
|
||||||
SPHINXBUILD ?= sphinx-build
|
SPHINXBUILD ?= sphinx-build
|
||||||
SOURCEDIR = .
|
SOURCEDIR = .
|
||||||
BUILDDIR = _build
|
BUILDDIR = _build
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
# import sys
|
# import sys
|
||||||
# sys.path.insert(0, os.path.abspath('.'))
|
# sys.path.insert(0, os.path.abspath('.'))
|
||||||
|
|
||||||
import sys
|
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
current_version = "dev"
|
current_version = "dev"
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
#
|
#
|
||||||
|
|
||||||
__version__ = "1.49.0"
|
__version__ = "1.48.0"
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
if sys.version_info < (3, 5, 0):
|
if sys.version_info < (3, 5, 0):
|
||||||
@@ -49,7 +49,7 @@ class BBLoggerMixin(object):
|
|||||||
if not bb.event.worker_pid:
|
if not bb.event.worker_pid:
|
||||||
if self.name in bb.msg.loggerDefaultDomains and loglevel > (bb.msg.loggerDefaultDomains[self.name]):
|
if self.name in bb.msg.loggerDefaultDomains and loglevel > (bb.msg.loggerDefaultDomains[self.name]):
|
||||||
return
|
return
|
||||||
if loglevel > bb.msg.loggerDefaultLogLevel:
|
if loglevel < bb.msg.loggerDefaultLogLevel:
|
||||||
return
|
return
|
||||||
return self.log(loglevel, msg, *args, **kwargs)
|
return self.log(loglevel, msg, *args, **kwargs)
|
||||||
|
|
||||||
|
|||||||
@@ -449,7 +449,9 @@ class Cache(NoCache):
|
|||||||
return cachesize
|
return cachesize
|
||||||
|
|
||||||
def load_cachefile(self, progress):
|
def load_cachefile(self, progress):
|
||||||
|
cachesize = self.cachesize()
|
||||||
previous_progress = 0
|
previous_progress = 0
|
||||||
|
previous_percent = 0
|
||||||
|
|
||||||
for cache_class in self.caches_array:
|
for cache_class in self.caches_array:
|
||||||
cachefile = self.getCacheFile(cache_class.cachefile)
|
cachefile = self.getCacheFile(cache_class.cachefile)
|
||||||
@@ -814,6 +816,10 @@ class MulticonfigCache(Mapping):
|
|||||||
for k in self.__caches:
|
for k in self.__caches:
|
||||||
yield k
|
yield k
|
||||||
|
|
||||||
|
def keys(self):
|
||||||
|
return self.__caches[key]
|
||||||
|
|
||||||
|
|
||||||
def init(cooker):
|
def init(cooker):
|
||||||
"""
|
"""
|
||||||
The Objective: Cache the minimum amount of data possible yet get to the
|
The Objective: Cache the minimum amount of data possible yet get to the
|
||||||
|
|||||||
@@ -2209,18 +2209,18 @@ class CookerParser(object):
|
|||||||
except bb.BBHandledException as exc:
|
except bb.BBHandledException as exc:
|
||||||
self.error += 1
|
self.error += 1
|
||||||
logger.error('Failed to parse recipe: %s' % exc.recipe)
|
logger.error('Failed to parse recipe: %s' % exc.recipe)
|
||||||
self.shutdown(clean=False)
|
self.shutdown(clean=False, force=True)
|
||||||
return False
|
return False
|
||||||
except ParsingFailure as exc:
|
except ParsingFailure as exc:
|
||||||
self.error += 1
|
self.error += 1
|
||||||
logger.error('Unable to parse %s: %s' %
|
logger.error('Unable to parse %s: %s' %
|
||||||
(exc.recipe, bb.exceptions.to_string(exc.realexception)))
|
(exc.recipe, bb.exceptions.to_string(exc.realexception)))
|
||||||
self.shutdown(clean=False)
|
self.shutdown(clean=False, force=True)
|
||||||
return False
|
return False
|
||||||
except bb.parse.ParseError as exc:
|
except bb.parse.ParseError as exc:
|
||||||
self.error += 1
|
self.error += 1
|
||||||
logger.error(str(exc))
|
logger.error(str(exc))
|
||||||
self.shutdown(clean=False)
|
self.shutdown(clean=False, force=True)
|
||||||
return False
|
return False
|
||||||
except bb.data_smart.ExpansionError as exc:
|
except bb.data_smart.ExpansionError as exc:
|
||||||
self.error += 1
|
self.error += 1
|
||||||
@@ -2229,7 +2229,7 @@ class CookerParser(object):
|
|||||||
tb = list(itertools.dropwhile(lambda e: e.filename.startswith(bbdir), exc.traceback))
|
tb = list(itertools.dropwhile(lambda e: e.filename.startswith(bbdir), exc.traceback))
|
||||||
logger.error('ExpansionError during parsing %s', value.recipe,
|
logger.error('ExpansionError during parsing %s', value.recipe,
|
||||||
exc_info=(etype, value, tb))
|
exc_info=(etype, value, tb))
|
||||||
self.shutdown(clean=False)
|
self.shutdown(clean=False, force=True)
|
||||||
return False
|
return False
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
self.error += 1
|
self.error += 1
|
||||||
@@ -2241,7 +2241,7 @@ class CookerParser(object):
|
|||||||
# Most likely, an exception occurred during raising an exception
|
# Most likely, an exception occurred during raising an exception
|
||||||
import traceback
|
import traceback
|
||||||
logger.error('Exception during parse: %s' % traceback.format_exc())
|
logger.error('Exception during parse: %s' % traceback.format_exc())
|
||||||
self.shutdown(clean=False)
|
self.shutdown(clean=False, force=True)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
self.current += 1
|
self.current += 1
|
||||||
|
|||||||
@@ -23,8 +23,8 @@ logger = logging.getLogger("BitBake")
|
|||||||
parselog = logging.getLogger("BitBake.Parsing")
|
parselog = logging.getLogger("BitBake.Parsing")
|
||||||
|
|
||||||
class ConfigParameters(object):
|
class ConfigParameters(object):
|
||||||
def __init__(self, argv=None):
|
def __init__(self, argv=sys.argv):
|
||||||
self.options, targets = self.parseCommandLine(argv or sys.argv)
|
self.options, targets = self.parseCommandLine(argv)
|
||||||
self.environment = self.parseEnvironment()
|
self.environment = self.parseEnvironment()
|
||||||
|
|
||||||
self.options.pkgs_to_build = targets or []
|
self.options.pkgs_to_build = targets or []
|
||||||
@@ -209,7 +209,7 @@ def findConfigFile(configfile, data):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
#
|
#
|
||||||
# We search for a conf/bblayers.conf under an entry in BBPATH or in cwd working
|
# We search for a conf/bblayers.conf under an entry in BBPATH or in cwd working
|
||||||
# up to /. If that fails, we search for a conf/bitbake.conf in BBPATH.
|
# up to /. If that fails, we search for a conf/bitbake.conf in BBPATH.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ logger = logging.getLogger("BitBake.Data")
|
|||||||
|
|
||||||
__setvar_keyword__ = ["_append", "_prepend", "_remove"]
|
__setvar_keyword__ = ["_append", "_prepend", "_remove"]
|
||||||
__setvar_regexp__ = re.compile(r'(?P<base>.*?)(?P<keyword>_append|_prepend|_remove)(_(?P<add>[^A-Z]*))?$')
|
__setvar_regexp__ = re.compile(r'(?P<base>.*?)(?P<keyword>_append|_prepend|_remove)(_(?P<add>[^A-Z]*))?$')
|
||||||
__expand_var_regexp__ = re.compile(r"\${[a-zA-Z0-9\-_+./~]+?}")
|
__expand_var_regexp__ = re.compile(r"\${[a-zA-Z0-9\-_+./~:]+?}")
|
||||||
__expand_python_regexp__ = re.compile(r"\${@.+?}")
|
__expand_python_regexp__ = re.compile(r"\${@.+?}")
|
||||||
__whitespace_split__ = re.compile(r'(\s)')
|
__whitespace_split__ = re.compile(r'(\s)')
|
||||||
__override_regexp__ = re.compile(r'[a-z0-9]+')
|
__override_regexp__ = re.compile(r'[a-z0-9]+')
|
||||||
@@ -481,6 +481,7 @@ class DataSmart(MutableMapping):
|
|||||||
|
|
||||||
def setVar(self, var, value, **loginfo):
|
def setVar(self, var, value, **loginfo):
|
||||||
#print("var=" + str(var) + " val=" + str(value))
|
#print("var=" + str(var) + " val=" + str(value))
|
||||||
|
var = var.replace(":", "_")
|
||||||
self.expand_cache = {}
|
self.expand_cache = {}
|
||||||
parsing=False
|
parsing=False
|
||||||
if 'parsing' in loginfo:
|
if 'parsing' in loginfo:
|
||||||
@@ -589,6 +590,8 @@ class DataSmart(MutableMapping):
|
|||||||
"""
|
"""
|
||||||
Rename the variable key to newkey
|
Rename the variable key to newkey
|
||||||
"""
|
"""
|
||||||
|
key = key.replace(":", "_")
|
||||||
|
newkey = newkey.replace(":", "_")
|
||||||
if key == newkey:
|
if key == newkey:
|
||||||
bb.warn("Calling renameVar with equivalent keys (%s) is invalid" % key)
|
bb.warn("Calling renameVar with equivalent keys (%s) is invalid" % key)
|
||||||
return
|
return
|
||||||
@@ -637,6 +640,7 @@ class DataSmart(MutableMapping):
|
|||||||
self.setVar(var + "_prepend", value, ignore=True, parsing=True)
|
self.setVar(var + "_prepend", value, ignore=True, parsing=True)
|
||||||
|
|
||||||
def delVar(self, var, **loginfo):
|
def delVar(self, var, **loginfo):
|
||||||
|
var = var.replace(":", "_")
|
||||||
self.expand_cache = {}
|
self.expand_cache = {}
|
||||||
|
|
||||||
loginfo['detail'] = ""
|
loginfo['detail'] = ""
|
||||||
@@ -664,6 +668,7 @@ class DataSmart(MutableMapping):
|
|||||||
override = None
|
override = None
|
||||||
|
|
||||||
def setVarFlag(self, var, flag, value, **loginfo):
|
def setVarFlag(self, var, flag, value, **loginfo):
|
||||||
|
var = var.replace(":", "_")
|
||||||
self.expand_cache = {}
|
self.expand_cache = {}
|
||||||
|
|
||||||
if 'op' not in loginfo:
|
if 'op' not in loginfo:
|
||||||
@@ -687,6 +692,7 @@ class DataSmart(MutableMapping):
|
|||||||
self.dict["__exportlist"]["_content"].add(var)
|
self.dict["__exportlist"]["_content"].add(var)
|
||||||
|
|
||||||
def getVarFlag(self, var, flag, expand=True, noweakdefault=False, parsing=False, retparser=False):
|
def getVarFlag(self, var, flag, expand=True, noweakdefault=False, parsing=False, retparser=False):
|
||||||
|
var = var.replace(":", "_")
|
||||||
if flag == "_content":
|
if flag == "_content":
|
||||||
cachename = var
|
cachename = var
|
||||||
else:
|
else:
|
||||||
@@ -814,6 +820,7 @@ class DataSmart(MutableMapping):
|
|||||||
return value
|
return value
|
||||||
|
|
||||||
def delVarFlag(self, var, flag, **loginfo):
|
def delVarFlag(self, var, flag, **loginfo):
|
||||||
|
var = var.replace(":", "_")
|
||||||
self.expand_cache = {}
|
self.expand_cache = {}
|
||||||
|
|
||||||
local_var, _ = self._findVar(var)
|
local_var, _ = self._findVar(var)
|
||||||
@@ -831,6 +838,7 @@ class DataSmart(MutableMapping):
|
|||||||
del self.dict[var][flag]
|
del self.dict[var][flag]
|
||||||
|
|
||||||
def appendVarFlag(self, var, flag, value, **loginfo):
|
def appendVarFlag(self, var, flag, value, **loginfo):
|
||||||
|
var = var.replace(":", "_")
|
||||||
loginfo['op'] = 'append'
|
loginfo['op'] = 'append'
|
||||||
loginfo['flag'] = flag
|
loginfo['flag'] = flag
|
||||||
self.varhistory.record(**loginfo)
|
self.varhistory.record(**loginfo)
|
||||||
@@ -838,6 +846,7 @@ class DataSmart(MutableMapping):
|
|||||||
self.setVarFlag(var, flag, newvalue, ignore=True)
|
self.setVarFlag(var, flag, newvalue, ignore=True)
|
||||||
|
|
||||||
def prependVarFlag(self, var, flag, value, **loginfo):
|
def prependVarFlag(self, var, flag, value, **loginfo):
|
||||||
|
var = var.replace(":", "_")
|
||||||
loginfo['op'] = 'prepend'
|
loginfo['op'] = 'prepend'
|
||||||
loginfo['flag'] = flag
|
loginfo['flag'] = flag
|
||||||
self.varhistory.record(**loginfo)
|
self.varhistory.record(**loginfo)
|
||||||
@@ -845,6 +854,7 @@ class DataSmart(MutableMapping):
|
|||||||
self.setVarFlag(var, flag, newvalue, ignore=True)
|
self.setVarFlag(var, flag, newvalue, ignore=True)
|
||||||
|
|
||||||
def setVarFlags(self, var, flags, **loginfo):
|
def setVarFlags(self, var, flags, **loginfo):
|
||||||
|
var = var.replace(":", "_")
|
||||||
self.expand_cache = {}
|
self.expand_cache = {}
|
||||||
infer_caller_details(loginfo)
|
infer_caller_details(loginfo)
|
||||||
if not var in self.dict:
|
if not var in self.dict:
|
||||||
@@ -859,6 +869,7 @@ class DataSmart(MutableMapping):
|
|||||||
self.dict[var][i] = flags[i]
|
self.dict[var][i] = flags[i]
|
||||||
|
|
||||||
def getVarFlags(self, var, expand = False, internalflags=False):
|
def getVarFlags(self, var, expand = False, internalflags=False):
|
||||||
|
var = var.replace(":", "_")
|
||||||
local_var, _ = self._findVar(var)
|
local_var, _ = self._findVar(var)
|
||||||
flags = {}
|
flags = {}
|
||||||
|
|
||||||
@@ -875,6 +886,7 @@ class DataSmart(MutableMapping):
|
|||||||
|
|
||||||
|
|
||||||
def delVarFlags(self, var, **loginfo):
|
def delVarFlags(self, var, **loginfo):
|
||||||
|
var = var.replace(":", "_")
|
||||||
self.expand_cache = {}
|
self.expand_cache = {}
|
||||||
if not var in self.dict:
|
if not var in self.dict:
|
||||||
self._makeShadowCopy(var)
|
self._makeShadowCopy(var)
|
||||||
|
|||||||
@@ -290,7 +290,7 @@ class URI(object):
|
|||||||
|
|
||||||
def _param_str_split(self, string, elmdelim, kvdelim="="):
|
def _param_str_split(self, string, elmdelim, kvdelim="="):
|
||||||
ret = collections.OrderedDict()
|
ret = collections.OrderedDict()
|
||||||
for k, v in [x.split(kvdelim, 1) for x in string.split(elmdelim) if x]:
|
for k, v in [x.split(kvdelim, 1) for x in string.split(elmdelim)]:
|
||||||
ret[k] = v
|
ret[k] = v
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
@@ -1456,10 +1456,6 @@ class FetchMethod(object):
|
|||||||
cmd = '7z x -so %s | tar x --no-same-owner -f -' % file
|
cmd = '7z x -so %s | tar x --no-same-owner -f -' % file
|
||||||
elif file.endswith('.7z'):
|
elif file.endswith('.7z'):
|
||||||
cmd = '7za x -y %s 1>/dev/null' % file
|
cmd = '7za x -y %s 1>/dev/null' % file
|
||||||
elif file.endswith('.tzst') or file.endswith('.tar.zst'):
|
|
||||||
cmd = 'zstd --decompress --stdout %s | tar x --no-same-owner -f -' % file
|
|
||||||
elif file.endswith('.zst'):
|
|
||||||
cmd = 'zstd --decompress --stdout %s > %s' % (file, efile)
|
|
||||||
elif file.endswith('.zip') or file.endswith('.jar'):
|
elif file.endswith('.zip') or file.endswith('.jar'):
|
||||||
try:
|
try:
|
||||||
dos = bb.utils.to_boolean(urldata.parm.get('dos'), False)
|
dos = bb.utils.to_boolean(urldata.parm.get('dos'), False)
|
||||||
|
|||||||
@@ -141,6 +141,10 @@ class Git(FetchMethod):
|
|||||||
ud.proto = 'file'
|
ud.proto = 'file'
|
||||||
else:
|
else:
|
||||||
ud.proto = "git"
|
ud.proto = "git"
|
||||||
|
if ud.host == "github.com" and ud.proto == "git":
|
||||||
|
# github stopped supporting git protocol
|
||||||
|
# https://github.blog/2021-09-01-improving-git-protocol-security-github/#no-more-unauthenticated-git
|
||||||
|
ud.proto = "https"
|
||||||
|
|
||||||
if not ud.proto in ('git', 'file', 'ssh', 'http', 'https', 'rsync'):
|
if not ud.proto in ('git', 'file', 'ssh', 'http', 'https', 'rsync'):
|
||||||
raise bb.fetch2.ParameterError("Invalid protocol type", ud.url)
|
raise bb.fetch2.ParameterError("Invalid protocol type", ud.url)
|
||||||
@@ -220,12 +224,7 @@ class Git(FetchMethod):
|
|||||||
ud.shallow = False
|
ud.shallow = False
|
||||||
|
|
||||||
if ud.usehead:
|
if ud.usehead:
|
||||||
# When usehead is set let's associate 'HEAD' with the unresolved
|
ud.unresolvedrev['default'] = 'HEAD'
|
||||||
# rev of this repository. This will get resolved into a revision
|
|
||||||
# later. If an actual revision happens to have also been provided
|
|
||||||
# then this setting will be overridden.
|
|
||||||
for name in ud.names:
|
|
||||||
ud.unresolvedrev[name] = 'HEAD'
|
|
||||||
|
|
||||||
ud.basecmd = d.getVar("FETCHCMD_git") or "git -c core.fsyncobjectfiles=0"
|
ud.basecmd = d.getVar("FETCHCMD_git") or "git -c core.fsyncobjectfiles=0"
|
||||||
|
|
||||||
@@ -394,7 +393,7 @@ class Git(FetchMethod):
|
|||||||
tmpdir = tempfile.mkdtemp(dir=d.getVar('DL_DIR'))
|
tmpdir = tempfile.mkdtemp(dir=d.getVar('DL_DIR'))
|
||||||
try:
|
try:
|
||||||
# Do the checkout. This implicitly involves a Git LFS fetch.
|
# Do the checkout. This implicitly involves a Git LFS fetch.
|
||||||
self.unpack(ud, tmpdir, d)
|
Git.unpack(self, ud, tmpdir, d)
|
||||||
|
|
||||||
# Scoop up a copy of any stuff that Git LFS downloaded. Merge them into
|
# Scoop up a copy of any stuff that Git LFS downloaded. Merge them into
|
||||||
# the bare clonedir.
|
# the bare clonedir.
|
||||||
@@ -638,11 +637,6 @@ class Git(FetchMethod):
|
|||||||
"""
|
"""
|
||||||
Return the repository URL
|
Return the repository URL
|
||||||
"""
|
"""
|
||||||
# Note that we do not support passwords directly in the git urls. There are several
|
|
||||||
# reasons. SRC_URI can be written out to things like buildhistory and people don't
|
|
||||||
# want to leak passwords like that. Its also all too easy to share metadata without
|
|
||||||
# removing the password. ssh keys, ~/.netrc and ~/.ssh/config files can be used as
|
|
||||||
# alternatives so we will not take patches adding password support here.
|
|
||||||
if ud.user:
|
if ud.user:
|
||||||
username = ud.user + '@'
|
username = ud.user + '@'
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -119,7 +119,6 @@ class Perforce(FetchMethod):
|
|||||||
cleanedpath = ud.path.replace('/...', '').replace('/', '.')
|
cleanedpath = ud.path.replace('/...', '').replace('/', '.')
|
||||||
cleanedhost = ud.host.replace(':', '.')
|
cleanedhost = ud.host.replace(':', '.')
|
||||||
|
|
||||||
cleanedmodule = ""
|
|
||||||
# Merge the path and module into the final depot location
|
# Merge the path and module into the final depot location
|
||||||
if ud.module:
|
if ud.module:
|
||||||
if ud.module.find('/') == 0:
|
if ud.module.find('/') == 0:
|
||||||
@@ -134,7 +133,7 @@ class Perforce(FetchMethod):
|
|||||||
|
|
||||||
ud.setup_revisions(d)
|
ud.setup_revisions(d)
|
||||||
|
|
||||||
ud.localfile = d.expand('%s_%s_%s_%s.tar.gz' % (cleanedhost, cleanedpath, cleandedmodule, ud.revision))
|
ud.localfile = d.expand('%s_%s_%s.tar.gz' % (cleanedhost, cleanedpath, ud.revision))
|
||||||
|
|
||||||
def _buildp4command(self, ud, d, command, depot_filename=None):
|
def _buildp4command(self, ud, d, command, depot_filename=None):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -52,12 +52,6 @@ class WgetProgressHandler(bb.progress.LineFilterProgressHandler):
|
|||||||
|
|
||||||
|
|
||||||
class Wget(FetchMethod):
|
class Wget(FetchMethod):
|
||||||
|
|
||||||
# CDNs like CloudFlare may do a 'browser integrity test' which can fail
|
|
||||||
# with the standard wget/urllib User-Agent, so pretend to be a modern
|
|
||||||
# browser.
|
|
||||||
user_agent = "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0"
|
|
||||||
|
|
||||||
"""Class to fetch urls via 'wget'"""
|
"""Class to fetch urls via 'wget'"""
|
||||||
def supports(self, ud, d):
|
def supports(self, ud, d):
|
||||||
"""
|
"""
|
||||||
@@ -303,7 +297,7 @@ class Wget(FetchMethod):
|
|||||||
# Some servers (FusionForge, as used on Alioth) require that the
|
# Some servers (FusionForge, as used on Alioth) require that the
|
||||||
# optional Accept header is set.
|
# optional Accept header is set.
|
||||||
r.add_header("Accept", "*/*")
|
r.add_header("Accept", "*/*")
|
||||||
r.add_header("User-Agent", self.user_agent)
|
r.add_header("User-Agent", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101027 Ubuntu/9.10 (karmic) Firefox/3.6.12")
|
||||||
def add_basic_auth(login_str, request):
|
def add_basic_auth(login_str, request):
|
||||||
'''Adds Basic auth to http request, pass in login:password as string'''
|
'''Adds Basic auth to http request, pass in login:password as string'''
|
||||||
import base64
|
import base64
|
||||||
@@ -322,7 +316,7 @@ class Wget(FetchMethod):
|
|||||||
except (TypeError, ImportError, IOError, netrc.NetrcParseError):
|
except (TypeError, ImportError, IOError, netrc.NetrcParseError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
with opener.open(r) as response:
|
with opener.open(r, timeout=30) as response:
|
||||||
pass
|
pass
|
||||||
except urllib.error.URLError as e:
|
except urllib.error.URLError as e:
|
||||||
if try_again:
|
if try_again:
|
||||||
@@ -407,8 +401,9 @@ class Wget(FetchMethod):
|
|||||||
"""
|
"""
|
||||||
f = tempfile.NamedTemporaryFile()
|
f = tempfile.NamedTemporaryFile()
|
||||||
with tempfile.TemporaryDirectory(prefix="wget-index-") as workdir, tempfile.NamedTemporaryFile(dir=workdir, prefix="wget-listing-") as f:
|
with tempfile.TemporaryDirectory(prefix="wget-index-") as workdir, tempfile.NamedTemporaryFile(dir=workdir, prefix="wget-listing-") as f:
|
||||||
|
agent = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101027 Ubuntu/9.10 (karmic) Firefox/3.6.12"
|
||||||
fetchcmd = self.basecmd
|
fetchcmd = self.basecmd
|
||||||
fetchcmd += " -O " + f.name + " --user-agent='" + self.user_agent + "' '" + uri + "'"
|
fetchcmd += " -O " + f.name + " --user-agent='" + agent + "' '" + uri + "'"
|
||||||
try:
|
try:
|
||||||
self._runwget(ud, d, fetchcmd, True, workdir=workdir)
|
self._runwget(ud, d, fetchcmd, True, workdir=workdir)
|
||||||
fetchresult = f.read()
|
fetchresult = f.read()
|
||||||
|
|||||||
@@ -119,181 +119,178 @@ warnings.filterwarnings("ignore", category=ImportWarning)
|
|||||||
warnings.filterwarnings("ignore", category=DeprecationWarning, module="<string>$")
|
warnings.filterwarnings("ignore", category=DeprecationWarning, module="<string>$")
|
||||||
warnings.filterwarnings("ignore", message="With-statements now directly support multiple context managers")
|
warnings.filterwarnings("ignore", message="With-statements now directly support multiple context managers")
|
||||||
|
|
||||||
|
class BitBakeConfigParameters(cookerdata.ConfigParameters):
|
||||||
|
|
||||||
def create_bitbake_parser():
|
def parseCommandLine(self, argv=sys.argv):
|
||||||
parser = optparse.OptionParser(
|
parser = optparse.OptionParser(
|
||||||
formatter=BitbakeHelpFormatter(),
|
formatter=BitbakeHelpFormatter(),
|
||||||
version="BitBake Build Tool Core version %s" % bb.__version__,
|
version="BitBake Build Tool Core version %s" % bb.__version__,
|
||||||
usage="""%prog [options] [recipename/target recipe:do_task ...]
|
usage="""%prog [options] [recipename/target recipe:do_task ...]
|
||||||
|
|
||||||
Executes the specified task (default is 'build') for a given set of target recipes (.bb files).
|
Executes the specified task (default is 'build') for a given set of target recipes (.bb files).
|
||||||
It is assumed there is a conf/bblayers.conf available in cwd or in BBPATH which
|
It is assumed there is a conf/bblayers.conf available in cwd or in BBPATH which
|
||||||
will provide the layer, BBFILES and other configuration information.""")
|
will provide the layer, BBFILES and other configuration information.""")
|
||||||
|
|
||||||
parser.add_option("-b", "--buildfile", action="store", dest="buildfile", default=None,
|
parser.add_option("-b", "--buildfile", action="store", dest="buildfile", default=None,
|
||||||
help="Execute tasks from a specific .bb recipe directly. WARNING: Does "
|
help="Execute tasks from a specific .bb recipe directly. WARNING: Does "
|
||||||
"not handle any dependencies from other recipes.")
|
"not handle any dependencies from other recipes.")
|
||||||
|
|
||||||
parser.add_option("-k", "--continue", action="store_false", dest="abort", default=True,
|
parser.add_option("-k", "--continue", action="store_false", dest="abort", default=True,
|
||||||
help="Continue as much as possible after an error. While the target that "
|
help="Continue as much as possible after an error. While the target that "
|
||||||
"failed and anything depending on it cannot be built, as much as "
|
"failed and anything depending on it cannot be built, as much as "
|
||||||
"possible will be built before stopping.")
|
"possible will be built before stopping.")
|
||||||
|
|
||||||
parser.add_option("-f", "--force", action="store_true", dest="force", default=False,
|
parser.add_option("-f", "--force", action="store_true", dest="force", default=False,
|
||||||
help="Force the specified targets/task to run (invalidating any "
|
help="Force the specified targets/task to run (invalidating any "
|
||||||
"existing stamp file).")
|
"existing stamp file).")
|
||||||
|
|
||||||
parser.add_option("-c", "--cmd", action="store", dest="cmd",
|
parser.add_option("-c", "--cmd", action="store", dest="cmd",
|
||||||
help="Specify the task to execute. The exact options available "
|
help="Specify the task to execute. The exact options available "
|
||||||
"depend on the metadata. Some examples might be 'compile'"
|
"depend on the metadata. Some examples might be 'compile'"
|
||||||
" or 'populate_sysroot' or 'listtasks' may give a list of "
|
" or 'populate_sysroot' or 'listtasks' may give a list of "
|
||||||
"the tasks available.")
|
"the tasks available.")
|
||||||
|
|
||||||
parser.add_option("-C", "--clear-stamp", action="store", dest="invalidate_stamp",
|
parser.add_option("-C", "--clear-stamp", action="store", dest="invalidate_stamp",
|
||||||
help="Invalidate the stamp for the specified task such as 'compile' "
|
help="Invalidate the stamp for the specified task such as 'compile' "
|
||||||
"and then run the default task for the specified target(s).")
|
"and then run the default task for the specified target(s).")
|
||||||
|
|
||||||
parser.add_option("-r", "--read", action="append", dest="prefile", default=[],
|
parser.add_option("-r", "--read", action="append", dest="prefile", default=[],
|
||||||
help="Read the specified file before bitbake.conf.")
|
help="Read the specified file before bitbake.conf.")
|
||||||
|
|
||||||
parser.add_option("-R", "--postread", action="append", dest="postfile", default=[],
|
parser.add_option("-R", "--postread", action="append", dest="postfile", default=[],
|
||||||
help="Read the specified file after bitbake.conf.")
|
help="Read the specified file after bitbake.conf.")
|
||||||
|
|
||||||
parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False,
|
parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False,
|
||||||
help="Enable tracing of shell tasks (with 'set -x'). "
|
help="Enable tracing of shell tasks (with 'set -x'). "
|
||||||
"Also print bb.note(...) messages to stdout (in "
|
"Also print bb.note(...) messages to stdout (in "
|
||||||
"addition to writing them to ${T}/log.do_<task>).")
|
"addition to writing them to ${T}/log.do_<task>).")
|
||||||
|
|
||||||
parser.add_option("-D", "--debug", action="count", dest="debug", default=0,
|
parser.add_option("-D", "--debug", action="count", dest="debug", default=0,
|
||||||
help="Increase the debug level. You can specify this "
|
help="Increase the debug level. You can specify this "
|
||||||
"more than once. -D sets the debug level to 1, "
|
"more than once. -D sets the debug level to 1, "
|
||||||
"where only bb.debug(1, ...) messages are printed "
|
"where only bb.debug(1, ...) messages are printed "
|
||||||
"to stdout; -DD sets the debug level to 2, where "
|
"to stdout; -DD sets the debug level to 2, where "
|
||||||
"both bb.debug(1, ...) and bb.debug(2, ...) "
|
"both bb.debug(1, ...) and bb.debug(2, ...) "
|
||||||
"messages are printed; etc. Without -D, no debug "
|
"messages are printed; etc. Without -D, no debug "
|
||||||
"messages are printed. Note that -D only affects "
|
"messages are printed. Note that -D only affects "
|
||||||
"output to stdout. All debug messages are written "
|
"output to stdout. All debug messages are written "
|
||||||
"to ${T}/log.do_taskname, regardless of the debug "
|
"to ${T}/log.do_taskname, regardless of the debug "
|
||||||
"level.")
|
"level.")
|
||||||
|
|
||||||
parser.add_option("-q", "--quiet", action="count", dest="quiet", default=0,
|
parser.add_option("-q", "--quiet", action="count", dest="quiet", default=0,
|
||||||
help="Output less log message data to the terminal. You can specify this more than once.")
|
help="Output less log message data to the terminal. You can specify this more than once.")
|
||||||
|
|
||||||
parser.add_option("-n", "--dry-run", action="store_true", dest="dry_run", default=False,
|
parser.add_option("-n", "--dry-run", action="store_true", dest="dry_run", default=False,
|
||||||
help="Don't execute, just go through the motions.")
|
help="Don't execute, just go through the motions.")
|
||||||
|
|
||||||
parser.add_option("-S", "--dump-signatures", action="append", dest="dump_signatures",
|
parser.add_option("-S", "--dump-signatures", action="append", dest="dump_signatures",
|
||||||
default=[], metavar="SIGNATURE_HANDLER",
|
default=[], metavar="SIGNATURE_HANDLER",
|
||||||
help="Dump out the signature construction information, with no task "
|
help="Dump out the signature construction information, with no task "
|
||||||
"execution. The SIGNATURE_HANDLER parameter is passed to the "
|
"execution. The SIGNATURE_HANDLER parameter is passed to the "
|
||||||
"handler. Two common values are none and printdiff but the handler "
|
"handler. Two common values are none and printdiff but the handler "
|
||||||
"may define more/less. none means only dump the signature, printdiff"
|
"may define more/less. none means only dump the signature, printdiff"
|
||||||
" means compare the dumped signature with the cached one.")
|
" means compare the dumped signature with the cached one.")
|
||||||
|
|
||||||
parser.add_option("-p", "--parse-only", action="store_true",
|
parser.add_option("-p", "--parse-only", action="store_true",
|
||||||
dest="parse_only", default=False,
|
dest="parse_only", default=False,
|
||||||
help="Quit after parsing the BB recipes.")
|
help="Quit after parsing the BB recipes.")
|
||||||
|
|
||||||
parser.add_option("-s", "--show-versions", action="store_true",
|
parser.add_option("-s", "--show-versions", action="store_true",
|
||||||
dest="show_versions", default=False,
|
dest="show_versions", default=False,
|
||||||
help="Show current and preferred versions of all recipes.")
|
help="Show current and preferred versions of all recipes.")
|
||||||
|
|
||||||
parser.add_option("-e", "--environment", action="store_true",
|
parser.add_option("-e", "--environment", action="store_true",
|
||||||
dest="show_environment", default=False,
|
dest="show_environment", default=False,
|
||||||
help="Show the global or per-recipe environment complete with information"
|
help="Show the global or per-recipe environment complete with information"
|
||||||
" about where variables were set/changed.")
|
" about where variables were set/changed.")
|
||||||
|
|
||||||
parser.add_option("-g", "--graphviz", action="store_true", dest="dot_graph", default=False,
|
parser.add_option("-g", "--graphviz", action="store_true", dest="dot_graph", default=False,
|
||||||
help="Save dependency tree information for the specified "
|
help="Save dependency tree information for the specified "
|
||||||
"targets in the dot syntax.")
|
"targets in the dot syntax.")
|
||||||
|
|
||||||
parser.add_option("-I", "--ignore-deps", action="append",
|
parser.add_option("-I", "--ignore-deps", action="append",
|
||||||
dest="extra_assume_provided", default=[],
|
dest="extra_assume_provided", default=[],
|
||||||
help="Assume these dependencies don't exist and are already provided "
|
help="Assume these dependencies don't exist and are already provided "
|
||||||
"(equivalent to ASSUME_PROVIDED). Useful to make dependency "
|
"(equivalent to ASSUME_PROVIDED). Useful to make dependency "
|
||||||
"graphs more appealing")
|
"graphs more appealing")
|
||||||
|
|
||||||
parser.add_option("-l", "--log-domains", action="append", dest="debug_domains", default=[],
|
parser.add_option("-l", "--log-domains", action="append", dest="debug_domains", default=[],
|
||||||
help="Show debug logging for the specified logging domains")
|
help="Show debug logging for the specified logging domains")
|
||||||
|
|
||||||
parser.add_option("-P", "--profile", action="store_true", dest="profile", default=False,
|
parser.add_option("-P", "--profile", action="store_true", dest="profile", default=False,
|
||||||
help="Profile the command and save reports.")
|
help="Profile the command and save reports.")
|
||||||
|
|
||||||
# @CHOICES@ is substituted out by BitbakeHelpFormatter above
|
# @CHOICES@ is substituted out by BitbakeHelpFormatter above
|
||||||
parser.add_option("-u", "--ui", action="store", dest="ui",
|
parser.add_option("-u", "--ui", action="store", dest="ui",
|
||||||
default=os.environ.get('BITBAKE_UI', 'knotty'),
|
default=os.environ.get('BITBAKE_UI', 'knotty'),
|
||||||
help="The user interface to use (@CHOICES@ - default %default).")
|
help="The user interface to use (@CHOICES@ - default %default).")
|
||||||
|
|
||||||
parser.add_option("", "--token", action="store", dest="xmlrpctoken",
|
parser.add_option("", "--token", action="store", dest="xmlrpctoken",
|
||||||
default=os.environ.get("BBTOKEN"),
|
default=os.environ.get("BBTOKEN"),
|
||||||
help="Specify the connection token to be used when connecting "
|
help="Specify the connection token to be used when connecting "
|
||||||
"to a remote server.")
|
"to a remote server.")
|
||||||
|
|
||||||
parser.add_option("", "--revisions-changed", action="store_true",
|
parser.add_option("", "--revisions-changed", action="store_true",
|
||||||
dest="revisions_changed", default=False,
|
dest="revisions_changed", default=False,
|
||||||
help="Set the exit code depending on whether upstream floating "
|
help="Set the exit code depending on whether upstream floating "
|
||||||
"revisions have changed or not.")
|
"revisions have changed or not.")
|
||||||
|
|
||||||
parser.add_option("", "--server-only", action="store_true",
|
parser.add_option("", "--server-only", action="store_true",
|
||||||
dest="server_only", default=False,
|
dest="server_only", default=False,
|
||||||
help="Run bitbake without a UI, only starting a server "
|
help="Run bitbake without a UI, only starting a server "
|
||||||
"(cooker) process.")
|
"(cooker) process.")
|
||||||
|
|
||||||
parser.add_option("-B", "--bind", action="store", dest="bind", default=False,
|
parser.add_option("-B", "--bind", action="store", dest="bind", default=False,
|
||||||
help="The name/address for the bitbake xmlrpc server to bind to.")
|
help="The name/address for the bitbake xmlrpc server to bind to.")
|
||||||
|
|
||||||
parser.add_option("-T", "--idle-timeout", type=float, dest="server_timeout",
|
parser.add_option("-T", "--idle-timeout", type=float, dest="server_timeout",
|
||||||
default=os.getenv("BB_SERVER_TIMEOUT"),
|
default=os.getenv("BB_SERVER_TIMEOUT"),
|
||||||
help="Set timeout to unload bitbake server due to inactivity, "
|
help="Set timeout to unload bitbake server due to inactivity, "
|
||||||
"set to -1 means no unload, "
|
"set to -1 means no unload, "
|
||||||
"default: Environment variable BB_SERVER_TIMEOUT.")
|
"default: Environment variable BB_SERVER_TIMEOUT.")
|
||||||
|
|
||||||
parser.add_option("", "--no-setscene", action="store_true",
|
parser.add_option("", "--no-setscene", action="store_true",
|
||||||
dest="nosetscene", default=False,
|
dest="nosetscene", default=False,
|
||||||
help="Do not run any setscene tasks. sstate will be ignored and "
|
help="Do not run any setscene tasks. sstate will be ignored and "
|
||||||
"everything needed, built.")
|
"everything needed, built.")
|
||||||
|
|
||||||
parser.add_option("", "--skip-setscene", action="store_true",
|
parser.add_option("", "--skip-setscene", action="store_true",
|
||||||
dest="skipsetscene", default=False,
|
dest="skipsetscene", default=False,
|
||||||
help="Skip setscene tasks if they would be executed. Tasks previously "
|
help="Skip setscene tasks if they would be executed. Tasks previously "
|
||||||
"restored from sstate will be kept, unlike --no-setscene")
|
"restored from sstate will be kept, unlike --no-setscene")
|
||||||
|
|
||||||
parser.add_option("", "--setscene-only", action="store_true",
|
parser.add_option("", "--setscene-only", action="store_true",
|
||||||
dest="setsceneonly", default=False,
|
dest="setsceneonly", default=False,
|
||||||
help="Only run setscene tasks, don't run any real tasks.")
|
help="Only run setscene tasks, don't run any real tasks.")
|
||||||
|
|
||||||
parser.add_option("", "--remote-server", action="store", dest="remote_server",
|
parser.add_option("", "--remote-server", action="store", dest="remote_server",
|
||||||
default=os.environ.get("BBSERVER"),
|
default=os.environ.get("BBSERVER"),
|
||||||
help="Connect to the specified server.")
|
help="Connect to the specified server.")
|
||||||
|
|
||||||
parser.add_option("-m", "--kill-server", action="store_true",
|
parser.add_option("-m", "--kill-server", action="store_true",
|
||||||
dest="kill_server", default=False,
|
dest="kill_server", default=False,
|
||||||
help="Terminate any running bitbake server.")
|
help="Terminate any running bitbake server.")
|
||||||
|
|
||||||
parser.add_option("", "--observe-only", action="store_true",
|
parser.add_option("", "--observe-only", action="store_true",
|
||||||
dest="observe_only", default=False,
|
dest="observe_only", default=False,
|
||||||
help="Connect to a server as an observing-only client.")
|
help="Connect to a server as an observing-only client.")
|
||||||
|
|
||||||
parser.add_option("", "--status-only", action="store_true",
|
parser.add_option("", "--status-only", action="store_true",
|
||||||
dest="status_only", default=False,
|
dest="status_only", default=False,
|
||||||
help="Check the status of the remote bitbake server.")
|
help="Check the status of the remote bitbake server.")
|
||||||
|
|
||||||
parser.add_option("-w", "--write-log", action="store", dest="writeeventlog",
|
parser.add_option("-w", "--write-log", action="store", dest="writeeventlog",
|
||||||
default=os.environ.get("BBEVENTLOG"),
|
default=os.environ.get("BBEVENTLOG"),
|
||||||
help="Writes the event log of the build to a bitbake event json file. "
|
help="Writes the event log of the build to a bitbake event json file. "
|
||||||
"Use '' (empty string) to assign the name automatically.")
|
"Use '' (empty string) to assign the name automatically.")
|
||||||
|
|
||||||
parser.add_option("", "--runall", action="append", dest="runall",
|
parser.add_option("", "--runall", action="append", dest="runall",
|
||||||
help="Run the specified task for any recipe in the taskgraph of the specified target (even if it wouldn't otherwise have run).")
|
help="Run the specified task for any recipe in the taskgraph of the specified target (even if it wouldn't otherwise have run).")
|
||||||
|
|
||||||
parser.add_option("", "--runonly", action="append", dest="runonly",
|
parser.add_option("", "--runonly", action="append", dest="runonly",
|
||||||
help="Run only the specified task within the taskgraph of the specified targets (and any task dependencies those tasks may have).")
|
help="Run only the specified task within the taskgraph of the specified targets (and any task dependencies those tasks may have).")
|
||||||
return parser
|
|
||||||
|
|
||||||
|
|
||||||
class BitBakeConfigParameters(cookerdata.ConfigParameters):
|
|
||||||
def parseCommandLine(self, argv=sys.argv):
|
|
||||||
parser = create_bitbake_parser()
|
|
||||||
options, targets = parser.parse_args(argv)
|
options, targets = parser.parse_args(argv)
|
||||||
|
|
||||||
if options.quiet and options.verbose:
|
if options.quiet and options.verbose:
|
||||||
@@ -469,7 +466,7 @@ def setup_bitbake(configParams, extrafeatures=None):
|
|||||||
logger.info("Retrying server connection (#%d)..." % tryno)
|
logger.info("Retrying server connection (#%d)..." % tryno)
|
||||||
else:
|
else:
|
||||||
logger.info("Retrying server connection (#%d)... (%s)" % (tryno, traceback.format_exc()))
|
logger.info("Retrying server connection (#%d)... (%s)" % (tryno, traceback.format_exc()))
|
||||||
|
|
||||||
if not retries:
|
if not retries:
|
||||||
bb.fatal("Unable to connect to bitbake server, or start one (server startup failures would be in bitbake-cookerdaemon.log).")
|
bb.fatal("Unable to connect to bitbake server, or start one (server startup failures would be in bitbake-cookerdaemon.log).")
|
||||||
bb.event.print_ui_queue()
|
bb.event.print_ui_queue()
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ def getMountedDev(path):
|
|||||||
pass
|
pass
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def getDiskData(BBDirs):
|
def getDiskData(BBDirs, configuration):
|
||||||
|
|
||||||
"""Prepare disk data for disk space monitor"""
|
"""Prepare disk data for disk space monitor"""
|
||||||
|
|
||||||
@@ -168,7 +168,7 @@ class diskMonitor:
|
|||||||
|
|
||||||
BBDirs = configuration.getVar("BB_DISKMON_DIRS") or None
|
BBDirs = configuration.getVar("BB_DISKMON_DIRS") or None
|
||||||
if BBDirs:
|
if BBDirs:
|
||||||
self.devDict = getDiskData(BBDirs)
|
self.devDict = getDiskData(BBDirs, configuration)
|
||||||
if self.devDict:
|
if self.devDict:
|
||||||
self.spaceInterval, self.inodeInterval = getInterval(configuration)
|
self.spaceInterval, self.inodeInterval = getInterval(configuration)
|
||||||
if self.spaceInterval and self.inodeInterval:
|
if self.spaceInterval and self.inodeInterval:
|
||||||
|
|||||||
@@ -278,7 +278,7 @@ def setLoggingConfig(defaultconfig, userconfigfile=None):
|
|||||||
with open(os.path.normpath(userconfigfile), 'r') as f:
|
with open(os.path.normpath(userconfigfile), 'r') as f:
|
||||||
if userconfigfile.endswith('.yml') or userconfigfile.endswith('.yaml'):
|
if userconfigfile.endswith('.yml') or userconfigfile.endswith('.yaml'):
|
||||||
import yaml
|
import yaml
|
||||||
userconfig = yaml.safe_load(f)
|
userconfig = yaml.load(f)
|
||||||
elif userconfigfile.endswith('.json') or userconfigfile.endswith('.cfg'):
|
elif userconfigfile.endswith('.json') or userconfigfile.endswith('.cfg'):
|
||||||
import json
|
import json
|
||||||
userconfig = json.load(f)
|
userconfig = json.load(f)
|
||||||
|
|||||||
@@ -97,6 +97,7 @@ class DataNode(AstNode):
|
|||||||
def eval(self, data):
|
def eval(self, data):
|
||||||
groupd = self.groupd
|
groupd = self.groupd
|
||||||
key = groupd["var"]
|
key = groupd["var"]
|
||||||
|
key = key.replace(":", "_")
|
||||||
loginfo = {
|
loginfo = {
|
||||||
'variable': key,
|
'variable': key,
|
||||||
'file': self.filename,
|
'file': self.filename,
|
||||||
@@ -207,6 +208,7 @@ class ExportFuncsNode(AstNode):
|
|||||||
def eval(self, data):
|
def eval(self, data):
|
||||||
|
|
||||||
for func in self.n:
|
for func in self.n:
|
||||||
|
func = func.replace(":", "_")
|
||||||
calledfunc = self.classname + "_" + func
|
calledfunc = self.classname + "_" + func
|
||||||
|
|
||||||
if data.getVar(func, False) and not data.getVarFlag(func, 'export_func', False):
|
if data.getVar(func, False) and not data.getVarFlag(func, 'export_func', False):
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
import re, bb, os
|
import re, bb, os
|
||||||
import bb.build, bb.utils, bb.data_smart
|
import bb.build, bb.utils
|
||||||
|
|
||||||
from . import ConfHandler
|
from . import ConfHandler
|
||||||
from .. import resolve_file, ast, logger, ParseError
|
from .. import resolve_file, ast, logger, ParseError
|
||||||
@@ -22,7 +22,7 @@ from .ConfHandler import include, init
|
|||||||
# For compatibility
|
# For compatibility
|
||||||
bb.deprecate_import(__name__, "bb.parse", ["vars_from_file"])
|
bb.deprecate_import(__name__, "bb.parse", ["vars_from_file"])
|
||||||
|
|
||||||
__func_start_regexp__ = re.compile(r"(((?P<py>python)|(?P<fr>fakeroot))\s*)*(?P<func>[\w\.\-\+\{\}\$]+)?\s*\(\s*\)\s*{$" )
|
__func_start_regexp__ = re.compile(r"(((?P<py>python(?=(\s|\()))|(?P<fr>fakeroot(?=\s)))\s*)*(?P<func>[\w\.\-\+\{\}\$:]+)?\s*\(\s*\)\s*{$" )
|
||||||
__inherit_regexp__ = re.compile(r"inherit\s+(.+)" )
|
__inherit_regexp__ = re.compile(r"inherit\s+(.+)" )
|
||||||
__export_func_regexp__ = re.compile(r"EXPORT_FUNCTIONS\s+(.+)" )
|
__export_func_regexp__ = re.compile(r"EXPORT_FUNCTIONS\s+(.+)" )
|
||||||
__addtask_regexp__ = re.compile(r"addtask\s+(?P<func>\w+)\s*((before\s*(?P<before>((.*(?=after))|(.*))))|(after\s*(?P<after>((.*(?=before))|(.*)))))*")
|
__addtask_regexp__ = re.compile(r"addtask\s+(?P<func>\w+)\s*((before\s*(?P<before>((.*(?=after))|(.*))))|(after\s*(?P<after>((.*(?=before))|(.*)))))*")
|
||||||
@@ -233,10 +233,6 @@ def feeder(lineno, s, fn, root, statements, eof=False):
|
|||||||
if taskexpression.count(word) > 1:
|
if taskexpression.count(word) > 1:
|
||||||
logger.warning("addtask contained multiple '%s' keywords, only one is supported" % word)
|
logger.warning("addtask contained multiple '%s' keywords, only one is supported" % word)
|
||||||
|
|
||||||
# Check and warn for having task with exprssion as part of task name
|
|
||||||
for te in taskexpression:
|
|
||||||
if any( ( "%s_" % keyword ) in te for keyword in bb.data_smart.__setvar_keyword__ ):
|
|
||||||
raise ParseError("Task name '%s' contains a keyword which is not recommended/supported.\nPlease rename the task not to include the keyword.\n%s" % (te, ("\n".join(map(str, bb.data_smart.__setvar_keyword__)))), fn)
|
|
||||||
ast.handleAddTask(statements, fn, lineno, m)
|
ast.handleAddTask(statements, fn, lineno, m)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ from bb.parse import ParseError, resolve_file, ast, logger, handle
|
|||||||
__config_regexp__ = re.compile( r"""
|
__config_regexp__ = re.compile( r"""
|
||||||
^
|
^
|
||||||
(?P<exp>export\s+)?
|
(?P<exp>export\s+)?
|
||||||
(?P<var>[a-zA-Z0-9\-_+.${}/~]+?)
|
(?P<var>[a-zA-Z0-9\-_+.${}/~:]+?)
|
||||||
(\[(?P<flag>[a-zA-Z0-9\-_+.]+)\])?
|
(\[(?P<flag>[a-zA-Z0-9\-_+.]+)\])?
|
||||||
|
|
||||||
\s* (
|
\s* (
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ def findPreferredProvider(pn, cfgData, dataCache, pkg_pn = None, item = None):
|
|||||||
if item:
|
if item:
|
||||||
itemstr = " (for item %s)" % item
|
itemstr = " (for item %s)" % item
|
||||||
if preferred_file is None:
|
if preferred_file is None:
|
||||||
logger.warn("preferred version %s of %s not available%s", pv_str, pn, itemstr)
|
logger.warning("preferred version %s of %s not available%s", pv_str, pn, itemstr)
|
||||||
available_vers = []
|
available_vers = []
|
||||||
for file_set in pkg_pn:
|
for file_set in pkg_pn:
|
||||||
for f in file_set:
|
for f in file_set:
|
||||||
@@ -163,7 +163,7 @@ def findPreferredProvider(pn, cfgData, dataCache, pkg_pn = None, item = None):
|
|||||||
available_vers.append(ver_str)
|
available_vers.append(ver_str)
|
||||||
if available_vers:
|
if available_vers:
|
||||||
available_vers.sort()
|
available_vers.sort()
|
||||||
logger.warn("versions of %s available: %s", pn, ' '.join(available_vers))
|
logger.warning("versions of %s available: %s", pn, ' '.join(available_vers))
|
||||||
else:
|
else:
|
||||||
logger.debug(1, "selecting %s as PREFERRED_VERSION %s of package %s%s", preferred_file, pv_str, pn, itemstr)
|
logger.debug(1, "selecting %s as PREFERRED_VERSION %s of package %s%s", preferred_file, pv_str, pn, itemstr)
|
||||||
|
|
||||||
|
|||||||
@@ -1942,6 +1942,10 @@ class RunQueueExecute:
|
|||||||
logger.error("Scenequeue had holdoff tasks: %s" % pprint.pformat(self.holdoff_tasks))
|
logger.error("Scenequeue had holdoff tasks: %s" % pprint.pformat(self.holdoff_tasks))
|
||||||
err = True
|
err = True
|
||||||
|
|
||||||
|
for tid in self.scenequeue_covered.intersection(self.scenequeue_notcovered):
|
||||||
|
# No task should end up in both covered and uncovered, that is a bug.
|
||||||
|
logger.error("Setscene task %s in both covered and notcovered." % tid)
|
||||||
|
|
||||||
for tid in self.rqdata.runq_setscene_tids:
|
for tid in self.rqdata.runq_setscene_tids:
|
||||||
if tid not in self.scenequeue_covered and tid not in self.scenequeue_notcovered:
|
if tid not in self.scenequeue_covered and tid not in self.scenequeue_notcovered:
|
||||||
err = True
|
err = True
|
||||||
@@ -2430,6 +2434,9 @@ class RunQueueExecute:
|
|||||||
|
|
||||||
for dep in sorted(self.sqdata.sq_deps[task]):
|
for dep in sorted(self.sqdata.sq_deps[task]):
|
||||||
if fail and task in self.sqdata.sq_harddeps and dep in self.sqdata.sq_harddeps[task]:
|
if fail and task in self.sqdata.sq_harddeps and dep in self.sqdata.sq_harddeps[task]:
|
||||||
|
if dep in self.scenequeue_covered or dep in self.scenequeue_notcovered:
|
||||||
|
# dependency could be already processed, e.g. noexec setscene task
|
||||||
|
continue
|
||||||
logger.debug(2, "%s was unavailable and is a hard dependency of %s so skipping" % (task, dep))
|
logger.debug(2, "%s was unavailable and is a hard dependency of %s so skipping" % (task, dep))
|
||||||
self.sq_task_failoutright(dep)
|
self.sq_task_failoutright(dep)
|
||||||
continue
|
continue
|
||||||
@@ -2791,6 +2798,7 @@ def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq, s
|
|||||||
sqdata.valid |= rq.validate_hashes(tocheck, cooker.data, len(sqdata.stamppresent), False, summary=summary)
|
sqdata.valid |= rq.validate_hashes(tocheck, cooker.data, len(sqdata.stamppresent), False, summary=summary)
|
||||||
|
|
||||||
sqdata.hashes = {}
|
sqdata.hashes = {}
|
||||||
|
sqrq.sq_deferred = {}
|
||||||
for mc in sorted(sqdata.multiconfigs):
|
for mc in sorted(sqdata.multiconfigs):
|
||||||
for tid in sorted(sqdata.sq_revdeps):
|
for tid in sorted(sqdata.sq_revdeps):
|
||||||
if mc_from_tid(tid) != mc:
|
if mc_from_tid(tid) != mc:
|
||||||
@@ -2803,6 +2811,9 @@ def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq, s
|
|||||||
continue
|
continue
|
||||||
if tid in sqrq.scenequeue_notcovered:
|
if tid in sqrq.scenequeue_notcovered:
|
||||||
continue
|
continue
|
||||||
|
if tid in sqrq.scenequeue_covered:
|
||||||
|
continue
|
||||||
|
|
||||||
sqdata.outrightfail.add(tid)
|
sqdata.outrightfail.add(tid)
|
||||||
|
|
||||||
h = pending_hash_index(tid, rqdata)
|
h = pending_hash_index(tid, rqdata)
|
||||||
|
|||||||
@@ -509,7 +509,7 @@ class BitBakeServer(object):
|
|||||||
os.set_inheritable(self.bitbake_lock.fileno(), True)
|
os.set_inheritable(self.bitbake_lock.fileno(), True)
|
||||||
os.set_inheritable(self.readypipein, True)
|
os.set_inheritable(self.readypipein, True)
|
||||||
serverscript = os.path.realpath(os.path.dirname(__file__) + "/../../../bin/bitbake-server")
|
serverscript = os.path.realpath(os.path.dirname(__file__) + "/../../../bin/bitbake-server")
|
||||||
os.execl(sys.executable, "bitbake-server", serverscript, "decafbad", str(self.bitbake_lock.fileno()), str(self.readypipein), self.logfile, self.bitbake_lock.name, self.sockname, str(self.server_timeout), str(self.xmlrpcinterface[0]), str(self.xmlrpcinterface[1]))
|
os.execl(sys.executable, "bitbake-server", serverscript, "decafbad", str(self.bitbake_lock.fileno()), str(self.readypipein), self.logfile, self.bitbake_lock.name, self.sockname, str(self.server_timeout or 0), str(self.xmlrpcinterface[0]), str(self.xmlrpcinterface[1]))
|
||||||
|
|
||||||
def execServer(lockfd, readypipeinfd, lockname, sockname, server_timeout, xmlrpcinterface):
|
def execServer(lockfd, readypipeinfd, lockname, sockname, server_timeout, xmlrpcinterface):
|
||||||
|
|
||||||
|
|||||||
@@ -311,7 +311,13 @@ class SignatureGeneratorBasic(SignatureGenerator):
|
|||||||
|
|
||||||
data = self.basehash[tid]
|
data = self.basehash[tid]
|
||||||
for dep in self.runtaskdeps[tid]:
|
for dep in self.runtaskdeps[tid]:
|
||||||
data = data + self.get_unihash(dep)
|
if dep in self.unihash:
|
||||||
|
if self.unihash[dep] is None:
|
||||||
|
data = data + self.taskhash[dep]
|
||||||
|
else:
|
||||||
|
data = data + self.unihash[dep]
|
||||||
|
else:
|
||||||
|
data = data + self.get_unihash(dep)
|
||||||
|
|
||||||
for (f, cs) in self.file_checksum_values[tid]:
|
for (f, cs) in self.file_checksum_values[tid]:
|
||||||
if cs:
|
if cs:
|
||||||
|
|||||||
@@ -111,9 +111,9 @@ ${D}${libdir}/pkgconfig/*.pc
|
|||||||
self.assertExecs(set(["sed"]))
|
self.assertExecs(set(["sed"]))
|
||||||
|
|
||||||
def test_parameter_expansion_modifiers(self):
|
def test_parameter_expansion_modifiers(self):
|
||||||
# - and + are also valid modifiers for parameter expansion, but are
|
# -,+ and : are also valid modifiers for parameter expansion, but are
|
||||||
# valid characters in bitbake variable names, so are not included here
|
# valid characters in bitbake variable names, so are not included here
|
||||||
for i in ('=', ':-', ':=', '?', ':?', ':+', '#', '%', '##', '%%'):
|
for i in ('=', '?', '#', '%', '##', '%%'):
|
||||||
name = "foo%sbar" % i
|
name = "foo%sbar" % i
|
||||||
self.parseExpression("${%s}" % name)
|
self.parseExpression("${%s}" % name)
|
||||||
self.assertNotIn(name, self.references)
|
self.assertNotIn(name, self.references)
|
||||||
|
|||||||
@@ -87,25 +87,6 @@ class URITest(unittest.TestCase):
|
|||||||
},
|
},
|
||||||
'relative': False
|
'relative': False
|
||||||
},
|
},
|
||||||
# Check that trailing semicolons are handled correctly
|
|
||||||
"http://www.example.org/index.html?qparam1=qvalue1;param2=value2;" : {
|
|
||||||
'uri': 'http://www.example.org/index.html?qparam1=qvalue1;param2=value2',
|
|
||||||
'scheme': 'http',
|
|
||||||
'hostname': 'www.example.org',
|
|
||||||
'port': None,
|
|
||||||
'hostport': 'www.example.org',
|
|
||||||
'path': '/index.html',
|
|
||||||
'userinfo': '',
|
|
||||||
'username': '',
|
|
||||||
'password': '',
|
|
||||||
'params': {
|
|
||||||
'param2': 'value2'
|
|
||||||
},
|
|
||||||
'query': {
|
|
||||||
'qparam1': 'qvalue1'
|
|
||||||
},
|
|
||||||
'relative': False
|
|
||||||
},
|
|
||||||
"http://www.example.com:8080/index.html" : {
|
"http://www.example.com:8080/index.html" : {
|
||||||
'uri': 'http://www.example.com:8080/index.html',
|
'uri': 'http://www.example.com:8080/index.html',
|
||||||
'scheme': 'http',
|
'scheme': 'http',
|
||||||
@@ -673,58 +654,6 @@ class FetcherLocalTest(FetcherTest):
|
|||||||
with self.assertRaises(bb.fetch2.UnpackError):
|
with self.assertRaises(bb.fetch2.UnpackError):
|
||||||
self.fetchUnpack(['file://a;subdir=/bin/sh'])
|
self.fetchUnpack(['file://a;subdir=/bin/sh'])
|
||||||
|
|
||||||
def test_local_gitfetch_usehead(self):
|
|
||||||
# Create dummy local Git repo
|
|
||||||
src_dir = tempfile.mkdtemp(dir=self.tempdir,
|
|
||||||
prefix='gitfetch_localusehead_')
|
|
||||||
src_dir = os.path.abspath(src_dir)
|
|
||||||
bb.process.run("git init", cwd=src_dir)
|
|
||||||
bb.process.run("git commit --allow-empty -m'Dummy commit'",
|
|
||||||
cwd=src_dir)
|
|
||||||
# Use other branch than master
|
|
||||||
bb.process.run("git checkout -b my-devel", cwd=src_dir)
|
|
||||||
bb.process.run("git commit --allow-empty -m'Dummy commit 2'",
|
|
||||||
cwd=src_dir)
|
|
||||||
stdout = bb.process.run("git rev-parse HEAD", cwd=src_dir)
|
|
||||||
orig_rev = stdout[0].strip()
|
|
||||||
|
|
||||||
# Fetch and check revision
|
|
||||||
self.d.setVar("SRCREV", "AUTOINC")
|
|
||||||
url = "git://" + src_dir + ";protocol=file;usehead=1"
|
|
||||||
fetcher = bb.fetch.Fetch([url], self.d)
|
|
||||||
fetcher.download()
|
|
||||||
fetcher.unpack(self.unpackdir)
|
|
||||||
stdout = bb.process.run("git rev-parse HEAD",
|
|
||||||
cwd=os.path.join(self.unpackdir, 'git'))
|
|
||||||
unpack_rev = stdout[0].strip()
|
|
||||||
self.assertEqual(orig_rev, unpack_rev)
|
|
||||||
|
|
||||||
def test_local_gitfetch_usehead_withname(self):
|
|
||||||
# Create dummy local Git repo
|
|
||||||
src_dir = tempfile.mkdtemp(dir=self.tempdir,
|
|
||||||
prefix='gitfetch_localusehead_')
|
|
||||||
src_dir = os.path.abspath(src_dir)
|
|
||||||
bb.process.run("git init", cwd=src_dir)
|
|
||||||
bb.process.run("git commit --allow-empty -m'Dummy commit'",
|
|
||||||
cwd=src_dir)
|
|
||||||
# Use other branch than master
|
|
||||||
bb.process.run("git checkout -b my-devel", cwd=src_dir)
|
|
||||||
bb.process.run("git commit --allow-empty -m'Dummy commit 2'",
|
|
||||||
cwd=src_dir)
|
|
||||||
stdout = bb.process.run("git rev-parse HEAD", cwd=src_dir)
|
|
||||||
orig_rev = stdout[0].strip()
|
|
||||||
|
|
||||||
# Fetch and check revision
|
|
||||||
self.d.setVar("SRCREV", "AUTOINC")
|
|
||||||
url = "git://" + src_dir + ";protocol=file;usehead=1;name=newName"
|
|
||||||
fetcher = bb.fetch.Fetch([url], self.d)
|
|
||||||
fetcher.download()
|
|
||||||
fetcher.unpack(self.unpackdir)
|
|
||||||
stdout = bb.process.run("git rev-parse HEAD",
|
|
||||||
cwd=os.path.join(self.unpackdir, 'git'))
|
|
||||||
unpack_rev = stdout[0].strip()
|
|
||||||
self.assertEqual(orig_rev, unpack_rev)
|
|
||||||
|
|
||||||
class FetcherNoNetworkTest(FetcherTest):
|
class FetcherNoNetworkTest(FetcherTest):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
@@ -915,21 +844,35 @@ class FetcherNetworkTest(FetcherTest):
|
|||||||
self.assertRaises(bb.fetch.FetchError, self.gitfetcher, url1, url2)
|
self.assertRaises(bb.fetch.FetchError, self.gitfetcher, url1, url2)
|
||||||
|
|
||||||
@skipIfNoNetwork()
|
@skipIfNoNetwork()
|
||||||
def test_gitfetch_usehead(self):
|
def test_gitfetch_localusehead(self):
|
||||||
# Since self.gitfetcher() sets SRCREV we expect this to override
|
# Create dummy local Git repo
|
||||||
# `usehead=1' and instead fetch the specified SRCREV. See
|
src_dir = tempfile.mkdtemp(dir=self.tempdir,
|
||||||
# test_local_gitfetch_usehead() for a positive use of the usehead
|
prefix='gitfetch_localusehead_')
|
||||||
# feature.
|
src_dir = os.path.abspath(src_dir)
|
||||||
url = "git://git.openembedded.org/bitbake;usehead=1"
|
bb.process.run("git init", cwd=src_dir)
|
||||||
self.assertRaises(bb.fetch.ParameterError, self.gitfetcher, url, url)
|
bb.process.run("git commit --allow-empty -m'Dummy commit'",
|
||||||
|
cwd=src_dir)
|
||||||
|
# Use other branch than master
|
||||||
|
bb.process.run("git checkout -b my-devel", cwd=src_dir)
|
||||||
|
bb.process.run("git commit --allow-empty -m'Dummy commit 2'",
|
||||||
|
cwd=src_dir)
|
||||||
|
stdout = bb.process.run("git rev-parse HEAD", cwd=src_dir)
|
||||||
|
orig_rev = stdout[0].strip()
|
||||||
|
|
||||||
|
# Fetch and check revision
|
||||||
|
self.d.setVar("SRCREV", "AUTOINC")
|
||||||
|
url = "git://" + src_dir + ";protocol=file;usehead=1"
|
||||||
|
fetcher = bb.fetch.Fetch([url], self.d)
|
||||||
|
fetcher.download()
|
||||||
|
fetcher.unpack(self.unpackdir)
|
||||||
|
stdout = bb.process.run("git rev-parse HEAD",
|
||||||
|
cwd=os.path.join(self.unpackdir, 'git'))
|
||||||
|
unpack_rev = stdout[0].strip()
|
||||||
|
self.assertEqual(orig_rev, unpack_rev)
|
||||||
|
|
||||||
@skipIfNoNetwork()
|
@skipIfNoNetwork()
|
||||||
def test_gitfetch_usehead_withname(self):
|
def test_gitfetch_remoteusehead(self):
|
||||||
# Since self.gitfetcher() sets SRCREV we expect this to override
|
url = "git://git.openembedded.org/bitbake;usehead=1"
|
||||||
# `usehead=1' and instead fetch the specified SRCREV. See
|
|
||||||
# test_local_gitfetch_usehead() for a positive use of the usehead
|
|
||||||
# feature.
|
|
||||||
url = "git://git.openembedded.org/bitbake;usehead=1;name=newName"
|
|
||||||
self.assertRaises(bb.fetch.ParameterError, self.gitfetcher, url, url)
|
self.assertRaises(bb.fetch.ParameterError, self.gitfetcher, url, url)
|
||||||
|
|
||||||
@skipIfNoNetwork()
|
@skipIfNoNetwork()
|
||||||
@@ -996,7 +939,7 @@ class FetcherNetworkTest(FetcherTest):
|
|||||||
|
|
||||||
@skipIfNoNetwork()
|
@skipIfNoNetwork()
|
||||||
def test_git_submodule_CLI11(self):
|
def test_git_submodule_CLI11(self):
|
||||||
url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=bd4dc911847d0cde7a6b41dfa626a85aab213baf"
|
url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=bd4dc911847d0cde7a6b41dfa626a85aab213baf;branch=main"
|
||||||
fetcher = bb.fetch.Fetch([url], self.d)
|
fetcher = bb.fetch.Fetch([url], self.d)
|
||||||
fetcher.download()
|
fetcher.download()
|
||||||
# Previous cwd has been deleted
|
# Previous cwd has been deleted
|
||||||
@@ -1011,12 +954,12 @@ class FetcherNetworkTest(FetcherTest):
|
|||||||
@skipIfNoNetwork()
|
@skipIfNoNetwork()
|
||||||
def test_git_submodule_update_CLI11(self):
|
def test_git_submodule_update_CLI11(self):
|
||||||
""" Prevent regression on update detection not finding missing submodule, or modules without needed commits """
|
""" Prevent regression on update detection not finding missing submodule, or modules without needed commits """
|
||||||
url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=cf6a99fa69aaefe477cc52e3ef4a7d2d7fa40714"
|
url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=cf6a99fa69aaefe477cc52e3ef4a7d2d7fa40714;branch=main"
|
||||||
fetcher = bb.fetch.Fetch([url], self.d)
|
fetcher = bb.fetch.Fetch([url], self.d)
|
||||||
fetcher.download()
|
fetcher.download()
|
||||||
|
|
||||||
# CLI11 that pulls in a newer nlohmann-json
|
# CLI11 that pulls in a newer nlohmann-json
|
||||||
url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=49ac989a9527ee9bb496de9ded7b4872c2e0e5ca"
|
url = "gitsm://github.com/CLIUtils/CLI11;protocol=git;rev=49ac989a9527ee9bb496de9ded7b4872c2e0e5ca;branch=main"
|
||||||
fetcher = bb.fetch.Fetch([url], self.d)
|
fetcher = bb.fetch.Fetch([url], self.d)
|
||||||
fetcher.download()
|
fetcher.download()
|
||||||
# Previous cwd has been deleted
|
# Previous cwd has been deleted
|
||||||
@@ -1050,7 +993,7 @@ class FetcherNetworkTest(FetcherTest):
|
|||||||
""" Prevent regression on deeply nested submodules not being checked out properly, even though they were fetched. """
|
""" Prevent regression on deeply nested submodules not being checked out properly, even though they were fetched. """
|
||||||
|
|
||||||
# This repository also has submodules where the module (name), path and url do not align
|
# This repository also has submodules where the module (name), path and url do not align
|
||||||
url = "gitsm://github.com/azure/iotedge.git;protocol=git;rev=d76e0316c6f324345d77c48a83ce836d09392699"
|
url = "gitsm://github.com/azure/iotedge.git;protocol=git;rev=d76e0316c6f324345d77c48a83ce836d09392699;branch=main"
|
||||||
fetcher = bb.fetch.Fetch([url], self.d)
|
fetcher = bb.fetch.Fetch([url], self.d)
|
||||||
fetcher.download()
|
fetcher.download()
|
||||||
# Previous cwd has been deleted
|
# Previous cwd has been deleted
|
||||||
@@ -1237,7 +1180,7 @@ class FetchLatestVersionTest(FetcherTest):
|
|||||||
("presentproto", "git://git.yoctoproject.org/bbfetchtests-presentproto", "24f3a56e541b0a9e6c6ee76081f441221a120ef9", "")
|
("presentproto", "git://git.yoctoproject.org/bbfetchtests-presentproto", "24f3a56e541b0a9e6c6ee76081f441221a120ef9", "")
|
||||||
: "1.0",
|
: "1.0",
|
||||||
# version pattern "pkg_name-vX.Y.Z"
|
# version pattern "pkg_name-vX.Y.Z"
|
||||||
("dtc", "git://git.qemu.org/dtc.git", "65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf", "")
|
("dtc", "git://git.yoctoproject.org/bbfetchtests-dtc.git", "65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf", "")
|
||||||
: "1.4.0",
|
: "1.4.0",
|
||||||
# combination version pattern
|
# combination version pattern
|
||||||
("sysprof", "git://gitlab.gnome.org/GNOME/sysprof.git;protocol=https", "cd44ee6644c3641507fb53b8a2a69137f2971219", "")
|
("sysprof", "git://gitlab.gnome.org/GNOME/sysprof.git;protocol=https", "cd44ee6644c3641507fb53b8a2a69137f2971219", "")
|
||||||
|
|||||||
@@ -129,7 +129,6 @@ def vercmp(ta, tb):
|
|||||||
return r
|
return r
|
||||||
|
|
||||||
def vercmp_string(a, b):
|
def vercmp_string(a, b):
|
||||||
""" Split version strings and compare them """
|
|
||||||
ta = split_version(a)
|
ta = split_version(a)
|
||||||
tb = split_version(b)
|
tb = split_version(b)
|
||||||
return vercmp(ta, tb)
|
return vercmp(ta, tb)
|
||||||
@@ -248,12 +247,6 @@ def explode_dep_versions2(s, *, sort=True):
|
|||||||
return r
|
return r
|
||||||
|
|
||||||
def explode_dep_versions(s):
|
def explode_dep_versions(s):
|
||||||
"""
|
|
||||||
Take an RDEPENDS style string of format:
|
|
||||||
"DEPEND1 (optional version) DEPEND2 (optional version) ..."
|
|
||||||
skip null value and items appeared in dependancy string multiple times
|
|
||||||
and return a dictionary of dependencies and versions.
|
|
||||||
"""
|
|
||||||
r = explode_dep_versions2(s)
|
r = explode_dep_versions2(s)
|
||||||
for d in r:
|
for d in r:
|
||||||
if not r[d]:
|
if not r[d]:
|
||||||
@@ -699,7 +692,7 @@ def remove(path, recurse=False, ionice=False):
|
|||||||
raise
|
raise
|
||||||
|
|
||||||
def prunedir(topdir, ionice=False):
|
def prunedir(topdir, ionice=False):
|
||||||
""" Delete everything reachable from the directory named in 'topdir'. """
|
# Delete everything reachable from the directory named in 'topdir'.
|
||||||
# CAUTION: This is dangerous!
|
# CAUTION: This is dangerous!
|
||||||
if _check_unsafe_delete_path(topdir):
|
if _check_unsafe_delete_path(topdir):
|
||||||
raise Exception('bb.utils.prunedir: called with dangerous path "%s", refusing to delete!' % topdir)
|
raise Exception('bb.utils.prunedir: called with dangerous path "%s", refusing to delete!' % topdir)
|
||||||
@@ -710,10 +703,8 @@ def prunedir(topdir, ionice=False):
|
|||||||
# but thats possibly insane and suffixes is probably going to be small
|
# but thats possibly insane and suffixes is probably going to be small
|
||||||
#
|
#
|
||||||
def prune_suffix(var, suffixes, d):
|
def prune_suffix(var, suffixes, d):
|
||||||
"""
|
# See if var ends with any of the suffixes listed and
|
||||||
See if var ends with any of the suffixes listed and
|
# remove it if found
|
||||||
remove it if found
|
|
||||||
"""
|
|
||||||
for suffix in suffixes:
|
for suffix in suffixes:
|
||||||
if suffix and var.endswith(suffix):
|
if suffix and var.endswith(suffix):
|
||||||
return var[:-len(suffix)]
|
return var[:-len(suffix)]
|
||||||
@@ -965,10 +956,6 @@ def umask(new_mask):
|
|||||||
os.umask(current_mask)
|
os.umask(current_mask)
|
||||||
|
|
||||||
def to_boolean(string, default=None):
|
def to_boolean(string, default=None):
|
||||||
"""
|
|
||||||
Check input string and return boolean value True/False/None
|
|
||||||
depending upon the checks
|
|
||||||
"""
|
|
||||||
if not string:
|
if not string:
|
||||||
return default
|
return default
|
||||||
|
|
||||||
@@ -1012,23 +999,6 @@ def contains(variable, checkvalues, truevalue, falsevalue, d):
|
|||||||
return falsevalue
|
return falsevalue
|
||||||
|
|
||||||
def contains_any(variable, checkvalues, truevalue, falsevalue, d):
|
def contains_any(variable, checkvalues, truevalue, falsevalue, d):
|
||||||
"""Check if a variable contains any values specified.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
variable -- the variable name. This will be fetched and expanded (using
|
|
||||||
d.getVar(variable)) and then split into a set().
|
|
||||||
|
|
||||||
checkvalues -- if this is a string it is split on whitespace into a set(),
|
|
||||||
otherwise coerced directly into a set().
|
|
||||||
|
|
||||||
truevalue -- the value to return if checkvalues is a subset of variable.
|
|
||||||
|
|
||||||
falsevalue -- the value to return if variable is empty or if checkvalues is
|
|
||||||
not a subset of variable.
|
|
||||||
|
|
||||||
d -- the data store.
|
|
||||||
"""
|
|
||||||
val = d.getVar(variable)
|
val = d.getVar(variable)
|
||||||
if not val:
|
if not val:
|
||||||
return falsevalue
|
return falsevalue
|
||||||
@@ -1590,8 +1560,8 @@ def set_process_name(name):
|
|||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
# export common proxies variables from datastore to environment
|
||||||
def export_proxies(d):
|
def export_proxies(d):
|
||||||
""" export common proxies variables from datastore to environment """
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
variables = ['http_proxy', 'HTTP_PROXY', 'https_proxy', 'HTTPS_PROXY',
|
variables = ['http_proxy', 'HTTP_PROXY', 'https_proxy', 'HTTPS_PROXY',
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
#
|
#
|
||||||
|
|
||||||
import asyncio
|
|
||||||
from contextlib import closing
|
from contextlib import closing
|
||||||
import re
|
import re
|
||||||
import sqlite3
|
import sqlite3
|
||||||
@@ -22,24 +21,6 @@ ADDR_TYPE_TCP = 1
|
|||||||
# is necessary
|
# is necessary
|
||||||
DEFAULT_MAX_CHUNK = 32 * 1024
|
DEFAULT_MAX_CHUNK = 32 * 1024
|
||||||
|
|
||||||
TABLE_DEFINITION = (
|
|
||||||
("method", "TEXT NOT NULL"),
|
|
||||||
("outhash", "TEXT NOT NULL"),
|
|
||||||
("taskhash", "TEXT NOT NULL"),
|
|
||||||
("unihash", "TEXT NOT NULL"),
|
|
||||||
("created", "DATETIME"),
|
|
||||||
|
|
||||||
# Optional fields
|
|
||||||
("owner", "TEXT"),
|
|
||||||
("PN", "TEXT"),
|
|
||||||
("PV", "TEXT"),
|
|
||||||
("PR", "TEXT"),
|
|
||||||
("task", "TEXT"),
|
|
||||||
("outhash_siginfo", "TEXT"),
|
|
||||||
)
|
|
||||||
|
|
||||||
TABLE_COLUMNS = tuple(name for name, _ in TABLE_DEFINITION)
|
|
||||||
|
|
||||||
def setup_database(database, sync=True):
|
def setup_database(database, sync=True):
|
||||||
db = sqlite3.connect(database)
|
db = sqlite3.connect(database)
|
||||||
db.row_factory = sqlite3.Row
|
db.row_factory = sqlite3.Row
|
||||||
@@ -48,10 +29,23 @@ def setup_database(database, sync=True):
|
|||||||
cursor.execute('''
|
cursor.execute('''
|
||||||
CREATE TABLE IF NOT EXISTS tasks_v2 (
|
CREATE TABLE IF NOT EXISTS tasks_v2 (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
%s
|
method TEXT NOT NULL,
|
||||||
|
outhash TEXT NOT NULL,
|
||||||
|
taskhash TEXT NOT NULL,
|
||||||
|
unihash TEXT NOT NULL,
|
||||||
|
created DATETIME,
|
||||||
|
|
||||||
|
-- Optional fields
|
||||||
|
owner TEXT,
|
||||||
|
PN TEXT,
|
||||||
|
PV TEXT,
|
||||||
|
PR TEXT,
|
||||||
|
task TEXT,
|
||||||
|
outhash_siginfo TEXT,
|
||||||
|
|
||||||
UNIQUE(method, outhash, taskhash)
|
UNIQUE(method, outhash, taskhash)
|
||||||
)
|
)
|
||||||
''' % " ".join("%s %s," % (name, typ) for name, typ in TABLE_DEFINITION))
|
''')
|
||||||
cursor.execute('PRAGMA journal_mode = WAL')
|
cursor.execute('PRAGMA journal_mode = WAL')
|
||||||
cursor.execute('PRAGMA synchronous = %s' % ('NORMAL' if sync else 'OFF'))
|
cursor.execute('PRAGMA synchronous = %s' % ('NORMAL' if sync else 'OFF'))
|
||||||
|
|
||||||
@@ -94,10 +88,10 @@ def chunkify(msg, max_chunk):
|
|||||||
yield "\n"
|
yield "\n"
|
||||||
|
|
||||||
|
|
||||||
def create_server(addr, dbname, *, sync=True, upstream=None):
|
def create_server(addr, dbname, *, sync=True):
|
||||||
from . import server
|
from . import server
|
||||||
db = setup_database(dbname, sync=sync)
|
db = setup_database(dbname, sync=sync)
|
||||||
s = server.Server(db, upstream=upstream)
|
s = server.Server(db)
|
||||||
|
|
||||||
(typ, a) = parse_address(addr)
|
(typ, a) = parse_address(addr)
|
||||||
if typ == ADDR_TYPE_UNIX:
|
if typ == ADDR_TYPE_UNIX:
|
||||||
@@ -119,15 +113,3 @@ def create_client(addr):
|
|||||||
c.connect_tcp(*a)
|
c.connect_tcp(*a)
|
||||||
|
|
||||||
return c
|
return c
|
||||||
|
|
||||||
async def create_async_client(addr):
|
|
||||||
from . import client
|
|
||||||
c = client.AsyncClient()
|
|
||||||
|
|
||||||
(typ, a) = parse_address(addr)
|
|
||||||
if typ == ADDR_TYPE_UNIX:
|
|
||||||
await c.connect_unix(*a)
|
|
||||||
else:
|
|
||||||
await c.connect_tcp(*a)
|
|
||||||
|
|
||||||
return c
|
|
||||||
|
|||||||
@@ -3,225 +3,189 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
#
|
#
|
||||||
|
|
||||||
import asyncio
|
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
import socket
|
import socket
|
||||||
import os
|
import os
|
||||||
from . import chunkify, DEFAULT_MAX_CHUNK, create_async_client
|
from . import chunkify, DEFAULT_MAX_CHUNK
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger("hashserv.client")
|
logger = logging.getLogger('hashserv.client')
|
||||||
|
|
||||||
|
|
||||||
class HashConnectionError(Exception):
|
class HashConnectionError(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class AsyncClient(object):
|
class Client(object):
|
||||||
MODE_NORMAL = 0
|
MODE_NORMAL = 0
|
||||||
MODE_GET_STREAM = 1
|
MODE_GET_STREAM = 1
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
self._socket = None
|
||||||
self.reader = None
|
self.reader = None
|
||||||
self.writer = None
|
self.writer = None
|
||||||
self.mode = self.MODE_NORMAL
|
self.mode = self.MODE_NORMAL
|
||||||
self.max_chunk = DEFAULT_MAX_CHUNK
|
self.max_chunk = DEFAULT_MAX_CHUNK
|
||||||
|
|
||||||
async def connect_tcp(self, address, port):
|
def connect_tcp(self, address, port):
|
||||||
async def connect_sock():
|
def connect_sock():
|
||||||
return await asyncio.open_connection(address, port)
|
s = socket.create_connection((address, port))
|
||||||
|
|
||||||
|
s.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1)
|
||||||
|
s.setsockopt(socket.SOL_TCP, socket.TCP_QUICKACK, 1)
|
||||||
|
s.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
|
||||||
|
return s
|
||||||
|
|
||||||
self._connect_sock = connect_sock
|
self._connect_sock = connect_sock
|
||||||
|
|
||||||
async def connect_unix(self, path):
|
def connect_unix(self, path):
|
||||||
async def connect_sock():
|
def connect_sock():
|
||||||
return await asyncio.open_unix_connection(path)
|
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||||
|
# AF_UNIX has path length issues so chdir here to workaround
|
||||||
|
cwd = os.getcwd()
|
||||||
|
try:
|
||||||
|
os.chdir(os.path.dirname(path))
|
||||||
|
s.connect(os.path.basename(path))
|
||||||
|
finally:
|
||||||
|
os.chdir(cwd)
|
||||||
|
return s
|
||||||
|
|
||||||
self._connect_sock = connect_sock
|
self._connect_sock = connect_sock
|
||||||
|
|
||||||
async def connect(self):
|
def connect(self):
|
||||||
if self.reader is None or self.writer is None:
|
if self._socket is None:
|
||||||
(self.reader, self.writer) = await self._connect_sock()
|
self._socket = self._connect_sock()
|
||||||
|
|
||||||
self.writer.write("OEHASHEQUIV 1.1\n\n".encode("utf-8"))
|
self.reader = self._socket.makefile('r', encoding='utf-8')
|
||||||
await self.writer.drain()
|
self.writer = self._socket.makefile('w', encoding='utf-8')
|
||||||
|
|
||||||
|
self.writer.write('OEHASHEQUIV 1.1\n\n')
|
||||||
|
self.writer.flush()
|
||||||
|
|
||||||
|
# Restore mode if the socket is being re-created
|
||||||
cur_mode = self.mode
|
cur_mode = self.mode
|
||||||
self.mode = self.MODE_NORMAL
|
self.mode = self.MODE_NORMAL
|
||||||
await self._set_mode(cur_mode)
|
self._set_mode(cur_mode)
|
||||||
|
|
||||||
async def close(self):
|
return self._socket
|
||||||
self.reader = None
|
|
||||||
|
|
||||||
if self.writer is not None:
|
def close(self):
|
||||||
self.writer.close()
|
if self._socket is not None:
|
||||||
|
self._socket.close()
|
||||||
|
self._socket = None
|
||||||
|
self.reader = None
|
||||||
self.writer = None
|
self.writer = None
|
||||||
|
|
||||||
async def _send_wrapper(self, proc):
|
def _send_wrapper(self, proc):
|
||||||
count = 0
|
count = 0
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
await self.connect()
|
self.connect()
|
||||||
return await proc()
|
return proc()
|
||||||
except (
|
except (OSError, HashConnectionError, json.JSONDecodeError, UnicodeDecodeError) as e:
|
||||||
OSError,
|
logger.warning('Error talking to server: %s' % e)
|
||||||
HashConnectionError,
|
|
||||||
json.JSONDecodeError,
|
|
||||||
UnicodeDecodeError,
|
|
||||||
) as e:
|
|
||||||
logger.warning("Error talking to server: %s" % e)
|
|
||||||
if count >= 3:
|
if count >= 3:
|
||||||
if not isinstance(e, HashConnectionError):
|
if not isinstance(e, HashConnectionError):
|
||||||
raise HashConnectionError(str(e))
|
raise HashConnectionError(str(e))
|
||||||
raise e
|
raise e
|
||||||
await self.close()
|
self.close()
|
||||||
count += 1
|
count += 1
|
||||||
|
|
||||||
async def send_message(self, msg):
|
def send_message(self, msg):
|
||||||
async def get_line():
|
def get_line():
|
||||||
line = await self.reader.readline()
|
line = self.reader.readline()
|
||||||
if not line:
|
if not line:
|
||||||
raise HashConnectionError("Connection closed")
|
raise HashConnectionError('Connection closed')
|
||||||
|
|
||||||
line = line.decode("utf-8")
|
if not line.endswith('\n'):
|
||||||
|
raise HashConnectionError('Bad message %r' % message)
|
||||||
if not line.endswith("\n"):
|
|
||||||
raise HashConnectionError("Bad message %r" % message)
|
|
||||||
|
|
||||||
return line
|
return line
|
||||||
|
|
||||||
async def proc():
|
def proc():
|
||||||
for c in chunkify(json.dumps(msg), self.max_chunk):
|
for c in chunkify(json.dumps(msg), self.max_chunk):
|
||||||
self.writer.write(c.encode("utf-8"))
|
self.writer.write(c)
|
||||||
await self.writer.drain()
|
self.writer.flush()
|
||||||
|
|
||||||
l = await get_line()
|
l = get_line()
|
||||||
|
|
||||||
m = json.loads(l)
|
m = json.loads(l)
|
||||||
if "chunk-stream" in m:
|
if 'chunk-stream' in m:
|
||||||
lines = []
|
lines = []
|
||||||
while True:
|
while True:
|
||||||
l = (await get_line()).rstrip("\n")
|
l = get_line().rstrip('\n')
|
||||||
if not l:
|
if not l:
|
||||||
break
|
break
|
||||||
lines.append(l)
|
lines.append(l)
|
||||||
|
|
||||||
m = json.loads("".join(lines))
|
m = json.loads(''.join(lines))
|
||||||
|
|
||||||
return m
|
return m
|
||||||
|
|
||||||
return await self._send_wrapper(proc)
|
return self._send_wrapper(proc)
|
||||||
|
|
||||||
async def send_stream(self, msg):
|
def send_stream(self, msg):
|
||||||
async def proc():
|
def proc():
|
||||||
self.writer.write(("%s\n" % msg).encode("utf-8"))
|
self.writer.write("%s\n" % msg)
|
||||||
await self.writer.drain()
|
self.writer.flush()
|
||||||
l = await self.reader.readline()
|
l = self.reader.readline()
|
||||||
if not l:
|
if not l:
|
||||||
raise HashConnectionError("Connection closed")
|
raise HashConnectionError('Connection closed')
|
||||||
return l.decode("utf-8").rstrip()
|
return l.rstrip()
|
||||||
|
|
||||||
return await self._send_wrapper(proc)
|
return self._send_wrapper(proc)
|
||||||
|
|
||||||
async def _set_mode(self, new_mode):
|
def _set_mode(self, new_mode):
|
||||||
if new_mode == self.MODE_NORMAL and self.mode == self.MODE_GET_STREAM:
|
if new_mode == self.MODE_NORMAL and self.mode == self.MODE_GET_STREAM:
|
||||||
r = await self.send_stream("END")
|
r = self.send_stream('END')
|
||||||
if r != "ok":
|
if r != 'ok':
|
||||||
raise HashConnectionError("Bad response from server %r" % r)
|
raise HashConnectionError('Bad response from server %r' % r)
|
||||||
elif new_mode == self.MODE_GET_STREAM and self.mode == self.MODE_NORMAL:
|
elif new_mode == self.MODE_GET_STREAM and self.mode == self.MODE_NORMAL:
|
||||||
r = await self.send_message({"get-stream": None})
|
r = self.send_message({'get-stream': None})
|
||||||
if r != "ok":
|
if r != 'ok':
|
||||||
raise HashConnectionError("Bad response from server %r" % r)
|
raise HashConnectionError('Bad response from server %r' % r)
|
||||||
elif new_mode != self.mode:
|
elif new_mode != self.mode:
|
||||||
raise Exception(
|
raise Exception('Undefined mode transition %r -> %r' % (self.mode, new_mode))
|
||||||
"Undefined mode transition %r -> %r" % (self.mode, new_mode)
|
|
||||||
)
|
|
||||||
|
|
||||||
self.mode = new_mode
|
self.mode = new_mode
|
||||||
|
|
||||||
async def get_unihash(self, method, taskhash):
|
def get_unihash(self, method, taskhash):
|
||||||
await self._set_mode(self.MODE_GET_STREAM)
|
self._set_mode(self.MODE_GET_STREAM)
|
||||||
r = await self.send_stream("%s %s" % (method, taskhash))
|
r = self.send_stream('%s %s' % (method, taskhash))
|
||||||
if not r:
|
if not r:
|
||||||
return None
|
return None
|
||||||
return r
|
return r
|
||||||
|
|
||||||
async def report_unihash(self, taskhash, method, outhash, unihash, extra={}):
|
def report_unihash(self, taskhash, method, outhash, unihash, extra={}):
|
||||||
await self._set_mode(self.MODE_NORMAL)
|
self._set_mode(self.MODE_NORMAL)
|
||||||
m = extra.copy()
|
m = extra.copy()
|
||||||
m["taskhash"] = taskhash
|
m['taskhash'] = taskhash
|
||||||
m["method"] = method
|
m['method'] = method
|
||||||
m["outhash"] = outhash
|
m['outhash'] = outhash
|
||||||
m["unihash"] = unihash
|
m['unihash'] = unihash
|
||||||
return await self.send_message({"report": m})
|
return self.send_message({'report': m})
|
||||||
|
|
||||||
async def report_unihash_equiv(self, taskhash, method, unihash, extra={}):
|
def report_unihash_equiv(self, taskhash, method, unihash, extra={}):
|
||||||
await self._set_mode(self.MODE_NORMAL)
|
self._set_mode(self.MODE_NORMAL)
|
||||||
m = extra.copy()
|
m = extra.copy()
|
||||||
m["taskhash"] = taskhash
|
m['taskhash'] = taskhash
|
||||||
m["method"] = method
|
m['method'] = method
|
||||||
m["unihash"] = unihash
|
m['unihash'] = unihash
|
||||||
return await self.send_message({"report-equiv": m})
|
return self.send_message({'report-equiv': m})
|
||||||
|
|
||||||
async def get_taskhash(self, method, taskhash, all_properties=False):
|
def get_taskhash(self, method, taskhash, all_properties=False):
|
||||||
await self._set_mode(self.MODE_NORMAL)
|
self._set_mode(self.MODE_NORMAL)
|
||||||
return await self.send_message(
|
return self.send_message({'get': {
|
||||||
{"get": {"taskhash": taskhash, "method": method, "all": all_properties}}
|
'taskhash': taskhash,
|
||||||
)
|
'method': method,
|
||||||
|
'all': all_properties
|
||||||
|
}})
|
||||||
|
|
||||||
async def get_stats(self):
|
def get_stats(self):
|
||||||
await self._set_mode(self.MODE_NORMAL)
|
self._set_mode(self.MODE_NORMAL)
|
||||||
return await self.send_message({"get-stats": None})
|
return self.send_message({'get-stats': None})
|
||||||
|
|
||||||
async def reset_stats(self):
|
def reset_stats(self):
|
||||||
await self._set_mode(self.MODE_NORMAL)
|
self._set_mode(self.MODE_NORMAL)
|
||||||
return await self.send_message({"reset-stats": None})
|
return self.send_message({'reset-stats': None})
|
||||||
|
|
||||||
async def backfill_wait(self):
|
|
||||||
await self._set_mode(self.MODE_NORMAL)
|
|
||||||
return (await self.send_message({"backfill-wait": None}))["tasks"]
|
|
||||||
|
|
||||||
|
|
||||||
class Client(object):
|
|
||||||
def __init__(self):
|
|
||||||
self.client = AsyncClient()
|
|
||||||
self.loop = asyncio.new_event_loop()
|
|
||||||
|
|
||||||
for call in (
|
|
||||||
"connect_tcp",
|
|
||||||
"close",
|
|
||||||
"get_unihash",
|
|
||||||
"report_unihash",
|
|
||||||
"report_unihash_equiv",
|
|
||||||
"get_taskhash",
|
|
||||||
"get_stats",
|
|
||||||
"reset_stats",
|
|
||||||
"backfill_wait",
|
|
||||||
):
|
|
||||||
downcall = getattr(self.client, call)
|
|
||||||
setattr(self, call, self._get_downcall_wrapper(downcall))
|
|
||||||
|
|
||||||
def _get_downcall_wrapper(self, downcall):
|
|
||||||
def wrapper(*args, **kwargs):
|
|
||||||
return self.loop.run_until_complete(downcall(*args, **kwargs))
|
|
||||||
|
|
||||||
return wrapper
|
|
||||||
|
|
||||||
def connect_unix(self, path):
|
|
||||||
# AF_UNIX has path length issues so chdir here to workaround
|
|
||||||
cwd = os.getcwd()
|
|
||||||
try:
|
|
||||||
os.chdir(os.path.dirname(path))
|
|
||||||
self.loop.run_until_complete(self.client.connect_unix(os.path.basename(path)))
|
|
||||||
self.loop.run_until_complete(self.client.connect())
|
|
||||||
finally:
|
|
||||||
os.chdir(cwd)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def max_chunk(self):
|
|
||||||
return self.client.max_chunk
|
|
||||||
|
|
||||||
@max_chunk.setter
|
|
||||||
def max_chunk(self, value):
|
|
||||||
self.client.max_chunk = value
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
#
|
#
|
||||||
|
|
||||||
from contextlib import closing, contextmanager
|
from contextlib import closing
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import asyncio
|
import asyncio
|
||||||
import json
|
import json
|
||||||
@@ -12,9 +12,8 @@ import math
|
|||||||
import os
|
import os
|
||||||
import signal
|
import signal
|
||||||
import socket
|
import socket
|
||||||
import sys
|
|
||||||
import time
|
import time
|
||||||
from . import chunkify, DEFAULT_MAX_CHUNK, create_async_client, TABLE_COLUMNS
|
from . import chunkify, DEFAULT_MAX_CHUNK
|
||||||
|
|
||||||
logger = logging.getLogger('hashserv.server')
|
logger = logging.getLogger('hashserv.server')
|
||||||
|
|
||||||
@@ -112,40 +111,16 @@ class Stats(object):
|
|||||||
class ClientError(Exception):
|
class ClientError(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def insert_task(cursor, data, ignore=False):
|
|
||||||
keys = sorted(data.keys())
|
|
||||||
query = '''INSERT%s INTO tasks_v2 (%s) VALUES (%s)''' % (
|
|
||||||
" OR IGNORE" if ignore else "",
|
|
||||||
', '.join(keys),
|
|
||||||
', '.join(':' + k for k in keys))
|
|
||||||
cursor.execute(query, data)
|
|
||||||
|
|
||||||
async def copy_from_upstream(client, db, method, taskhash):
|
|
||||||
d = await client.get_taskhash(method, taskhash, True)
|
|
||||||
if d is not None:
|
|
||||||
# Filter out unknown columns
|
|
||||||
d = {k: v for k, v in d.items() if k in TABLE_COLUMNS}
|
|
||||||
keys = sorted(d.keys())
|
|
||||||
|
|
||||||
|
|
||||||
with closing(db.cursor()) as cursor:
|
|
||||||
insert_task(cursor, d)
|
|
||||||
db.commit()
|
|
||||||
|
|
||||||
return d
|
|
||||||
|
|
||||||
class ServerClient(object):
|
class ServerClient(object):
|
||||||
FAST_QUERY = 'SELECT taskhash, method, unihash FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1'
|
FAST_QUERY = 'SELECT taskhash, method, unihash FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1'
|
||||||
ALL_QUERY = 'SELECT * FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1'
|
ALL_QUERY = 'SELECT * FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1'
|
||||||
|
|
||||||
def __init__(self, reader, writer, db, request_stats, backfill_queue, upstream):
|
def __init__(self, reader, writer, db, request_stats):
|
||||||
self.reader = reader
|
self.reader = reader
|
||||||
self.writer = writer
|
self.writer = writer
|
||||||
self.db = db
|
self.db = db
|
||||||
self.request_stats = request_stats
|
self.request_stats = request_stats
|
||||||
self.max_chunk = DEFAULT_MAX_CHUNK
|
self.max_chunk = DEFAULT_MAX_CHUNK
|
||||||
self.backfill_queue = backfill_queue
|
|
||||||
self.upstream = upstream
|
|
||||||
|
|
||||||
self.handlers = {
|
self.handlers = {
|
||||||
'get': self.handle_get,
|
'get': self.handle_get,
|
||||||
@@ -155,18 +130,10 @@ class ServerClient(object):
|
|||||||
'get-stats': self.handle_get_stats,
|
'get-stats': self.handle_get_stats,
|
||||||
'reset-stats': self.handle_reset_stats,
|
'reset-stats': self.handle_reset_stats,
|
||||||
'chunk-stream': self.handle_chunk,
|
'chunk-stream': self.handle_chunk,
|
||||||
'backfill-wait': self.handle_backfill_wait,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async def process_requests(self):
|
async def process_requests(self):
|
||||||
if self.upstream is not None:
|
|
||||||
self.upstream_client = await create_async_client(self.upstream)
|
|
||||||
else:
|
|
||||||
self.upstream_client = None
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
|
|
||||||
self.addr = self.writer.get_extra_info('peername')
|
self.addr = self.writer.get_extra_info('peername')
|
||||||
logger.debug('Client %r connected' % (self.addr,))
|
logger.debug('Client %r connected' % (self.addr,))
|
||||||
|
|
||||||
@@ -204,9 +171,6 @@ class ServerClient(object):
|
|||||||
except ClientError as e:
|
except ClientError as e:
|
||||||
logger.error(str(e))
|
logger.error(str(e))
|
||||||
finally:
|
finally:
|
||||||
if self.upstream_client is not None:
|
|
||||||
await self.upstream_client.close()
|
|
||||||
|
|
||||||
self.writer.close()
|
self.writer.close()
|
||||||
|
|
||||||
async def dispatch_message(self, msg):
|
async def dispatch_message(self, msg):
|
||||||
@@ -275,19 +239,15 @@ class ServerClient(object):
|
|||||||
if row is not None:
|
if row is not None:
|
||||||
logger.debug('Found equivalent task %s -> %s', (row['taskhash'], row['unihash']))
|
logger.debug('Found equivalent task %s -> %s', (row['taskhash'], row['unihash']))
|
||||||
d = {k: row[k] for k in row.keys()}
|
d = {k: row[k] for k in row.keys()}
|
||||||
elif self.upstream_client is not None:
|
|
||||||
d = await copy_from_upstream(self.upstream_client, self.db, method, taskhash)
|
|
||||||
else:
|
|
||||||
d = None
|
|
||||||
|
|
||||||
self.write_message(d)
|
self.write_message(d)
|
||||||
|
else:
|
||||||
|
self.write_message(None)
|
||||||
|
|
||||||
async def handle_get_stream(self, request):
|
async def handle_get_stream(self, request):
|
||||||
self.write_message('ok')
|
self.write_message('ok')
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
upstream = None
|
|
||||||
|
|
||||||
l = await self.reader.readline()
|
l = await self.reader.readline()
|
||||||
if not l:
|
if not l:
|
||||||
return
|
return
|
||||||
@@ -312,12 +272,6 @@ class ServerClient(object):
|
|||||||
if row is not None:
|
if row is not None:
|
||||||
msg = ('%s\n' % row['unihash']).encode('utf-8')
|
msg = ('%s\n' % row['unihash']).encode('utf-8')
|
||||||
#logger.debug('Found equivalent task %s -> %s', (row['taskhash'], row['unihash']))
|
#logger.debug('Found equivalent task %s -> %s', (row['taskhash'], row['unihash']))
|
||||||
elif self.upstream_client is not None:
|
|
||||||
upstream = await self.upstream_client.get_unihash(method, taskhash)
|
|
||||||
if upstream:
|
|
||||||
msg = ("%s\n" % upstream).encode("utf-8")
|
|
||||||
else:
|
|
||||||
msg = "\n".encode("utf-8")
|
|
||||||
else:
|
else:
|
||||||
msg = '\n'.encode('utf-8')
|
msg = '\n'.encode('utf-8')
|
||||||
|
|
||||||
@@ -328,11 +282,6 @@ class ServerClient(object):
|
|||||||
|
|
||||||
await self.writer.drain()
|
await self.writer.drain()
|
||||||
|
|
||||||
# Post to the backfill queue after writing the result to minimize
|
|
||||||
# the turn around time on a request
|
|
||||||
if upstream is not None:
|
|
||||||
await self.backfill_queue.put((method, taskhash))
|
|
||||||
|
|
||||||
async def handle_report(self, data):
|
async def handle_report(self, data):
|
||||||
with closing(self.db.cursor()) as cursor:
|
with closing(self.db.cursor()) as cursor:
|
||||||
cursor.execute('''
|
cursor.execute('''
|
||||||
@@ -375,7 +324,11 @@ class ServerClient(object):
|
|||||||
if k in data:
|
if k in data:
|
||||||
insert_data[k] = data[k]
|
insert_data[k] = data[k]
|
||||||
|
|
||||||
insert_task(cursor, insert_data)
|
cursor.execute('''INSERT INTO tasks_v2 (%s) VALUES (%s)''' % (
|
||||||
|
', '.join(sorted(insert_data.keys())),
|
||||||
|
', '.join(':' + k for k in sorted(insert_data.keys()))),
|
||||||
|
insert_data)
|
||||||
|
|
||||||
self.db.commit()
|
self.db.commit()
|
||||||
|
|
||||||
logger.info('Adding taskhash %s with unihash %s',
|
logger.info('Adding taskhash %s with unihash %s',
|
||||||
@@ -405,7 +358,11 @@ class ServerClient(object):
|
|||||||
if k in data:
|
if k in data:
|
||||||
insert_data[k] = data[k]
|
insert_data[k] = data[k]
|
||||||
|
|
||||||
insert_task(cursor, insert_data, ignore=True)
|
cursor.execute('''INSERT OR IGNORE INTO tasks_v2 (%s) VALUES (%s)''' % (
|
||||||
|
', '.join(sorted(insert_data.keys())),
|
||||||
|
', '.join(':' + k for k in sorted(insert_data.keys()))),
|
||||||
|
insert_data)
|
||||||
|
|
||||||
self.db.commit()
|
self.db.commit()
|
||||||
|
|
||||||
# Fetch the unihash that will be reported for the taskhash. If the
|
# Fetch the unihash that will be reported for the taskhash. If the
|
||||||
@@ -437,13 +394,6 @@ class ServerClient(object):
|
|||||||
self.request_stats.reset()
|
self.request_stats.reset()
|
||||||
self.write_message(d)
|
self.write_message(d)
|
||||||
|
|
||||||
async def handle_backfill_wait(self, request):
|
|
||||||
d = {
|
|
||||||
'tasks': self.backfill_queue.qsize(),
|
|
||||||
}
|
|
||||||
await self.backfill_queue.join()
|
|
||||||
self.write_message(d)
|
|
||||||
|
|
||||||
def query_equivalent(self, method, taskhash, query):
|
def query_equivalent(self, method, taskhash, query):
|
||||||
# This is part of the inner loop and must be as fast as possible
|
# This is part of the inner loop and must be as fast as possible
|
||||||
try:
|
try:
|
||||||
@@ -455,7 +405,7 @@ class ServerClient(object):
|
|||||||
|
|
||||||
|
|
||||||
class Server(object):
|
class Server(object):
|
||||||
def __init__(self, db, loop=None, upstream=None):
|
def __init__(self, db, loop=None):
|
||||||
self.request_stats = Stats()
|
self.request_stats = Stats()
|
||||||
self.db = db
|
self.db = db
|
||||||
|
|
||||||
@@ -466,8 +416,6 @@ class Server(object):
|
|||||||
self.loop = loop
|
self.loop = loop
|
||||||
self.close_loop = False
|
self.close_loop = False
|
||||||
|
|
||||||
self.upstream = upstream
|
|
||||||
|
|
||||||
self._cleanup_socket = None
|
self._cleanup_socket = None
|
||||||
|
|
||||||
def start_tcp_server(self, host, port):
|
def start_tcp_server(self, host, port):
|
||||||
@@ -510,7 +458,7 @@ class Server(object):
|
|||||||
async def handle_client(self, reader, writer):
|
async def handle_client(self, reader, writer):
|
||||||
# writer.transport.set_write_buffer_limits(0)
|
# writer.transport.set_write_buffer_limits(0)
|
||||||
try:
|
try:
|
||||||
client = ServerClient(reader, writer, self.db, self.request_stats, self.backfill_queue, self.upstream)
|
client = ServerClient(reader, writer, self.db, self.request_stats)
|
||||||
await client.process_requests()
|
await client.process_requests()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
import traceback
|
import traceback
|
||||||
@@ -519,60 +467,23 @@ class Server(object):
|
|||||||
writer.close()
|
writer.close()
|
||||||
logger.info('Client disconnected')
|
logger.info('Client disconnected')
|
||||||
|
|
||||||
@contextmanager
|
|
||||||
def _backfill_worker(self):
|
|
||||||
async def backfill_worker_task():
|
|
||||||
client = await create_async_client(self.upstream)
|
|
||||||
try:
|
|
||||||
while True:
|
|
||||||
item = await self.backfill_queue.get()
|
|
||||||
if item is None:
|
|
||||||
self.backfill_queue.task_done()
|
|
||||||
break
|
|
||||||
method, taskhash = item
|
|
||||||
await copy_from_upstream(client, self.db, method, taskhash)
|
|
||||||
self.backfill_queue.task_done()
|
|
||||||
finally:
|
|
||||||
await client.close()
|
|
||||||
|
|
||||||
async def join_worker(worker):
|
|
||||||
await self.backfill_queue.put(None)
|
|
||||||
await worker
|
|
||||||
|
|
||||||
if self.upstream is not None:
|
|
||||||
worker = asyncio.ensure_future(backfill_worker_task())
|
|
||||||
try:
|
|
||||||
yield
|
|
||||||
finally:
|
|
||||||
self.loop.run_until_complete(join_worker(worker))
|
|
||||||
else:
|
|
||||||
yield
|
|
||||||
|
|
||||||
def serve_forever(self):
|
def serve_forever(self):
|
||||||
def signal_handler():
|
def signal_handler():
|
||||||
self.loop.stop()
|
self.loop.stop()
|
||||||
|
|
||||||
asyncio.set_event_loop(self.loop)
|
self.loop.add_signal_handler(signal.SIGTERM, signal_handler)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.backfill_queue = asyncio.Queue()
|
self.loop.run_forever()
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
pass
|
||||||
|
|
||||||
self.loop.add_signal_handler(signal.SIGTERM, signal_handler)
|
self.server.close()
|
||||||
|
self.loop.run_until_complete(self.server.wait_closed())
|
||||||
|
logger.info('Server shutting down')
|
||||||
|
|
||||||
with self._backfill_worker():
|
if self.close_loop:
|
||||||
try:
|
self.loop.close()
|
||||||
self.loop.run_forever()
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
pass
|
|
||||||
|
|
||||||
self.server.close()
|
if self._cleanup_socket is not None:
|
||||||
|
self._cleanup_socket()
|
||||||
self.loop.run_until_complete(self.server.wait_closed())
|
|
||||||
logger.info('Server shutting down')
|
|
||||||
finally:
|
|
||||||
if self.close_loop:
|
|
||||||
if sys.version_info >= (3, 6):
|
|
||||||
self.loop.run_until_complete(self.loop.shutdown_asyncgens())
|
|
||||||
self.loop.close()
|
|
||||||
|
|
||||||
if self._cleanup_socket is not None:
|
|
||||||
self._cleanup_socket()
|
|
||||||
|
|||||||
@@ -16,65 +16,44 @@ import threading
|
|||||||
import unittest
|
import unittest
|
||||||
import socket
|
import socket
|
||||||
|
|
||||||
def _run_server(server, idx):
|
|
||||||
# logging.basicConfig(level=logging.DEBUG, filename='bbhashserv.log', filemode='w',
|
|
||||||
# format='%(levelname)s %(filename)s:%(lineno)d %(message)s')
|
|
||||||
sys.stdout = open('bbhashserv-%d.log' % idx, 'w')
|
|
||||||
sys.stderr = sys.stdout
|
|
||||||
server.serve_forever()
|
|
||||||
|
|
||||||
|
class TestHashEquivalenceServer(object):
|
||||||
class HashEquivalenceTestSetup(object):
|
|
||||||
METHOD = 'TestMethod'
|
METHOD = 'TestMethod'
|
||||||
|
|
||||||
server_index = 0
|
def _run_server(self):
|
||||||
|
# logging.basicConfig(level=logging.DEBUG, filename='bbhashserv.log', filemode='w',
|
||||||
def start_server(self, dbpath=None, upstream=None):
|
# format='%(levelname)s %(filename)s:%(lineno)d %(message)s')
|
||||||
self.server_index += 1
|
self.server.serve_forever()
|
||||||
if dbpath is None:
|
|
||||||
dbpath = os.path.join(self.temp_dir.name, "db%d.sqlite" % self.server_index)
|
|
||||||
|
|
||||||
def cleanup_thread(thread):
|
|
||||||
thread.terminate()
|
|
||||||
thread.join()
|
|
||||||
|
|
||||||
server = create_server(self.get_server_addr(self.server_index), dbpath, upstream=upstream)
|
|
||||||
server.dbpath = dbpath
|
|
||||||
|
|
||||||
server.thread = multiprocessing.Process(target=_run_server, args=(server, self.server_index))
|
|
||||||
server.thread.start()
|
|
||||||
self.addCleanup(cleanup_thread, server.thread)
|
|
||||||
|
|
||||||
def cleanup_client(client):
|
|
||||||
client.close()
|
|
||||||
|
|
||||||
client = create_client(server.address)
|
|
||||||
self.addCleanup(cleanup_client, client)
|
|
||||||
|
|
||||||
return (client, server)
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
if sys.version_info < (3, 5, 0):
|
if sys.version_info < (3, 5, 0):
|
||||||
self.skipTest('Python 3.5 or later required')
|
self.skipTest('Python 3.5 or later required')
|
||||||
|
|
||||||
self.temp_dir = tempfile.TemporaryDirectory(prefix='bb-hashserv')
|
self.temp_dir = tempfile.TemporaryDirectory(prefix='bb-hashserv')
|
||||||
self.addCleanup(self.temp_dir.cleanup)
|
self.dbfile = os.path.join(self.temp_dir.name, 'db.sqlite')
|
||||||
|
|
||||||
(self.client, self.server) = self.start_server()
|
self.server = create_server(self.get_server_addr(), self.dbfile)
|
||||||
|
self.server_thread = multiprocessing.Process(target=self._run_server)
|
||||||
|
self.server_thread.start()
|
||||||
|
self.client = create_client(self.server.address)
|
||||||
|
|
||||||
def assertClientGetHash(self, client, taskhash, unihash):
|
def tearDown(self):
|
||||||
result = client.get_unihash(self.METHOD, taskhash)
|
# Shutdown server
|
||||||
self.assertEqual(result, unihash)
|
s = getattr(self, 'server', None)
|
||||||
|
if s is not None:
|
||||||
|
self.server_thread.terminate()
|
||||||
|
self.server_thread.join()
|
||||||
|
self.client.close()
|
||||||
|
self.temp_dir.cleanup()
|
||||||
|
|
||||||
|
|
||||||
class HashEquivalenceCommonTests(object):
|
|
||||||
def test_create_hash(self):
|
def test_create_hash(self):
|
||||||
# Simple test that hashes can be created
|
# Simple test that hashes can be created
|
||||||
taskhash = '35788efcb8dfb0a02659d81cf2bfd695fb30faf9'
|
taskhash = '35788efcb8dfb0a02659d81cf2bfd695fb30faf9'
|
||||||
outhash = '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f'
|
outhash = '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f'
|
||||||
unihash = 'f46d3fbb439bd9b921095da657a4de906510d2cd'
|
unihash = 'f46d3fbb439bd9b921095da657a4de906510d2cd'
|
||||||
|
|
||||||
self.assertClientGetHash(self.client, taskhash, None)
|
result = self.client.get_unihash(self.METHOD, taskhash)
|
||||||
|
self.assertIsNone(result, msg='Found unexpected task, %r' % result)
|
||||||
|
|
||||||
result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash)
|
result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash)
|
||||||
self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash')
|
self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash')
|
||||||
@@ -105,19 +84,22 @@ class HashEquivalenceCommonTests(object):
|
|||||||
unihash = '218e57509998197d570e2c98512d0105985dffc9'
|
unihash = '218e57509998197d570e2c98512d0105985dffc9'
|
||||||
self.client.report_unihash(taskhash, self.METHOD, outhash, unihash)
|
self.client.report_unihash(taskhash, self.METHOD, outhash, unihash)
|
||||||
|
|
||||||
self.assertClientGetHash(self.client, taskhash, unihash)
|
result = self.client.get_unihash(self.METHOD, taskhash)
|
||||||
|
self.assertEqual(result, unihash)
|
||||||
|
|
||||||
outhash2 = '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d'
|
outhash2 = '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d'
|
||||||
unihash2 = 'ae9a7d252735f0dafcdb10e2e02561ca3a47314c'
|
unihash2 = 'ae9a7d252735f0dafcdb10e2e02561ca3a47314c'
|
||||||
self.client.report_unihash(taskhash, self.METHOD, outhash2, unihash2)
|
self.client.report_unihash(taskhash, self.METHOD, outhash2, unihash2)
|
||||||
|
|
||||||
self.assertClientGetHash(self.client, taskhash, unihash)
|
result = self.client.get_unihash(self.METHOD, taskhash)
|
||||||
|
self.assertEqual(result, unihash)
|
||||||
|
|
||||||
outhash3 = '77623a549b5b1a31e3732dfa8fe61d7ce5d44b3370f253c5360e136b852967b4'
|
outhash3 = '77623a549b5b1a31e3732dfa8fe61d7ce5d44b3370f253c5360e136b852967b4'
|
||||||
unihash3 = '9217a7d6398518e5dc002ed58f2cbbbc78696603'
|
unihash3 = '9217a7d6398518e5dc002ed58f2cbbbc78696603'
|
||||||
self.client.report_unihash(taskhash, self.METHOD, outhash3, unihash3)
|
self.client.report_unihash(taskhash, self.METHOD, outhash3, unihash3)
|
||||||
|
|
||||||
self.assertClientGetHash(self.client, taskhash, unihash)
|
result = self.client.get_unihash(self.METHOD, taskhash)
|
||||||
|
self.assertEqual(result, unihash)
|
||||||
|
|
||||||
def test_huge_message(self):
|
def test_huge_message(self):
|
||||||
# Simple test that hashes can be created
|
# Simple test that hashes can be created
|
||||||
@@ -125,7 +107,8 @@ class HashEquivalenceCommonTests(object):
|
|||||||
outhash = '3c979c3db45c569f51ab7626a4651074be3a9d11a84b1db076f5b14f7d39db44'
|
outhash = '3c979c3db45c569f51ab7626a4651074be3a9d11a84b1db076f5b14f7d39db44'
|
||||||
unihash = '90e9bc1d1f094c51824adca7f8ea79a048d68824'
|
unihash = '90e9bc1d1f094c51824adca7f8ea79a048d68824'
|
||||||
|
|
||||||
self.assertClientGetHash(self.client, taskhash, None)
|
result = self.client.get_unihash(self.METHOD, taskhash)
|
||||||
|
self.assertIsNone(result, msg='Found unexpected task, %r' % result)
|
||||||
|
|
||||||
siginfo = "0" * (self.client.max_chunk * 4)
|
siginfo = "0" * (self.client.max_chunk * 4)
|
||||||
|
|
||||||
@@ -173,103 +156,16 @@ class HashEquivalenceCommonTests(object):
|
|||||||
|
|
||||||
self.assertFalse(failures)
|
self.assertFalse(failures)
|
||||||
|
|
||||||
def test_upstream_server(self):
|
|
||||||
# Tests upstream server support. This is done by creating two servers
|
|
||||||
# that share a database file. The downstream server has it upstream
|
|
||||||
# set to the test server, whereas the side server doesn't. This allows
|
|
||||||
# verification that the hash requests are being proxied to the upstream
|
|
||||||
# server by verifying that they appear on the downstream client, but not
|
|
||||||
# the side client. It also verifies that the results are pulled into
|
|
||||||
# the downstream database by checking that the downstream and side servers
|
|
||||||
# match after the downstream is done waiting for all backfill tasks
|
|
||||||
(down_client, down_server) = self.start_server(upstream=self.server.address)
|
|
||||||
(side_client, side_server) = self.start_server(dbpath=down_server.dbpath)
|
|
||||||
|
|
||||||
def check_hash(taskhash, unihash, old_sidehash):
|
class TestHashEquivalenceUnixServer(TestHashEquivalenceServer, unittest.TestCase):
|
||||||
nonlocal down_client
|
def get_server_addr(self):
|
||||||
nonlocal side_client
|
return "unix://" + os.path.join(self.temp_dir.name, 'sock')
|
||||||
|
|
||||||
# check upstream server
|
|
||||||
self.assertClientGetHash(self.client, taskhash, unihash)
|
|
||||||
|
|
||||||
# Hash should *not* be present on the side server
|
|
||||||
self.assertClientGetHash(side_client, taskhash, old_sidehash)
|
|
||||||
|
|
||||||
# Hash should be present on the downstream server, since it
|
|
||||||
# will defer to the upstream server. This will trigger
|
|
||||||
# the backfill in the downstream server
|
|
||||||
self.assertClientGetHash(down_client, taskhash, unihash)
|
|
||||||
|
|
||||||
# After waiting for the downstream client to finish backfilling the
|
|
||||||
# task from the upstream server, it should appear in the side server
|
|
||||||
# since the database is populated
|
|
||||||
down_client.backfill_wait()
|
|
||||||
self.assertClientGetHash(side_client, taskhash, unihash)
|
|
||||||
|
|
||||||
# Basic report
|
|
||||||
taskhash = '8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a'
|
|
||||||
outhash = 'afe240a439959ce86f5e322f8c208e1fedefea9e813f2140c81af866cc9edf7e'
|
|
||||||
unihash = '218e57509998197d570e2c98512d0105985dffc9'
|
|
||||||
self.client.report_unihash(taskhash, self.METHOD, outhash, unihash)
|
|
||||||
|
|
||||||
check_hash(taskhash, unihash, None)
|
|
||||||
|
|
||||||
# Duplicated taskhash with multiple output hashes and unihashes.
|
|
||||||
# All servers should agree with the originally reported hash
|
|
||||||
outhash2 = '0904a7fe3dc712d9fd8a74a616ddca2a825a8ee97adf0bd3fc86082c7639914d'
|
|
||||||
unihash2 = 'ae9a7d252735f0dafcdb10e2e02561ca3a47314c'
|
|
||||||
self.client.report_unihash(taskhash, self.METHOD, outhash2, unihash2)
|
|
||||||
|
|
||||||
check_hash(taskhash, unihash, unihash)
|
|
||||||
|
|
||||||
# Report an equivalent task. The sideload will originally report
|
|
||||||
# no unihash until backfilled
|
|
||||||
taskhash3 = "044c2ec8aaf480685a00ff6ff49e6162e6ad34e1"
|
|
||||||
unihash3 = "def64766090d28f627e816454ed46894bb3aab36"
|
|
||||||
self.client.report_unihash(taskhash3, self.METHOD, outhash, unihash3)
|
|
||||||
|
|
||||||
check_hash(taskhash3, unihash, None)
|
|
||||||
|
|
||||||
# Test that reporting a unihash in the downstream client isn't
|
|
||||||
# propagating to the upstream server
|
|
||||||
taskhash4 = "e3da00593d6a7fb435c7e2114976c59c5fd6d561"
|
|
||||||
outhash4 = "1cf8713e645f491eb9c959d20b5cae1c47133a292626dda9b10709857cbe688a"
|
|
||||||
unihash4 = "3b5d3d83f07f259e9086fcb422c855286e18a57d"
|
|
||||||
down_client.report_unihash(taskhash4, self.METHOD, outhash4, unihash4)
|
|
||||||
down_client.backfill_wait()
|
|
||||||
|
|
||||||
self.assertClientGetHash(down_client, taskhash4, unihash4)
|
|
||||||
self.assertClientGetHash(side_client, taskhash4, unihash4)
|
|
||||||
self.assertClientGetHash(self.client, taskhash4, None)
|
|
||||||
|
|
||||||
|
|
||||||
class TestHashEquivalenceUnixServer(HashEquivalenceTestSetup, HashEquivalenceCommonTests, unittest.TestCase):
|
class TestHashEquivalenceTCPServer(TestHashEquivalenceServer, unittest.TestCase):
|
||||||
def get_server_addr(self, server_idx):
|
def get_server_addr(self):
|
||||||
return "unix://" + os.path.join(self.temp_dir.name, 'sock%d' % server_idx)
|
|
||||||
|
|
||||||
|
|
||||||
class TestHashEquivalenceUnixServerLongPath(HashEquivalenceTestSetup, unittest.TestCase):
|
|
||||||
DEEP_DIRECTORY = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ccccccccccccccccccccccccccccccccccccccccccc"
|
|
||||||
def get_server_addr(self, server_idx):
|
|
||||||
os.makedirs(os.path.join(self.temp_dir.name, self.DEEP_DIRECTORY), exist_ok=True)
|
|
||||||
return "unix://" + os.path.join(self.temp_dir.name, self.DEEP_DIRECTORY, 'sock%d' % server_idx)
|
|
||||||
|
|
||||||
|
|
||||||
def test_long_sock_path(self):
|
|
||||||
# Simple test that hashes can be created
|
|
||||||
taskhash = '35788efcb8dfb0a02659d81cf2bfd695fb30faf9'
|
|
||||||
outhash = '2765d4a5884be49b28601445c2760c5f21e7e5c0ee2b7e3fce98fd7e5970796f'
|
|
||||||
unihash = 'f46d3fbb439bd9b921095da657a4de906510d2cd'
|
|
||||||
|
|
||||||
self.assertClientGetHash(self.client, taskhash, None)
|
|
||||||
|
|
||||||
result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash)
|
|
||||||
self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash')
|
|
||||||
|
|
||||||
|
|
||||||
class TestHashEquivalenceTCPServer(HashEquivalenceTestSetup, HashEquivalenceCommonTests, unittest.TestCase):
|
|
||||||
def get_server_addr(self, server_idx):
|
|
||||||
# Some hosts cause asyncio module to misbehave, when IPv6 is not enabled.
|
# Some hosts cause asyncio module to misbehave, when IPv6 is not enabled.
|
||||||
# If IPv6 is enabled, it should be safe to use localhost directly, in general
|
# If IPv6 is enabled, it should be safe to use localhost directly, in general
|
||||||
# case it is more reliable to resolve the IP address explicitly.
|
# case it is more reliable to resolve the IP address explicitly.
|
||||||
return socket.gethostbyname("localhost") + ":0"
|
return socket.gethostbyname("localhost") + ":0"
|
||||||
|
|
||||||
|
|||||||
@@ -1,78 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
# Copyright (C) 2020 Agilent Technologies, Inc.
|
|
||||||
# Author: Chris Laplante <chris.laplante@agilent.com>
|
|
||||||
|
|
||||||
# This sendemail-validate hook injects 'From: ' header lines into outgoing
|
|
||||||
# emails sent via 'git send-email', to ensure that accurate commit authorship
|
|
||||||
# information is present. It was created because some email servers
|
|
||||||
# (notably Microsoft Exchange / Office 360) seem to butcher outgoing patches,
|
|
||||||
# resulting in incorrect authorship.
|
|
||||||
|
|
||||||
# Current limitations:
|
|
||||||
# 1. Assumes one per patch per email
|
|
||||||
# 2. Minimal error checking
|
|
||||||
#
|
|
||||||
# Installation:
|
|
||||||
# 1. Copy to .git/hooks/sendemail-validate
|
|
||||||
# 2. chmod +x .git/hooks/sendemail-validate
|
|
||||||
|
|
||||||
|
|
||||||
import enum
|
|
||||||
import re
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
class Subject(enum.IntEnum):
|
|
||||||
NOT_SEEN = 0
|
|
||||||
CONSUMING = 1
|
|
||||||
SEEN = 2
|
|
||||||
|
|
||||||
|
|
||||||
def make_from_line():
|
|
||||||
cmd = ["git", "var", "GIT_COMMITTER_IDENT"]
|
|
||||||
proc = subprocess.run(cmd, check=True, stdout=subprocess.PIPE, universal_newlines=True)
|
|
||||||
regex = re.compile(r"^(.*>).*$")
|
|
||||||
match = regex.match(proc.stdout)
|
|
||||||
assert match is not None
|
|
||||||
return "From: {0}".format(match.group(1))
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
email = sys.argv[1]
|
|
||||||
|
|
||||||
with open(email, "r") as f:
|
|
||||||
email_lines = f.read().split("\n")
|
|
||||||
|
|
||||||
subject_seen = Subject.NOT_SEEN
|
|
||||||
first_body_line = None
|
|
||||||
for i, line in enumerate(email_lines):
|
|
||||||
if (subject_seen == Subject.NOT_SEEN) and line.startswith("Subject: "):
|
|
||||||
subject_seen = Subject.CONSUMING
|
|
||||||
continue
|
|
||||||
if subject_seen == Subject.CONSUMING:
|
|
||||||
if not line.strip():
|
|
||||||
subject_seen = Subject.SEEN
|
|
||||||
continue
|
|
||||||
if subject_seen == Subject.SEEN:
|
|
||||||
first_body_line = i
|
|
||||||
break
|
|
||||||
|
|
||||||
assert subject_seen == Subject.SEEN
|
|
||||||
assert first_body_line is not None
|
|
||||||
|
|
||||||
from_line = make_from_line()
|
|
||||||
# Only add FROM line if it is not already there
|
|
||||||
if email_lines[first_body_line] != from_line:
|
|
||||||
email_lines.insert(first_body_line, from_line)
|
|
||||||
email_lines.insert(first_body_line + 1, "")
|
|
||||||
with open(email, "w") as f:
|
|
||||||
f.write("\n".join(email_lines))
|
|
||||||
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
sys.exit(main())
|
|
||||||
|
|
||||||
2
documentation/.gitignore
vendored
2
documentation/.gitignore
vendored
@@ -1,3 +1 @@
|
|||||||
_build/
|
_build/
|
||||||
Pipfile.lock
|
|
||||||
.vscode/
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
# You can set these variables from the command line, and also
|
# You can set these variables from the command line, and also
|
||||||
# from the environment for the first two.
|
# from the environment for the first two.
|
||||||
SPHINXOPTS ?= -j auto
|
SPHINXOPTS ?=
|
||||||
SPHINXBUILD ?= sphinx-build
|
SPHINXBUILD ?= sphinx-build
|
||||||
SOURCEDIR = .
|
SOURCEDIR = .
|
||||||
BUILDDIR = _build
|
BUILDDIR = _build
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
[[source]]
|
|
||||||
name = "pypi"
|
|
||||||
url = "https://pypi.org/simple"
|
|
||||||
verify_ssl = true
|
|
||||||
|
|
||||||
[dev-packages]
|
|
||||||
|
|
||||||
[packages]
|
|
||||||
sphinx = "*"
|
|
||||||
sphinx-rtd-theme = "*"
|
|
||||||
pyyaml = "*"
|
|
||||||
|
|
||||||
[requires]
|
|
||||||
python_version = "3"
|
|
||||||
@@ -2,7 +2,7 @@ documentation
|
|||||||
=============
|
=============
|
||||||
|
|
||||||
This is the directory that contains the Yocto Project documentation. The Yocto
|
This is the directory that contains the Yocto Project documentation. The Yocto
|
||||||
Project source repositories at https://git.yoctoproject.org/cgit.cgi have two
|
Project source repositories at http://git.yoctoproject.org/cgit.cgi have two
|
||||||
instances of the "documentation" directory. You should understand each of
|
instances of the "documentation" directory. You should understand each of
|
||||||
these instances.
|
these instances.
|
||||||
|
|
||||||
@@ -47,12 +47,12 @@ Folders exist for individual manuals as follows:
|
|||||||
Each folder is self-contained regarding content and figures.
|
Each folder is self-contained regarding content and figures.
|
||||||
|
|
||||||
If you want to find HTML versions of the Yocto Project manuals on the web,
|
If you want to find HTML versions of the Yocto Project manuals on the web,
|
||||||
go to https://www.yoctoproject.org and click on the "Documentation" tab. From
|
go to http://www.yoctoproject.org and click on the "Documentation" tab. From
|
||||||
there you have access to archived documentation from previous releases, current
|
there you have access to archived documentation from previous releases, current
|
||||||
documentation for the latest release, and "Docs in Progress" for the release
|
documentation for the latest release, and "Docs in Progress" for the release
|
||||||
currently being developed.
|
currently being developed.
|
||||||
|
|
||||||
In general, the Yocto Project site (https://www.yoctoproject.org) is a great
|
In general, the Yocto Project site (http://www.yoctoproject.org) is a great
|
||||||
reference for both information and downloads.
|
reference for both information and downloads.
|
||||||
|
|
||||||
poky.yaml
|
poky.yaml
|
||||||
@@ -127,13 +127,6 @@ The resulting HTML index page will be _build/html/index.html, and you
|
|||||||
can browse your own copy of the locally generated documentation with
|
can browse your own copy of the locally generated documentation with
|
||||||
your browser.
|
your browser.
|
||||||
|
|
||||||
Alternatively, you can use Pipenv to automatically install all required
|
|
||||||
dependencies in a virtual environment:
|
|
||||||
|
|
||||||
$ cd documentation
|
|
||||||
$ pipenv install
|
|
||||||
$ pipenv run make html
|
|
||||||
|
|
||||||
Sphinx theme and CSS customization
|
Sphinx theme and CSS customization
|
||||||
==================================
|
==================================
|
||||||
|
|
||||||
@@ -228,7 +221,7 @@ content:
|
|||||||
|
|
||||||
Variables can be nested, like it was the case for DocBook:
|
Variables can be nested, like it was the case for DocBook:
|
||||||
|
|
||||||
YOCTO_HOME_URL : "https://www.yoctoproject.org"
|
YOCTO_HOME_URL : "http://www.yoctoproject.org"
|
||||||
YOCTO_DOCS_URL : "&YOCTO_HOME_URL;/docs"
|
YOCTO_DOCS_URL : "&YOCTO_HOME_URL;/docs"
|
||||||
|
|
||||||
Note directive
|
Note directive
|
||||||
@@ -325,9 +318,3 @@ References to the bitbake manual can be done like this:
|
|||||||
See the ":ref:`-D <bitbake:bitbake-user-manual/bitbake-user-manual-intro:usage and syntax>`" option
|
See the ":ref:`-D <bitbake:bitbake-user-manual/bitbake-user-manual-intro:usage and syntax>`" option
|
||||||
or
|
or
|
||||||
:term:`bitbake:BB_NUMBER_PARSE_THREADS`
|
:term:`bitbake:BB_NUMBER_PARSE_THREADS`
|
||||||
|
|
||||||
Submitting documentation changes
|
|
||||||
================================
|
|
||||||
|
|
||||||
Please see the top level README file in this repository for details of where
|
|
||||||
to send patches.
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Permission is granted to copy, distribute and/or modify this document under the
|
Permission is granted to copy, distribute and/or modify this document under the
|
||||||
terms of the `Creative Commons Attribution-Share Alike 2.0 UK: England & Wales
|
terms of the `Creative Commons Attribution-Share Alike 2.0 UK: England & Wales
|
||||||
<https://creativecommons.org/licenses/by-sa/2.0/uk/>`_ as published by Creative
|
<http://creativecommons.org/licenses/by-sa/2.0/uk/>`_ as published by Creative
|
||||||
Commons.
|
Commons.
|
||||||
|
|
||||||
To report any inaccuracies or problems with this (or any other Yocto Project)
|
To report any inaccuracies or problems with this (or any other Yocto Project)
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ build a reference embedded OS called Poky.
|
|||||||
(:term:`Build Host`) is not
|
(:term:`Build Host`) is not
|
||||||
a native Linux system, you can still perform these steps by using
|
a native Linux system, you can still perform these steps by using
|
||||||
CROss PlatformS (CROPS) and setting up a Poky container. See the
|
CROss PlatformS (CROPS) and setting up a Poky container. See the
|
||||||
:ref:`dev-manual/start:setting up to use cross platforms (crops)`
|
:ref:`dev-manual/dev-manual-start:setting up to use cross platforms (crops)`
|
||||||
section
|
section
|
||||||
in the Yocto Project Development Tasks Manual for more
|
in the Yocto Project Development Tasks Manual for more
|
||||||
information.
|
information.
|
||||||
@@ -34,12 +34,12 @@ build a reference embedded OS called Poky.
|
|||||||
compatible but not officially supported nor validated with
|
compatible but not officially supported nor validated with
|
||||||
WSLv2, if you still decide to use WSL please upgrade to WSLv2.
|
WSLv2, if you still decide to use WSL please upgrade to WSLv2.
|
||||||
|
|
||||||
See the :ref:`dev-manual/start:setting up to use windows
|
See the :ref:`dev-manual/dev-manual-start:setting up to use windows
|
||||||
subsystem for linux (wslv2)` section in the Yocto Project Development
|
subsystem for linux (wslv2)` section in the Yocto Project Development
|
||||||
Tasks Manual for more information.
|
Tasks Manual for more information.
|
||||||
|
|
||||||
If you want more conceptual or background information on the Yocto
|
If you want more conceptual or background information on the Yocto
|
||||||
Project, see the :doc:`/overview-manual/index`.
|
Project, see the :doc:`../overview-manual/overview-manual`.
|
||||||
|
|
||||||
Compatible Linux Distribution
|
Compatible Linux Distribution
|
||||||
=============================
|
=============================
|
||||||
@@ -52,10 +52,10 @@ following requirements:
|
|||||||
- Runs a supported Linux distribution (i.e. recent releases of Fedora,
|
- Runs a supported Linux distribution (i.e. recent releases of Fedora,
|
||||||
openSUSE, CentOS, Debian, or Ubuntu). For a list of Linux
|
openSUSE, CentOS, Debian, or Ubuntu). For a list of Linux
|
||||||
distributions that support the Yocto Project, see the
|
distributions that support the Yocto Project, see the
|
||||||
:ref:`ref-manual/system-requirements:supported linux distributions`
|
:ref:`ref-manual/ref-system-requirements:supported linux distributions`
|
||||||
section in the Yocto Project Reference Manual. For detailed
|
section in the Yocto Project Reference Manual. For detailed
|
||||||
information on preparing your build host, see the
|
information on preparing your build host, see the
|
||||||
:ref:`dev-manual/start:preparing the build host`
|
:ref:`dev-manual/dev-manual-start:preparing the build host`
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
-
|
-
|
||||||
@@ -68,7 +68,7 @@ following requirements:
|
|||||||
If your build host does not meet any of these three listed version
|
If your build host does not meet any of these three listed version
|
||||||
requirements, you can take steps to prepare the system so that you
|
requirements, you can take steps to prepare the system so that you
|
||||||
can still use the Yocto Project. See the
|
can still use the Yocto Project. See the
|
||||||
:ref:`ref-manual/system-requirements:required git, tar, python and gcc versions`
|
:ref:`ref-manual/ref-system-requirements:required git, tar, python and gcc versions`
|
||||||
section in the Yocto Project Reference Manual for information.
|
section in the Yocto Project Reference Manual for information.
|
||||||
|
|
||||||
Build Host Packages
|
Build Host Packages
|
||||||
@@ -85,7 +85,7 @@ distribution:
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
For host package requirements on all supported Linux distributions,
|
For host package requirements on all supported Linux distributions,
|
||||||
see the :ref:`ref-manual/system-requirements:required packages for the build host`
|
see the :ref:`ref-manual/ref-system-requirements:required packages for the build host`
|
||||||
section in the Yocto Project Reference Manual.
|
section in the Yocto Project Reference Manual.
|
||||||
|
|
||||||
Use Git to Clone Poky
|
Use Git to Clone Poky
|
||||||
@@ -145,7 +145,7 @@ branch at the time of the Yocto Project &DISTRO_REL_TAG; release.
|
|||||||
|
|
||||||
For more options and information about accessing Yocto Project related
|
For more options and information about accessing Yocto Project related
|
||||||
repositories, see the
|
repositories, see the
|
||||||
:ref:`dev-manual/start:locating yocto project source files`
|
:ref:`dev-manual/dev-manual-start:locating yocto project source files`
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
Building Your Image
|
Building Your Image
|
||||||
@@ -165,11 +165,11 @@ an entire Linux distribution, including the toolchain, from source.
|
|||||||
infrastructure resources and get that information. A good starting
|
infrastructure resources and get that information. A good starting
|
||||||
point could also be to check your web browser settings. Finally,
|
point could also be to check your web browser settings. Finally,
|
||||||
you can find more information on the
|
you can find more information on the
|
||||||
":yocto_wiki:`Working Behind a Network Proxy </Working_Behind_a_Network_Proxy>`"
|
":yocto_wiki:`Working Behind a Network Proxy </wiki/Working_Behind_a_Network_Proxy>`"
|
||||||
page of the Yocto Project Wiki.
|
page of the Yocto Project Wiki.
|
||||||
|
|
||||||
#. **Initialize the Build Environment:** From within the ``poky``
|
#. **Initialize the Build Environment:** From within the ``poky``
|
||||||
directory, run the :ref:`ref-manual/structure:\`\`oe-init-build-env\`\``
|
directory, run the :ref:`ref-manual/ref-structure:\`\`oe-init-build-env\`\``
|
||||||
environment
|
environment
|
||||||
setup script to define Yocto Project's build environment on your
|
setup script to define Yocto Project's build environment on your
|
||||||
build host.
|
build host.
|
||||||
@@ -244,9 +244,9 @@ an entire Linux distribution, including the toolchain, from source.
|
|||||||
$ bitbake core-image-sato
|
$ bitbake core-image-sato
|
||||||
|
|
||||||
For information on using the ``bitbake`` command, see the
|
For information on using the ``bitbake`` command, see the
|
||||||
:ref:`overview-manual/concepts:bitbake` section in the Yocto Project Overview and
|
:ref:`usingpoky-components-bitbake` section in the Yocto Project Overview and
|
||||||
Concepts Manual, or see the ":ref:`BitBake Command
|
Concepts Manual, or see the ":ref:`BitBake Command
|
||||||
<bitbake:bitbake-user-manual/bitbake-user-manual-intro:the bitbake command>`" section in the BitBake User Manual.
|
<bitbake:bitbake-user-manual-command>`" section in the BitBake User Manual.
|
||||||
|
|
||||||
#. **Simulate Your Image Using QEMU:** Once this particular image is
|
#. **Simulate Your Image Using QEMU:** Once this particular image is
|
||||||
built, you can start QEMU, which is a Quick EMUlator that ships with
|
built, you can start QEMU, which is a Quick EMUlator that ships with
|
||||||
@@ -257,7 +257,7 @@ an entire Linux distribution, including the toolchain, from source.
|
|||||||
$ runqemu qemux86-64
|
$ runqemu qemux86-64
|
||||||
|
|
||||||
If you want to learn more about running QEMU, see the
|
If you want to learn more about running QEMU, see the
|
||||||
:ref:`dev-manual/qemu:using the quick emulator (qemu)` chapter in
|
:ref:`dev-manual/dev-manual-qemu:using the quick emulator (qemu)` chapter in
|
||||||
the Yocto Project Development Tasks Manual.
|
the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
#. **Exit QEMU:** Exit QEMU by either clicking on the shutdown icon or by typing
|
#. **Exit QEMU:** Exit QEMU by either clicking on the shutdown icon or by typing
|
||||||
@@ -346,7 +346,7 @@ Follow these steps to add a hardware layer:
|
|||||||
|
|
||||||
You can find
|
You can find
|
||||||
more information on adding layers in the
|
more information on adding layers in the
|
||||||
:ref:`dev-manual/common-tasks:adding a layer using the \`\`bitbake-layers\`\` script`
|
:ref:`dev-manual/dev-manual-common-tasks:adding a layer using the \`\`bitbake-layers\`\` script`
|
||||||
section.
|
section.
|
||||||
|
|
||||||
Completing these steps has added the ``meta-altera`` layer to your Yocto
|
Completing these steps has added the ``meta-altera`` layer to your Yocto
|
||||||
@@ -381,7 +381,7 @@ The following commands run the tool to create a layer named
|
|||||||
|
|
||||||
For more information
|
For more information
|
||||||
on layers and how to create them, see the
|
on layers and how to create them, see the
|
||||||
:ref:`dev-manual/common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`
|
:ref:`dev-manual/dev-manual-common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
Where To Go Next
|
Where To Go Next
|
||||||
@@ -397,14 +397,14 @@ information including the website, wiki pages, and user manuals:
|
|||||||
Development Community into which you can tap.
|
Development Community into which you can tap.
|
||||||
|
|
||||||
- **Developer Screencast:** The `Getting Started with the Yocto Project -
|
- **Developer Screencast:** The `Getting Started with the Yocto Project -
|
||||||
New Developer Screencast Tutorial <https://vimeo.com/36450321>`__
|
New Developer Screencast Tutorial <http://vimeo.com/36450321>`__
|
||||||
provides a 30-minute video created for users unfamiliar with the
|
provides a 30-minute video created for users unfamiliar with the
|
||||||
Yocto Project but familiar with Linux build hosts. While this
|
Yocto Project but familiar with Linux build hosts. While this
|
||||||
screencast is somewhat dated, the introductory and fundamental
|
screencast is somewhat dated, the introductory and fundamental
|
||||||
concepts are useful for the beginner.
|
concepts are useful for the beginner.
|
||||||
|
|
||||||
- **Yocto Project Overview and Concepts Manual:** The
|
- **Yocto Project Overview and Concepts Manual:** The
|
||||||
:doc:`/overview-manual/index` is a great
|
:doc:`../overview-manual/overview-manual` is a great
|
||||||
place to start to learn about the Yocto Project. This manual
|
place to start to learn about the Yocto Project. This manual
|
||||||
introduces you to the Yocto Project and its development environment.
|
introduces you to the Yocto Project and its development environment.
|
||||||
The manual also provides conceptual information for various aspects
|
The manual also provides conceptual information for various aspects
|
||||||
@@ -44,7 +44,7 @@ machine or platform name, which is "bsp_root_name" in the above form.
|
|||||||
To help understand the BSP layer concept, consider the BSPs that the
|
To help understand the BSP layer concept, consider the BSPs that the
|
||||||
Yocto Project supports and provides with each release. You can see the
|
Yocto Project supports and provides with each release. You can see the
|
||||||
layers in the
|
layers in the
|
||||||
:ref:`overview-manual/development-environment:yocto project source repositories`
|
:ref:`overview-manual/overview-manual-development-environment:yocto project source repositories`
|
||||||
through
|
through
|
||||||
a web interface at :yocto_git:`/`. If you go to that interface,
|
a web interface at :yocto_git:`/`. If you go to that interface,
|
||||||
you will find a list of repositories under "Yocto Metadata Layers".
|
you will find a list of repositories under "Yocto Metadata Layers".
|
||||||
@@ -72,7 +72,7 @@ For information on typical BSP development workflow, see the
|
|||||||
section. For more
|
section. For more
|
||||||
information on how to set up a local copy of source files from a Git
|
information on how to set up a local copy of source files from a Git
|
||||||
repository, see the
|
repository, see the
|
||||||
:ref:`dev-manual/start:locating yocto project source files`
|
:ref:`dev-manual/dev-manual-start:locating yocto project source files`
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
The BSP layer's base directory (``meta-bsp_root_name``) is the root
|
The BSP layer's base directory (``meta-bsp_root_name``) is the root
|
||||||
@@ -81,7 +81,7 @@ directory of that Layer. This directory is what you add to the
|
|||||||
``conf/bblayers.conf`` file found in your
|
``conf/bblayers.conf`` file found in your
|
||||||
:term:`Build Directory`, which is
|
:term:`Build Directory`, which is
|
||||||
established after you run the OpenEmbedded build environment setup
|
established after you run the OpenEmbedded build environment setup
|
||||||
script (i.e. :ref:`ref-manual/structure:\`\`oe-init-build-env\`\``).
|
script (i.e. :ref:`ref-manual/ref-structure:\`\`oe-init-build-env\`\``).
|
||||||
Adding the root directory allows the :term:`OpenEmbedded Build System`
|
Adding the root directory allows the :term:`OpenEmbedded Build System`
|
||||||
to recognize the BSP
|
to recognize the BSP
|
||||||
layer and from it build an image. Here is an example: ::
|
layer and from it build an image. Here is an example: ::
|
||||||
@@ -128,7 +128,7 @@ you want to work with, such as: ::
|
|||||||
and so on.
|
and so on.
|
||||||
|
|
||||||
For more information on layers, see the
|
For more information on layers, see the
|
||||||
":ref:`dev-manual/common-tasks:understanding and creating layers`"
|
":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
|
||||||
section of the Yocto Project Development Tasks Manual.
|
section of the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
Preparing Your Build Host to Work With BSP Layers
|
Preparing Your Build Host to Work With BSP Layers
|
||||||
@@ -146,7 +146,7 @@ section.
|
|||||||
:ref:`bsp-guide/bsp:example filesystem layout` section.
|
:ref:`bsp-guide/bsp:example filesystem layout` section.
|
||||||
|
|
||||||
#. *Set Up the Build Environment:* Be sure you are set up to use BitBake
|
#. *Set Up the Build Environment:* Be sure you are set up to use BitBake
|
||||||
in a shell. See the ":ref:`dev-manual/start:preparing the build host`"
|
in a shell. See the ":ref:`dev-manual/dev-manual-start:preparing the build host`"
|
||||||
section in the Yocto Project Development Tasks Manual for information on how
|
section in the Yocto Project Development Tasks Manual for information on how
|
||||||
to get a build host ready that is either a native Linux machine or a machine
|
to get a build host ready that is either a native Linux machine or a machine
|
||||||
that uses CROPS.
|
that uses CROPS.
|
||||||
@@ -154,10 +154,10 @@ section.
|
|||||||
#. *Clone the poky Repository:* You need to have a local copy of the
|
#. *Clone the poky Repository:* You need to have a local copy of the
|
||||||
Yocto Project :term:`Source Directory` (i.e. a local
|
Yocto Project :term:`Source Directory` (i.e. a local
|
||||||
``poky`` repository). See the
|
``poky`` repository). See the
|
||||||
":ref:`dev-manual/start:cloning the \`\`poky\`\` repository`" and
|
":ref:`dev-manual/dev-manual-start:cloning the \`\`poky\`\` repository`" and
|
||||||
possibly the
|
possibly the
|
||||||
":ref:`dev-manual/start:checking out by branch in poky`" or
|
":ref:`dev-manual/dev-manual-start:checking out by branch in poky`" or
|
||||||
":ref:`dev-manual/start:checking out by tag in poky`"
|
":ref:`dev-manual/dev-manual-start:checking out by tag in poky`"
|
||||||
sections
|
sections
|
||||||
all in the Yocto Project Development Tasks Manual for information on
|
all in the Yocto Project Development Tasks Manual for information on
|
||||||
how to clone the ``poky`` repository and check out the appropriate
|
how to clone the ``poky`` repository and check out the appropriate
|
||||||
@@ -172,7 +172,8 @@ section.
|
|||||||
#. *Optionally Clone the meta-intel BSP Layer:* If your hardware is
|
#. *Optionally Clone the meta-intel BSP Layer:* If your hardware is
|
||||||
based on current Intel CPUs and devices, you can leverage this BSP
|
based on current Intel CPUs and devices, you can leverage this BSP
|
||||||
layer. For details on the ``meta-intel`` BSP layer, see the layer's
|
layer. For details on the ``meta-intel`` BSP layer, see the layer's
|
||||||
:yocto_git:`README </meta-intel/tree/README>` file.
|
`README <http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel/tree/README>`__
|
||||||
|
file.
|
||||||
|
|
||||||
#. *Navigate to Your Source Directory:* Typically, you set up the
|
#. *Navigate to Your Source Directory:* Typically, you set up the
|
||||||
``meta-intel`` Git repository inside the :term:`Source Directory` (e.g.
|
``meta-intel`` Git repository inside the :term:`Source Directory` (e.g.
|
||||||
@@ -205,7 +206,7 @@ section.
|
|||||||
|
|
||||||
To see the available branch names in a cloned repository, use the ``git
|
To see the available branch names in a cloned repository, use the ``git
|
||||||
branch -al`` command. See the
|
branch -al`` command. See the
|
||||||
":ref:`dev-manual/start:checking out by branch in poky`"
|
":ref:`dev-manual/dev-manual-start:checking out by branch in poky`"
|
||||||
section in the Yocto Project Development Tasks Manual for more
|
section in the Yocto Project Development Tasks Manual for more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
@@ -229,7 +230,7 @@ section.
|
|||||||
|
|
||||||
#. *Initialize the Build Environment:* While in the root directory of
|
#. *Initialize the Build Environment:* While in the root directory of
|
||||||
the Source Directory (i.e. ``poky``), run the
|
the Source Directory (i.e. ``poky``), run the
|
||||||
:ref:`ref-manual/structure:\`\`oe-init-build-env\`\`` environment
|
:ref:`ref-manual/ref-structure:\`\`oe-init-build-env\`\`` environment
|
||||||
setup script to define the OpenEmbedded build environment on your
|
setup script to define the OpenEmbedded build environment on your
|
||||||
build host. ::
|
build host. ::
|
||||||
|
|
||||||
@@ -240,6 +241,8 @@ section.
|
|||||||
the script runs, your current working directory is set to the ``build``
|
the script runs, your current working directory is set to the ``build``
|
||||||
directory.
|
directory.
|
||||||
|
|
||||||
|
.. _bsp-filelayout:
|
||||||
|
|
||||||
Example Filesystem Layout
|
Example Filesystem Layout
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
@@ -253,7 +256,7 @@ developers can use this structure with other build systems besides the
|
|||||||
OpenEmbedded build system. It is also intended that it will be be simple
|
OpenEmbedded build system. It is also intended that it will be be simple
|
||||||
to extract information and convert it to other formats if required. The
|
to extract information and convert it to other formats if required. The
|
||||||
OpenEmbedded build system, through its standard :ref:`layers mechanism
|
OpenEmbedded build system, through its standard :ref:`layers mechanism
|
||||||
<overview-manual/yp-intro:the yocto project layer model>`, can
|
<overview-manual/overview-manual-yp-intro:the yocto project layer model>`, can
|
||||||
directly accept the format described as a layer. The BSP layer captures
|
directly accept the format described as a layer. The BSP layer captures
|
||||||
all the hardware-specific details in one place using a standard format,
|
all the hardware-specific details in one place using a standard format,
|
||||||
which is useful for any person wishing to use the hardware platform
|
which is useful for any person wishing to use the hardware platform
|
||||||
@@ -448,6 +451,8 @@ the :yocto_git:`Source Respositories <>`:
|
|||||||
|
|
||||||
The following sections describe each part of the proposed BSP format.
|
The following sections describe each part of the proposed BSP format.
|
||||||
|
|
||||||
|
.. _bsp-filelayout-license:
|
||||||
|
|
||||||
License Files
|
License Files
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
@@ -463,9 +468,11 @@ requirements are handled with the ``COPYING.MIT`` file.
|
|||||||
Licensing files can be MIT, BSD, GPLv*, and so forth. These files are
|
Licensing files can be MIT, BSD, GPLv*, and so forth. These files are
|
||||||
recommended for the BSP but are optional and totally up to the BSP
|
recommended for the BSP but are optional and totally up to the BSP
|
||||||
developer. For information on how to maintain license compliance, see
|
developer. For information on how to maintain license compliance, see
|
||||||
the ":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`"
|
the ":ref:`dev-manual/dev-manual-common-tasks:maintaining open source license compliance during your product's lifecycle`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
|
.. _bsp-filelayout-readme:
|
||||||
|
|
||||||
README File
|
README File
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
@@ -481,6 +488,8 @@ At a minimum, the ``README`` file must contain a list of dependencies,
|
|||||||
such as the names of any other layers on which the BSP depends and the
|
such as the names of any other layers on which the BSP depends and the
|
||||||
name of the BSP maintainer with his or her contact information.
|
name of the BSP maintainer with his or her contact information.
|
||||||
|
|
||||||
|
.. _bsp-filelayout-readme-sources:
|
||||||
|
|
||||||
README.sources File
|
README.sources File
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
@@ -500,6 +509,8 @@ used to generate the images that ship with the BSP.
|
|||||||
If the BSP's ``binary`` directory is missing or the directory has no images, an
|
If the BSP's ``binary`` directory is missing or the directory has no images, an
|
||||||
existing ``README.sources`` file is meaningless and usually does not exist.
|
existing ``README.sources`` file is meaningless and usually does not exist.
|
||||||
|
|
||||||
|
.. _bsp-filelayout-binary:
|
||||||
|
|
||||||
Pre-built User Binaries
|
Pre-built User Binaries
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
@@ -523,6 +534,8 @@ hardware. Additionally, the
|
|||||||
present to locate the sources used to build the images and provide
|
present to locate the sources used to build the images and provide
|
||||||
information on the Metadata.
|
information on the Metadata.
|
||||||
|
|
||||||
|
.. _bsp-filelayout-layer:
|
||||||
|
|
||||||
Layer Configuration File
|
Layer Configuration File
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
@@ -573,6 +586,8 @@ This file simply makes :term:`BitBake` aware of the recipes and configuration
|
|||||||
directories. The file must exist so that the OpenEmbedded build system can
|
directories. The file must exist so that the OpenEmbedded build system can
|
||||||
recognize the BSP.
|
recognize the BSP.
|
||||||
|
|
||||||
|
.. _bsp-filelayout-machine:
|
||||||
|
|
||||||
Hardware Configuration Options
|
Hardware Configuration Options
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
@@ -589,7 +604,7 @@ filenames correspond to the values to which users have set the
|
|||||||
|
|
||||||
These files define things such as the kernel package to use
|
These files define things such as the kernel package to use
|
||||||
(:term:`PREFERRED_PROVIDER` of
|
(:term:`PREFERRED_PROVIDER` of
|
||||||
:ref:`virtual/kernel <dev-manual/common-tasks:using virtual providers>`),
|
:ref:`virtual/kernel <dev-manual/dev-manual-common-tasks:using virtual providers>`),
|
||||||
the hardware drivers to include in different types of images, any
|
the hardware drivers to include in different types of images, any
|
||||||
special software components that are needed, any bootloader information,
|
special software components that are needed, any bootloader information,
|
||||||
and also any special image format requirements.
|
and also any special image format requirements.
|
||||||
@@ -611,6 +626,8 @@ configuration file. For example, the Raspberry Pi BSP
|
|||||||
|
|
||||||
include conf/machine/include/rpi-base.inc
|
include conf/machine/include/rpi-base.inc
|
||||||
|
|
||||||
|
.. _bsp-filelayout-misc-recipes:
|
||||||
|
|
||||||
Miscellaneous BSP-Specific Recipe Files
|
Miscellaneous BSP-Specific Recipe Files
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
@@ -641,6 +658,8 @@ directory. Here is the ``machconfig`` file for the Raspberry Pi BSP: ::
|
|||||||
``meta/recipes-bsp/formfactor/formfactor_0.0.bb``, which is found in
|
``meta/recipes-bsp/formfactor/formfactor_0.0.bb``, which is found in
|
||||||
the :term:`Source Directory`.
|
the :term:`Source Directory`.
|
||||||
|
|
||||||
|
.. _bsp-filelayout-recipes-graphics:
|
||||||
|
|
||||||
Display Support Files
|
Display Support Files
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
@@ -652,6 +671,8 @@ This optional directory contains recipes for the BSP if it has special
|
|||||||
requirements for graphics support. All files that are needed for the BSP
|
requirements for graphics support. All files that are needed for the BSP
|
||||||
to support a display are kept here.
|
to support a display are kept here.
|
||||||
|
|
||||||
|
.. _bsp-filelayout-kernel:
|
||||||
|
|
||||||
Linux Kernel Configuration
|
Linux Kernel Configuration
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
@@ -693,7 +714,7 @@ BSP settings to the kernel, thus configuring the kernel for your
|
|||||||
particular BSP.
|
particular BSP.
|
||||||
|
|
||||||
You can find more information on what your append file should contain in
|
You can find more information on what your append file should contain in
|
||||||
the ":ref:`kernel-dev/common:creating the append file`" section
|
the ":ref:`kernel-dev/kernel-dev-common:creating the append file`" section
|
||||||
in the Yocto Project Linux Kernel Development Manual.
|
in the Yocto Project Linux Kernel Development Manual.
|
||||||
|
|
||||||
An alternate scenario is when you create your own kernel recipe for the
|
An alternate scenario is when you create your own kernel recipe for the
|
||||||
@@ -726,7 +747,7 @@ workflow.
|
|||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
#. *Set up Your Host Development System to Support Development Using the
|
#. *Set up Your Host Development System to Support Development Using the
|
||||||
Yocto Project*: See the ":ref:`dev-manual/start:preparing the build host`"
|
Yocto Project*: See the ":ref:`dev-manual/dev-manual-start:preparing the build host`"
|
||||||
section in the Yocto Project Development Tasks Manual for options on how to
|
section in the Yocto Project Development Tasks Manual for options on how to
|
||||||
get a system ready to use the Yocto Project.
|
get a system ready to use the Yocto Project.
|
||||||
|
|
||||||
@@ -754,9 +775,9 @@ workflow.
|
|||||||
are kept. The key point for a layer is that it is an isolated area
|
are kept. The key point for a layer is that it is an isolated area
|
||||||
that contains all the relevant information for the project that the
|
that contains all the relevant information for the project that the
|
||||||
OpenEmbedded build system knows about. For more information on
|
OpenEmbedded build system knows about. For more information on
|
||||||
layers, see the ":ref:`overview-manual/yp-intro:the yocto project layer model`"
|
layers, see the ":ref:`overview-manual/overview-manual-yp-intro:the yocto project layer model`"
|
||||||
section in the Yocto Project Overview and Concepts Manual. You can also
|
section in the Yocto Project Overview and Concepts Manual. You can also
|
||||||
reference the ":ref:`dev-manual/common-tasks:understanding and creating layers`"
|
reference the ":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
|
||||||
section in the Yocto Project Development Tasks Manual. For more
|
section in the Yocto Project Development Tasks Manual. For more
|
||||||
information on BSP layers, see the ":ref:`bsp-guide/bsp:bsp layers`"
|
information on BSP layers, see the ":ref:`bsp-guide/bsp:bsp layers`"
|
||||||
section.
|
section.
|
||||||
@@ -815,7 +836,7 @@ workflow.
|
|||||||
key configuration files are configured appropriately: the
|
key configuration files are configured appropriately: the
|
||||||
``conf/local.conf`` and the ``conf/bblayers.conf`` file. You must
|
``conf/local.conf`` and the ``conf/bblayers.conf`` file. You must
|
||||||
make the OpenEmbedded build system aware of your new layer. See the
|
make the OpenEmbedded build system aware of your new layer. See the
|
||||||
":ref:`dev-manual/common-tasks:enabling your layer`"
|
":ref:`dev-manual/dev-manual-common-tasks:enabling your layer`"
|
||||||
section in the Yocto Project Development Tasks Manual for information
|
section in the Yocto Project Development Tasks Manual for information
|
||||||
on how to let the build system know about your new layer.
|
on how to let the build system know about your new layer.
|
||||||
|
|
||||||
@@ -826,7 +847,7 @@ workflow.
|
|||||||
|
|
||||||
The build process supports several types of images to satisfy
|
The build process supports several types of images to satisfy
|
||||||
different needs. See the
|
different needs. See the
|
||||||
":ref:`ref-manual/images:Images`" chapter in the Yocto
|
":ref:`ref-manual/ref-images:Images`" chapter in the Yocto
|
||||||
Project Reference Manual for information on supported images.
|
Project Reference Manual for information on supported images.
|
||||||
|
|
||||||
Requirements and Recommendations for Released BSPs
|
Requirements and Recommendations for Released BSPs
|
||||||
@@ -846,14 +867,14 @@ Before looking at BSP requirements, you should consider the following:
|
|||||||
layer that can be added to the Yocto Project. For guidelines on
|
layer that can be added to the Yocto Project. For guidelines on
|
||||||
creating a layer that meets these base requirements, see the
|
creating a layer that meets these base requirements, see the
|
||||||
":ref:`bsp-guide/bsp:bsp layers`" section in this manual and the
|
":ref:`bsp-guide/bsp:bsp layers`" section in this manual and the
|
||||||
":ref:`dev-manual/common-tasks:understanding and creating layers`"
|
":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- The requirements in this section apply regardless of how you package
|
- The requirements in this section apply regardless of how you package
|
||||||
a BSP. You should consult the packaging and distribution guidelines
|
a BSP. You should consult the packaging and distribution guidelines
|
||||||
for your specific release process. For an example of packaging and
|
for your specific release process. For an example of packaging and
|
||||||
distribution requirements, see the ":yocto_wiki:`Third Party BSP Release
|
distribution requirements, see the ":yocto_wiki:`Third Party BSP Release
|
||||||
Process </Third_Party_BSP_Release_Process>`"
|
Process </wiki/Third_Party_BSP_Release_Process>`"
|
||||||
wiki page.
|
wiki page.
|
||||||
|
|
||||||
- The requirements for the BSP as it is made available to a developer
|
- The requirements for the BSP as it is made available to a developer
|
||||||
@@ -894,20 +915,20 @@ Yocto Project:
|
|||||||
``recipes-*`` subdirectories specific to the recipe's function, or
|
``recipes-*`` subdirectories specific to the recipe's function, or
|
||||||
within a subdirectory containing a set of closely-related recipes.
|
within a subdirectory containing a set of closely-related recipes.
|
||||||
The recipes themselves should follow the general guidelines for
|
The recipes themselves should follow the general guidelines for
|
||||||
recipes used in the Yocto Project found in the ":oe_wiki:`OpenEmbedded
|
recipes used in the Yocto Project found in the "`OpenEmbedded Style
|
||||||
Style Guide </Styleguide>`".
|
Guide <http://openembedded.org/wiki/Styleguide>`__".
|
||||||
|
|
||||||
- *License File:* You must include a license file in the
|
- *License File:* You must include a license file in the
|
||||||
``meta-bsp_root_name`` directory. This license covers the BSP
|
``meta-bsp_root_name`` directory. This license covers the BSP
|
||||||
Metadata as a whole. You must specify which license to use since no
|
Metadata as a whole. You must specify which license to use since no
|
||||||
default license exists when one is not specified. See the
|
default license exists when one is not specified. See the
|
||||||
:yocto_git:`COPYING.MIT </meta-raspberrypi/tree/COPYING.MIT>`
|
:yocto_git:`COPYING.MIT </cgit.cgi/meta-raspberrypi/tree/COPYING.MIT>`
|
||||||
file for the Raspberry Pi BSP in the ``meta-raspberrypi`` BSP layer
|
file for the Raspberry Pi BSP in the ``meta-raspberrypi`` BSP layer
|
||||||
as an example.
|
as an example.
|
||||||
|
|
||||||
- *README File:* You must include a ``README`` file in the
|
- *README File:* You must include a ``README`` file in the
|
||||||
``meta-bsp_root_name`` directory. See the
|
``meta-bsp_root_name`` directory. See the
|
||||||
:yocto_git:`README.md </meta-raspberrypi/tree/README.md>`
|
:yocto_git:`README.md </cgit.cgi/meta-raspberrypi/tree/README.md>`
|
||||||
file for the Raspberry Pi BSP in the ``meta-raspberrypi`` BSP layer
|
file for the Raspberry Pi BSP in the ``meta-raspberrypi`` BSP layer
|
||||||
as an example.
|
as an example.
|
||||||
|
|
||||||
@@ -928,7 +949,7 @@ Yocto Project:
|
|||||||
- The name and contact information for the BSP layer maintainer.
|
- The name and contact information for the BSP layer maintainer.
|
||||||
This is the person to whom patches and questions should be sent.
|
This is the person to whom patches and questions should be sent.
|
||||||
For information on how to find the right person, see the
|
For information on how to find the right person, see the
|
||||||
":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
|
":ref:`dev-manual/dev-manual-common-tasks:submitting a change to the yocto project`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- Instructions on how to build the BSP using the BSP layer.
|
- Instructions on how to build the BSP using the BSP layer.
|
||||||
@@ -1013,7 +1034,7 @@ If you plan on customizing a recipe for a particular BSP, you need to do
|
|||||||
the following:
|
the following:
|
||||||
|
|
||||||
- Create a ``*.bbappend`` file for the modified recipe. For information on using
|
- Create a ``*.bbappend`` file for the modified recipe. For information on using
|
||||||
append files, see the ":ref:`dev-manual/common-tasks:using
|
append files, see the ":ref:`dev-manual/dev-manual-common-tasks:using
|
||||||
.bbappend files in your layer`" section in the Yocto Project Development
|
.bbappend files in your layer`" section in the Yocto Project Development
|
||||||
Tasks Manual.
|
Tasks Manual.
|
||||||
|
|
||||||
@@ -1118,7 +1139,7 @@ list describes them in order of preference:
|
|||||||
Specifying the matching license string signifies that you agree to
|
Specifying the matching license string signifies that you agree to
|
||||||
the license. Thus, the build system can build the corresponding
|
the license. Thus, the build system can build the corresponding
|
||||||
recipe and include the component in the image. See the
|
recipe and include the component in the image. See the
|
||||||
":ref:`dev-manual/common-tasks:enabling commercially licensed recipes`"
|
":ref:`dev-manual/dev-manual-common-tasks:enabling commercially licensed recipes`"
|
||||||
section in the Yocto Project Development Tasks Manual for details on
|
section in the Yocto Project Development Tasks Manual for details on
|
||||||
how to use these variables.
|
how to use these variables.
|
||||||
|
|
||||||
@@ -1170,7 +1191,7 @@ Use these steps to create a BSP layer:
|
|||||||
``create-layer`` subcommand to create a new general layer. For
|
``create-layer`` subcommand to create a new general layer. For
|
||||||
instructions on how to create a general layer using the
|
instructions on how to create a general layer using the
|
||||||
``bitbake-layers`` script, see the
|
``bitbake-layers`` script, see the
|
||||||
":ref:`dev-manual/common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
|
":ref:`dev-manual/dev-manual-common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- *Create a Layer Configuration File:* Every layer needs a layer
|
- *Create a Layer Configuration File:* Every layer needs a layer
|
||||||
@@ -1180,16 +1201,16 @@ Use these steps to create a BSP layer:
|
|||||||
:yocto_git:`Source Repositories <>`. To get examples of what you need
|
:yocto_git:`Source Repositories <>`. To get examples of what you need
|
||||||
in your configuration file, locate a layer (e.g. "meta-ti") and
|
in your configuration file, locate a layer (e.g. "meta-ti") and
|
||||||
examine the
|
examine the
|
||||||
:yocto_git:`local.conf </meta-ti/tree/conf/layer.conf>`
|
:yocto_git:`local.conf </cgit/cgit.cgi/meta-ti/tree/conf/layer.conf>`
|
||||||
file.
|
file.
|
||||||
|
|
||||||
- *Create a Machine Configuration File:* Create a
|
- *Create a Machine Configuration File:* Create a
|
||||||
``conf/machine/bsp_root_name.conf`` file. See
|
``conf/machine/bsp_root_name.conf`` file. See
|
||||||
:yocto_git:`meta-yocto-bsp/conf/machine </poky/tree/meta-yocto-bsp/conf/machine>`
|
:yocto_git:`meta-yocto-bsp/conf/machine </cgit/cgit.cgi/poky/tree/meta-yocto-bsp/conf/machine>`
|
||||||
for sample ``bsp_root_name.conf`` files. Other samples such as
|
for sample ``bsp_root_name.conf`` files. Other samples such as
|
||||||
:yocto_git:`meta-ti </meta-ti/tree/conf/machine>`
|
:yocto_git:`meta-ti </cgit/cgit.cgi/meta-ti/tree/conf/machine>`
|
||||||
and
|
and
|
||||||
:yocto_git:`meta-freescale </meta-freescale/tree/conf/machine>`
|
:yocto_git:`meta-freescale </cgit/cgit.cgi/meta-freescale/tree/conf/machine>`
|
||||||
exist from other vendors that have more specific machine and tuning
|
exist from other vendors that have more specific machine and tuning
|
||||||
examples.
|
examples.
|
||||||
|
|
||||||
@@ -1197,13 +1218,13 @@ Use these steps to create a BSP layer:
|
|||||||
``recipes-kernel/linux`` by either using a kernel append file or a
|
``recipes-kernel/linux`` by either using a kernel append file or a
|
||||||
new custom kernel recipe file (e.g. ``yocto-linux_4.12.bb``). The BSP
|
new custom kernel recipe file (e.g. ``yocto-linux_4.12.bb``). The BSP
|
||||||
layers mentioned in the previous step also contain different kernel
|
layers mentioned in the previous step also contain different kernel
|
||||||
examples. See the ":ref:`kernel-dev/common:modifying an existing recipe`"
|
examples. See the ":ref:`kernel-dev/kernel-dev-common:modifying an existing recipe`"
|
||||||
section in the Yocto Project Linux Kernel Development Manual for
|
section in the Yocto Project Linux Kernel Development Manual for
|
||||||
information on how to create a custom kernel.
|
information on how to create a custom kernel.
|
||||||
|
|
||||||
The remainder of this section provides a description of the Yocto
|
The remainder of this section provides a description of the Yocto
|
||||||
Project reference BSP for Beaglebone, which resides in the
|
Project reference BSP for Beaglebone, which resides in the
|
||||||
:yocto_git:`meta-yocto-bsp </poky/tree/meta-yocto-bsp>`
|
:yocto_git:`meta-yocto-bsp </cgit/cgit.cgi/poky/tree/meta-yocto-bsp>`
|
||||||
layer.
|
layer.
|
||||||
|
|
||||||
BSP Layer Configuration Example
|
BSP Layer Configuration Example
|
||||||
@@ -1230,7 +1251,7 @@ configuration files is to examine various files for BSP from the
|
|||||||
:yocto_git:`Source Repositories <>`.
|
:yocto_git:`Source Repositories <>`.
|
||||||
|
|
||||||
For a detailed description of this particular layer configuration file,
|
For a detailed description of this particular layer configuration file,
|
||||||
see ":ref:`step 3 <dev-manual/common-tasks:creating your own layer>`"
|
see ":ref:`step 3 <dev-manual/dev-manual-common-tasks:creating your own layer>`"
|
||||||
in the discussion that describes how to create layers in the Yocto
|
in the discussion that describes how to create layers in the Yocto
|
||||||
Project Development Tasks Manual.
|
Project Development Tasks Manual.
|
||||||
|
|
||||||
@@ -1305,7 +1326,7 @@ the example reference machine configuration file for the BeagleBone
|
|||||||
development boards. Realize that much more can be defined as part of a
|
development boards. Realize that much more can be defined as part of a
|
||||||
machine's configuration file. In general, you can learn about related
|
machine's configuration file. In general, you can learn about related
|
||||||
variables that this example does not have by locating the variables in
|
variables that this example does not have by locating the variables in
|
||||||
the ":ref:`ref-manual/variables:variables glossary`" in the Yocto
|
the ":ref:`ref-manual/ref-variables:variables glossary`" in the Yocto
|
||||||
Project Reference Manual.
|
Project Reference Manual.
|
||||||
|
|
||||||
- :term:`PREFERRED_PROVIDER_virtual/xserver <PREFERRED_PROVIDER>`:
|
- :term:`PREFERRED_PROVIDER_virtual/xserver <PREFERRED_PROVIDER>`:
|
||||||
@@ -1360,7 +1381,7 @@ Project Reference Manual.
|
|||||||
`JFFS2 <https://en.wikipedia.org/wiki/JFFS2>`__ image.
|
`JFFS2 <https://en.wikipedia.org/wiki/JFFS2>`__ image.
|
||||||
|
|
||||||
- :term:`WKS_FILE`: The location of
|
- :term:`WKS_FILE`: The location of
|
||||||
the :ref:`Wic kickstart <ref-manual/kickstart:openembedded kickstart (\`\`.wks\`\`) reference>` file used
|
the :ref:`Wic kickstart <ref-manual/ref-kickstart:openembedded kickstart (\`\`.wks\`\`) reference>` file used
|
||||||
by the OpenEmbedded build system to create a partitioned image
|
by the OpenEmbedded build system to create a partitioned image
|
||||||
(image.wic).
|
(image.wic).
|
||||||
|
|
||||||
@@ -1412,7 +1433,7 @@ Project Reference Manual.
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
For more information on how the SPL variables are used, see the
|
For more information on how the SPL variables are used, see the
|
||||||
:yocto_git:`u-boot.inc </poky/tree/meta/recipes-bsp/u-boot/u-boot.inc>`
|
:yocto_git:`u-boot.inc </cgit/cgit.cgi/poky/tree/meta/recipes-bsp/u-boot/u-boot.inc>`
|
||||||
include file.
|
include file.
|
||||||
|
|
||||||
- :term:`UBOOT_* <UBOOT_ENTRYPOINT>`: Defines
|
- :term:`UBOOT_* <UBOOT_ENTRYPOINT>`: Defines
|
||||||
@@ -1456,7 +1477,7 @@ The ``meta-yocto-bsp/recipes-kernel/linux`` directory in the layer contains
|
|||||||
metadata used to build the kernel. In this case, a kernel append file
|
metadata used to build the kernel. In this case, a kernel append file
|
||||||
(i.e. ``linux-yocto_5.0.bbappend``) is used to override an established
|
(i.e. ``linux-yocto_5.0.bbappend``) is used to override an established
|
||||||
kernel recipe (i.e. ``linux-yocto_5.0.bb``), which is located in
|
kernel recipe (i.e. ``linux-yocto_5.0.bb``), which is located in
|
||||||
:yocto_git:`/poky/tree/meta/recipes-kernel/linux`.
|
:yocto_git:`/cgit/cgit.cgi/poky/tree/meta/recipes-kernel/linux`.
|
||||||
|
|
||||||
Following is the contents of the append file: ::
|
Following is the contents of the append file: ::
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,27 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import datetime
|
import datetime
|
||||||
|
try:
|
||||||
|
import yaml
|
||||||
|
except ImportError:
|
||||||
|
sys.stderr.write("The Yocto Project Sphinx documentation requires PyYAML.\
|
||||||
|
\nPlease make sure to install pyyaml python package.\n")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
current_version = "dev"
|
# current_version = "dev"
|
||||||
|
# bitbake_version = "" # Leave empty for development branch
|
||||||
|
# Obtain versions from poky.yaml instead
|
||||||
|
with open("poky.yaml") as data:
|
||||||
|
buff = data.read()
|
||||||
|
subst_vars = yaml.safe_load(buff)
|
||||||
|
if "DOCCONF_VERSION" not in subst_vars:
|
||||||
|
sys.stderr.write("Please set DOCCONF_VERSION in poky.yaml")
|
||||||
|
sys.exit(1)
|
||||||
|
current_version = subst_vars["DOCCONF_VERSION"]
|
||||||
|
if "BITBAKE_SERIES" not in subst_vars:
|
||||||
|
sys.stderr.write("Please set BITBAKE_SERIES in poky.yaml")
|
||||||
|
sys.exit(1)
|
||||||
|
bitbake_version = subst_vars["BITBAKE_SERIES"]
|
||||||
|
|
||||||
# String used in sidebar
|
# String used in sidebar
|
||||||
version = 'Version: ' + current_version
|
version = 'Version: ' + current_version
|
||||||
@@ -33,9 +52,6 @@ author = 'The Linux Foundation'
|
|||||||
|
|
||||||
# -- General configuration ---------------------------------------------------
|
# -- General configuration ---------------------------------------------------
|
||||||
|
|
||||||
# Prevent building with an outdated version of sphinx
|
|
||||||
needs_sphinx = "3.1"
|
|
||||||
|
|
||||||
# to load local extension from the folder 'sphinx'
|
# to load local extension from the folder 'sphinx'
|
||||||
sys.path.insert(0, os.path.abspath('sphinx'))
|
sys.path.insert(0, os.path.abspath('sphinx'))
|
||||||
|
|
||||||
@@ -71,25 +87,21 @@ rst_prolog = """
|
|||||||
|
|
||||||
# external links and substitutions
|
# external links and substitutions
|
||||||
extlinks = {
|
extlinks = {
|
||||||
'yocto_home': ('https://www.yoctoproject.org%s', None),
|
'yocto_home': ('https://yoctoproject.org%s', None),
|
||||||
'yocto_wiki': ('https://wiki.yoctoproject.org/wiki%s', None),
|
'yocto_wiki': ('https://wiki.yoctoproject.org%s', None),
|
||||||
'yocto_dl': ('https://downloads.yoctoproject.org%s', None),
|
'yocto_dl': ('https://downloads.yoctoproject.org%s', None),
|
||||||
'yocto_lists': ('https://lists.yoctoproject.org%s', None),
|
'yocto_lists': ('https://lists.yoctoproject.org%s', None),
|
||||||
'yocto_bugs': ('https://bugzilla.yoctoproject.org%s', None),
|
'yocto_bugs': ('https://bugzilla.yoctoproject.org%s', None),
|
||||||
'yocto_ab': ('https://autobuilder.yoctoproject.org%s', None),
|
'yocto_ab': ('https://autobuilder.yoctoproject.org%s', None),
|
||||||
'yocto_docs': ('https://docs.yoctoproject.org%s', None),
|
'yocto_docs': ('https://docs.yoctoproject.org%s', None),
|
||||||
'yocto_git': ('https://git.yoctoproject.org/cgit/cgit.cgi%s', None),
|
'yocto_git': ('https://git.yoctoproject.org%s', None),
|
||||||
'oe_home': ('https://www.openembedded.org%s', None),
|
'oe_home': ('https://www.openembedded.org%s', None),
|
||||||
'oe_lists': ('https://lists.openembedded.org%s', None),
|
'oe_lists': ('https://lists.openembedded.org%s', None),
|
||||||
'oe_git': ('https://git.openembedded.org%s', None),
|
|
||||||
'oe_wiki': ('https://www.openembedded.org/wiki%s', None),
|
|
||||||
'oe_layerindex': ('https://layers.openembedded.org%s', None),
|
|
||||||
'oe_layer': ('https://layers.openembedded.org/layerindex/branch/master/layer%s', None),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Intersphinx config to use cross reference with Bitbake user manual
|
# Intersphinx config to use cross reference with Bitbake user manual
|
||||||
intersphinx_mapping = {
|
intersphinx_mapping = {
|
||||||
'bitbake': ('https://docs.yoctoproject.org/bitbake/', None)
|
'bitbake': ('https://docs.yoctoproject.org/bitbake/1.48', None)
|
||||||
}
|
}
|
||||||
|
|
||||||
# -- Options for HTML output -------------------------------------------------
|
# -- Options for HTML output -------------------------------------------------
|
||||||
@@ -131,8 +143,3 @@ html_last_updated_fmt = '%b %d, %Y'
|
|||||||
|
|
||||||
# Remove the trailing 'dot' in section numbers
|
# Remove the trailing 'dot' in section numbers
|
||||||
html_secnumber_suffix = " "
|
html_secnumber_suffix = " "
|
||||||
|
|
||||||
latex_elements = {
|
|
||||||
'passoptionstopackages': '\PassOptionsToPackage{bookmarksdepth=5}{hyperref}',
|
|
||||||
'preamble': '\setcounter{tocdepth}{2}',
|
|
||||||
}
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,8 @@
|
|||||||
The Yocto Project Development Tasks Manual
|
The Yocto Project Development Tasks Manual
|
||||||
******************************************
|
******************************************
|
||||||
|
|
||||||
|
.. _dev-welcome:
|
||||||
|
|
||||||
Welcome
|
Welcome
|
||||||
=======
|
=======
|
||||||
|
|
||||||
@@ -31,13 +33,13 @@ This manual provides the following:
|
|||||||
This manual does not provide the following:
|
This manual does not provide the following:
|
||||||
|
|
||||||
- Redundant Step-by-step Instructions: For example, the
|
- Redundant Step-by-step Instructions: For example, the
|
||||||
:doc:`/sdk-manual/index` manual contains detailed
|
:doc:`../sdk-manual/sdk-manual` manual contains detailed
|
||||||
instructions on how to install an SDK, which is used to develop
|
instructions on how to install an SDK, which is used to develop
|
||||||
applications for target hardware.
|
applications for target hardware.
|
||||||
|
|
||||||
- Reference or Conceptual Material: This type of material resides in an
|
- Reference or Conceptual Material: This type of material resides in an
|
||||||
appropriate reference manual. For example, system variables are
|
appropriate reference manual. For example, system variables are
|
||||||
documented in the :doc:`/ref-manual/index`.
|
documented in the :doc:`../ref-manual/ref-manual`.
|
||||||
|
|
||||||
- Detailed Public Information Not Specific to the Yocto Project: For
|
- Detailed Public Information Not Specific to the Yocto Project: For
|
||||||
example, exhaustive information on how to use the Source Control
|
example, exhaustive information on how to use the Source Control
|
||||||
@@ -52,7 +54,7 @@ supplemental information is recommended for full comprehension. For
|
|||||||
introductory information on the Yocto Project, see the
|
introductory information on the Yocto Project, see the
|
||||||
:yocto_home:`Yocto Project Website <>`. If you want to build an image with no
|
:yocto_home:`Yocto Project Website <>`. If you want to build an image with no
|
||||||
knowledge of Yocto Project as a way of quickly testing it out, see the
|
knowledge of Yocto Project as a way of quickly testing it out, see the
|
||||||
:doc:`/brief-yoctoprojectqs/index` document.
|
:doc:`../brief-yoctoprojectqs/brief-yoctoprojectqs` document.
|
||||||
|
|
||||||
For a comprehensive list of links and other documentation, see the
|
For a comprehensive list of links and other documentation, see the
|
||||||
":ref:`ref-manual/resources:links and related documentation`"
|
":ref:`ref-manual/resources:links and related documentation`"
|
||||||
@@ -10,6 +10,8 @@ This chapter provides both procedures that show you how to use the Quick
|
|||||||
EMUlator (QEMU) and other QEMU information helpful for development
|
EMUlator (QEMU) and other QEMU information helpful for development
|
||||||
purposes.
|
purposes.
|
||||||
|
|
||||||
|
.. _qemu-dev-overview:
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
========
|
========
|
||||||
|
|
||||||
@@ -37,6 +39,8 @@ following references:
|
|||||||
- `Documentation <https://wiki.qemu.org/Manual>`__\ *:* The QEMU user
|
- `Documentation <https://wiki.qemu.org/Manual>`__\ *:* The QEMU user
|
||||||
manual.
|
manual.
|
||||||
|
|
||||||
|
.. _qemu-running-qemu:
|
||||||
|
|
||||||
Running QEMU
|
Running QEMU
|
||||||
============
|
============
|
||||||
|
|
||||||
@@ -46,7 +50,7 @@ available. Follow these general steps to run QEMU:
|
|||||||
|
|
||||||
1. *Install QEMU:* QEMU is made available with the Yocto Project a
|
1. *Install QEMU:* QEMU is made available with the Yocto Project a
|
||||||
number of ways. One method is to install a Software Development Kit
|
number of ways. One method is to install a Software Development Kit
|
||||||
(SDK). See ":ref:`sdk-manual/intro:the qemu emulator`" section in the
|
(SDK). See ":ref:`sdk-manual/sdk-intro:the qemu emulator`" section in the
|
||||||
Yocto Project Application Development and the Extensible Software
|
Yocto Project Application Development and the Extensible Software
|
||||||
Development Kit (eSDK) manual for information on how to install QEMU.
|
Development Kit (eSDK) manual for information on how to install QEMU.
|
||||||
|
|
||||||
@@ -77,11 +81,11 @@ available. Follow these general steps to run QEMU:
|
|||||||
your :term:`Build Directory`.
|
your :term:`Build Directory`.
|
||||||
|
|
||||||
- If you have not built an image, you can go to the
|
- If you have not built an image, you can go to the
|
||||||
:yocto_dl:`machines/qemu </releases/yocto/yocto-&DISTRO;/machines/qemu/>` area and download a
|
:yocto_dl:`machines/qemu </releases/yocto/yocto-3.1.2/machines/qemu/>` area and download a
|
||||||
pre-built image that matches your architecture and can be run on
|
pre-built image that matches your architecture and can be run on
|
||||||
QEMU.
|
QEMU.
|
||||||
|
|
||||||
See the ":ref:`sdk-manual/appendix-obtain:extracting the root filesystem`"
|
See the ":ref:`sdk-manual/sdk-appendix-obtain:extracting the root filesystem`"
|
||||||
section in the Yocto Project Application Development and the
|
section in the Yocto Project Application Development and the
|
||||||
Extensible Software Development Kit (eSDK) manual for information on
|
Extensible Software Development Kit (eSDK) manual for information on
|
||||||
how to extract a root filesystem.
|
how to extract a root filesystem.
|
||||||
@@ -183,6 +187,8 @@ allow input of absolute coordinates. This default means that the mouse
|
|||||||
can enter and leave the main window without the grab taking effect
|
can enter and leave the main window without the grab taking effect
|
||||||
leading to a better user experience.
|
leading to a better user experience.
|
||||||
|
|
||||||
|
.. _qemu-running-under-a-network-file-system-nfs-server:
|
||||||
|
|
||||||
Running Under a Network File System (NFS) Server
|
Running Under a Network File System (NFS) Server
|
||||||
================================================
|
================================================
|
||||||
|
|
||||||
@@ -237,6 +243,8 @@ using an NFS server.
|
|||||||
|
|
||||||
runqemu-export-rootfs restart file-system-location
|
runqemu-export-rootfs restart file-system-location
|
||||||
|
|
||||||
|
.. _qemu-kvm-cpu-compatibility:
|
||||||
|
|
||||||
QEMU CPU Compatibility Under KVM
|
QEMU CPU Compatibility Under KVM
|
||||||
================================
|
================================
|
||||||
|
|
||||||
@@ -258,6 +266,8 @@ directory. This setting specifies a ``-cpu`` option passed into QEMU in
|
|||||||
the ``runqemu`` script. Running ``qemu -cpu help`` returns a list of
|
the ``runqemu`` script. Running ``qemu -cpu help`` returns a list of
|
||||||
available supported CPU types.
|
available supported CPU types.
|
||||||
|
|
||||||
|
.. _qemu-dev-performance:
|
||||||
|
|
||||||
QEMU Performance
|
QEMU Performance
|
||||||
================
|
================
|
||||||
|
|
||||||
@@ -310,6 +320,8 @@ present, the toolchain is also automatically used.
|
|||||||
Server <#qemu-running-under-a-network-file-system-nfs-server>`__"
|
Server <#qemu-running-under-a-network-file-system-nfs-server>`__"
|
||||||
section for more information.
|
section for more information.
|
||||||
|
|
||||||
|
.. _qemu-dev-command-line-syntax:
|
||||||
|
|
||||||
QEMU Command-Line Syntax
|
QEMU Command-Line Syntax
|
||||||
========================
|
========================
|
||||||
|
|
||||||
@@ -365,6 +377,8 @@ Following is the command-line help output for the ``runqemu`` command:
|
|||||||
runqemu path/to/<image>-<machine>.wic
|
runqemu path/to/<image>-<machine>.wic
|
||||||
runqemu path/to/<image>-<machine>.wic.vmdk
|
runqemu path/to/<image>-<machine>.wic.vmdk
|
||||||
|
|
||||||
|
.. _qemu-dev-runqemu-command-line-options:
|
||||||
|
|
||||||
``runqemu`` Command-Line Options
|
``runqemu`` Command-Line Options
|
||||||
================================
|
================================
|
||||||
|
|
||||||
@@ -7,10 +7,12 @@ Setting Up to Use the Yocto Project
|
|||||||
This chapter provides guidance on how to prepare to use the Yocto
|
This chapter provides guidance on how to prepare to use the Yocto
|
||||||
Project. You can learn about creating a team environment to develop
|
Project. You can learn about creating a team environment to develop
|
||||||
using the Yocto Project, how to set up a :ref:`build
|
using the Yocto Project, how to set up a :ref:`build
|
||||||
host <dev-manual/start:preparing the build host>`, how to locate
|
host <dev-manual/dev-manual-start:preparing the build host>`, how to locate
|
||||||
Yocto Project source repositories, and how to create local Git
|
Yocto Project source repositories, and how to create local Git
|
||||||
repositories.
|
repositories.
|
||||||
|
|
||||||
|
.. _usingpoky-changes-collaborate:
|
||||||
|
|
||||||
Creating a Team Development Environment
|
Creating a Team Development Environment
|
||||||
=======================================
|
=======================================
|
||||||
|
|
||||||
@@ -78,7 +80,7 @@ particular working environment and set of practices.
|
|||||||
developing under the control of an SCM system that is compatible
|
developing under the control of an SCM system that is compatible
|
||||||
with the OpenEmbedded build system is advisable. Of all of the SCMs
|
with the OpenEmbedded build system is advisable. Of all of the SCMs
|
||||||
supported by BitBake, the Yocto Project team strongly recommends using
|
supported by BitBake, the Yocto Project team strongly recommends using
|
||||||
:ref:`overview-manual/development-environment:git`.
|
:ref:`overview-manual/overview-manual-development-environment:git`.
|
||||||
Git is a distributed system
|
Git is a distributed system
|
||||||
that is easy to back up, allows you to work remotely, and then
|
that is easy to back up, allows you to work remotely, and then
|
||||||
connects back to the infrastructure.
|
connects back to the infrastructure.
|
||||||
@@ -165,7 +167,7 @@ particular working environment and set of practices.
|
|||||||
- Highlights when commits break the build.
|
- Highlights when commits break the build.
|
||||||
|
|
||||||
- Populates an :ref:`sstate
|
- Populates an :ref:`sstate
|
||||||
cache <overview-manual/concepts:shared state cache>` from which
|
cache <overview-manual/overview-manual-concepts:shared state cache>` from which
|
||||||
developers can pull rather than requiring local builds.
|
developers can pull rather than requiring local builds.
|
||||||
|
|
||||||
- Allows commit hook triggers, which trigger builds when commits
|
- Allows commit hook triggers, which trigger builds when commits
|
||||||
@@ -218,17 +220,17 @@ particular working environment and set of practices.
|
|||||||
some best practices exist within the Yocto Project development
|
some best practices exist within the Yocto Project development
|
||||||
environment. Consider the following:
|
environment. Consider the following:
|
||||||
|
|
||||||
- Use :ref:`overview-manual/development-environment:git` as the source control
|
- Use :ref:`overview-manual/overview-manual-development-environment:git` as the source control
|
||||||
system.
|
system.
|
||||||
|
|
||||||
- Maintain your Metadata in layers that make sense for your
|
- Maintain your Metadata in layers that make sense for your
|
||||||
situation. See the ":ref:`overview-manual/yp-intro:the yocto project layer model`"
|
situation. See the ":ref:`overview-manual/overview-manual-yp-intro:the yocto project layer model`"
|
||||||
section in the Yocto Project Overview and Concepts Manual and the
|
section in the Yocto Project Overview and Concepts Manual and the
|
||||||
":ref:`dev-manual/common-tasks:understanding and creating layers`"
|
":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
|
||||||
section for more information on layers.
|
section for more information on layers.
|
||||||
|
|
||||||
- Separate the project's Metadata and code by using separate Git
|
- Separate the project's Metadata and code by using separate Git
|
||||||
repositories. See the ":ref:`overview-manual/development-environment:yocto project source repositories`"
|
repositories. See the ":ref:`overview-manual/overview-manual-development-environment:yocto project source repositories`"
|
||||||
section in the Yocto Project Overview and Concepts Manual for
|
section in the Yocto Project Overview and Concepts Manual for
|
||||||
information on these repositories. See the "`Locating Yocto
|
information on these repositories. See the "`Locating Yocto
|
||||||
Project Source Files <#locating-yocto-project-source-files>`__"
|
Project Source Files <#locating-yocto-project-source-files>`__"
|
||||||
@@ -248,17 +250,19 @@ particular working environment and set of practices.
|
|||||||
project to fix bugs or add features. If you do submit patches,
|
project to fix bugs or add features. If you do submit patches,
|
||||||
follow the project commit guidelines for writing good commit
|
follow the project commit guidelines for writing good commit
|
||||||
messages. See the
|
messages. See the
|
||||||
":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
|
":ref:`dev-manual/dev-manual-common-tasks:submitting a change to the yocto project`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
- Send changes to the core sooner than later as others are likely
|
- Send changes to the core sooner than later as others are likely
|
||||||
to run into the same issues. For some guidance on mailing lists
|
to run into the same issues. For some guidance on mailing lists
|
||||||
to use, see the list in the
|
to use, see the list in the
|
||||||
":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
|
":ref:`dev-manual/dev-manual-common-tasks:submitting a change to the yocto project`"
|
||||||
section. For a description
|
section. For a description
|
||||||
of the available mailing lists, see the ":ref:`resources-mailinglist`" section in
|
of the available mailing lists, see the ":ref:`resources-mailinglist`" section in
|
||||||
the Yocto Project Reference Manual.
|
the Yocto Project Reference Manual.
|
||||||
|
|
||||||
|
.. _dev-preparing-the-build-host:
|
||||||
|
|
||||||
Preparing the Build Host
|
Preparing the Build Host
|
||||||
========================
|
========================
|
||||||
|
|
||||||
@@ -288,7 +292,7 @@ Package (BSP) development and kernel development:
|
|||||||
section in the Yocto Project Board Support Package (BSP) Developer's
|
section in the Yocto Project Board Support Package (BSP) Developer's
|
||||||
Guide.
|
Guide.
|
||||||
|
|
||||||
- *Kernel Development:* See the ":ref:`kernel-dev/common:preparing the build host to work on the kernel`"
|
- *Kernel Development:* See the ":ref:`kernel-dev/kernel-dev-common:preparing the build host to work on the kernel`"
|
||||||
section in the Yocto Project Linux Kernel Development Manual.
|
section in the Yocto Project Linux Kernel Development Manual.
|
||||||
|
|
||||||
Setting Up a Native Linux Host
|
Setting Up a Native Linux Host
|
||||||
@@ -305,7 +309,7 @@ Project Build Host:
|
|||||||
validation and their status, see the ":ref:`Supported Linux
|
validation and their status, see the ":ref:`Supported Linux
|
||||||
Distributions <detailed-supported-distros>`"
|
Distributions <detailed-supported-distros>`"
|
||||||
section in the Yocto Project Reference Manual and the wiki page at
|
section in the Yocto Project Reference Manual and the wiki page at
|
||||||
:yocto_wiki:`Distribution Support </Distribution_Support>`.
|
:yocto_wiki:`Distribution Support </wiki/Distribution_Support>`.
|
||||||
|
|
||||||
2. *Have Enough Free Memory:* Your system should have at least 50 Gbytes
|
2. *Have Enough Free Memory:* Your system should have at least 50 Gbytes
|
||||||
of free disk space for building images.
|
of free disk space for building images.
|
||||||
@@ -325,7 +329,7 @@ Project Build Host:
|
|||||||
If your build host does not meet any of these three listed version
|
If your build host does not meet any of these three listed version
|
||||||
requirements, you can take steps to prepare the system so that you
|
requirements, you can take steps to prepare the system so that you
|
||||||
can still use the Yocto Project. See the
|
can still use the Yocto Project. See the
|
||||||
":ref:`ref-manual/system-requirements:required git, tar, python and gcc versions`"
|
":ref:`ref-manual/ref-system-requirements:required git, tar, python and gcc versions`"
|
||||||
section in the Yocto Project Reference Manual for information.
|
section in the Yocto Project Reference Manual for information.
|
||||||
|
|
||||||
4. *Install Development Host Packages:* Required development host
|
4. *Install Development Host Packages:* Required development host
|
||||||
@@ -334,20 +338,22 @@ Project Build Host:
|
|||||||
is large if you want to be able to cover all cases.
|
is large if you want to be able to cover all cases.
|
||||||
|
|
||||||
For lists of required packages for all scenarios, see the
|
For lists of required packages for all scenarios, see the
|
||||||
":ref:`ref-manual/system-requirements:required packages for the build host`"
|
":ref:`ref-manual/ref-system-requirements:required packages for the build host`"
|
||||||
section in the Yocto Project Reference Manual.
|
section in the Yocto Project Reference Manual.
|
||||||
|
|
||||||
Once you have completed the previous steps, you are ready to continue
|
Once you have completed the previous steps, you are ready to continue
|
||||||
using a given development path on your native Linux machine. If you are
|
using a given development path on your native Linux machine. If you are
|
||||||
going to use BitBake, see the
|
going to use BitBake, see the
|
||||||
":ref:`dev-manual/start:cloning the \`\`poky\`\` repository`"
|
":ref:`dev-manual/dev-manual-start:cloning the \`\`poky\`\` repository`"
|
||||||
section. If you are going
|
section. If you are going
|
||||||
to use the Extensible SDK, see the ":doc:`/sdk-manual/extensible`" Chapter in the Yocto
|
to use the Extensible SDK, see the ":doc:`../sdk-manual/sdk-extensible`" Chapter in the Yocto
|
||||||
Project Application Development and the Extensible Software Development
|
Project Application Development and the Extensible Software Development
|
||||||
Kit (eSDK) manual. If you want to work on the kernel, see the :doc:`/kernel-dev/index`. If you are going to use
|
Kit (eSDK) manual. If you want to work on the kernel, see the :doc:`../kernel-dev/kernel-dev`. If you are going to use
|
||||||
Toaster, see the ":doc:`/toaster-manual/setup-and-use`"
|
Toaster, see the ":doc:`../toaster-manual/toaster-manual-setup-and-use`"
|
||||||
section in the Toaster User Manual.
|
section in the Toaster User Manual.
|
||||||
|
|
||||||
|
.. _setting-up-to-use-crops:
|
||||||
|
|
||||||
Setting Up to Use CROss PlatformS (CROPS)
|
Setting Up to Use CROss PlatformS (CROPS)
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
|
|
||||||
@@ -440,14 +446,16 @@ as your Yocto Project build host:
|
|||||||
Once you have a container set up, everything is in place to develop just
|
Once you have a container set up, everything is in place to develop just
|
||||||
as if you were running on a native Linux machine. If you are going to
|
as if you were running on a native Linux machine. If you are going to
|
||||||
use the Poky container, see the
|
use the Poky container, see the
|
||||||
":ref:`dev-manual/start:cloning the \`\`poky\`\` repository`"
|
":ref:`dev-manual/dev-manual-start:cloning the \`\`poky\`\` repository`"
|
||||||
section. If you are going to use the Extensible SDK container, see the
|
section. If you are going to use the Extensible SDK container, see the
|
||||||
":doc:`/sdk-manual/extensible`" Chapter in the Yocto
|
":doc:`../sdk-manual/sdk-extensible`" Chapter in the Yocto
|
||||||
Project Application Development and the Extensible Software Development
|
Project Application Development and the Extensible Software Development
|
||||||
Kit (eSDK) manual. If you are going to use the Toaster container, see
|
Kit (eSDK) manual. If you are going to use the Toaster container, see
|
||||||
the ":doc:`/toaster-manual/setup-and-use`"
|
the ":doc:`../toaster-manual/toaster-manual-setup-and-use`"
|
||||||
section in the Toaster User Manual.
|
section in the Toaster User Manual.
|
||||||
|
|
||||||
|
.. _setting-up-to-use-wsl:
|
||||||
|
|
||||||
Setting Up to Use Windows Subsystem For Linux (WSLv2)
|
Setting Up to Use Windows Subsystem For Linux (WSLv2)
|
||||||
-----------------------------------------------------
|
-----------------------------------------------------
|
||||||
|
|
||||||
@@ -557,10 +565,10 @@ your Yocto Project build host:
|
|||||||
|
|
||||||
Once you have WSLv2 set up, everything is in place to develop just as if
|
Once you have WSLv2 set up, everything is in place to develop just as if
|
||||||
you were running on a native Linux machine. If you are going to use the
|
you were running on a native Linux machine. If you are going to use the
|
||||||
Extensible SDK container, see the ":doc:`/sdk-manual/extensible`" Chapter in the Yocto
|
Extensible SDK container, see the ":doc:`../sdk-manual/sdk-extensible`" Chapter in the Yocto
|
||||||
Project Application Development and the Extensible Software Development
|
Project Application Development and the Extensible Software Development
|
||||||
Kit (eSDK) manual. If you are going to use the Toaster container, see
|
Kit (eSDK) manual. If you are going to use the Toaster container, see
|
||||||
the ":doc:`/toaster-manual/setup-and-use`"
|
the ":doc:`../toaster-manual/toaster-manual-setup-and-use`"
|
||||||
section in the Toaster User Manual.
|
section in the Toaster User Manual.
|
||||||
|
|
||||||
Locating Yocto Project Source Files
|
Locating Yocto Project Source Files
|
||||||
@@ -572,21 +580,21 @@ files you'll need to work with the Yocto Project.
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
- For concepts and introductory information about Git as it is used
|
- For concepts and introductory information about Git as it is used
|
||||||
in the Yocto Project, see the ":ref:`overview-manual/development-environment:git`"
|
in the Yocto Project, see the ":ref:`overview-manual/overview-manual-development-environment:git`"
|
||||||
section in the Yocto Project Overview and Concepts Manual.
|
section in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
- For concepts on Yocto Project source repositories, see the
|
- For concepts on Yocto Project source repositories, see the
|
||||||
":ref:`overview-manual/development-environment:yocto project source repositories`"
|
":ref:`overview-manual/overview-manual-development-environment:yocto project source repositories`"
|
||||||
section in the Yocto Project Overview and Concepts Manual."
|
section in the Yocto Project Overview and Concepts Manual."
|
||||||
|
|
||||||
Accessing Source Repositories
|
Accessing Source Repositories
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
Working from a copy of the upstream :ref:`dev-manual/start:accessing source repositories` is the
|
Working from a copy of the upstream :ref:`dev-manual/dev-manual-start:accessing source repositories` is the
|
||||||
preferred method for obtaining and using a Yocto Project release. You
|
preferred method for obtaining and using a Yocto Project release. You
|
||||||
can view the Yocto Project Source Repositories at
|
can view the Yocto Project Source Repositories at
|
||||||
:yocto_git:`/`. In particular, you can find the ``poky``
|
:yocto_git:`/`. In particular, you can find the ``poky``
|
||||||
repository at :yocto_git:`/poky`.
|
repository at :yocto_git:`/cgit.cgi/poky`.
|
||||||
|
|
||||||
Use the following procedure to locate the latest upstream copy of the
|
Use the following procedure to locate the latest upstream copy of the
|
||||||
``poky`` Git repository:
|
``poky`` Git repository:
|
||||||
@@ -600,12 +608,12 @@ Use the following procedure to locate the latest upstream copy of the
|
|||||||
|
|
||||||
3. *Find the URL Used to Clone the Repository:* At the bottom of the
|
3. *Find the URL Used to Clone the Repository:* At the bottom of the
|
||||||
page, note the URL used to clone that repository
|
page, note the URL used to clone that repository
|
||||||
(e.g. :yocto_git:`/poky`).
|
(e.g. :yocto_git:`/cgit.cgi/poky`).
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
For information on cloning a repository, see the
|
For information on cloning a repository, see the
|
||||||
":ref:`dev-manual/start:cloning the \`\`poky\`\` repository`" section.
|
":ref:`dev-manual/dev-manual-start:cloning the \`\`poky\`\` repository`" section.
|
||||||
|
|
||||||
Accessing Index of Releases
|
Accessing Index of Releases
|
||||||
---------------------------
|
---------------------------
|
||||||
@@ -678,7 +686,7 @@ Releases <#accessing-index-of-releases>`__" section.
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
For a "map" of Yocto Project releases to version numbers, see the
|
For a "map" of Yocto Project releases to version numbers, see the
|
||||||
:yocto_wiki:`Releases </Releases>` wiki page.
|
:yocto_wiki:`Releases </wiki/Releases>` wiki page.
|
||||||
|
|
||||||
You can use the "RELEASE ARCHIVE" link to reveal a menu of all Yocto
|
You can use the "RELEASE ARCHIVE" link to reveal a menu of all Yocto
|
||||||
Project releases.
|
Project releases.
|
||||||
@@ -722,7 +730,7 @@ files is referred to as the :term:`Source Directory`
|
|||||||
in the Yocto Project documentation.
|
in the Yocto Project documentation.
|
||||||
|
|
||||||
The preferred method of creating your Source Directory is by using
|
The preferred method of creating your Source Directory is by using
|
||||||
:ref:`overview-manual/development-environment:git` to clone a local copy of the upstream
|
:ref:`overview-manual/overview-manual-development-environment:git` to clone a local copy of the upstream
|
||||||
``poky`` repository. Working from a cloned copy of the upstream
|
``poky`` repository. Working from a cloned copy of the upstream
|
||||||
repository allows you to contribute back into the Yocto Project or to
|
repository allows you to contribute back into the Yocto Project or to
|
||||||
simply work with the latest software on a development branch. Because
|
simply work with the latest software on a development branch. Because
|
||||||
@@ -801,7 +809,7 @@ and then specifically check out that development branch.
|
|||||||
1. *Switch to the Poky Directory:* If you have a local poky Git
|
1. *Switch to the Poky Directory:* If you have a local poky Git
|
||||||
repository, switch to that directory. If you do not have the local
|
repository, switch to that directory. If you do not have the local
|
||||||
copy of poky, see the
|
copy of poky, see the
|
||||||
":ref:`dev-manual/start:cloning the \`\`poky\`\` repository`"
|
":ref:`dev-manual/dev-manual-start:cloning the \`\`poky\`\` repository`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
2. *Determine Existing Branch Names:*
|
2. *Determine Existing Branch Names:*
|
||||||
@@ -847,6 +855,8 @@ and then specifically check out that development branch.
|
|||||||
master
|
master
|
||||||
* &DISTRO_NAME_NO_CAP;
|
* &DISTRO_NAME_NO_CAP;
|
||||||
|
|
||||||
|
.. _checkout-out-by-tag-in-poky:
|
||||||
|
|
||||||
Checking Out by Tag in Poky
|
Checking Out by Tag in Poky
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
@@ -864,7 +874,7 @@ similar to checking out by branch name except you use tag names.
|
|||||||
1. *Switch to the Poky Directory:* If you have a local poky Git
|
1. *Switch to the Poky Directory:* If you have a local poky Git
|
||||||
repository, switch to that directory. If you do not have the local
|
repository, switch to that directory. If you do not have the local
|
||||||
copy of poky, see the
|
copy of poky, see the
|
||||||
":ref:`dev-manual/start:cloning the \`\`poky\`\` repository`"
|
":ref:`dev-manual/dev-manual-start:cloning the \`\`poky\`\` repository`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
2. *Fetch the Tag Names:* To checkout the branch based on a tag name,
|
2. *Fetch the Tag Names:* To checkout the branch based on a tag name,
|
||||||
@@ -10,10 +10,10 @@ Yocto Project Development Tasks Manual
|
|||||||
:caption: Table of Contents
|
:caption: Table of Contents
|
||||||
:numbered:
|
:numbered:
|
||||||
|
|
||||||
intro
|
dev-manual-intro
|
||||||
start
|
dev-manual-start
|
||||||
common-tasks
|
dev-manual-common-tasks
|
||||||
qemu
|
dev-manual-qemu
|
||||||
history
|
history
|
||||||
|
|
||||||
.. include:: /boilerplate.rst
|
.. include:: /boilerplate.rst
|
||||||
@@ -14,7 +14,7 @@ Welcome to the Yocto Project Documentation
|
|||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
:caption: Introduction and Overview
|
:caption: Introduction and Overview
|
||||||
|
|
||||||
Quick Build <brief-yoctoprojectqs/index>
|
Quick Build <brief-yoctoprojectqs/brief-yoctoprojectqs>
|
||||||
what-i-wish-id-known
|
what-i-wish-id-known
|
||||||
transitioning-to-a-custom-environment
|
transitioning-to-a-custom-environment
|
||||||
Yocto Project Software Overview <https://www.yoctoproject.org/software-overview/>
|
Yocto Project Software Overview <https://www.yoctoproject.org/software-overview/>
|
||||||
@@ -25,15 +25,15 @@ Welcome to the Yocto Project Documentation
|
|||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
:caption: Manuals
|
:caption: Manuals
|
||||||
|
|
||||||
Overview and Concepts Manual <overview-manual/index>
|
Overview and Concepts Manual <overview-manual/overview-manual>
|
||||||
Reference Manual <ref-manual/index>
|
Reference Manual <ref-manual/ref-manual>
|
||||||
Board Support Package (BSP) Developer's guide <bsp-guide/index>
|
Board Support Package (BSP) Developer's guide <bsp-guide/bsp-guide>
|
||||||
Development Tasks Manual <dev-manual/index>
|
Development Tasks Manual <dev-manual/dev-manual>
|
||||||
Linux Kernel Development Manual <kernel-dev/index>
|
Linux Kernel Development Manual <kernel-dev/kernel-dev>
|
||||||
Profile and Tracing Manual <profile-manual/index>
|
Profile and Tracing Manual <profile-manual/profile-manual>
|
||||||
Application Development and the Extensible SDK (eSDK) <sdk-manual/index>
|
Application Development and the Extensible SDK (eSDK) <sdk-manual/sdk-manual>
|
||||||
Toaster Manual <toaster-manual/index>
|
Toaster Manual <toaster-manual/toaster-manual>
|
||||||
Test Environment Manual <test-manual/index>
|
Test Environment Manual <test-manual/test-manual>
|
||||||
Bitbake User Manual <https://docs.yoctoproject.org/bitbake>
|
Bitbake User Manual <https://docs.yoctoproject.org/bitbake>
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
Working with Advanced Metadata (``yocto-kernel-cache``)
|
Working with Advanced Metadata (``yocto-kernel-cache``)
|
||||||
*******************************************************
|
*******************************************************
|
||||||
|
|
||||||
|
.. _kernel-dev-advanced-overview:
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
========
|
========
|
||||||
|
|
||||||
@@ -16,7 +18,7 @@ complexity of the configuration and sources used to support multiple
|
|||||||
BSPs and Linux kernel types.
|
BSPs and Linux kernel types.
|
||||||
|
|
||||||
Kernel Metadata exists in many places. One area in the
|
Kernel Metadata exists in many places. One area in the
|
||||||
:ref:`overview-manual/development-environment:yocto project source repositories`
|
:ref:`overview-manual/overview-manual-development-environment:yocto project source repositories`
|
||||||
is the ``yocto-kernel-cache`` Git repository. You can find this repository
|
is the ``yocto-kernel-cache`` Git repository. You can find this repository
|
||||||
grouped under the "Yocto Linux Kernel" heading in the
|
grouped under the "Yocto Linux Kernel" heading in the
|
||||||
:yocto_git:`Yocto Project Source Repositories <>`.
|
:yocto_git:`Yocto Project Source Repositories <>`.
|
||||||
@@ -200,7 +202,7 @@ either
|
|||||||
:term:`FILESEXTRAPATHS` if
|
:term:`FILESEXTRAPATHS` if
|
||||||
you are creating Metadata in `recipe-space <#recipe-space-metadata>`__,
|
you are creating Metadata in `recipe-space <#recipe-space-metadata>`__,
|
||||||
or the top level of
|
or the top level of
|
||||||
:yocto_git:`yocto-kernel-cache </yocto-kernel-cache/tree/>`
|
:yocto_git:`yocto-kernel-cache </cgit/cgit.cgi/yocto-kernel-cache/tree/>`
|
||||||
if you are creating `Metadata outside of the
|
if you are creating `Metadata outside of the
|
||||||
recipe-space <#metadata-outside-the-recipe-space>`__.
|
recipe-space <#metadata-outside-the-recipe-space>`__.
|
||||||
|
|
||||||
@@ -243,7 +245,7 @@ two files: ``smp.scc`` and ``smp.cfg``. You can find these files in the
|
|||||||
CONFIG_X86_BIGSMP=y
|
CONFIG_X86_BIGSMP=y
|
||||||
|
|
||||||
You can find general information on configuration
|
You can find general information on configuration
|
||||||
fragment files in the ":ref:`kernel-dev/common:creating configuration fragments`" section.
|
fragment files in the ":ref:`creating-config-fragments`" section.
|
||||||
|
|
||||||
Within the ``smp.scc`` file, the
|
Within the ``smp.scc`` file, the
|
||||||
:term:`KFEATURE_DESCRIPTION`
|
:term:`KFEATURE_DESCRIPTION`
|
||||||
@@ -264,7 +266,7 @@ non-hardware fragment.
|
|||||||
fragment.
|
fragment.
|
||||||
|
|
||||||
As described in the
|
As described in the
|
||||||
":ref:`kernel-dev/common:validating configuration`" section, you can
|
":ref:`kernel-dev/kernel-dev-common:validating configuration`" section, you can
|
||||||
use the following BitBake command to audit your configuration:
|
use the following BitBake command to audit your configuration:
|
||||||
::
|
::
|
||||||
|
|
||||||
@@ -325,8 +327,8 @@ for the five patches in the directory.
|
|||||||
|
|
||||||
You can create a typical ``.patch`` file using ``diff -Nurp`` or
|
You can create a typical ``.patch`` file using ``diff -Nurp`` or
|
||||||
``git format-patch`` commands. For information on how to create patches,
|
``git format-patch`` commands. For information on how to create patches,
|
||||||
see the ":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
see the ":ref:`kernel-dev/kernel-dev-common:using \`\`devtool\`\` to patch the kernel`"
|
||||||
and ":ref:`kernel-dev/common:using traditional kernel development to patch the kernel`"
|
and ":ref:`kernel-dev/kernel-dev-common:using traditional kernel development to patch the kernel`"
|
||||||
sections.
|
sections.
|
||||||
|
|
||||||
Features
|
Features
|
||||||
@@ -369,7 +371,7 @@ in the "`Features <#features>`__" section. The
|
|||||||
variable in the kernel recipe selects the kernel type. For example, in
|
variable in the kernel recipe selects the kernel type. For example, in
|
||||||
the ``linux-yocto_4.12.bb`` kernel recipe found in
|
the ``linux-yocto_4.12.bb`` kernel recipe found in
|
||||||
``poky/meta/recipes-kernel/linux``, a
|
``poky/meta/recipes-kernel/linux``, a
|
||||||
:ref:`require <bitbake:bitbake-user-manual/bitbake-user-manual-metadata:\`\`require\`\` directive>` directive
|
:ref:`require <bitbake:require-inclusion>` directive
|
||||||
includes the ``poky/meta/recipes-kernel/linux/linux-yocto.inc`` file,
|
includes the ``poky/meta/recipes-kernel/linux/linux-yocto.inc`` file,
|
||||||
which has the following statement that defines the default kernel type:
|
which has the following statement that defines the default kernel type:
|
||||||
::
|
::
|
||||||
@@ -386,9 +388,9 @@ type as follows:
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
You can find kernel recipes in the ``meta/recipes-kernel/linux`` directory
|
You can find kernel recipes in the ``meta/recipes-kernel/linux`` directory
|
||||||
of the :ref:`overview-manual/development-environment:yocto project source repositories`
|
of the :ref:`overview-manual/overview-manual-development-environment:yocto project source repositories`
|
||||||
(e.g. ``poky/meta/recipes-kernel/linux/linux-yocto_4.12.bb``). See the
|
(e.g. ``poky/meta/recipes-kernel/linux/linux-yocto_4.12.bb``). See the
|
||||||
":ref:`kernel-dev/advanced:using kernel metadata in a recipe`"
|
":ref:`kernel-dev/kernel-dev-advanced:using kernel metadata in a recipe`"
|
||||||
section for more information.
|
section for more information.
|
||||||
|
|
||||||
Three kernel types ("standard", "tiny", and "preempt-rt") are supported
|
Three kernel types ("standard", "tiny", and "preempt-rt") are supported
|
||||||
@@ -453,7 +455,7 @@ and ``patch`` commands, respectively.
|
|||||||
It is not strictly necessary to create a kernel type ``.scc``
|
It is not strictly necessary to create a kernel type ``.scc``
|
||||||
file. The Board Support Package (BSP) file can implicitly define the
|
file. The Board Support Package (BSP) file can implicitly define the
|
||||||
kernel type using a ``define`` :term:`KTYPE` ``myktype`` line. See the
|
kernel type using a ``define`` :term:`KTYPE` ``myktype`` line. See the
|
||||||
":ref:`kernel-dev/advanced:bsp descriptions`" section for more
|
":ref:`kernel-dev/kernel-dev-advanced:bsp descriptions`" section for more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
BSP Descriptions
|
BSP Descriptions
|
||||||
@@ -469,12 +471,14 @@ supported kernel type.
|
|||||||
For BSPs supported by the Yocto Project, the BSP description files
|
For BSPs supported by the Yocto Project, the BSP description files
|
||||||
are located in the ``bsp`` directory of the ``yocto-kernel-cache``
|
are located in the ``bsp`` directory of the ``yocto-kernel-cache``
|
||||||
repository organized under the "Yocto Linux Kernel" heading in the
|
repository organized under the "Yocto Linux Kernel" heading in the
|
||||||
:yocto_git:`Yocto Project Source Repositories <>`.
|
:yocto_git:`Yocto Project Source Repositories </>`.
|
||||||
|
|
||||||
This section overviews the BSP description structure, the aggregation
|
This section overviews the BSP description structure, the aggregation
|
||||||
concepts, and presents a detailed example using a BSP supported by the
|
concepts, and presents a detailed example using a BSP supported by the
|
||||||
Yocto Project (i.e. BeagleBone Board). For complete information on BSP
|
Yocto Project (i.e. BeagleBone Board). For complete information on BSP
|
||||||
layer file hierarchy, see the :doc:`/bsp-guide/index`.
|
layer file hierarchy, see the :doc:`../bsp-guide/bsp-guide`.
|
||||||
|
|
||||||
|
.. _bsp-description-file-overview:
|
||||||
|
|
||||||
Description Overview
|
Description Overview
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
@@ -555,7 +559,7 @@ You can see that in the BeagleBone example with the following:
|
|||||||
include beaglebone.scc
|
include beaglebone.scc
|
||||||
|
|
||||||
For information on how to break a complete ``.config`` file into the various
|
For information on how to break a complete ``.config`` file into the various
|
||||||
configuration fragments, see the ":ref:`kernel-dev/common:creating configuration fragments`" section.
|
configuration fragments, see the ":ref:`creating-config-fragments`" section.
|
||||||
|
|
||||||
Finally, if you have any configurations specific to the hardware that
|
Finally, if you have any configurations specific to the hardware that
|
||||||
are not in a ``*.scc`` file, you can include them as follows:
|
are not in a ``*.scc`` file, you can include them as follows:
|
||||||
@@ -579,6 +583,8 @@ types of configurations. However, the Malta 32-bit board does
|
|||||||
include mti-malta32.scc
|
include mti-malta32.scc
|
||||||
kconf hardware mti-malta32-le.cfg
|
kconf hardware mti-malta32-le.cfg
|
||||||
|
|
||||||
|
.. _bsp-description-file-example-minnow:
|
||||||
|
|
||||||
Example
|
Example
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
@@ -696,7 +702,7 @@ good approach if you are working with Linux kernel sources you do not
|
|||||||
control or if you just do not want to maintain a Linux kernel Git
|
control or if you just do not want to maintain a Linux kernel Git
|
||||||
repository on your own. For partial information on how you can define
|
repository on your own. For partial information on how you can define
|
||||||
kernel Metadata in the recipe-space, see the
|
kernel Metadata in the recipe-space, see the
|
||||||
":ref:`kernel-dev/common:modifying an existing recipe`" section.
|
":ref:`kernel-dev/kernel-dev-common:modifying an existing recipe`" section.
|
||||||
|
|
||||||
Conversely, if you are actively developing a kernel and are already
|
Conversely, if you are actively developing a kernel and are already
|
||||||
maintaining a Linux kernel Git repository of your own, you might find it
|
maintaining a Linux kernel Git repository of your own, you might find it
|
||||||
@@ -716,7 +722,7 @@ modifying
|
|||||||
``oe-core/meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb`` to
|
``oe-core/meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb`` to
|
||||||
a recipe in your layer, ``FILESEXTRAPATHS`` is typically set to
|
a recipe in your layer, ``FILESEXTRAPATHS`` is typically set to
|
||||||
``${``\ :term:`THISDIR`\ ``}/${``\ :term:`PN`\ ``}``.
|
``${``\ :term:`THISDIR`\ ``}/${``\ :term:`PN`\ ``}``.
|
||||||
See the ":ref:`kernel-dev/common:modifying an existing recipe`"
|
See the ":ref:`kernel-dev/kernel-dev-common:modifying an existing recipe`"
|
||||||
section for more information.
|
section for more information.
|
||||||
|
|
||||||
Here is an example that shows a trivial tree of kernel Metadata stored
|
Here is an example that shows a trivial tree of kernel Metadata stored
|
||||||
@@ -919,6 +925,8 @@ after any ``branch`` commands:
|
|||||||
|
|
||||||
include mybsp-hw.scc
|
include mybsp-hw.scc
|
||||||
|
|
||||||
|
.. _scc-reference:
|
||||||
|
|
||||||
SCC Description File Reference
|
SCC Description File Reference
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
@@ -21,11 +21,11 @@ Preparing the Build Host to Work on the Kernel
|
|||||||
|
|
||||||
Before you can do any kernel development, you need to be sure your build
|
Before you can do any kernel development, you need to be sure your build
|
||||||
host is set up to use the Yocto Project. For information on how to get
|
host is set up to use the Yocto Project. For information on how to get
|
||||||
set up, see the ":doc:`/dev-manual/start`" section in
|
set up, see the ":doc:`../dev-manual/dev-manual-start`" section in
|
||||||
the Yocto Project Development Tasks Manual. Part of preparing the system
|
the Yocto Project Development Tasks Manual. Part of preparing the system
|
||||||
is creating a local Git repository of the
|
is creating a local Git repository of the
|
||||||
:term:`Source Directory` (``poky``) on your system. Follow the steps in the
|
:term:`Source Directory` (``poky``) on your system. Follow the steps in the
|
||||||
":ref:`dev-manual/start:cloning the \`\`poky\`\` repository`"
|
":ref:`dev-manual/dev-manual-start:cloning the \`\`poky\`\` repository`"
|
||||||
section in the Yocto Project Development Tasks Manual to set up your
|
section in the Yocto Project Development Tasks Manual to set up your
|
||||||
Source Directory.
|
Source Directory.
|
||||||
|
|
||||||
@@ -34,12 +34,12 @@ Source Directory.
|
|||||||
Be sure you check out the appropriate development branch or you
|
Be sure you check out the appropriate development branch or you
|
||||||
create your local branch by checking out a specific tag to get the
|
create your local branch by checking out a specific tag to get the
|
||||||
desired version of Yocto Project. See the
|
desired version of Yocto Project. See the
|
||||||
":ref:`dev-manual/start:checking out by branch in poky`" and
|
":ref:`dev-manual/dev-manual-start:checking out by branch in poky`" and
|
||||||
":ref:`dev-manual/start:checking out by tag in poky`"
|
":ref:`dev-manual/dev-manual-start:checking out by tag in poky`"
|
||||||
sections in the Yocto Project Development Tasks Manual for more information.
|
sections in the Yocto Project Development Tasks Manual for more information.
|
||||||
|
|
||||||
Kernel development is best accomplished using
|
Kernel development is best accomplished using
|
||||||
:ref:`devtool <sdk-manual/extensible:using \`\`devtool\`\` in your sdk workflow>`
|
:ref:`devtool <sdk-manual/sdk-extensible:using \`\`devtool\`\` in your sdk workflow>`
|
||||||
and not through traditional kernel workflow methods. The remainder of
|
and not through traditional kernel workflow methods. The remainder of
|
||||||
this section provides information for both scenarios.
|
this section provides information for both scenarios.
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ Getting Ready to Develop Using ``devtool``
|
|||||||
Follow these steps to prepare to update the kernel image using
|
Follow these steps to prepare to update the kernel image using
|
||||||
``devtool``. Completing this procedure leaves you with a clean kernel
|
``devtool``. Completing this procedure leaves you with a clean kernel
|
||||||
image and ready to make modifications as described in the
|
image and ready to make modifications as described in the
|
||||||
":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
":ref:`kernel-dev/kernel-dev-common:using \`\`devtool\`\` to patch the kernel`"
|
||||||
section:
|
section:
|
||||||
|
|
||||||
1. *Initialize the BitBake Environment:* Before building an extensible
|
1. *Initialize the BitBake Environment:* Before building an extensible
|
||||||
@@ -63,7 +63,7 @@ section:
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The previous commands assume the
|
The previous commands assume the
|
||||||
:ref:`overview-manual/development-environment:yocto project source repositories`
|
:ref:`overview-manual/overview-manual-development-environment:yocto project source repositories`
|
||||||
(i.e. ``poky``) have been cloned using Git and the local repository is named
|
(i.e. ``poky``) have been cloned using Git and the local repository is named
|
||||||
"poky".
|
"poky".
|
||||||
|
|
||||||
@@ -104,13 +104,13 @@ section:
|
|||||||
|
|
||||||
For background information on working with common and BSP layers,
|
For background information on working with common and BSP layers,
|
||||||
see the
|
see the
|
||||||
":ref:`dev-manual/common-tasks:understanding and creating layers`"
|
":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
|
||||||
section in the Yocto Project Development Tasks Manual and the
|
section in the Yocto Project Development Tasks Manual and the
|
||||||
":ref:`bsp-guide/bsp:bsp layers`" section in the Yocto Project Board
|
":ref:`bsp-guide/bsp:bsp layers`" section in the Yocto Project Board
|
||||||
Support (BSP) Developer's Guide, respectively. For information on how to
|
Support (BSP) Developer's Guide, respectively. For information on how to
|
||||||
use the ``bitbake-layers create-layer`` command to quickly set up a layer,
|
use the ``bitbake-layers create-layer`` command to quickly set up a layer,
|
||||||
see the
|
see the
|
||||||
":ref:`dev-manual/common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
|
":ref:`dev-manual/dev-manual-common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
4. *Inform the BitBake Build Environment About Your Layer:* As directed
|
4. *Inform the BitBake Build Environment About Your Layer:* As directed
|
||||||
@@ -139,7 +139,7 @@ section:
|
|||||||
~/poky/build/tmp/deploy/sdk
|
~/poky/build/tmp/deploy/sdk
|
||||||
|
|
||||||
For this example, the installer file is named
|
For this example, the installer file is named
|
||||||
``poky-glibc-x86_64-core-image-minimal-i586-toolchain-ext-&DISTRO;.sh``.
|
``poky-glibc-x86_64-core-image-minimal-i586-toolchain-ext-DISTRO.sh``.
|
||||||
|
|
||||||
6. *Install the Extensible SDK:* Use the following command to install
|
6. *Install the Extensible SDK:* Use the following command to install
|
||||||
the SDK. For this example, install the SDK in the default
|
the SDK. For this example, install the SDK in the default
|
||||||
@@ -147,8 +147,8 @@ section:
|
|||||||
::
|
::
|
||||||
|
|
||||||
$ cd ~/poky/build/tmp/deploy/sdk
|
$ cd ~/poky/build/tmp/deploy/sdk
|
||||||
$ ./poky-glibc-x86_64-core-image-minimal-i586-toolchain-ext-&DISTRO;.sh
|
$ ./poky-glibc-x86_64-core-image-minimal-i586-toolchain-ext-3.1.2.sh
|
||||||
Poky (Yocto Project Reference Distro) Extensible SDK installer version &DISTRO;
|
Poky (Yocto Project Reference Distro) Extensible SDK installer version 3.1.2
|
||||||
============================================================================
|
============================================================================
|
||||||
Enter target directory for SDK (default: ~/poky_sdk):
|
Enter target directory for SDK (default: ~/poky_sdk):
|
||||||
You are about to install the SDK to "/home/scottrif/poky_sdk". Proceed [Y/n]? Y
|
You are about to install the SDK to "/home/scottrif/poky_sdk". Proceed [Y/n]? Y
|
||||||
@@ -207,12 +207,12 @@ section:
|
|||||||
building for actual hardware and not for emulation, you could flash
|
building for actual hardware and not for emulation, you could flash
|
||||||
the image to a USB stick on ``/dev/sdd`` and boot your device. For an
|
the image to a USB stick on ``/dev/sdd`` and boot your device. For an
|
||||||
example that uses a Minnowboard, see the
|
example that uses a Minnowboard, see the
|
||||||
:yocto_wiki:`TipsAndTricks/KernelDevelopmentWithEsdk </TipsAndTricks/KernelDevelopmentWithEsdk>`
|
:yocto_wiki:`TipsAndTricks/KernelDevelopmentWithEsdk </wiki/TipsAndTricks/KernelDevelopmentWithEsdk>`
|
||||||
Wiki page.
|
Wiki page.
|
||||||
|
|
||||||
At this point you have set up to start making modifications to the
|
At this point you have set up to start making modifications to the
|
||||||
kernel by using the extensible SDK. For a continued example, see the
|
kernel by using the extensible SDK. For a continued example, see the
|
||||||
":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
":ref:`kernel-dev/kernel-dev-common:using \`\`devtool\`\` to patch the kernel`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
Getting Ready for Traditional Kernel Development
|
Getting Ready for Traditional Kernel Development
|
||||||
@@ -226,7 +226,7 @@ you will be editing these files.
|
|||||||
Follow these steps to prepare to update the kernel image using
|
Follow these steps to prepare to update the kernel image using
|
||||||
traditional kernel development flow with the Yocto Project. Completing
|
traditional kernel development flow with the Yocto Project. Completing
|
||||||
this procedure leaves you ready to make modifications to the kernel
|
this procedure leaves you ready to make modifications to the kernel
|
||||||
source as described in the ":ref:`kernel-dev/common:using traditional kernel development to patch the kernel`"
|
source as described in the ":ref:`kernel-dev/kernel-dev-common:using traditional kernel development to patch the kernel`"
|
||||||
section:
|
section:
|
||||||
|
|
||||||
1. *Initialize the BitBake Environment:* Before you can do anything
|
1. *Initialize the BitBake Environment:* Before you can do anything
|
||||||
@@ -236,7 +236,7 @@ section:
|
|||||||
Also, for this example, be sure that the local branch you have
|
Also, for this example, be sure that the local branch you have
|
||||||
checked out for ``poky`` is the Yocto Project &DISTRO_NAME; branch. If
|
checked out for ``poky`` is the Yocto Project &DISTRO_NAME; branch. If
|
||||||
you need to checkout out the &DISTRO_NAME; branch, see the
|
you need to checkout out the &DISTRO_NAME; branch, see the
|
||||||
":ref:`dev-manual/start:checking out by branch in poky`"
|
":ref:`dev-manual/dev-manual-start:checking out by branch in poky`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
::
|
::
|
||||||
|
|
||||||
@@ -249,7 +249,7 @@ section:
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The previous commands assume the
|
The previous commands assume the
|
||||||
:ref:`overview-manual/development-environment:yocto project source repositories`
|
:ref:`overview-manual/overview-manual-development-environment:yocto project source repositories`
|
||||||
(i.e. ``poky``) have been cloned using Git and the local repository is named
|
(i.e. ``poky``) have been cloned using Git and the local repository is named
|
||||||
"poky".
|
"poky".
|
||||||
|
|
||||||
@@ -289,13 +289,13 @@ section:
|
|||||||
|
|
||||||
For background information on working with common and BSP layers,
|
For background information on working with common and BSP layers,
|
||||||
see the
|
see the
|
||||||
":ref:`dev-manual/common-tasks:understanding and creating layers`"
|
":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
|
||||||
section in the Yocto Project Development Tasks Manual and the
|
section in the Yocto Project Development Tasks Manual and the
|
||||||
":ref:`bsp-guide/bsp:bsp layers`" section in the Yocto Project Board
|
":ref:`bsp-guide/bsp:bsp layers`" section in the Yocto Project Board
|
||||||
Support (BSP) Developer's Guide, respectively. For information on how to
|
Support (BSP) Developer's Guide, respectively. For information on how to
|
||||||
use the ``bitbake-layers create-layer`` command to quickly set up a layer,
|
use the ``bitbake-layers create-layer`` command to quickly set up a layer,
|
||||||
see the
|
see the
|
||||||
":ref:`dev-manual/common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
|
":ref:`dev-manual/dev-manual-common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
4. *Inform the BitBake Build Environment About Your Layer:* As directed
|
4. *Inform the BitBake Build Environment About Your Layer:* As directed
|
||||||
@@ -378,7 +378,7 @@ layer contains its own :term:`BitBake`
|
|||||||
append files (``.bbappend``) and provides a convenient mechanism to
|
append files (``.bbappend``) and provides a convenient mechanism to
|
||||||
create your own recipe files (``.bb``) as well as store and use kernel
|
create your own recipe files (``.bb``) as well as store and use kernel
|
||||||
patch files. For background information on working with layers, see the
|
patch files. For background information on working with layers, see the
|
||||||
":ref:`dev-manual/common-tasks:understanding and creating layers`"
|
":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
@@ -386,7 +386,7 @@ section in the Yocto Project Development Tasks Manual.
|
|||||||
The Yocto Project comes with many tools that simplify tasks you need
|
The Yocto Project comes with many tools that simplify tasks you need
|
||||||
to perform. One such tool is the ``bitbake-layers create-layer``
|
to perform. One such tool is the ``bitbake-layers create-layer``
|
||||||
command, which simplifies creating a new layer. See the
|
command, which simplifies creating a new layer. See the
|
||||||
":ref:`dev-manual/common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
|
":ref:`dev-manual/dev-manual-common-tasks:creating a general layer using the \`\`bitbake-layers\`\` script`"
|
||||||
section in the Yocto Project Development Tasks Manual for
|
section in the Yocto Project Development Tasks Manual for
|
||||||
information on how to use this script to quick set up a new layer.
|
information on how to use this script to quick set up a new layer.
|
||||||
|
|
||||||
@@ -443,7 +443,7 @@ home directory:
|
|||||||
The :term:`FILESEXTRAPATHS` and :term:`SRC_URI` statements
|
The :term:`FILESEXTRAPATHS` and :term:`SRC_URI` statements
|
||||||
enable the OpenEmbedded build system to find patch files. For more
|
enable the OpenEmbedded build system to find patch files. For more
|
||||||
information on using append files, see the
|
information on using append files, see the
|
||||||
":ref:`dev-manual/common-tasks:using .bbappend files in your layer`"
|
":ref:`dev-manual/dev-manual-common-tasks:using .bbappend files in your layer`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
Modifying an Existing Recipe
|
Modifying an Existing Recipe
|
||||||
@@ -457,11 +457,11 @@ the :term:`Source Directory` in
|
|||||||
|
|
||||||
Modifying an existing recipe can consist of the following:
|
Modifying an existing recipe can consist of the following:
|
||||||
|
|
||||||
- :ref:`kernel-dev/common:creating the append file`
|
- :ref:`kernel-dev/kernel-dev-common:creating the append file`
|
||||||
|
|
||||||
- :ref:`kernel-dev/common:applying patches`
|
- :ref:`kernel-dev/kernel-dev-common:applying patches`
|
||||||
|
|
||||||
- :ref:`kernel-dev/common:changing the configuration`
|
- :ref:`kernel-dev/kernel-dev-common:changing the configuration`
|
||||||
|
|
||||||
Before modifying an existing recipe, be sure that you have created a
|
Before modifying an existing recipe, be sure that you have created a
|
||||||
minimal, custom layer from which you can work. See the "`Creating and
|
minimal, custom layer from which you can work. See the "`Creating and
|
||||||
@@ -502,7 +502,7 @@ your layer in the following area:
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
If you are working on a new machine Board Support Package (BSP), be
|
If you are working on a new machine Board Support Package (BSP), be
|
||||||
sure to refer to the :doc:`/bsp-guide/index`.
|
sure to refer to the :doc:`../bsp-guide/bsp-guide`.
|
||||||
|
|
||||||
As an example, consider the following append file used by the BSPs in
|
As an example, consider the following append file used by the BSPs in
|
||||||
``meta-yocto-bsp``:
|
``meta-yocto-bsp``:
|
||||||
@@ -642,9 +642,9 @@ and applies the patches before building the kernel.
|
|||||||
|
|
||||||
For a detailed example showing how to patch the kernel using
|
For a detailed example showing how to patch the kernel using
|
||||||
``devtool``, see the
|
``devtool``, see the
|
||||||
":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
":ref:`kernel-dev/kernel-dev-common:using \`\`devtool\`\` to patch the kernel`"
|
||||||
and
|
and
|
||||||
":ref:`kernel-dev/common:using traditional kernel development to patch the kernel`"
|
":ref:`kernel-dev/kernel-dev-common:using traditional kernel development to patch the kernel`"
|
||||||
sections.
|
sections.
|
||||||
|
|
||||||
Changing the Configuration
|
Changing the Configuration
|
||||||
@@ -769,7 +769,7 @@ the extensible SDK and ``devtool``.
|
|||||||
|
|
||||||
Before attempting this procedure, be sure you have performed the
|
Before attempting this procedure, be sure you have performed the
|
||||||
steps to get ready for updating the kernel as described in the
|
steps to get ready for updating the kernel as described in the
|
||||||
":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``"
|
":ref:`kernel-dev/kernel-dev-common:getting ready to develop using \`\`devtool\`\``"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
Patching the kernel involves changing or adding configurations to an
|
Patching the kernel involves changing or adding configurations to an
|
||||||
@@ -782,7 +782,7 @@ output at boot time through ``printk`` statements in the kernel's
|
|||||||
``calibrate.c`` source code file. Applying the patch and booting the
|
``calibrate.c`` source code file. Applying the patch and booting the
|
||||||
modified image causes the added messages to appear on the emulator's
|
modified image causes the added messages to appear on the emulator's
|
||||||
console. The example is a continuation of the setup procedure found in
|
console. The example is a continuation of the setup procedure found in
|
||||||
the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Section.
|
the ":ref:`kernel-dev/kernel-dev-common:getting ready to develop using \`\`devtool\`\``" Section.
|
||||||
|
|
||||||
1. *Check Out the Kernel Source Files:* First you must use ``devtool``
|
1. *Check Out the Kernel Source Files:* First you must use ``devtool``
|
||||||
to checkout the kernel source code in its workspace. Be sure you are
|
to checkout the kernel source code in its workspace. Be sure you are
|
||||||
@@ -791,7 +791,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
See this step in the
|
See this step in the
|
||||||
":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``"
|
":ref:`kernel-dev/kernel-dev-common:getting ready to develop using \`\`devtool\`\``"
|
||||||
section for more information.
|
section for more information.
|
||||||
|
|
||||||
Use the following ``devtool`` command to check out the code:
|
Use the following ``devtool`` command to check out the code:
|
||||||
@@ -862,7 +862,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
|
|||||||
If the image you originally created resulted in a Wic file, you
|
If the image you originally created resulted in a Wic file, you
|
||||||
can use an alternate method to create the new image with the
|
can use an alternate method to create the new image with the
|
||||||
updated kernel. For an example, see the steps in the
|
updated kernel. For an example, see the steps in the
|
||||||
:yocto_wiki:`TipsAndTricks/KernelDevelopmentWithEsdk </TipsAndTricks/KernelDevelopmentWithEsdk>`
|
:yocto_wiki:`TipsAndTricks/KernelDevelopmentWithEsdk </wiki/TipsAndTricks/KernelDevelopmentWithEsdk>`
|
||||||
Wiki Page.
|
Wiki Page.
|
||||||
|
|
||||||
::
|
::
|
||||||
@@ -912,7 +912,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
See Step 3 of the
|
See Step 3 of the
|
||||||
":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``"
|
":ref:`kernel-dev/kernel-dev-common:getting ready to develop using \`\`devtool\`\``"
|
||||||
section for information on setting up this layer.
|
section for information on setting up this layer.
|
||||||
|
|
||||||
Once the command
|
Once the command
|
||||||
@@ -935,14 +935,14 @@ Using Traditional Kernel Development to Patch the Kernel
|
|||||||
The steps in this procedure show you how you can patch the kernel using
|
The steps in this procedure show you how you can patch the kernel using
|
||||||
traditional kernel development (i.e. not using ``devtool`` and the
|
traditional kernel development (i.e. not using ``devtool`` and the
|
||||||
extensible SDK as described in the
|
extensible SDK as described in the
|
||||||
":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
":ref:`kernel-dev/kernel-dev-common:using \`\`devtool\`\` to patch the kernel`"
|
||||||
section).
|
section).
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Before attempting this procedure, be sure you have performed the
|
Before attempting this procedure, be sure you have performed the
|
||||||
steps to get ready for updating the kernel as described in the
|
steps to get ready for updating the kernel as described in the
|
||||||
":ref:`kernel-dev/common:getting ready for traditional kernel development`"
|
":ref:`kernel-dev/kernel-dev-common:getting ready for traditional kernel development`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
Patching the kernel involves changing or adding configurations to an
|
Patching the kernel involves changing or adding configurations to an
|
||||||
@@ -1108,7 +1108,7 @@ Section.
|
|||||||
For more information on append files and patches, see the "`Creating
|
For more information on append files and patches, see the "`Creating
|
||||||
the Append File <#creating-the-append-file>`__" and "`Applying
|
the Append File <#creating-the-append-file>`__" and "`Applying
|
||||||
Patches <#applying-patches>`__" sections. You can also see the
|
Patches <#applying-patches>`__" sections. You can also see the
|
||||||
":ref:`dev-manual/common-tasks:using .bbappend files in your layer`"
|
":ref:`dev-manual/dev-manual-common-tasks:using .bbappend files in your layer`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
@@ -1190,9 +1190,9 @@ the tool and save your changes to create an updated version of the
|
|||||||
|
|
||||||
You can use the entire ``.config`` file as the ``defconfig`` file. For
|
You can use the entire ``.config`` file as the ``defconfig`` file. For
|
||||||
information on ``defconfig`` files, see the
|
information on ``defconfig`` files, see the
|
||||||
":ref:`kernel-dev/common:changing the configuration`",
|
":ref:`kernel-dev/kernel-dev-common:changing the configuration`",
|
||||||
":ref:`kernel-dev/common:using an "in-tree" \`\`defconfig\`\` file`",
|
":ref:`kernel-dev/kernel-dev-common:using an "in-tree" \`\`defconfig\`\` file`",
|
||||||
and ":ref:`kernel-dev/common:creating a \`\`defconfig\`\` file`"
|
and ":ref:`kernel-dev/kernel-dev-common:creating a \`\`defconfig\`\` file`"
|
||||||
sections.
|
sections.
|
||||||
|
|
||||||
Consider an example that configures the "CONFIG_SMP" setting for the
|
Consider an example that configures the "CONFIG_SMP" setting for the
|
||||||
@@ -1301,6 +1301,8 @@ created to hold the configuration changes.
|
|||||||
For more information on configuring the kernel, see the "`Changing the
|
For more information on configuring the kernel, see the "`Changing the
|
||||||
Configuration <#changing-the-configuration>`__" section.
|
Configuration <#changing-the-configuration>`__" section.
|
||||||
|
|
||||||
|
.. _creating-config-fragments:
|
||||||
|
|
||||||
Creating Configuration Fragments
|
Creating Configuration Fragments
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
@@ -1320,7 +1322,7 @@ appear in the ``.config`` file, which is in the :term:`Build Directory`.
|
|||||||
|
|
||||||
For more information about where the ``.config`` file is located, see the
|
For more information about where the ``.config`` file is located, see the
|
||||||
example in the
|
example in the
|
||||||
":ref:`kernel-dev/common:using \`\`menuconfig\`\``"
|
":ref:`kernel-dev/kernel-dev-common:using \`\`menuconfig\`\``"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
It is simple to create a configuration fragment. One method is to use
|
It is simple to create a configuration fragment. One method is to use
|
||||||
@@ -1377,7 +1379,7 @@ information on how to use the output as a configuration fragment.
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
You can also use this method to create configuration fragments for a
|
You can also use this method to create configuration fragments for a
|
||||||
BSP. See the ":ref:`kernel-dev/advanced:bsp descriptions`"
|
BSP. See the ":ref:`kernel-dev/kernel-dev-advanced:bsp descriptions`"
|
||||||
section for more information.
|
section for more information.
|
||||||
|
|
||||||
Where do you put your configuration fragment files? You can place these
|
Where do you put your configuration fragment files? You can place these
|
||||||
@@ -1423,7 +1425,7 @@ when you override a policy configuration in a hardware configuration
|
|||||||
fragment.
|
fragment.
|
||||||
|
|
||||||
In order to run this task, you must have an existing ``.config`` file.
|
In order to run this task, you must have an existing ``.config`` file.
|
||||||
See the ":ref:`kernel-dev/common:using \`\`menuconfig\`\``" section for
|
See the ":ref:`kernel-dev/kernel-dev-common:using \`\`menuconfig\`\``" section for
|
||||||
information on how to create a configuration file.
|
information on how to create a configuration file.
|
||||||
|
|
||||||
Following is sample output from the ``do_kernel_configcheck`` task:
|
Following is sample output from the ``do_kernel_configcheck`` task:
|
||||||
@@ -1496,7 +1498,7 @@ and
|
|||||||
tasks until they produce no warnings.
|
tasks until they produce no warnings.
|
||||||
|
|
||||||
For more information on how to use the ``menuconfig`` tool, see the
|
For more information on how to use the ``menuconfig`` tool, see the
|
||||||
:ref:`kernel-dev/common:using \`\`menuconfig\`\`` section.
|
:ref:`kernel-dev/kernel-dev-common:using \`\`menuconfig\`\`` section.
|
||||||
|
|
||||||
Fine-Tuning the Kernel Configuration File
|
Fine-Tuning the Kernel Configuration File
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
@@ -1612,7 +1614,7 @@ source directory. Follow these steps to clean up the version string:
|
|||||||
Depending on your particular kernel development workflow, the
|
Depending on your particular kernel development workflow, the
|
||||||
commands you use to rebuild the kernel might differ. For information
|
commands you use to rebuild the kernel might differ. For information
|
||||||
on building the kernel image when using ``devtool``, see the
|
on building the kernel image when using ``devtool``, see the
|
||||||
":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
":ref:`kernel-dev/kernel-dev-common:using \`\`devtool\`\` to patch the kernel`"
|
||||||
section. For
|
section. For
|
||||||
information on building the kernel image when using Bitbake, see the
|
information on building the kernel image when using Bitbake, see the
|
||||||
"`Using Traditional Kernel Development to Patch the
|
"`Using Traditional Kernel Development to Patch the
|
||||||
@@ -1942,7 +1944,7 @@ Adding Recipe-Space Kernel Features
|
|||||||
===================================
|
===================================
|
||||||
|
|
||||||
You can add kernel features in the
|
You can add kernel features in the
|
||||||
:ref:`recipe-space <kernel-dev/advanced:recipe-space metadata>`
|
:ref:`recipe-space <kernel-dev/kernel-dev-advanced:recipe-space metadata>`
|
||||||
by using the :term:`KERNEL_FEATURES`
|
by using the :term:`KERNEL_FEATURES`
|
||||||
variable and by specifying the feature's ``.scc`` file path in the
|
variable and by specifying the feature's ``.scc`` file path in the
|
||||||
:term:`SRC_URI` statement. When you
|
:term:`SRC_URI` statement. When you
|
||||||
@@ -1961,7 +1963,7 @@ OpenEmbedded build system searches all forms of kernel Metadata on the
|
|||||||
``SRC_URI`` statement regardless of whether the Metadata is in the
|
``SRC_URI`` statement regardless of whether the Metadata is in the
|
||||||
"kernel-cache", system kernel Metadata, or a recipe-space Metadata (i.e.
|
"kernel-cache", system kernel Metadata, or a recipe-space Metadata (i.e.
|
||||||
part of the kernel recipe). See the
|
part of the kernel recipe). See the
|
||||||
":ref:`kernel-dev/advanced:kernel metadata location`" section for
|
":ref:`kernel-dev/kernel-dev-advanced:kernel metadata location`" section for
|
||||||
additional information.
|
additional information.
|
||||||
|
|
||||||
When you specify the feature's ``.scc`` file on the ``SRC_URI``
|
When you specify the feature's ``.scc`` file on the ``SRC_URI``
|
||||||
@@ -4,6 +4,8 @@
|
|||||||
Advanced Kernel Concepts
|
Advanced Kernel Concepts
|
||||||
************************
|
************************
|
||||||
|
|
||||||
|
.. _kernel-big-picture:
|
||||||
|
|
||||||
Yocto Project Kernel Development and Maintenance
|
Yocto Project Kernel Development and Maintenance
|
||||||
================================================
|
================================================
|
||||||
|
|
||||||
@@ -35,7 +37,7 @@ Yocto Project Linux kernel that caters to specific embedded designer
|
|||||||
needs for targeted hardware.
|
needs for targeted hardware.
|
||||||
|
|
||||||
You can find a web interface to the Yocto Linux kernels in the
|
You can find a web interface to the Yocto Linux kernels in the
|
||||||
:ref:`overview-manual/development-environment:yocto project source repositories`
|
:ref:`overview-manual/overview-manual-development-environment:yocto project source repositories`
|
||||||
at :yocto_git:`/`. If you look at the interface, you will see to
|
at :yocto_git:`/`. If you look at the interface, you will see to
|
||||||
the left a grouping of Git repositories titled "Yocto Linux Kernel".
|
the left a grouping of Git repositories titled "Yocto Linux Kernel".
|
||||||
Within this group, you will find several Linux Yocto kernels developed
|
Within this group, you will find several Linux Yocto kernels developed
|
||||||
@@ -71,7 +73,7 @@ and included with Yocto Project releases:
|
|||||||
and configurations for the linux-yocto kernel tree. This repository
|
and configurations for the linux-yocto kernel tree. This repository
|
||||||
is useful when working on the linux-yocto kernel. For more
|
is useful when working on the linux-yocto kernel. For more
|
||||||
information on this "Advanced Kernel Metadata", see the
|
information on this "Advanced Kernel Metadata", see the
|
||||||
":doc:`/kernel-dev/advanced`" Chapter.
|
":doc:`kernel-dev-advanced`" Chapter.
|
||||||
|
|
||||||
- *linux-yocto-dev:* A development kernel based on the latest
|
- *linux-yocto-dev:* A development kernel based on the latest
|
||||||
upstream release candidate available.
|
upstream release candidate available.
|
||||||
@@ -160,7 +162,7 @@ implemented by the Yocto Project team using the Source Code Manager
|
|||||||
|
|
||||||
- You can find documentation on Git at https://git-scm.com/doc. You can
|
- You can find documentation on Git at https://git-scm.com/doc. You can
|
||||||
also get an introduction to Git as it applies to the Yocto Project in the
|
also get an introduction to Git as it applies to the Yocto Project in the
|
||||||
":ref:`overview-manual/development-environment:git`" section in the Yocto Project
|
":ref:`overview-manual/overview-manual-development-environment:git`" section in the Yocto Project
|
||||||
Overview and Concepts Manual. The latter reference provides an
|
Overview and Concepts Manual. The latter reference provides an
|
||||||
overview of Git and presents a minimal set of Git commands that
|
overview of Git and presents a minimal set of Git commands that
|
||||||
allows you to be functional using Git. You can use as much, or as
|
allows you to be functional using Git. You can use as much, or as
|
||||||
@@ -258,7 +260,7 @@ Yocto Linux kernel needed for any given set of requirements.
|
|||||||
Yocto Linux kernels, but rather shows a single generic kernel just
|
Yocto Linux kernels, but rather shows a single generic kernel just
|
||||||
for conceptual purposes. Also keep in mind that this structure
|
for conceptual purposes. Also keep in mind that this structure
|
||||||
represents the
|
represents the
|
||||||
:ref:`overview-manual/development-environment:yocto project source repositories`
|
:ref:`overview-manual/overview-manual-development-environment:yocto project source repositories`
|
||||||
that are either pulled from during the build or established on the
|
that are either pulled from during the build or established on the
|
||||||
host development system prior to the build by either cloning a
|
host development system prior to the build by either cloning a
|
||||||
particular kernel's Git repository or by downloading and unpacking a
|
particular kernel's Git repository or by downloading and unpacking a
|
||||||
@@ -293,13 +295,13 @@ ways:
|
|||||||
|
|
||||||
- *Files Accessed While using devtool:* ``devtool``, which is
|
- *Files Accessed While using devtool:* ``devtool``, which is
|
||||||
available with the Yocto Project, is the preferred method by which to
|
available with the Yocto Project, is the preferred method by which to
|
||||||
modify the kernel. See the ":ref:`kernel-dev/intro:kernel modification workflow`" section.
|
modify the kernel. See the ":ref:`kernel-dev/kernel-dev-intro:kernel modification workflow`" section.
|
||||||
|
|
||||||
- *Cloned Repository:* If you are working in the kernel all the time,
|
- *Cloned Repository:* If you are working in the kernel all the time,
|
||||||
you probably would want to set up your own local Git repository of
|
you probably would want to set up your own local Git repository of
|
||||||
the Yocto Linux kernel tree. For information on how to clone a Yocto
|
the Yocto Linux kernel tree. For information on how to clone a Yocto
|
||||||
Linux kernel Git repository, see the
|
Linux kernel Git repository, see the
|
||||||
":ref:`kernel-dev/common:preparing the build host to work on the kernel`"
|
":ref:`kernel-dev/kernel-dev-common:preparing the build host to work on the kernel`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
- *Temporary Source Files from a Build:* If you just need to make some
|
- *Temporary Source Files from a Build:* If you just need to make some
|
||||||
@@ -327,11 +329,11 @@ source files used during the build.
|
|||||||
|
|
||||||
Again, for additional information on the Yocto Project kernel's
|
Again, for additional information on the Yocto Project kernel's
|
||||||
architecture and its branching strategy, see the
|
architecture and its branching strategy, see the
|
||||||
":ref:`kernel-dev/concepts-appx:yocto linux kernel architecture and branching strategies`"
|
":ref:`kernel-dev/kernel-dev-concepts-appx:yocto linux kernel architecture and branching strategies`"
|
||||||
section. You can also reference the
|
section. You can also reference the
|
||||||
":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
":ref:`kernel-dev/kernel-dev-common:using \`\`devtool\`\` to patch the kernel`"
|
||||||
and
|
and
|
||||||
":ref:`kernel-dev/common:using traditional kernel development to patch the kernel`"
|
":ref:`kernel-dev/kernel-dev-common:using traditional kernel development to patch the kernel`"
|
||||||
sections for detailed example that modifies the kernel.
|
sections for detailed example that modifies the kernel.
|
||||||
|
|
||||||
Determining Hardware and Non-Hardware Features for the Kernel Configuration Audit Phase
|
Determining Hardware and Non-Hardware Features for the Kernel Configuration Audit Phase
|
||||||
@@ -341,7 +343,7 @@ This section describes part of the kernel configuration audit phase that
|
|||||||
most developers can ignore. For general information on kernel
|
most developers can ignore. For general information on kernel
|
||||||
configuration including ``menuconfig``, ``defconfig`` files, and
|
configuration including ``menuconfig``, ``defconfig`` files, and
|
||||||
configuration fragments, see the
|
configuration fragments, see the
|
||||||
":ref:`kernel-dev/common:configuring the kernel`" section.
|
":ref:`kernel-dev/kernel-dev-common:configuring the kernel`" section.
|
||||||
|
|
||||||
During this part of the audit phase, the contents of the final
|
During this part of the audit phase, the contents of the final
|
||||||
``.config`` file are compared against the fragments specified by the
|
``.config`` file are compared against the fragments specified by the
|
||||||
@@ -4,6 +4,8 @@
|
|||||||
Kernel Development FAQ
|
Kernel Development FAQ
|
||||||
**********************
|
**********************
|
||||||
|
|
||||||
|
.. _kernel-dev-faq-section:
|
||||||
|
|
||||||
Common Questions and Solutions
|
Common Questions and Solutions
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
@@ -13,21 +15,21 @@ How do I use my own Linux kernel ``.config`` file?
|
|||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
|
|
||||||
Refer to the
|
Refer to the
|
||||||
":ref:`kernel-dev/common:changing the configuration`"
|
":ref:`kernel-dev/kernel-dev-common:changing the configuration`"
|
||||||
section for information.
|
section for information.
|
||||||
|
|
||||||
How do I create configuration fragments?
|
How do I create configuration fragments?
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
A: Refer to the
|
A: Refer to the
|
||||||
":ref:`kernel-dev/common:creating configuration fragments`"
|
":ref:`kernel-dev/kernel-dev-common:creating configuration fragments`"
|
||||||
section for information.
|
section for information.
|
||||||
|
|
||||||
How do I use my own Linux kernel sources?
|
How do I use my own Linux kernel sources?
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
|
|
||||||
Refer to the
|
Refer to the
|
||||||
":ref:`kernel-dev/common:working with your own sources`"
|
":ref:`kernel-dev/kernel-dev-common:working with your own sources`"
|
||||||
section for information.
|
section for information.
|
||||||
|
|
||||||
How do I install/not-install the kernel image on the rootfs?
|
How do I install/not-install the kernel image on the rootfs?
|
||||||
@@ -38,7 +40,7 @@ The kernel image (e.g. ``vmlinuz``) is provided by the
|
|||||||
specify whether or not the kernel image is installed in the generated
|
specify whether or not the kernel image is installed in the generated
|
||||||
root filesystem, override ``RDEPENDS_${KERNEL_PACKAGE_NAME}-base`` to include or not
|
root filesystem, override ``RDEPENDS_${KERNEL_PACKAGE_NAME}-base`` to include or not
|
||||||
include "kernel-image". See the
|
include "kernel-image". See the
|
||||||
":ref:`dev-manual/common-tasks:using .bbappend files in your layer`"
|
":ref:`dev-manual/dev-manual-common-tasks:using .bbappend files in your layer`"
|
||||||
section in the
|
section in the
|
||||||
Yocto Project Development Tasks Manual for information on how to use an
|
Yocto Project Development Tasks Manual for information on how to use an
|
||||||
append file to override metadata.
|
append file to override metadata.
|
||||||
@@ -63,7 +65,7 @@ machine:
|
|||||||
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-ab123"
|
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-ab123"
|
||||||
|
|
||||||
For more information, see the
|
For more information, see the
|
||||||
":ref:`kernel-dev/common:incorporating out-of-tree modules`" section.
|
":ref:`kernel-dev/kernel-dev-common:incorporating out-of-tree modules`" section.
|
||||||
|
|
||||||
How do I change the Linux kernel command line?
|
How do I change the Linux kernel command line?
|
||||||
----------------------------------------------
|
----------------------------------------------
|
||||||
@@ -4,6 +4,8 @@
|
|||||||
Introduction
|
Introduction
|
||||||
************
|
************
|
||||||
|
|
||||||
|
.. _kernel-dev-overview:
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
========
|
========
|
||||||
|
|
||||||
@@ -26,8 +28,8 @@ newly-supported platforms. Previous recipes in the release are refreshed
|
|||||||
and supported for at least one additional Yocto Project release. As they
|
and supported for at least one additional Yocto Project release. As they
|
||||||
align, these previous releases are updated to include the latest from
|
align, these previous releases are updated to include the latest from
|
||||||
the Long Term Support Initiative (LTSI) project. You can learn more
|
the Long Term Support Initiative (LTSI) project. You can learn more
|
||||||
about Yocto Linux kernels and LTSI in the
|
about Yocto Linux kernels and LTSI in the ":ref:`Yocto Project Kernel
|
||||||
":ref:`kernel-dev/concepts-appx:yocto project kernel development and maintenance`" section.
|
Development and Maintenance <kernel-big-picture>`" section.
|
||||||
|
|
||||||
Also included is a Yocto Linux kernel development recipe
|
Also included is a Yocto Linux kernel development recipe
|
||||||
(``linux-yocto-dev.bb``) should you want to work with the very latest in
|
(``linux-yocto-dev.bb``) should you want to work with the very latest in
|
||||||
@@ -36,7 +38,7 @@ upstream Yocto Linux kernel development and kernel Metadata development.
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
For more on Yocto Linux kernels, see the
|
For more on Yocto Linux kernels, see the
|
||||||
":ref:`kernel-dev/concepts-appx:yocto project kernel development and maintenance`"
|
":ref:`Yocto Project Kernel Development and Maintenance <kernel-big-picture>`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
The Yocto Project also provides a powerful set of kernel tools for
|
The Yocto Project also provides a powerful set of kernel tools for
|
||||||
@@ -72,22 +74,23 @@ tools with your own kernel sources.
|
|||||||
|
|
||||||
The remainder of this manual provides instructions for completing
|
The remainder of this manual provides instructions for completing
|
||||||
specific Linux kernel development tasks. These instructions assume you
|
specific Linux kernel development tasks. These instructions assume you
|
||||||
are comfortable working with :oe_wiki:`BitBake </Bitbake>` recipes and basic
|
are comfortable working with
|
||||||
|
`BitBake <https://openembedded.org/wiki/Bitbake>`__ recipes and basic
|
||||||
open-source development tools. Understanding these concepts will
|
open-source development tools. Understanding these concepts will
|
||||||
facilitate the process of working with the kernel recipes. If you find
|
facilitate the process of working with the kernel recipes. If you find
|
||||||
you need some additional background, please be sure to review and
|
you need some additional background, please be sure to review and
|
||||||
understand the following documentation:
|
understand the following documentation:
|
||||||
|
|
||||||
- :doc:`/brief-yoctoprojectqs/index` document.
|
- :doc:`../brief-yoctoprojectqs/brief-yoctoprojectqs` document.
|
||||||
|
|
||||||
- :doc:`/overview-manual/index`.
|
- :doc:`../overview-manual/overview-manual`.
|
||||||
|
|
||||||
- :ref:`devtool
|
- :ref:`devtool
|
||||||
workflow <sdk-manual/extensible:using \`\`devtool\`\` in your sdk workflow>`
|
workflow <sdk-manual/sdk-extensible:using \`\`devtool\`\` in your sdk workflow>`
|
||||||
as described in the Yocto Project Application Development and the
|
as described in the Yocto Project Application Development and the
|
||||||
Extensible Software Development Kit (eSDK) manual.
|
Extensible Software Development Kit (eSDK) manual.
|
||||||
|
|
||||||
- The ":ref:`dev-manual/common-tasks:understanding and creating layers`"
|
- The ":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- The "`Kernel Modification
|
- The "`Kernel Modification
|
||||||
@@ -110,7 +113,7 @@ general information and references for further information.
|
|||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
1. *Set up Your Host Development System to Support Development Using the
|
1. *Set up Your Host Development System to Support Development Using the
|
||||||
Yocto Project*: See the ":doc:`/dev-manual/start`" section in
|
Yocto Project*: See the ":doc:`../dev-manual/dev-manual-start`" section in
|
||||||
the Yocto Project Development Tasks Manual for options on how to get
|
the Yocto Project Development Tasks Manual for options on how to get
|
||||||
a build host ready to use the Yocto Project.
|
a build host ready to use the Yocto Project.
|
||||||
|
|
||||||
@@ -123,13 +126,13 @@ general information and references for further information.
|
|||||||
Using ``devtool`` and the eSDK requires that you have a clean build
|
Using ``devtool`` and the eSDK requires that you have a clean build
|
||||||
of the image and that you are set up with the appropriate eSDK. For
|
of the image and that you are set up with the appropriate eSDK. For
|
||||||
more information, see the
|
more information, see the
|
||||||
":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``"
|
":ref:`kernel-dev/kernel-dev-common:getting ready to develop using \`\`devtool\`\``"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
Using traditional kernel development requires that you have the
|
Using traditional kernel development requires that you have the
|
||||||
kernel source available in an isolated local Git repository. For more
|
kernel source available in an isolated local Git repository. For more
|
||||||
information, see the
|
information, see the
|
||||||
":ref:`kernel-dev/common:getting ready for traditional kernel development`"
|
":ref:`kernel-dev/kernel-dev-common:getting ready for traditional kernel development`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
3. *Make Changes to the Kernel Source Code if applicable:* Modifying the
|
3. *Make Changes to the Kernel Source Code if applicable:* Modifying the
|
||||||
@@ -137,17 +140,17 @@ general information and references for further information.
|
|||||||
if you have to do this, you make the changes to the files in the
|
if you have to do this, you make the changes to the files in the
|
||||||
eSDK's Build Directory if you are using ``devtool``. For more
|
eSDK's Build Directory if you are using ``devtool``. For more
|
||||||
information, see the
|
information, see the
|
||||||
":ref:`kernel-dev/common:using \`\`devtool\`\` to patch the kernel`"
|
":ref:`kernel-dev/kernel-dev-common:using \`\`devtool\`\` to patch the kernel`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
If you are using traditional kernel development, you edit the source
|
If you are using traditional kernel development, you edit the source
|
||||||
files in the kernel's local Git repository. For more information, see the
|
files in the kernel's local Git repository. For more information, see the
|
||||||
":ref:`kernel-dev/common:using traditional kernel development to patch the kernel`"
|
":ref:`kernel-dev/kernel-dev-common:using traditional kernel development to patch the kernel`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
4. *Make Kernel Configuration Changes if Applicable:* If your situation
|
4. *Make Kernel Configuration Changes if Applicable:* If your situation
|
||||||
calls for changing the kernel's configuration, you can use
|
calls for changing the kernel's configuration, you can use
|
||||||
:ref:`menuconfig <kernel-dev/common:using \`\`menuconfig\`\`>`,
|
:ref:`menuconfig <kernel-dev/kernel-dev-common:using \`\`menuconfig\`\`>`,
|
||||||
which allows you to
|
which allows you to
|
||||||
interactively develop and test the configuration changes you are
|
interactively develop and test the configuration changes you are
|
||||||
making to the kernel. Saving changes you make with ``menuconfig``
|
making to the kernel. Saving changes you make with ``menuconfig``
|
||||||
@@ -164,7 +167,7 @@ general information and references for further information.
|
|||||||
``menuconfig`` and you have saved them, you can directly compare the
|
``menuconfig`` and you have saved them, you can directly compare the
|
||||||
resulting ``.config`` file against an existing original and gather
|
resulting ``.config`` file against an existing original and gather
|
||||||
those changes into a
|
those changes into a
|
||||||
:ref:`configuration fragment file <kernel-dev/common:creating configuration fragments>` to be
|
:ref:`configuration fragment file <creating-config-fragments>` to be
|
||||||
referenced from within the kernel's ``.bbappend`` file.
|
referenced from within the kernel's ``.bbappend`` file.
|
||||||
|
|
||||||
Additionally, if you are working in a BSP layer and need to modify
|
Additionally, if you are working in a BSP layer and need to modify
|
||||||
@@ -37,7 +37,7 @@ kernel that branches off ``linux.org`` version 4.12 and the
|
|||||||
For more information on
|
For more information on
|
||||||
how to set up a local Git repository of the Yocto Project Linux kernel
|
how to set up a local Git repository of the Yocto Project Linux kernel
|
||||||
files, see the
|
files, see the
|
||||||
":ref:`kernel-dev/common:preparing the build host to work on the kernel`"
|
":ref:`kernel-dev/kernel-dev-common:preparing the build host to work on the kernel`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
Once you have cloned the kernel Git repository and the cache of Metadata
|
Once you have cloned the kernel Git repository and the cache of Metadata
|
||||||
@@ -103,7 +103,7 @@ patch, or BSP:
|
|||||||
located by searching these system directories:
|
located by searching these system directories:
|
||||||
|
|
||||||
- The in-tree kernel-cache directories, which are located in the
|
- The in-tree kernel-cache directories, which are located in the
|
||||||
:yocto_git:`yocto-kernel-cache </yocto-kernel-cache/tree/bsp>`
|
:yocto_git:`yocto-kernel-cache </cgit/cgit.cgi/yocto-kernel-cache/tree/bsp>`
|
||||||
repository organized under the "Yocto Linux Kernel" heading in the
|
repository organized under the "Yocto Linux Kernel" heading in the
|
||||||
:yocto_git:`Yocto Project Source Repositories <>`.
|
:yocto_git:`Yocto Project Source Repositories <>`.
|
||||||
|
|
||||||
@@ -167,7 +167,7 @@ specific to some target hardware.
|
|||||||
The end result is a branched, clean history tree that makes up the
|
The end result is a branched, clean history tree that makes up the
|
||||||
kernel for a given release. You can see the script (``kgit-scc``)
|
kernel for a given release. You can see the script (``kgit-scc``)
|
||||||
responsible for this in the
|
responsible for this in the
|
||||||
:yocto_git:`yocto-kernel-tools </yocto-kernel-tools/tree/tools>`
|
:yocto_git:`yocto-kernel-tools </cgit.cgi/yocto-kernel-tools/tree/tools>`
|
||||||
repository.
|
repository.
|
||||||
|
|
||||||
- The steps used to construct the full kernel tree are the same
|
- The steps used to construct the full kernel tree are the same
|
||||||
@@ -10,12 +10,12 @@ Yocto Project Linux Kernel Development Manual
|
|||||||
:caption: Table of Contents
|
:caption: Table of Contents
|
||||||
:numbered:
|
:numbered:
|
||||||
|
|
||||||
intro
|
kernel-dev-intro
|
||||||
common
|
kernel-dev-common
|
||||||
advanced
|
kernel-dev-advanced
|
||||||
concepts-appx
|
kernel-dev-concepts-appx
|
||||||
maint-appx
|
kernel-dev-maint-appx
|
||||||
faq
|
kernel-dev-faq
|
||||||
history
|
history
|
||||||
|
|
||||||
.. include:: /boilerplate.rst
|
.. include:: /boilerplate.rst
|
||||||
@@ -34,15 +34,17 @@ itself is of various types:
|
|||||||
|
|
||||||
BitBake knows how to combine multiple data sources together and refers
|
BitBake knows how to combine multiple data sources together and refers
|
||||||
to each data source as a layer. For information on layers, see the
|
to each data source as a layer. For information on layers, see the
|
||||||
":ref:`dev-manual/common-tasks:understanding and creating layers`"
|
":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
|
||||||
section of the Yocto Project Development Tasks Manual.
|
section of the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
Following are some brief details on these core components. For
|
Following are some brief details on these core components. For
|
||||||
additional information on how these components interact during a build,
|
additional information on how these components interact during a build,
|
||||||
see the
|
see the
|
||||||
":ref:`overview-manual/concepts:openembedded build system concepts`"
|
":ref:`overview-manual/overview-manual-concepts:openembedded build system concepts`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
|
.. _usingpoky-components-bitbake:
|
||||||
|
|
||||||
BitBake
|
BitBake
|
||||||
-------
|
-------
|
||||||
|
|
||||||
@@ -76,7 +78,7 @@ versions of ``matchbox-desktop`` might exist. BitBake chooses the one
|
|||||||
selected by the distribution configuration. You can get more details
|
selected by the distribution configuration. You can get more details
|
||||||
about how BitBake chooses between different target versions and
|
about how BitBake chooses between different target versions and
|
||||||
providers in the
|
providers in the
|
||||||
":ref:`Preferences <bitbake:bitbake-user-manual/bitbake-user-manual-execution:preferences>`" section
|
":ref:`Preferences <bitbake:bb-bitbake-preferences>`" section
|
||||||
of the BitBake User Manual.
|
of the BitBake User Manual.
|
||||||
|
|
||||||
BitBake also tries to execute any dependent tasks first. So for example,
|
BitBake also tries to execute any dependent tasks first. So for example,
|
||||||
@@ -90,6 +92,8 @@ occurs, the target that failed and those that depend on it cannot be
|
|||||||
remade. However, when you use this option other dependencies can still
|
remade. However, when you use this option other dependencies can still
|
||||||
be processed.
|
be processed.
|
||||||
|
|
||||||
|
.. _overview-components-recipes:
|
||||||
|
|
||||||
Recipes
|
Recipes
|
||||||
-------
|
-------
|
||||||
|
|
||||||
@@ -105,6 +109,8 @@ the word "package" is used for the packaged output from the OpenEmbedded
|
|||||||
build system (i.e. ``.ipk`` or ``.deb`` files), this document avoids
|
build system (i.e. ``.ipk`` or ``.deb`` files), this document avoids
|
||||||
using the term "package" when referring to recipes.
|
using the term "package" when referring to recipes.
|
||||||
|
|
||||||
|
.. _overview-components-classes:
|
||||||
|
|
||||||
Classes
|
Classes
|
||||||
-------
|
-------
|
||||||
|
|
||||||
@@ -112,10 +118,12 @@ Class files (``.bbclass``) contain information that is useful to share
|
|||||||
between recipes files. An example is the
|
between recipes files. An example is the
|
||||||
:ref:`autotools <ref-classes-autotools>` class,
|
:ref:`autotools <ref-classes-autotools>` class,
|
||||||
which contains common settings for any application that Autotools uses.
|
which contains common settings for any application that Autotools uses.
|
||||||
The ":ref:`ref-manual/classes:Classes`" chapter in the
|
The ":ref:`ref-manual/ref-classes:Classes`" chapter in the
|
||||||
Yocto Project Reference Manual provides details about classes and how to
|
Yocto Project Reference Manual provides details about classes and how to
|
||||||
use them.
|
use them.
|
||||||
|
|
||||||
|
.. _overview-components-configurations:
|
||||||
|
|
||||||
Configurations
|
Configurations
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
@@ -127,6 +135,8 @@ common configuration options, and user configuration options in
|
|||||||
``conf/local.conf``, which is found in the :term:`Build Directory`.
|
``conf/local.conf``, which is found in the :term:`Build Directory`.
|
||||||
|
|
||||||
|
|
||||||
|
.. _overview-layers:
|
||||||
|
|
||||||
Layers
|
Layers
|
||||||
======
|
======
|
||||||
|
|
||||||
@@ -141,19 +151,23 @@ hardware-specific configurations allows you to share other metadata by
|
|||||||
using a different layer where that metadata might be common across
|
using a different layer where that metadata might be common across
|
||||||
several pieces of hardware.
|
several pieces of hardware.
|
||||||
|
|
||||||
Many layers exist that work in the Yocto Project development environment. The
|
Many layers exist that work in the Yocto Project development
|
||||||
:yocto_home:`Yocto Project Curated Layer Index </software-overview/layers/>`
|
environment. The `Yocto Project Curated Layer
|
||||||
and :oe_layerindex:`OpenEmbedded Layer Index <>` both contain layers from
|
Index <https://www.yoctoproject.org/software-overview/layers/>`__
|
||||||
which you can use or leverage.
|
and `OpenEmbedded Layer
|
||||||
|
Index <http://layers.openembedded.org/layerindex/branch/master/layers/>`__
|
||||||
|
both contain layers from which you can use or leverage.
|
||||||
|
|
||||||
By convention, layers in the Yocto Project follow a specific form.
|
By convention, layers in the Yocto Project follow a specific form.
|
||||||
Conforming to a known structure allows BitBake to make assumptions
|
Conforming to a known structure allows BitBake to make assumptions
|
||||||
during builds on where to find types of metadata. You can find
|
during builds on where to find types of metadata. You can find
|
||||||
procedures and learn about tools (i.e. ``bitbake-layers``) for creating
|
procedures and learn about tools (i.e. ``bitbake-layers``) for creating
|
||||||
layers suitable for the Yocto Project in the
|
layers suitable for the Yocto Project in the
|
||||||
":ref:`dev-manual/common-tasks:understanding and creating layers`"
|
":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
|
||||||
section of the Yocto Project Development Tasks Manual.
|
section of the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
|
.. _openembedded-build-system-build-concepts:
|
||||||
|
|
||||||
OpenEmbedded Build System Concepts
|
OpenEmbedded Build System Concepts
|
||||||
==================================
|
==================================
|
||||||
|
|
||||||
@@ -271,7 +285,7 @@ The ``local.conf`` file provides many basic variables that define a
|
|||||||
build environment. Here is a list of a few. To see the default
|
build environment. Here is a list of a few. To see the default
|
||||||
configurations in a ``local.conf`` file created by the build environment
|
configurations in a ``local.conf`` file created by the build environment
|
||||||
script, see the
|
script, see the
|
||||||
:yocto_git:`local.conf.sample </poky/tree/meta-poky/conf/local.conf.sample>`
|
:yocto_git:`local.conf.sample </cgit/cgit.cgi/poky/tree/meta-poky/conf/local.conf.sample>`
|
||||||
in the ``meta-poky`` layer:
|
in the ``meta-poky`` layer:
|
||||||
|
|
||||||
- *Target Machine Selection:* Controlled by the
|
- *Target Machine Selection:* Controlled by the
|
||||||
@@ -315,7 +329,7 @@ during the build. By default, the layers listed in this file include
|
|||||||
layers minimally needed by the build system. However, you must manually
|
layers minimally needed by the build system. However, you must manually
|
||||||
add any custom layers you have created. You can find more information on
|
add any custom layers you have created. You can find more information on
|
||||||
working with the ``bblayers.conf`` file in the
|
working with the ``bblayers.conf`` file in the
|
||||||
":ref:`dev-manual/common-tasks:enabling your layer`"
|
":ref:`dev-manual/dev-manual-common-tasks:enabling your layer`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
The files ``site.conf`` and ``auto.conf`` are not created by the
|
The files ``site.conf`` and ``auto.conf`` are not created by the
|
||||||
@@ -378,28 +392,30 @@ figure <#general-workflow-figure>`__:
|
|||||||
|
|
||||||
- *Metadata (.bb + Patches):* Software layers containing
|
- *Metadata (.bb + Patches):* Software layers containing
|
||||||
user-supplied recipe files, patches, and append files. A good example
|
user-supplied recipe files, patches, and append files. A good example
|
||||||
of a software layer might be the :oe_layer:`meta-qt5 layer </meta-qt5>`
|
of a software layer might be the
|
||||||
from the :oe_layerindex:`OpenEmbedded Layer Index <>`. This layer is for
|
`meta-qt5 layer <https://github.com/meta-qt5/meta-qt5>`__ from
|
||||||
version 5.0 of the popular `Qt <https://wiki.qt.io/About_Qt>`__
|
the `OpenEmbedded Layer
|
||||||
cross-platform application development framework for desktop, embedded and
|
Index <http://layers.openembedded.org/layerindex/branch/master/layers/>`__.
|
||||||
mobile.
|
This layer is for version 5.0 of the popular
|
||||||
|
`Qt <https://wiki.qt.io/About_Qt>`__ cross-platform application
|
||||||
|
development framework for desktop, embedded and mobile.
|
||||||
|
|
||||||
- *Machine BSP Configuration:* Board Support Package (BSP) layers (i.e.
|
- *Machine BSP Configuration:* Board Support Package (BSP) layers (i.e.
|
||||||
"BSP Layer" in the following figure) providing machine-specific
|
"BSP Layer" in the following figure) providing machine-specific
|
||||||
configurations. This type of information is specific to a particular
|
configurations. This type of information is specific to a particular
|
||||||
target architecture. A good example of a BSP layer from the `Poky
|
target architecture. A good example of a BSP layer from the `Poky
|
||||||
Reference Distribution <#gs-reference-distribution-poky>`__ is the
|
Reference Distribution <#gs-reference-distribution-poky>`__ is the
|
||||||
:yocto_git:`meta-yocto-bsp </poky/tree/meta-yocto-bsp>`
|
:yocto_git:`meta-yocto-bsp </cgit/cgit.cgi/poky/tree/meta-yocto-bsp>`
|
||||||
layer.
|
layer.
|
||||||
|
|
||||||
- *Policy Configuration:* Distribution Layers (i.e. "Distro Layer" in
|
- *Policy Configuration:* Distribution Layers (i.e. "Distro Layer" in
|
||||||
the following figure) providing top-level or general policies for the
|
the following figure) providing top-level or general policies for the
|
||||||
images or SDKs being built for a particular distribution. For
|
images or SDKs being built for a particular distribution. For
|
||||||
example, in the Poky Reference Distribution the distro layer is the
|
example, in the Poky Reference Distribution the distro layer is the
|
||||||
:yocto_git:`meta-poky </poky/tree/meta-poky>`
|
:yocto_git:`meta-poky </cgit/cgit.cgi/poky/tree/meta-poky>`
|
||||||
layer. Within the distro layer is a ``conf/distro`` directory that
|
layer. Within the distro layer is a ``conf/distro`` directory that
|
||||||
contains distro configuration files (e.g.
|
contains distro configuration files (e.g.
|
||||||
:yocto_git:`poky.conf </poky/tree/meta-poky/conf/distro/poky.conf>`
|
:yocto_git:`poky.conf </cgit/cgit.cgi/poky/tree/meta-poky/conf/distro/poky.conf>`
|
||||||
that contain many policy configurations for the Poky distribution.
|
that contain many policy configurations for the Poky distribution.
|
||||||
|
|
||||||
The following figure shows an expanded representation of these three
|
The following figure shows an expanded representation of these three
|
||||||
@@ -414,7 +430,7 @@ a ``README`` file as good practice and especially if the layer is to be
|
|||||||
distributed, a configuration directory, and recipe directories. You can
|
distributed, a configuration directory, and recipe directories. You can
|
||||||
learn about the general structure for layers used with the Yocto Project
|
learn about the general structure for layers used with the Yocto Project
|
||||||
in the
|
in the
|
||||||
":ref:`dev-manual/common-tasks:creating your own layer`"
|
":ref:`dev-manual/dev-manual-common-tasks:creating your own layer`"
|
||||||
section in the
|
section in the
|
||||||
Yocto Project Development Tasks Manual. For a general discussion on
|
Yocto Project Development Tasks Manual. For a general discussion on
|
||||||
layers and the many layers from which you can draw, see the
|
layers and the many layers from which you can draw, see the
|
||||||
@@ -423,8 +439,9 @@ Model <#the-yocto-project-layer-model>`__" sections both earlier in this
|
|||||||
manual.
|
manual.
|
||||||
|
|
||||||
If you explored the previous links, you discovered some areas where many
|
If you explored the previous links, you discovered some areas where many
|
||||||
layers that work with the Yocto Project exist. The :yocto_git:`Source
|
layers that work with the Yocto Project exist. The `Source
|
||||||
Repositories <>` also shows layers categorized under "Yocto Metadata Layers."
|
Repositories <http://git.yoctoproject.org/>`__ also shows layers
|
||||||
|
categorized under "Yocto Metadata Layers."
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -452,7 +469,7 @@ typically find in the distribution layer:
|
|||||||
can be shared among recipes in the distribution. When your recipes
|
can be shared among recipes in the distribution. When your recipes
|
||||||
inherit a class, they take on the settings and functions for that
|
inherit a class, they take on the settings and functions for that
|
||||||
class. You can read more about class files in the
|
class. You can read more about class files in the
|
||||||
":ref:`ref-manual/classes:Classes`" chapter of the Yocto
|
":ref:`ref-manual/ref-classes:Classes`" chapter of the Yocto
|
||||||
Reference Manual.
|
Reference Manual.
|
||||||
|
|
||||||
- *conf:* This area holds configuration files for the layer
|
- *conf:* This area holds configuration files for the layer
|
||||||
@@ -477,7 +494,7 @@ The BSP Layer provides machine configurations that target specific
|
|||||||
hardware. Everything in this layer is specific to the machine for which
|
hardware. Everything in this layer is specific to the machine for which
|
||||||
you are building the image or the SDK. A common structure or form is
|
you are building the image or the SDK. A common structure or form is
|
||||||
defined for BSP layers. You can learn more about this structure in the
|
defined for BSP layers. You can learn more about this structure in the
|
||||||
:doc:`/bsp-guide/index`.
|
:doc:`../bsp-guide/bsp-guide`.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -510,6 +527,8 @@ their respective layers.
|
|||||||
This layer contains any recipes, append files, and patches, that your
|
This layer contains any recipes, append files, and patches, that your
|
||||||
project needs.
|
project needs.
|
||||||
|
|
||||||
|
.. _sources-dev-environment:
|
||||||
|
|
||||||
Sources
|
Sources
|
||||||
-------
|
-------
|
||||||
|
|
||||||
@@ -582,11 +601,13 @@ class to include that local project. You use either the ``local.conf``
|
|||||||
or a recipe's append file to override or set the recipe to point to the
|
or a recipe's append file to override or set the recipe to point to the
|
||||||
local directory on your disk to pull in the whole source tree.
|
local directory on your disk to pull in the whole source tree.
|
||||||
|
|
||||||
|
.. _scms:
|
||||||
|
|
||||||
Source Control Managers (Optional)
|
Source Control Managers (Optional)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Another place from which the build system can get source files is with
|
Another place from which the build system can get source files is with
|
||||||
:ref:`fetchers <bitbake:bitbake-user-manual/bitbake-user-manual-fetching:fetchers>` employing various Source
|
:ref:`fetchers <bitbake:bb-fetchers>` employing various Source
|
||||||
Control Managers (SCMs) such as Git or Subversion. In such cases, a
|
Control Managers (SCMs) such as Git or Subversion. In such cases, a
|
||||||
repository is cloned or checked out. The
|
repository is cloned or checked out. The
|
||||||
:ref:`ref-tasks-fetch` task inside
|
:ref:`ref-tasks-fetch` task inside
|
||||||
@@ -623,6 +644,8 @@ Regular mirrors can be any site across the Internet that is used as an
|
|||||||
alternative location for source code should the primary site not be
|
alternative location for source code should the primary site not be
|
||||||
functioning for some reason or another.
|
functioning for some reason or another.
|
||||||
|
|
||||||
|
.. _package-feeds-dev-environment:
|
||||||
|
|
||||||
Package Feeds
|
Package Feeds
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
@@ -686,6 +709,8 @@ qemux86 exist. Packages for the i586 architecture are placed in
|
|||||||
``build/tmp/deploy/ipk/i586``, while packages for the qemux86
|
``build/tmp/deploy/ipk/i586``, while packages for the qemux86
|
||||||
architecture are placed in ``build/tmp/deploy/ipk/qemux86``.
|
architecture are placed in ``build/tmp/deploy/ipk/qemux86``.
|
||||||
|
|
||||||
|
.. _bitbake-dev-environment:
|
||||||
|
|
||||||
BitBake Tool
|
BitBake Tool
|
||||||
------------
|
------------
|
||||||
|
|
||||||
@@ -702,6 +727,8 @@ those areas.
|
|||||||
BitBake User Manual
|
BitBake User Manual
|
||||||
for reference material on BitBake.
|
for reference material on BitBake.
|
||||||
|
|
||||||
|
.. _source-fetching-dev-environment:
|
||||||
|
|
||||||
Source Fetching
|
Source Fetching
|
||||||
~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
@@ -792,6 +819,8 @@ Build Directory's hierarchy:
|
|||||||
what the OpenEmbedded build system is using as a build target (e.g.
|
what the OpenEmbedded build system is using as a build target (e.g.
|
||||||
general architecture, a build host, an SDK, or a specific machine).
|
general architecture, a build host, an SDK, or a specific machine).
|
||||||
|
|
||||||
|
.. _patching-dev-environment:
|
||||||
|
|
||||||
Patching
|
Patching
|
||||||
~~~~~~~~
|
~~~~~~~~
|
||||||
|
|
||||||
@@ -823,15 +852,17 @@ For more information on how the source directories are created, see the
|
|||||||
"`Source Fetching <#source-fetching-dev-environment>`__" section. For
|
"`Source Fetching <#source-fetching-dev-environment>`__" section. For
|
||||||
more information on how to create patches and how the build system
|
more information on how to create patches and how the build system
|
||||||
processes patches, see the
|
processes patches, see the
|
||||||
":ref:`dev-manual/common-tasks:patching code`"
|
":ref:`dev-manual/dev-manual-common-tasks:patching code`"
|
||||||
section in the
|
section in the
|
||||||
Yocto Project Development Tasks Manual. You can also see the
|
Yocto Project Development Tasks Manual. You can also see the
|
||||||
":ref:`sdk-manual/extensible:use \`\`devtool modify\`\` to modify the source of an existing component`"
|
":ref:`sdk-manual/sdk-extensible:use \`\`devtool modify\`\` to modify the source of an existing component`"
|
||||||
section in the Yocto Project Application Development and the Extensible
|
section in the Yocto Project Application Development and the Extensible
|
||||||
Software Development Kit (SDK) manual and the
|
Software Development Kit (SDK) manual and the
|
||||||
":ref:`kernel-dev/common:using traditional kernel development to patch the kernel`"
|
":ref:`kernel-dev/kernel-dev-common:using traditional kernel development to patch the kernel`"
|
||||||
section in the Yocto Project Linux Kernel Development Manual.
|
section in the Yocto Project Linux Kernel Development Manual.
|
||||||
|
|
||||||
|
.. _configuration-compilation-and-staging-dev-environment:
|
||||||
|
|
||||||
Configuration, Compilation, and Staging
|
Configuration, Compilation, and Staging
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
@@ -874,7 +905,7 @@ This step in the build process consists of the following tasks:
|
|||||||
variables. For information on how this variable works within that
|
variables. For information on how this variable works within that
|
||||||
class, see the
|
class, see the
|
||||||
:ref:`autotools <ref-classes-autotools>` class
|
:ref:`autotools <ref-classes-autotools>` class
|
||||||
:yocto_git:`here </poky/tree/meta/classes/autotools.bbclass>`.
|
:yocto_git:`here </cgit/cgit.cgi/poky/tree/meta/classes/autotools.bbclass>`.
|
||||||
|
|
||||||
- *do_compile*: Once a configuration task has been satisfied,
|
- *do_compile*: Once a configuration task has been satisfied,
|
||||||
BitBake compiles the source using the
|
BitBake compiles the source using the
|
||||||
@@ -891,6 +922,8 @@ This step in the build process consists of the following tasks:
|
|||||||
variable. Packaging occurs later using files from this holding
|
variable. Packaging occurs later using files from this holding
|
||||||
directory.
|
directory.
|
||||||
|
|
||||||
|
.. _package-splitting-dev-environment:
|
||||||
|
|
||||||
Package Splitting
|
Package Splitting
|
||||||
~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
@@ -952,7 +985,7 @@ The :term:`FILES` variable defines the
|
|||||||
files that go into each package in
|
files that go into each package in
|
||||||
:term:`PACKAGES`. If you want
|
:term:`PACKAGES`. If you want
|
||||||
details on how this is accomplished, you can look at
|
details on how this is accomplished, you can look at
|
||||||
:yocto_git:`package.bbclass </poky/tree/meta/classes/package.bbclass>`.
|
:yocto_git:`package.bbclass </cgit/cgit.cgi/poky/tree/meta/classes/package.bbclass>`.
|
||||||
|
|
||||||
Depending on the type of packages being created (RPM, DEB, or IPK), the
|
Depending on the type of packages being created (RPM, DEB, or IPK), the
|
||||||
:ref:`do_package_write_* <ref-tasks-package_write_deb>`
|
:ref:`do_package_write_* <ref-tasks-package_write_deb>`
|
||||||
@@ -971,6 +1004,8 @@ that part of the build process.
|
|||||||
functionality is highly distribution-specific and thus is not
|
functionality is highly distribution-specific and thus is not
|
||||||
provided out of the box.
|
provided out of the box.
|
||||||
|
|
||||||
|
.. _image-generation-dev-environment:
|
||||||
|
|
||||||
Image Generation
|
Image Generation
|
||||||
~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
@@ -1025,7 +1060,7 @@ stage of package installation, post installation scripts that are part
|
|||||||
of the packages are run. Any scripts that fail to run on the build host
|
of the packages are run. Any scripts that fail to run on the build host
|
||||||
are run on the target when the target system is first booted. If you are
|
are run on the target when the target system is first booted. If you are
|
||||||
using a
|
using a
|
||||||
:ref:`read-only root filesystem <dev-manual/common-tasks:creating a read-only root filesystem>`,
|
:ref:`read-only root filesystem <dev-manual/dev-manual-common-tasks:creating a read-only root filesystem>`,
|
||||||
all the post installation scripts must succeed on the build host during
|
all the post installation scripts must succeed on the build host during
|
||||||
the package installation phase since the root filesystem on the target
|
the package installation phase since the root filesystem on the target
|
||||||
is read-only.
|
is read-only.
|
||||||
@@ -1092,6 +1127,8 @@ build system has created the final image output files.
|
|||||||
Pseudo. Running under Pseudo ensures that the files in the root filesystem
|
Pseudo. Running under Pseudo ensures that the files in the root filesystem
|
||||||
have correct ownership.
|
have correct ownership.
|
||||||
|
|
||||||
|
.. _sdk-generation-dev-environment:
|
||||||
|
|
||||||
SDK Generation
|
SDK Generation
|
||||||
~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
@@ -1105,10 +1142,10 @@ the extensible SDK (eSDK):
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
For more information on the cross-development toolchain generation,
|
For more information on the cross-development toolchain generation,
|
||||||
see the ":ref:`overview-manual/concepts:cross-development toolchain generation`"
|
see the ":ref:`overview-manual/overview-manual-concepts:cross-development toolchain generation`"
|
||||||
section. For information on advantages gained when building a
|
section. For information on advantages gained when building a
|
||||||
cross-development toolchain using the do_populate_sdk task, see the
|
cross-development toolchain using the do_populate_sdk task, see the
|
||||||
":ref:`sdk-manual/appendix-obtain:building an sdk installer`" section in
|
":ref:`sdk-manual/sdk-appendix-obtain:building an sdk installer`" section in
|
||||||
the Yocto Project Application Development and the Extensible Software
|
the Yocto Project Application Development and the Extensible Software
|
||||||
Development Kit (eSDK) manual.
|
Development Kit (eSDK) manual.
|
||||||
|
|
||||||
@@ -1188,7 +1225,7 @@ varflag. If some other task depends on such a task, then that task will
|
|||||||
also always be considered out of date, which might not be what you want.
|
also always be considered out of date, which might not be what you want.
|
||||||
|
|
||||||
For details on how to view information about a task's signature, see the
|
For details on how to view information about a task's signature, see the
|
||||||
":ref:`dev-manual/common-tasks:viewing task variable dependencies`"
|
":ref:`dev-manual/dev-manual-common-tasks:viewing task variable dependencies`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
Setscene Tasks and Shared State
|
Setscene Tasks and Shared State
|
||||||
@@ -1266,6 +1303,8 @@ variable is the function that determines whether a given dependency
|
|||||||
needs to be followed, and whether for any given relationship the
|
needs to be followed, and whether for any given relationship the
|
||||||
function needs to be passed. The function returns a True or False value.
|
function needs to be passed. The function returns a True or False value.
|
||||||
|
|
||||||
|
.. _images-dev-environment:
|
||||||
|
|
||||||
Images
|
Images
|
||||||
------
|
------
|
||||||
|
|
||||||
@@ -1281,7 +1320,7 @@ this output:
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
For a list of example images that the Yocto Project provides, see the
|
For a list of example images that the Yocto Project provides, see the
|
||||||
":doc:`/ref-manual/images`" chapter in the Yocto Project Reference
|
":doc:`../ref-manual/ref-images`" chapter in the Yocto Project Reference
|
||||||
Manual.
|
Manual.
|
||||||
|
|
||||||
The build process writes images out to the :term:`Build Directory`
|
The build process writes images out to the :term:`Build Directory`
|
||||||
@@ -1324,6 +1363,8 @@ current configuration.
|
|||||||
These links might be useful for external scripts that need to obtain
|
These links might be useful for external scripts that need to obtain
|
||||||
the latest version of each file.
|
the latest version of each file.
|
||||||
|
|
||||||
|
.. _sdk-dev-environment:
|
||||||
|
|
||||||
Application Development SDK
|
Application Development SDK
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
@@ -1362,7 +1403,7 @@ can initialize the environment before using the tools.
|
|||||||
section.
|
section.
|
||||||
|
|
||||||
- For information on setting up a cross-development environment, see
|
- For information on setting up a cross-development environment, see
|
||||||
the :doc:`/sdk-manual/index` manual.
|
the :doc:`../sdk-manual/sdk-manual` manual.
|
||||||
|
|
||||||
All the output files for an SDK are written to the ``deploy/sdk`` folder
|
All the output files for an SDK are written to the ``deploy/sdk`` folder
|
||||||
inside the :term:`Build Directory` as
|
inside the :term:`Build Directory` as
|
||||||
@@ -1439,10 +1480,10 @@ Cross-Development Toolchain Generation
|
|||||||
======================================
|
======================================
|
||||||
|
|
||||||
The Yocto Project does most of the work for you when it comes to
|
The Yocto Project does most of the work for you when it comes to
|
||||||
creating :ref:`sdk-manual/intro:the cross-development toolchain`. This
|
creating :ref:`sdk-manual/sdk-intro:the cross-development toolchain`. This
|
||||||
section provides some technical background on how cross-development
|
section provides some technical background on how cross-development
|
||||||
toolchains are created and used. For more information on toolchains, you
|
toolchains are created and used. For more information on toolchains, you
|
||||||
can also see the :doc:`/sdk-manual/index` manual.
|
can also see the :doc:`../sdk-manual/sdk-manual` manual.
|
||||||
|
|
||||||
In the Yocto Project development environment, cross-development
|
In the Yocto Project development environment, cross-development
|
||||||
toolchains are used to build images and applications that run on the
|
toolchains are used to build images and applications that run on the
|
||||||
@@ -1474,24 +1515,27 @@ cross-compiler that is used internally within BitBake only.
|
|||||||
gcc-cross
|
gcc-cross
|
||||||
.
|
.
|
||||||
|
|
||||||
The chain of events that occurs when the standard toolchain is bootstrapped:
|
The chain of events that occurs when ``gcc-cross`` is bootstrapped is as
|
||||||
|
follows:
|
||||||
::
|
::
|
||||||
|
|
||||||
binutils-cross -> linux-libc-headers -> gcc-cross -> libgcc-initial -> glibc -> libgcc -> gcc-runtime
|
gcc -> binutils-cross -> gcc-cross-initial -> linux-libc-headers -> glibc-initial -> glibc -> gcc-cross -> gcc-runtime
|
||||||
|
|
||||||
- ``gcc``: The compiler, GNU Compiler Collection (GCC).
|
- ``gcc``: The build host's GNU Compiler Collection (GCC).
|
||||||
|
|
||||||
- ``binutils-cross``: The binary utilities needed in order
|
- ``binutils-cross``: The bare minimum binary utilities needed in order
|
||||||
to run the ``gcc-cross`` phase of the bootstrap operation and build the
|
to run the ``gcc-cross-initial`` phase of the bootstrap operation.
|
||||||
headers for the C library.
|
|
||||||
|
|
||||||
- ``linux-libc-headers``: Headers needed for the cross-compiler and C library build.
|
- ``gcc-cross-initial``: An early stage of the bootstrap process for
|
||||||
|
creating the cross-compiler. This stage builds enough of the
|
||||||
|
``gcc-cross``, the C library, and other pieces needed to finish
|
||||||
|
building the final cross-compiler in later stages. This tool is a
|
||||||
|
"native" package (i.e. it is designed to run on the build host).
|
||||||
|
|
||||||
- ``libgcc-initial``: An initial version of the gcc support library needed
|
- ``linux-libc-headers``: Headers needed for the cross-compiler.
|
||||||
to bootstrap ``glibc``.
|
|
||||||
|
|
||||||
- ``libgcc``: The final version of the gcc support library which
|
- ``glibc-initial``: An initial version of the Embedded GNU C Library
|
||||||
can only be built once there is a C library to link against.
|
(GLIBC) needed to bootstrap ``glibc``.
|
||||||
|
|
||||||
- ``glibc``: The GNU C Library.
|
- ``glibc``: The GNU C Library.
|
||||||
|
|
||||||
@@ -1499,7 +1543,14 @@ The chain of events that occurs when the standard toolchain is bootstrapped:
|
|||||||
cross-compiler. This stage results in the actual cross-compiler that
|
cross-compiler. This stage results in the actual cross-compiler that
|
||||||
BitBake uses when it builds an image for a targeted device.
|
BitBake uses when it builds an image for a targeted device.
|
||||||
|
|
||||||
This tool is a "native" tool (i.e. it is designed to run on
|
.. note::
|
||||||
|
|
||||||
|
If you are replacing this cross compiler toolchain with a custom
|
||||||
|
version, you must replace
|
||||||
|
gcc-cross
|
||||||
|
.
|
||||||
|
|
||||||
|
This tool is also a "native" package (i.e. it is designed to run on
|
||||||
the build host).
|
the build host).
|
||||||
|
|
||||||
- ``gcc-runtime``: Runtime libraries resulting from the toolchain
|
- ``gcc-runtime``: Runtime libraries resulting from the toolchain
|
||||||
@@ -1569,7 +1620,7 @@ Here is the bootstrap process for the relocatable toolchain:
|
|||||||
|
|
||||||
For information on advantages gained when building a
|
For information on advantages gained when building a
|
||||||
cross-development toolchain installer, see the
|
cross-development toolchain installer, see the
|
||||||
":ref:`sdk-manual/appendix-obtain:building an sdk installer`" appendix
|
":ref:`sdk-manual/sdk-appendix-obtain:building an sdk installer`" appendix
|
||||||
in the Yocto Project Application Development and the
|
in the Yocto Project Application Development and the
|
||||||
Extensible Software Development Kit (eSDK) manual.
|
Extensible Software Development Kit (eSDK) manual.
|
||||||
|
|
||||||
@@ -1622,20 +1673,22 @@ them if they are deemed to be valid.
|
|||||||
the shared state packages. Consequently, considerations exist that
|
the shared state packages. Consequently, considerations exist that
|
||||||
affect maintaining shared state feeds. For information on how the
|
affect maintaining shared state feeds. For information on how the
|
||||||
build system works with packages and can track incrementing ``PR``
|
build system works with packages and can track incrementing ``PR``
|
||||||
information, see the ":ref:`dev-manual/common-tasks:automatically incrementing a package version number`"
|
information, see the ":ref:`dev-manual/dev-manual-common-tasks:automatically incrementing a package version number`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- The code in the build system that supports incremental builds is
|
- The code in the build system that supports incremental builds is
|
||||||
not simple code. For techniques that help you work around issues
|
not simple code. For techniques that help you work around issues
|
||||||
related to shared state code, see the
|
related to shared state code, see the
|
||||||
":ref:`dev-manual/common-tasks:viewing metadata used to create the input signature of a shared state task`"
|
":ref:`dev-manual/dev-manual-common-tasks:viewing metadata used to create the input signature of a shared state task`"
|
||||||
and
|
and
|
||||||
":ref:`dev-manual/common-tasks:invalidating shared state to force a task to run`"
|
":ref:`dev-manual/dev-manual-common-tasks:invalidating shared state to force a task to run`"
|
||||||
sections both in the Yocto Project Development Tasks Manual.
|
sections both in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
The rest of this section goes into detail about the overall incremental
|
The rest of this section goes into detail about the overall incremental
|
||||||
build architecture, the checksums (signatures), and shared state.
|
build architecture, the checksums (signatures), and shared state.
|
||||||
|
|
||||||
|
.. _concepts-overall-architecture:
|
||||||
|
|
||||||
Overall Architecture
|
Overall Architecture
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
@@ -1654,6 +1707,8 @@ specific tasks. This methodology does not scale well and does not allow
|
|||||||
users to easily add new tasks in layers or as external recipes without
|
users to easily add new tasks in layers or as external recipes without
|
||||||
touching the packaged-staging core.
|
touching the packaged-staging core.
|
||||||
|
|
||||||
|
.. _overview-checksums:
|
||||||
|
|
||||||
Checksums (Signatures)
|
Checksums (Signatures)
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
@@ -1904,7 +1959,7 @@ The following list explains the previous example:
|
|||||||
extra metadata to the `stamp
|
extra metadata to the `stamp
|
||||||
file <#stamp-files-and-the-rerunning-of-tasks>`__. In this case, the
|
file <#stamp-files-and-the-rerunning-of-tasks>`__. In this case, the
|
||||||
metadata makes the task specific to a machine's architecture. See
|
metadata makes the task specific to a machine's architecture. See
|
||||||
":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-execution:the task list`"
|
":ref:`bitbake:ref-bitbake-tasklist`"
|
||||||
section in the BitBake User Manual for more information on the
|
section in the BitBake User Manual for more information on the
|
||||||
``stamp-extra-info`` flag.
|
``stamp-extra-info`` flag.
|
||||||
|
|
||||||
@@ -2092,8 +2147,10 @@ The capability to run tasks in a fake root environment is known as
|
|||||||
the BitBake keyword/variable flag that requests a fake root environment
|
the BitBake keyword/variable flag that requests a fake root environment
|
||||||
for a task.
|
for a task.
|
||||||
|
|
||||||
In the :term:`OpenEmbedded Build System`, the program that implements
|
In the :term:`OpenEmbedded Build System`,
|
||||||
fakeroot is known as :yocto_home:`Pseudo </software-item/pseudo/>`. Pseudo
|
the program that
|
||||||
|
implements fakeroot is known as
|
||||||
|
`Pseudo <https://www.yoctoproject.org/software-item/pseudo/>`__. Pseudo
|
||||||
overrides system calls by using the environment variable ``LD_PRELOAD``,
|
overrides system calls by using the environment variable ``LD_PRELOAD``,
|
||||||
which results in the illusion of running as root. To keep track of
|
which results in the illusion of running as root. To keep track of
|
||||||
"fake" file ownership and permissions resulting from operations that
|
"fake" file ownership and permissions resulting from operations that
|
||||||
@@ -40,11 +40,13 @@ project is the Windows family of operating systems developed by
|
|||||||
Microsoft Corporation.
|
Microsoft Corporation.
|
||||||
|
|
||||||
Wikipedia has a good historical description of the Open Source
|
Wikipedia has a good historical description of the Open Source
|
||||||
Philosophy `here <https://en.wikipedia.org/wiki/Open_source>`__. You can
|
Philosophy `here <http://en.wikipedia.org/wiki/Open_source>`__. You can
|
||||||
also find helpful information on how to participate in the Linux
|
also find helpful information on how to participate in the Linux
|
||||||
Community
|
Community
|
||||||
`here <https://www.kernel.org/doc/html/latest/process/index.html>`__.
|
`here <https://www.kernel.org/doc/html/latest/process/index.html>`__.
|
||||||
|
|
||||||
|
.. _gs-the-development-host:
|
||||||
|
|
||||||
The Development Host
|
The Development Host
|
||||||
====================
|
====================
|
||||||
|
|
||||||
@@ -66,7 +68,7 @@ to set up a CROPS machine, you effectively have access to a shell
|
|||||||
environment that is similar to what you see when using a Linux-based
|
environment that is similar to what you see when using a Linux-based
|
||||||
development host. For the steps needed to set up a system using CROPS,
|
development host. For the steps needed to set up a system using CROPS,
|
||||||
see the
|
see the
|
||||||
":ref:`dev-manual/start:setting up to use cross platforms (crops)`"
|
":ref:`dev-manual/dev-manual-start:setting up to use cross platforms (crops)`"
|
||||||
section in
|
section in
|
||||||
the Yocto Project Development Tasks Manual.
|
the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
@@ -77,7 +79,7 @@ distribution on the system is one that supports the Yocto Project. You
|
|||||||
also need to be sure that the correct set of host packages are installed
|
also need to be sure that the correct set of host packages are installed
|
||||||
that allow development using the Yocto Project. For the steps needed to
|
that allow development using the Yocto Project. For the steps needed to
|
||||||
set up a development host that runs Linux, see the
|
set up a development host that runs Linux, see the
|
||||||
":ref:`dev-manual/start:setting up a native linux host`"
|
":ref:`dev-manual/dev-manual-start:setting up a native linux host`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
Once your development host is set up to use the Yocto Project, several
|
Once your development host is set up to use the Yocto Project, several
|
||||||
@@ -94,7 +96,7 @@ methods exist for you to do work in the Yocto Project environment:
|
|||||||
through your Linux distribution and the Yocto Project.
|
through your Linux distribution and the Yocto Project.
|
||||||
|
|
||||||
For a general flow of the build procedures, see the
|
For a general flow of the build procedures, see the
|
||||||
":ref:`dev-manual/common-tasks:building a simple image`"
|
":ref:`dev-manual/dev-manual-common-tasks:building a simple image`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- *Board Support Package (BSP) Development:* Development of BSPs
|
- *Board Support Package (BSP) Development:* Development of BSPs
|
||||||
@@ -103,7 +105,7 @@ methods exist for you to do work in the Yocto Project environment:
|
|||||||
hardware. To development BSPs, you need to take some additional steps
|
hardware. To development BSPs, you need to take some additional steps
|
||||||
beyond what was described in setting up a development host.
|
beyond what was described in setting up a development host.
|
||||||
|
|
||||||
The :doc:`/bsp-guide/index` provides BSP-related development
|
The :doc:`../bsp-guide/bsp-guide` provides BSP-related development
|
||||||
information. For specifics on development host preparation, see the
|
information. For specifics on development host preparation, see the
|
||||||
":ref:`bsp-guide/bsp:preparing your build host to work with bsp layers`"
|
":ref:`bsp-guide/bsp:preparing your build host to work with bsp layers`"
|
||||||
section in the Yocto Project Board Support Package (BSP) Developer's
|
section in the Yocto Project Board Support Package (BSP) Developer's
|
||||||
@@ -114,10 +116,10 @@ methods exist for you to do work in the Yocto Project environment:
|
|||||||
using ``devtool`` makes kernel development quicker by reducing
|
using ``devtool`` makes kernel development quicker by reducing
|
||||||
iteration cycle times.
|
iteration cycle times.
|
||||||
|
|
||||||
The :doc:`/kernel-dev/index` provides kernel-related
|
The :doc:`../kernel-dev/kernel-dev` provides kernel-related
|
||||||
development information. For specifics on development host
|
development information. For specifics on development host
|
||||||
preparation, see the
|
preparation, see the
|
||||||
":ref:`kernel-dev/common:preparing the build host to work on the kernel`"
|
":ref:`kernel-dev/kernel-dev-common:preparing the build host to work on the kernel`"
|
||||||
section in the Yocto Project Linux Kernel Development Manual.
|
section in the Yocto Project Linux Kernel Development Manual.
|
||||||
|
|
||||||
- *Using Toaster:* The other Yocto Project development method that
|
- *Using Toaster:* The other Yocto Project development method that
|
||||||
@@ -130,7 +132,9 @@ methods exist for you to do work in the Yocto Project environment:
|
|||||||
|
|
||||||
For steps that show you how to set up your development host to use
|
For steps that show you how to set up your development host to use
|
||||||
Toaster and on how to use Toaster in general, see the
|
Toaster and on how to use Toaster in general, see the
|
||||||
:doc:`/toaster-manual/index`.
|
:doc:`../toaster-manual/toaster-manual`.
|
||||||
|
|
||||||
|
.. _yocto-project-repositories:
|
||||||
|
|
||||||
Yocto Project Source Repositories
|
Yocto Project Source Repositories
|
||||||
=================================
|
=================================
|
||||||
@@ -178,7 +182,7 @@ development:
|
|||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
For steps on how to view and access these upstream Git repositories,
|
For steps on how to view and access these upstream Git repositories,
|
||||||
see the ":ref:`dev-manual/start:accessing source repositories`"
|
see the ":ref:`dev-manual/dev-manual-start:accessing source repositories`"
|
||||||
Section in the Yocto Project Development Tasks Manual.
|
Section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- :yocto_dl:`Index of /releases: </releases>` This is an index
|
- :yocto_dl:`Index of /releases: </releases>` This is an index
|
||||||
@@ -192,7 +196,7 @@ development:
|
|||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
For steps on how to view and access these files, see the
|
For steps on how to view and access these files, see the
|
||||||
":ref:`dev-manual/start:accessing index of releases`"
|
":ref:`dev-manual/dev-manual-start:accessing index of releases`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- *"DOWNLOADS" page for the* :yocto_home:`Yocto Project Website <>` *:*
|
- *"DOWNLOADS" page for the* :yocto_home:`Yocto Project Website <>` *:*
|
||||||
@@ -207,9 +211,11 @@ development:
|
|||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
For steps on how to use the "DOWNLOADS" page, see the
|
For steps on how to use the "DOWNLOADS" page, see the
|
||||||
":ref:`dev-manual/start:using the downloads page`"
|
":ref:`dev-manual/dev-manual-start:using the downloads page`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
|
.. _gs-git-workflows-and-the-yocto-project:
|
||||||
|
|
||||||
Git Workflows and the Yocto Project
|
Git Workflows and the Yocto Project
|
||||||
===================================
|
===================================
|
||||||
|
|
||||||
@@ -242,7 +248,7 @@ and so forth.
|
|||||||
|
|
||||||
For information on finding out who is responsible for (maintains) a
|
For information on finding out who is responsible for (maintains) a
|
||||||
particular area of code in the Yocto Project, see the
|
particular area of code in the Yocto Project, see the
|
||||||
":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
|
":ref:`dev-manual/dev-manual-common-tasks:submitting a change to the yocto project`"
|
||||||
section of the Yocto Project Development Tasks Manual.
|
section of the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
The Yocto Project ``poky`` Git repository also has an upstream
|
The Yocto Project ``poky`` Git repository also has an upstream
|
||||||
@@ -274,7 +280,7 @@ push them into the "contrib" area and subsequently request that the
|
|||||||
maintainer include them into an upstream branch. This process is called
|
maintainer include them into an upstream branch. This process is called
|
||||||
"submitting a patch" or "submitting a change." For information on
|
"submitting a patch" or "submitting a change." For information on
|
||||||
submitting patches and changes, see the
|
submitting patches and changes, see the
|
||||||
":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
|
":ref:`dev-manual/dev-manual-common-tasks:submitting a change to the yocto project`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
In summary, a single point of entry exists for changes into a "master"
|
In summary, a single point of entry exists for changes into a "master"
|
||||||
@@ -291,7 +297,7 @@ While each development environment is unique, there are some best
|
|||||||
practices or methods that help development run smoothly. The following
|
practices or methods that help development run smoothly. The following
|
||||||
list describes some of these practices. For more information about Git
|
list describes some of these practices. For more information about Git
|
||||||
workflows, see the workflow topics in the `Git Community
|
workflows, see the workflow topics in the `Git Community
|
||||||
Book <https://book.git-scm.com>`__.
|
Book <http://book.git-scm.com>`__.
|
||||||
|
|
||||||
- *Make Small Changes:* It is best to keep the changes you commit small
|
- *Make Small Changes:* It is best to keep the changes you commit small
|
||||||
as compared to bundling many disparate changes into a single commit.
|
as compared to bundling many disparate changes into a single commit.
|
||||||
@@ -341,7 +347,7 @@ Book <https://book.git-scm.com>`__.
|
|||||||
the ``scripts`` folder of the
|
the ``scripts`` folder of the
|
||||||
:term:`Source Directory`. For information
|
:term:`Source Directory`. For information
|
||||||
on how to use these scripts, see the
|
on how to use these scripts, see the
|
||||||
":ref:`dev-manual/common-tasks:using scripts to push a change upstream and request a pull`"
|
":ref:`dev-manual/dev-manual-common-tasks:using scripts to push a change upstream and request a pull`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- *Patch Workflow:* This workflow allows you to notify the maintainer
|
- *Patch Workflow:* This workflow allows you to notify the maintainer
|
||||||
@@ -350,7 +356,7 @@ Book <https://book.git-scm.com>`__.
|
|||||||
this type of change, you format the patch and then send the email
|
this type of change, you format the patch and then send the email
|
||||||
using the Git commands ``git format-patch`` and ``git send-email``.
|
using the Git commands ``git format-patch`` and ``git send-email``.
|
||||||
For information on how to use these scripts, see the
|
For information on how to use these scripts, see the
|
||||||
":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
|
":ref:`dev-manual/dev-manual-common-tasks:submitting a change to the yocto project`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
Git
|
Git
|
||||||
@@ -368,15 +374,15 @@ commands.
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
- For more information on Git, see
|
- For more information on Git, see
|
||||||
https://git-scm.com/documentation.
|
http://git-scm.com/documentation.
|
||||||
|
|
||||||
- If you need to download Git, it is recommended that you add Git to
|
- If you need to download Git, it is recommended that you add Git to
|
||||||
your system through your distribution's "software store" (e.g. for
|
your system through your distribution's "software store" (e.g. for
|
||||||
Ubuntu, use the Ubuntu Software feature). For the Git download
|
Ubuntu, use the Ubuntu Software feature). For the Git download
|
||||||
page, see https://git-scm.com/download.
|
page, see http://git-scm.com/download.
|
||||||
|
|
||||||
- For information beyond the introductory nature in this section,
|
- For information beyond the introductory nature in this section,
|
||||||
see the ":ref:`dev-manual/start:locating yocto project source files`"
|
see the ":ref:`dev-manual/dev-manual-start:locating yocto project source files`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
Repositories, Tags, and Branches
|
Repositories, Tags, and Branches
|
||||||
@@ -408,7 +414,7 @@ You can create a local copy of any repository by "cloning" it with the
|
|||||||
an identical copy of the repository on your development system. Once you
|
an identical copy of the repository on your development system. Once you
|
||||||
have a local copy of a repository, you can take steps to develop
|
have a local copy of a repository, you can take steps to develop
|
||||||
locally. For examples on how to clone Git repositories, see the
|
locally. For examples on how to clone Git repositories, see the
|
||||||
":ref:`dev-manual/start:locating yocto project source files`"
|
":ref:`dev-manual/dev-manual-start:locating yocto project source files`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
It is important to understand that Git tracks content change and not
|
It is important to understand that Git tracks content change and not
|
||||||
@@ -416,7 +422,7 @@ files. Git uses "branches" to organize different development efforts.
|
|||||||
For example, the ``poky`` repository has several branches that include
|
For example, the ``poky`` repository has several branches that include
|
||||||
the current "&DISTRO_NAME_NO_CAP;" branch, the "master" branch, and many
|
the current "&DISTRO_NAME_NO_CAP;" branch, the "master" branch, and many
|
||||||
branches for past Yocto Project releases. You can see all the branches
|
branches for past Yocto Project releases. You can see all the branches
|
||||||
by going to :yocto_git:`/poky/` and clicking on the
|
by going to https://git.yoctoproject.org/cgit.cgi/poky/ and clicking on the
|
||||||
``[...]`` link beneath the "Branch" heading.
|
``[...]`` link beneath the "Branch" heading.
|
||||||
|
|
||||||
Each of these branches represents a specific area of development. The
|
Each of these branches represents a specific area of development. The
|
||||||
@@ -461,8 +467,9 @@ Yocto Project Release.
|
|||||||
Git uses "tags" to mark specific changes in a repository branch
|
Git uses "tags" to mark specific changes in a repository branch
|
||||||
structure. Typically, a tag is used to mark a special point such as the
|
structure. Typically, a tag is used to mark a special point such as the
|
||||||
final change (or commit) before a project is released. You can see the
|
final change (or commit) before a project is released. You can see the
|
||||||
tags used with the ``poky`` Git repository by going to :yocto_git:`/poky/`
|
tags used with the ``poky`` Git repository by going to
|
||||||
and clicking on the ``[...]`` link beneath the "Tag" heading.
|
https://git.yoctoproject.org/cgit.cgi/poky/ and clicking on the ``[...]`` link
|
||||||
|
beneath the "Tag" heading.
|
||||||
|
|
||||||
Some key tags for the ``poky`` repository are ``jethro-14.0.3``,
|
Some key tags for the ``poky`` repository are ``jethro-14.0.3``,
|
||||||
``morty-16.0.1``, ``pyro-17.0.0``, and
|
``morty-16.0.1``, ``pyro-17.0.0``, and
|
||||||
@@ -507,7 +514,7 @@ you can manage with a small set of basic operations and workflows once
|
|||||||
you understand the basic philosophy behind Git. You do not have to be an
|
you understand the basic philosophy behind Git. You do not have to be an
|
||||||
expert in Git to be functional. A good place to look for instruction on
|
expert in Git to be functional. A good place to look for instruction on
|
||||||
a minimal set of Git commands is
|
a minimal set of Git commands is
|
||||||
`here <https://git-scm.com/documentation>`__.
|
`here <http://git-scm.com/documentation>`__.
|
||||||
|
|
||||||
The following list of Git commands briefly describes some basic Git
|
The following list of Git commands briefly describes some basic Git
|
||||||
operations as a way to get started. As with any set of commands, this
|
operations as a way to get started. As with any set of commands, this
|
||||||
@@ -614,10 +621,10 @@ and Free Software has an interesting history. If you are interested in
|
|||||||
this history, you can find basic information here:
|
this history, you can find basic information here:
|
||||||
|
|
||||||
- `Open source license
|
- `Open source license
|
||||||
history <https://en.wikipedia.org/wiki/Open-source_license>`__
|
history <http://en.wikipedia.org/wiki/Open-source_license>`__
|
||||||
|
|
||||||
- `Free software license
|
- `Free software license
|
||||||
history <https://en.wikipedia.org/wiki/Free_software_license>`__
|
history <http://en.wikipedia.org/wiki/Free_software_license>`__
|
||||||
|
|
||||||
In general, the Yocto Project is broadly licensed under the
|
In general, the Yocto Project is broadly licensed under the
|
||||||
Massachusetts Institute of Technology (MIT) License. MIT licensing
|
Massachusetts Institute of Technology (MIT) License. MIT licensing
|
||||||
@@ -626,9 +633,9 @@ license is distributed with that software. MIT is also compatible with
|
|||||||
the GNU General Public License (GPL). Patches to the Yocto Project
|
the GNU General Public License (GPL). Patches to the Yocto Project
|
||||||
follow the upstream licensing scheme. You can find information on the
|
follow the upstream licensing scheme. You can find information on the
|
||||||
MIT license
|
MIT license
|
||||||
`here <https://www.opensource.org/licenses/mit-license.php>`__. You can
|
`here <http://www.opensource.org/licenses/mit-license.php>`__. You can
|
||||||
find information on the GNU GPL
|
find information on the GNU GPL
|
||||||
`here <https://www.opensource.org/licenses/LGPL-3.0>`__.
|
`here <http://www.opensource.org/licenses/LGPL-3.0>`__.
|
||||||
|
|
||||||
When you build an image using the Yocto Project, the build process uses
|
When you build an image using the Yocto Project, the build process uses
|
||||||
a known list of licenses to ensure compliance. You can find this list in
|
a known list of licenses to ensure compliance. You can find this list in
|
||||||
@@ -646,11 +653,11 @@ the developer to resolve potential licensing issues.
|
|||||||
|
|
||||||
The base list of licenses used by the build process is a combination of
|
The base list of licenses used by the build process is a combination of
|
||||||
the Software Package Data Exchange (SPDX) list and the Open Source
|
the Software Package Data Exchange (SPDX) list and the Open Source
|
||||||
Initiative (OSI) projects. `SPDX Group <https://spdx.org>`__ is a working
|
Initiative (OSI) projects. `SPDX Group <http://spdx.org>`__ is a working
|
||||||
group of the Linux Foundation that maintains a specification for a
|
group of the Linux Foundation that maintains a specification for a
|
||||||
standard format for communicating the components, licenses, and
|
standard format for communicating the components, licenses, and
|
||||||
copyrights associated with a software package.
|
copyrights associated with a software package.
|
||||||
`OSI <https://opensource.org>`__ is a corporation dedicated to the Open
|
`OSI <http://opensource.org>`__ is a corporation dedicated to the Open
|
||||||
Source Definition and the effort for reviewing and approving licenses
|
Source Definition and the effort for reviewing and approving licenses
|
||||||
that conform to the Open Source Definition (OSD).
|
that conform to the Open Source Definition (OSD).
|
||||||
|
|
||||||
@@ -661,5 +668,5 @@ Project uses in the ``meta/files/common-licenses`` directory in your
|
|||||||
For information that can help you maintain compliance with various open
|
For information that can help you maintain compliance with various open
|
||||||
source licensing during the lifecycle of a product created using the
|
source licensing during the lifecycle of a product created using the
|
||||||
Yocto Project, see the
|
Yocto Project, see the
|
||||||
":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`"
|
":ref:`dev-manual/dev-manual-common-tasks:maintaining open source license compliance during your product's lifecycle`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
@@ -4,6 +4,8 @@
|
|||||||
The Yocto Project Overview and Concepts Manual
|
The Yocto Project Overview and Concepts Manual
|
||||||
**********************************************
|
**********************************************
|
||||||
|
|
||||||
|
.. _overview-manual-welcome:
|
||||||
|
|
||||||
Welcome
|
Welcome
|
||||||
=======
|
=======
|
||||||
|
|
||||||
@@ -28,7 +30,7 @@ The following list describes what you can get from this manual:
|
|||||||
Yocto Project source repositories, workflows using Git and the Yocto
|
Yocto Project source repositories, workflows using Git and the Yocto
|
||||||
Project, a Git primer, and information about licensing.
|
Project, a Git primer, and information about licensing.
|
||||||
|
|
||||||
- :doc:`/overview-manual/concepts` *:* This
|
- :doc:`overview-manual-concepts` *:* This
|
||||||
chapter presents various concepts regarding the Yocto Project. You
|
chapter presents various concepts regarding the Yocto Project. You
|
||||||
can find conceptual information about components, development,
|
can find conceptual information about components, development,
|
||||||
cross-toolchains, and so forth.
|
cross-toolchains, and so forth.
|
||||||
@@ -37,17 +39,17 @@ This manual does not give you the following:
|
|||||||
|
|
||||||
- *Step-by-step Instructions for Development Tasks:* Instructional
|
- *Step-by-step Instructions for Development Tasks:* Instructional
|
||||||
procedures reside in other manuals within the Yocto Project
|
procedures reside in other manuals within the Yocto Project
|
||||||
documentation set. For example, the :doc:`/dev-manual/index`
|
documentation set. For example, the :doc:`../dev-manual/dev-manual`
|
||||||
provides examples on how to perform
|
provides examples on how to perform
|
||||||
various development tasks. As another example, the
|
various development tasks. As another example, the
|
||||||
:doc:`/sdk-manual/index` manual contains detailed
|
:doc:`../sdk-manual/sdk-manual` manual contains detailed
|
||||||
instructions on how to install an SDK, which is used to develop
|
instructions on how to install an SDK, which is used to develop
|
||||||
applications for target hardware.
|
applications for target hardware.
|
||||||
|
|
||||||
- *Reference Material:* This type of material resides in an appropriate
|
- *Reference Material:* This type of material resides in an appropriate
|
||||||
reference manual. For example, system variables are documented in the
|
reference manual. For example, system variables are documented in the
|
||||||
:doc:`/ref-manual/index`. As another
|
:doc:`../ref-manual/ref-manual`. As another
|
||||||
example, the :doc:`/bsp-guide/index` contains reference information on
|
example, the :doc:`../bsp-guide/bsp-guide` contains reference information on
|
||||||
BSPs.
|
BSPs.
|
||||||
|
|
||||||
- *Detailed Public Information Not Specific to the Yocto Project:* For
|
- *Detailed Public Information Not Specific to the Yocto Project:* For
|
||||||
@@ -55,6 +57,8 @@ This manual does not give you the following:
|
|||||||
Manager Git is better covered with Internet searches and official Git
|
Manager Git is better covered with Internet searches and official Git
|
||||||
Documentation than through the Yocto Project documentation.
|
Documentation than through the Yocto Project documentation.
|
||||||
|
|
||||||
|
.. _overview-manual-other-information:
|
||||||
|
|
||||||
Other Information
|
Other Information
|
||||||
=================
|
=================
|
||||||
|
|
||||||
@@ -63,7 +67,7 @@ supplemental information is recommended for full comprehension. For
|
|||||||
additional introductory information on the Yocto Project, see the
|
additional introductory information on the Yocto Project, see the
|
||||||
:yocto_home:`Yocto Project Website <>`. If you want to build an image
|
:yocto_home:`Yocto Project Website <>`. If you want to build an image
|
||||||
with no knowledge of Yocto Project as a way of quickly testing it out,
|
with no knowledge of Yocto Project as a way of quickly testing it out,
|
||||||
see the :doc:`/brief-yoctoprojectqs/index` document.
|
see the :doc:`../brief-yoctoprojectqs/brief-yoctoprojectqs` document.
|
||||||
For a comprehensive list of links and other documentation, see the
|
For a comprehensive list of links and other documentation, see the
|
||||||
":ref:`Links and Related
|
":ref:`Links and Related
|
||||||
Documentation <resources-links-and-related-documentation>`"
|
Documentation <resources-links-and-related-documentation>`"
|
||||||
@@ -35,6 +35,8 @@ by Drew Moseley and in this short introductory
|
|||||||
The remainder of this section overviews advantages and challenges tied
|
The remainder of this section overviews advantages and challenges tied
|
||||||
to the Yocto Project.
|
to the Yocto Project.
|
||||||
|
|
||||||
|
.. _gs-features:
|
||||||
|
|
||||||
Features
|
Features
|
||||||
--------
|
--------
|
||||||
|
|
||||||
@@ -111,7 +113,7 @@ Project:
|
|||||||
development.
|
development.
|
||||||
|
|
||||||
- *Releases According to a Strict Schedule:* Major releases occur on a
|
- *Releases According to a Strict Schedule:* Major releases occur on a
|
||||||
:doc:`six-month cycle </ref-manual/release-process>`
|
:doc:`six-month cycle <../ref-manual/ref-release-process>`
|
||||||
predictably in October and April. The most recent two releases
|
predictably in October and April. The most recent two releases
|
||||||
support point releases to address common vulnerabilities and
|
support point releases to address common vulnerabilities and
|
||||||
exposures. This predictability is crucial for projects based on the
|
exposures. This predictability is crucial for projects based on the
|
||||||
@@ -130,10 +132,12 @@ Project:
|
|||||||
arbitrarily include packages.
|
arbitrarily include packages.
|
||||||
|
|
||||||
- *License Manifest:* The Yocto Project provides a :ref:`license
|
- *License Manifest:* The Yocto Project provides a :ref:`license
|
||||||
manifest <dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle>`
|
manifest <dev-manual/dev-manual-common-tasks:maintaining open source license compliance during your product's lifecycle>`
|
||||||
for review by people who need to track the use of open source
|
for review by people who need to track the use of open source
|
||||||
licenses (e.g. legal teams).
|
licenses (e.g. legal teams).
|
||||||
|
|
||||||
|
.. _gs-challenges:
|
||||||
|
|
||||||
Challenges
|
Challenges
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@@ -221,13 +225,14 @@ your Metadata, the easier it is to cope with future changes.
|
|||||||
|
|
||||||
- Familiarize yourself with the `Yocto Project curated layer
|
- Familiarize yourself with the `Yocto Project curated layer
|
||||||
index <https://www.yoctoproject.org/software-overview/layers/>`__
|
index <https://www.yoctoproject.org/software-overview/layers/>`__
|
||||||
or the :oe_layerindex:`OpenEmbedded layer index <>`.
|
or the `OpenEmbedded layer
|
||||||
|
index <http://layers.openembedded.org/layerindex/branch/master/layers/>`__.
|
||||||
The latter contains more layers but they are less universally
|
The latter contains more layers but they are less universally
|
||||||
validated.
|
validated.
|
||||||
|
|
||||||
- Layers support the inclusion of technologies, hardware components,
|
- Layers support the inclusion of technologies, hardware components,
|
||||||
and software components. The :ref:`Yocto Project
|
and software components. The :ref:`Yocto Project
|
||||||
Compatible <dev-manual/common-tasks:making sure your layer is compatible with yocto project>`
|
Compatible <dev-manual/dev-manual-common-tasks:making sure your layer is compatible with yocto project>`
|
||||||
designation provides a minimum level of standardization that
|
designation provides a minimum level of standardization that
|
||||||
contributes to a strong ecosystem. "YP Compatible" is applied to
|
contributes to a strong ecosystem. "YP Compatible" is applied to
|
||||||
appropriate products and software components such as BSPs, other
|
appropriate products and software components such as BSPs, other
|
||||||
@@ -250,7 +255,7 @@ accomplish this through a recipe that is a BitBake append
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
For general information on BSP layer structure, see the
|
For general information on BSP layer structure, see the
|
||||||
:doc:`/bsp-guide/index`
|
:doc:`../bsp-guide/bsp-guide`
|
||||||
.
|
.
|
||||||
|
|
||||||
The :term:`Source Directory`
|
The :term:`Source Directory`
|
||||||
@@ -266,14 +271,15 @@ with the string ``meta-``.
|
|||||||
, but it is a commonly accepted standard in the Yocto Project
|
, but it is a commonly accepted standard in the Yocto Project
|
||||||
community.
|
community.
|
||||||
|
|
||||||
For example, if you were to examine the :yocto_git:`tree view </poky/tree/>`
|
For example, if you were to examine the `tree
|
||||||
of the ``poky`` repository, you will see several layers: ``meta``,
|
view <https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/>`__ of the
|
||||||
|
``poky`` repository, you will see several layers: ``meta``,
|
||||||
``meta-skeleton``, ``meta-selftest``, ``meta-poky``, and
|
``meta-skeleton``, ``meta-selftest``, ``meta-poky``, and
|
||||||
``meta-yocto-bsp``. Each of these repositories represents a distinct
|
``meta-yocto-bsp``. Each of these repositories represents a distinct
|
||||||
layer.
|
layer.
|
||||||
|
|
||||||
For procedures on how to create layers, see the
|
For procedures on how to create layers, see the
|
||||||
":ref:`dev-manual/common-tasks:understanding and creating layers`"
|
":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
Components and Tools
|
Components and Tools
|
||||||
@@ -290,6 +296,8 @@ components and tools are downloaded separately.
|
|||||||
This section provides brief overviews of the components and tools
|
This section provides brief overviews of the components and tools
|
||||||
associated with the Yocto Project.
|
associated with the Yocto Project.
|
||||||
|
|
||||||
|
.. _gs-development-tools:
|
||||||
|
|
||||||
Development Tools
|
Development Tools
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
@@ -326,7 +334,7 @@ applications using the Yocto Project:
|
|||||||
You can read about the ``devtool`` workflow in the Yocto Project
|
You can read about the ``devtool`` workflow in the Yocto Project
|
||||||
Application Development and Extensible Software Development Kit
|
Application Development and Extensible Software Development Kit
|
||||||
(eSDK) Manual in the
|
(eSDK) Manual in the
|
||||||
":ref:`sdk-manual/extensible:using \`\`devtool\`\` in your sdk workflow`"
|
":ref:`sdk-manual/sdk-extensible:using \`\`devtool\`\` in your sdk workflow`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
- *Extensible Software Development Kit (eSDK):* The eSDK provides a
|
- *Extensible Software Development Kit (eSDK):* The eSDK provides a
|
||||||
@@ -338,12 +346,14 @@ applications using the Yocto Project:
|
|||||||
experience supplemented with the powerful set of ``devtool`` commands
|
experience supplemented with the powerful set of ``devtool`` commands
|
||||||
tailored for the Yocto Project environment.
|
tailored for the Yocto Project environment.
|
||||||
|
|
||||||
For information on the eSDK, see the :doc:`/sdk-manual/index` Manual.
|
For information on the eSDK, see the :doc:`../sdk-manual/sdk-manual` Manual.
|
||||||
|
|
||||||
- *Toaster:* Toaster is a web interface to the Yocto Project
|
- *Toaster:* Toaster is a web interface to the Yocto Project
|
||||||
OpenEmbedded build system. Toaster allows you to configure, run, and
|
OpenEmbedded build system. Toaster allows you to configure, run, and
|
||||||
view information about builds. For information on Toaster, see the
|
view information about builds. For information on Toaster, see the
|
||||||
:doc:`/toaster-manual/index`.
|
:doc:`../toaster-manual/toaster-manual`.
|
||||||
|
|
||||||
|
.. _gs-production-tools:
|
||||||
|
|
||||||
Production Tools
|
Production Tools
|
||||||
----------------
|
----------------
|
||||||
@@ -356,19 +366,20 @@ activities using the Yocto Project:
|
|||||||
(BitBake and
|
(BitBake and
|
||||||
OE-Core) automatically generates upgrades for recipes that are based
|
OE-Core) automatically generates upgrades for recipes that are based
|
||||||
on new versions of the recipes published upstream. See
|
on new versions of the recipes published upstream. See
|
||||||
:ref:`dev-manual/common-tasks:using the auto upgrade helper (auh)`
|
:ref:`dev-manual/dev-manual-common-tasks:using the auto upgrade helper (auh)`
|
||||||
for how to set it up.
|
for how to set it up.
|
||||||
|
|
||||||
- *Recipe Reporting System:* The Recipe Reporting System tracks recipe
|
- *Recipe Reporting System:* The Recipe Reporting System tracks recipe
|
||||||
versions available for Yocto Project. The main purpose of the system
|
versions available for Yocto Project. The main purpose of the system
|
||||||
is to help you manage the recipes you maintain and to offer a dynamic
|
is to help you manage the recipes you maintain and to offer a dynamic
|
||||||
overview of the project. The Recipe Reporting System is built on top
|
overview of the project. The Recipe Reporting System is built on top
|
||||||
of the :oe_layerindex:`OpenEmbedded Layer Index <>`, which
|
of the `OpenEmbedded Layer
|
||||||
|
Index <http://layers.openembedded.org/layerindex/layers/>`__, which
|
||||||
is a website that indexes OpenEmbedded-Core layers.
|
is a website that indexes OpenEmbedded-Core layers.
|
||||||
|
|
||||||
- *Patchwork:* `Patchwork <http://jk.ozlabs.org/projects/patchwork/>`__
|
- *Patchwork:* `Patchwork <http://jk.ozlabs.org/projects/patchwork/>`__
|
||||||
is a fork of a project originally started by
|
is a fork of a project originally started by
|
||||||
`OzLabs <https://ozlabs.org/>`__. The project is a web-based tracking
|
`OzLabs <http://ozlabs.org/>`__. The project is a web-based tracking
|
||||||
system designed to streamline the process of bringing contributions
|
system designed to streamline the process of bringing contributions
|
||||||
into a project. The Yocto Project uses Patchwork as an organizational
|
into a project. The Yocto Project uses Patchwork as an organizational
|
||||||
tool to handle patches, which number in the thousands for every
|
tool to handle patches, which number in the thousands for every
|
||||||
@@ -390,7 +401,7 @@ activities using the Yocto Project:
|
|||||||
benefit of the development community.
|
benefit of the development community.
|
||||||
|
|
||||||
You can learn more about the AutoBuilder used by the Yocto Project
|
You can learn more about the AutoBuilder used by the Yocto Project
|
||||||
Autobuilder :doc:`here </test-manual/understand-autobuilder>`.
|
Autobuilder :doc:`here <../test-manual/test-manual-understand-autobuilder>`.
|
||||||
|
|
||||||
- *Cross-Prelink:* Prelinking is the process of pre-computing the load
|
- *Cross-Prelink:* Prelinking is the process of pre-computing the load
|
||||||
addresses and link tables generated by the dynamic linker as compared
|
addresses and link tables generated by the dynamic linker as compared
|
||||||
@@ -400,7 +411,7 @@ activities using the Yocto Project:
|
|||||||
|
|
||||||
Historically, cross-prelink is a variant of prelink, which was
|
Historically, cross-prelink is a variant of prelink, which was
|
||||||
conceived by `Jakub
|
conceived by `Jakub
|
||||||
Jelínek <https://people.redhat.com/jakub/prelink.pdf>`__ a number of
|
Jelínek <http://people.redhat.com/jakub/prelink.pdf>`__ a number of
|
||||||
years ago. Both prelink and cross-prelink are maintained in the same
|
years ago. Both prelink and cross-prelink are maintained in the same
|
||||||
repository albeit on separate branches. By providing an emulated
|
repository albeit on separate branches. By providing an emulated
|
||||||
runtime dynamic linker (i.e. ``glibc``-derived ``ld.so`` emulation),
|
runtime dynamic linker (i.e. ``glibc``-derived ``ld.so`` emulation),
|
||||||
@@ -439,6 +450,8 @@ activities using the Yocto Project:
|
|||||||
You can read more about Pseudo in the "`Fakeroot and
|
You can read more about Pseudo in the "`Fakeroot and
|
||||||
Pseudo <#fakeroot-and-pseudo>`__" section.
|
Pseudo <#fakeroot-and-pseudo>`__" section.
|
||||||
|
|
||||||
|
.. _gs-openembedded-build-system:
|
||||||
|
|
||||||
Open-Embedded Build System Components
|
Open-Embedded Build System Components
|
||||||
-------------------------------------
|
-------------------------------------
|
||||||
|
|
||||||
@@ -464,7 +477,7 @@ The following list consists of components associated with the
|
|||||||
OpenEmbedded-derived systems, which includes the Yocto Project. The
|
OpenEmbedded-derived systems, which includes the Yocto Project. The
|
||||||
Yocto Project and the OpenEmbedded Project both maintain the
|
Yocto Project and the OpenEmbedded Project both maintain the
|
||||||
OpenEmbedded-Core. You can find the OE-Core metadata in the Yocto
|
OpenEmbedded-Core. You can find the OE-Core metadata in the Yocto
|
||||||
Project :yocto_git:`Source Repositories </poky/tree/meta>`.
|
Project :yocto_git:`Source Repositories </cgit/cgit.cgi/poky/tree/meta>`.
|
||||||
|
|
||||||
Historically, the Yocto Project integrated the OE-Core metadata
|
Historically, the Yocto Project integrated the OE-Core metadata
|
||||||
throughout the Yocto Project source repository reference system
|
throughout the Yocto Project source repository reference system
|
||||||
@@ -483,6 +496,8 @@ The following list consists of components associated with the
|
|||||||
components such as BitBake, OE-Core, script "glue", and documentation
|
components such as BitBake, OE-Core, script "glue", and documentation
|
||||||
for its build system.
|
for its build system.
|
||||||
|
|
||||||
|
.. _gs-reference-distribution-poky:
|
||||||
|
|
||||||
Reference Distribution (Poky)
|
Reference Distribution (Poky)
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
@@ -505,6 +520,8 @@ To use the Yocto Project tools and components, you can download
|
|||||||
You can read more about Poky in the "`Reference Embedded Distribution
|
You can read more about Poky in the "`Reference Embedded Distribution
|
||||||
(Poky) <#reference-embedded-distribution>`__" section.
|
(Poky) <#reference-embedded-distribution>`__" section.
|
||||||
|
|
||||||
|
.. _gs-packages-for-finished-targets:
|
||||||
|
|
||||||
Packages for Finished Targets
|
Packages for Finished Targets
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
@@ -529,7 +546,8 @@ targets:
|
|||||||
Debian Package (dpkg) in operation.
|
Debian Package (dpkg) in operation.
|
||||||
|
|
||||||
Opkg is intended for use on embedded Linux devices and is used in
|
Opkg is intended for use on embedded Linux devices and is used in
|
||||||
this capacity in the :oe_home:`OpenEmbedded <>` and
|
this capacity in the
|
||||||
|
`OpenEmbedded <http://www.openembedded.org/wiki/Main_Page>`__ and
|
||||||
`OpenWrt <https://openwrt.org/>`__ projects, as well as the Yocto
|
`OpenWrt <https://openwrt.org/>`__ projects, as well as the Yocto
|
||||||
Project.
|
Project.
|
||||||
|
|
||||||
@@ -542,6 +560,8 @@ targets:
|
|||||||
You can find the opkg source in the Yocto Project
|
You can find the opkg source in the Yocto Project
|
||||||
:yocto_git:`Source Repositories <>`.
|
:yocto_git:`Source Repositories <>`.
|
||||||
|
|
||||||
|
.. _gs-archived-components:
|
||||||
|
|
||||||
Archived Components
|
Archived Components
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
@@ -568,6 +588,8 @@ Linux.
|
|||||||
using the Yocto Project on a system not native to Linux is with
|
using the Yocto Project on a system not native to Linux is with
|
||||||
`CROPS <#gs-crops-overview>`__.
|
`CROPS <#gs-crops-overview>`__.
|
||||||
|
|
||||||
|
.. _gs-development-methods:
|
||||||
|
|
||||||
Development Methods
|
Development Methods
|
||||||
===================
|
===================
|
||||||
|
|
||||||
@@ -586,7 +608,7 @@ Project.
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
For additional detail about the Yocto Project development
|
For additional detail about the Yocto Project development
|
||||||
environment, see the ":doc:`/overview-manual/development-environment`"
|
environment, see the ":doc:`overview-manual-development-environment`"
|
||||||
chapter.
|
chapter.
|
||||||
|
|
||||||
- *Native Linux Host:* By far the best option for a Build Host. A
|
- *Native Linux Host:* By far the best option for a Build Host. A
|
||||||
@@ -598,7 +620,7 @@ Project.
|
|||||||
|
|
||||||
For information on how to set up a Build Host on a system running
|
For information on how to set up a Build Host on a system running
|
||||||
Linux as its native operating system, see the
|
Linux as its native operating system, see the
|
||||||
":ref:`dev-manual/start:setting up a native linux host`"
|
":ref:`dev-manual/dev-manual-start:setting up a native linux host`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- *CROss PlatformS (CROPS):* Typically, you use
|
- *CROss PlatformS (CROPS):* Typically, you use
|
||||||
@@ -618,7 +640,7 @@ Project.
|
|||||||
system natively running Linux.
|
system natively running Linux.
|
||||||
|
|
||||||
For information on how to set up a Build Host with CROPS, see the
|
For information on how to set up a Build Host with CROPS, see the
|
||||||
":ref:`dev-manual/start:setting up to use cross platforms (crops)`"
|
":ref:`dev-manual/dev-manual-start:setting up to use cross platforms (crops)`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- *Windows Subsystem For Linux (WSLv2):* You may use Windows Subsystem
|
- *Windows Subsystem For Linux (WSLv2):* You may use Windows Subsystem
|
||||||
@@ -635,7 +657,7 @@ Project.
|
|||||||
virtualization technology.
|
virtualization technology.
|
||||||
|
|
||||||
For information on how to set up a Build Host with WSLv2, see the
|
For information on how to set up a Build Host with WSLv2, see the
|
||||||
":ref:`dev-manual/start:setting up to use windows subsystem for linux (wslv2)`"
|
":ref:`dev-manual/dev-manual-start:setting up to use windows subsystem for linux (wslv2)`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- *Toaster:* Regardless of what your Build Host is running, you can use
|
- *Toaster:* Regardless of what your Build Host is running, you can use
|
||||||
@@ -647,7 +669,9 @@ Project.
|
|||||||
configure and start builds on multiple remote build servers.
|
configure and start builds on multiple remote build servers.
|
||||||
|
|
||||||
For information about and how to use Toaster, see the
|
For information about and how to use Toaster, see the
|
||||||
:doc:`/toaster-manual/index`.
|
:doc:`../toaster-manual/toaster-manual`.
|
||||||
|
|
||||||
|
.. _reference-embedded-distribution:
|
||||||
|
|
||||||
Reference Embedded Distribution (Poky)
|
Reference Embedded Distribution (Poky)
|
||||||
======================================
|
======================================
|
||||||
@@ -667,13 +691,13 @@ Poky is a combined repository of BitBake, OpenEmbedded-Core (which is
|
|||||||
found in ``meta``), ``meta-poky``, ``meta-yocto-bsp``, and documentation
|
found in ``meta``), ``meta-poky``, ``meta-yocto-bsp``, and documentation
|
||||||
provided all together and known to work well together. You can view
|
provided all together and known to work well together. You can view
|
||||||
these items that make up the Poky repository in the
|
these items that make up the Poky repository in the
|
||||||
:yocto_git:`Source Repositories </poky/tree/>`.
|
:yocto_git:`Source Repositories </cgit/cgit.cgi/poky/tree/>`.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
If you are interested in all the contents of the
|
If you are interested in all the contents of the
|
||||||
poky
|
poky
|
||||||
Git repository, see the ":ref:`ref-manual/structure:top-level core components`"
|
Git repository, see the ":ref:`ref-manual/ref-structure:top-level core components`"
|
||||||
section in the Yocto Project Reference Manual.
|
section in the Yocto Project Reference Manual.
|
||||||
|
|
||||||
The following figure illustrates what generally comprises Poky:
|
The following figure illustrates what generally comprises Poky:
|
||||||
@@ -717,7 +741,7 @@ Poky has a regular, well established, six-month release cycle under its
|
|||||||
own version. Major releases occur at the same time major releases (point
|
own version. Major releases occur at the same time major releases (point
|
||||||
releases) occur for the Yocto Project, which are typically in the Spring
|
releases) occur for the Yocto Project, which are typically in the Spring
|
||||||
and Fall. For more information on the Yocto Project release schedule and
|
and Fall. For more information on the Yocto Project release schedule and
|
||||||
cadence, see the ":doc:`/ref-manual/release-process`" chapter in the
|
cadence, see the ":doc:`../ref-manual/ref-release-process`" chapter in the
|
||||||
Yocto Project Reference Manual.
|
Yocto Project Reference Manual.
|
||||||
|
|
||||||
Much has been said about Poky being a "default configuration". A default
|
Much has been said about Poky being a "default configuration". A default
|
||||||
@@ -752,6 +776,8 @@ operators, see the
|
|||||||
":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:appending and prepending (override style syntax)`"
|
":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:appending and prepending (override style syntax)`"
|
||||||
section in the BitBake User's Manual.
|
section in the BitBake User's Manual.
|
||||||
|
|
||||||
|
.. _openembedded-build-system-workflow:
|
||||||
|
|
||||||
The OpenEmbedded Build System Workflow
|
The OpenEmbedded Build System Workflow
|
||||||
======================================
|
======================================
|
||||||
|
|
||||||
@@ -795,7 +821,7 @@ Some Basic Terms
|
|||||||
|
|
||||||
It helps to understand some basic fundamental terms when learning the
|
It helps to understand some basic fundamental terms when learning the
|
||||||
Yocto Project. Although a list of terms exists in the ":doc:`Yocto Project
|
Yocto Project. Although a list of terms exists in the ":doc:`Yocto Project
|
||||||
Terms </ref-manual/terms>`" section of the Yocto Project
|
Terms <../ref-manual/ref-terms>`" section of the Yocto Project
|
||||||
Reference Manual, this section provides the definitions of some terms
|
Reference Manual, this section provides the definitions of some terms
|
||||||
helpful for getting started:
|
helpful for getting started:
|
||||||
|
|
||||||
@@ -809,7 +835,7 @@ helpful for getting started:
|
|||||||
application developers. This eSDK allows developers to incorporate
|
application developers. This eSDK allows developers to incorporate
|
||||||
their library and programming changes back into the image to make
|
their library and programming changes back into the image to make
|
||||||
their code available to other application developers. For information
|
their code available to other application developers. For information
|
||||||
on the eSDK, see the :doc:`/sdk-manual/index` manual.
|
on the eSDK, see the :doc:`../sdk-manual/sdk-manual` manual.
|
||||||
|
|
||||||
- *Layer:* A collection of related recipes. Layers allow you to
|
- *Layer:* A collection of related recipes. Layers allow you to
|
||||||
consolidate related metadata to customize your build. Layers also
|
consolidate related metadata to customize your build. Layers also
|
||||||
@@ -821,7 +847,7 @@ helpful for getting started:
|
|||||||
Project.
|
Project.
|
||||||
|
|
||||||
For more detailed information on layers, see the
|
For more detailed information on layers, see the
|
||||||
":ref:`dev-manual/common-tasks:understanding and creating layers`"
|
":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
|
||||||
section in the Yocto Project Development Tasks Manual. For a
|
section in the Yocto Project Development Tasks Manual. For a
|
||||||
discussion specifically on BSP Layers, see the
|
discussion specifically on BSP Layers, see the
|
||||||
":ref:`bsp-guide/bsp:bsp layers`" section in the Yocto
|
":ref:`bsp-guide/bsp:bsp layers`" section in the Yocto
|
||||||
@@ -866,7 +892,8 @@ helpful for getting started:
|
|||||||
set of recipes.
|
set of recipes.
|
||||||
|
|
||||||
You can see the Metadata in the ``meta`` directory of the Yocto
|
You can see the Metadata in the ``meta`` directory of the Yocto
|
||||||
Project :yocto_git:`Source Repositories <>`.
|
Project `Source
|
||||||
|
Repositories <http://git.yoctoproject.org/cgit/cgit.cgi>`__.
|
||||||
|
|
||||||
- *Packages:* In the context of the Yocto Project, this term refers to
|
- *Packages:* In the context of the Yocto Project, this term refers to
|
||||||
a recipe's packaged output produced by BitBake (i.e. a "baked
|
a recipe's packaged output produced by BitBake (i.e. a "baked
|
||||||
@@ -876,7 +903,7 @@ helpful for getting started:
|
|||||||
|
|
||||||
It is worth noting that the term "package" can, in general, have
|
It is worth noting that the term "package" can, in general, have
|
||||||
subtle meanings. For example, the packages referred to in the
|
subtle meanings. For example, the packages referred to in the
|
||||||
":ref:`ref-manual/system-requirements:required packages for the build host`"
|
":ref:`ref-manual/ref-system-requirements:required packages for the build host`"
|
||||||
section in the Yocto Project Reference Manual are compiled binaries
|
section in the Yocto Project Reference Manual are compiled binaries
|
||||||
that, when installed, add functionality to your Linux distribution.
|
that, when installed, add functionality to your Linux distribution.
|
||||||
|
|
||||||
@@ -10,10 +10,10 @@ Yocto Project Overview and Concepts Manual
|
|||||||
:caption: Table of Contents
|
:caption: Table of Contents
|
||||||
:numbered:
|
:numbered:
|
||||||
|
|
||||||
intro
|
overview-manual-intro
|
||||||
yp-intro
|
overview-manual-yp-intro
|
||||||
development-environment
|
overview-manual-development-environment
|
||||||
concepts
|
overview-manual-concepts
|
||||||
history
|
history
|
||||||
|
|
||||||
.. include:: /boilerplate.rst
|
.. include:: /boilerplate.rst
|
||||||
@@ -1,12 +1,13 @@
|
|||||||
DISTRO : "3.2.1"
|
DISTRO : "3.2.4"
|
||||||
DISTRO_NAME_NO_CAP : "gatesgarth"
|
DISTRO_NAME_NO_CAP : "gatesgarth"
|
||||||
DISTRO_NAME : "Gatesgarth"
|
DISTRO_NAME : "Gatesgarth"
|
||||||
DISTRO_NAME_NO_CAP_MINUS_ONE : "dunfell"
|
DISTRO_NAME_NO_CAP_MINUS_ONE : "dunfell"
|
||||||
DISTRO_NAME_NO_CAP_LTS : "dunfell"
|
YOCTO_DOC_VERSION : "3.2.4"
|
||||||
YOCTO_DOC_VERSION : "3.2.1"
|
YOCTO_DOC_VERSION_MINUS_ONE : "3.1.7"
|
||||||
YOCTO_DOC_VERSION_MINUS_ONE : "3.1.5"
|
DISTRO_REL_TAG : "yocto-3.2.4"
|
||||||
DISTRO_REL_TAG : "yocto-3.2.1"
|
DOCCONF_VERSION : "3.2.4"
|
||||||
POKYVERSION : "24.0.1"
|
BITBAKE_SERIES : "1.48"
|
||||||
|
POKYVERSION : "24.0.4"
|
||||||
YOCTO_POKY : "poky-&DISTRO_NAME_NO_CAP;-&POKYVERSION;"
|
YOCTO_POKY : "poky-&DISTRO_NAME_NO_CAP;-&POKYVERSION;"
|
||||||
YOCTO_DL_URL : "https://downloads.yoctoproject.org"
|
YOCTO_DL_URL : "https://downloads.yoctoproject.org"
|
||||||
YOCTO_AB_URL : "https://autobuilder.yoctoproject.org"
|
YOCTO_AB_URL : "https://autobuilder.yoctoproject.org"
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
Yocto Project Profiling and Tracing Manual
|
Yocto Project Profiling and Tracing Manual
|
||||||
******************************************
|
******************************************
|
||||||
|
|
||||||
|
.. _profile-intro:
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
============
|
============
|
||||||
|
|
||||||
@@ -28,6 +30,8 @@ The final section of this 'HOWTO' is a collection of real-world examples
|
|||||||
which we'll be continually adding to as we solve more problems using the
|
which we'll be continually adding to as we solve more problems using the
|
||||||
tools - feel free to add your own examples to the list!
|
tools - feel free to add your own examples to the list!
|
||||||
|
|
||||||
|
.. _profile-manual-general-setup:
|
||||||
|
|
||||||
General Setup
|
General Setup
|
||||||
=============
|
=============
|
||||||
|
|
||||||
@@ -10,6 +10,8 @@ Basic Usage (with examples) for each of the Yocto Tracing Tools
|
|||||||
This chapter presents basic usage examples for each of the tracing
|
This chapter presents basic usage examples for each of the tracing
|
||||||
tools.
|
tools.
|
||||||
|
|
||||||
|
.. _profile-manual-perf:
|
||||||
|
|
||||||
perf
|
perf
|
||||||
====
|
====
|
||||||
|
|
||||||
@@ -39,13 +41,15 @@ other tools when it seems useful to do so.
|
|||||||
The coverage below details some of the most common ways you'll likely
|
The coverage below details some of the most common ways you'll likely
|
||||||
want to apply the tool; full documentation can be found either within
|
want to apply the tool; full documentation can be found either within
|
||||||
the tool itself or in the man pages at
|
the tool itself or in the man pages at
|
||||||
`perf(1) <https://linux.die.net/man/1/perf>`__.
|
`perf(1) <http://linux.die.net/man/1/perf>`__.
|
||||||
|
|
||||||
|
.. _perf-setup:
|
||||||
|
|
||||||
Perf Setup
|
Perf Setup
|
||||||
----------
|
----------
|
||||||
|
|
||||||
For this section, we'll assume you've already performed the basic setup
|
For this section, we'll assume you've already performed the basic setup
|
||||||
outlined in the ":ref:`profile-manual/intro:General Setup`" section.
|
outlined in the ":ref:`profile-manual/profile-manual-intro:General Setup`" section.
|
||||||
|
|
||||||
In particular, you'll get the most mileage out of perf if you profile an
|
In particular, you'll get the most mileage out of perf if you profile an
|
||||||
image built with the following in your ``local.conf`` file: ::
|
image built with the following in your ``local.conf`` file: ::
|
||||||
@@ -57,6 +61,8 @@ profile data and copy it to the host for analysis, but for the rest of
|
|||||||
this document we assume you've ssh'ed to the host and will be running
|
this document we assume you've ssh'ed to the host and will be running
|
||||||
the perf commands on the target.
|
the perf commands on the target.
|
||||||
|
|
||||||
|
.. _perf-basic-usage:
|
||||||
|
|
||||||
Basic Perf Usage
|
Basic Perf Usage
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
@@ -860,7 +866,7 @@ the right kind of trace data, higher-level profiling-type summaries can
|
|||||||
be derived from it.
|
be derived from it.
|
||||||
|
|
||||||
Documentation on using the `'perf script' python
|
Documentation on using the `'perf script' python
|
||||||
binding <https://linux.die.net/man/1/perf-script-python>`__.
|
binding <http://linux.die.net/man/1/perf-script-python>`__.
|
||||||
|
|
||||||
System-Wide Tracing and Profiling
|
System-Wide Tracing and Profiling
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@@ -944,6 +950,8 @@ We can look at the raw output using 'perf script' with no arguments: ::
|
|||||||
kworker/1:1 21 [001] 6171.470082: sched_switch: prev_comm=kworker/1:1 prev_pid=21 prev_prio=120 prev_state=S ==> next_comm=perf next_pid=1383 next_prio=120
|
kworker/1:1 21 [001] 6171.470082: sched_switch: prev_comm=kworker/1:1 prev_pid=21 prev_prio=120 prev_state=S ==> next_comm=perf next_pid=1383 next_prio=120
|
||||||
perf 1383 [001] 6171.480035: sched_wakeup: comm=kworker/1:1 pid=21 prio=120 success=1 target_cpu=001
|
perf 1383 [001] 6171.480035: sched_wakeup: comm=kworker/1:1 pid=21 prio=120 success=1 target_cpu=001
|
||||||
|
|
||||||
|
.. _perf-filtering:
|
||||||
|
|
||||||
Filtering
|
Filtering
|
||||||
^^^^^^^^^
|
^^^^^^^^^
|
||||||
|
|
||||||
@@ -1130,37 +1138,40 @@ callgraphs from starting a few programs during those 30 seconds:
|
|||||||
uprobes. kprobes and uprobes are also used by and in fact are the
|
uprobes. kprobes and uprobes are also used by and in fact are the
|
||||||
main focus of SystemTap.
|
main focus of SystemTap.
|
||||||
|
|
||||||
|
.. _perf-documentation:
|
||||||
|
|
||||||
Perf Documentation
|
Perf Documentation
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
Online versions of the man pages for the commands discussed in this
|
Online versions of the man pages for the commands discussed in this
|
||||||
section can be found here:
|
section can be found here:
|
||||||
|
|
||||||
- The `'perf stat' manpage <https://linux.die.net/man/1/perf-stat>`__.
|
- The `'perf stat' manpage <http://linux.die.net/man/1/perf-stat>`__.
|
||||||
|
|
||||||
- The `'perf record'
|
- The `'perf record'
|
||||||
manpage <https://linux.die.net/man/1/perf-record>`__.
|
manpage <http://linux.die.net/man/1/perf-record>`__.
|
||||||
|
|
||||||
- The `'perf report'
|
- The `'perf report'
|
||||||
manpage <https://linux.die.net/man/1/perf-report>`__.
|
manpage <http://linux.die.net/man/1/perf-report>`__.
|
||||||
|
|
||||||
- The `'perf probe' manpage <https://linux.die.net/man/1/perf-probe>`__.
|
- The `'perf probe' manpage <http://linux.die.net/man/1/perf-probe>`__.
|
||||||
|
|
||||||
- The `'perf script'
|
- The `'perf script'
|
||||||
manpage <https://linux.die.net/man/1/perf-script>`__.
|
manpage <http://linux.die.net/man/1/perf-script>`__.
|
||||||
|
|
||||||
- Documentation on using the `'perf script' python
|
- Documentation on using the `'perf script' python
|
||||||
binding <https://linux.die.net/man/1/perf-script-python>`__.
|
binding <http://linux.die.net/man/1/perf-script-python>`__.
|
||||||
|
|
||||||
- The top-level `perf(1) manpage <https://linux.die.net/man/1/perf>`__.
|
- The top-level `perf(1) manpage <http://linux.die.net/man/1/perf>`__.
|
||||||
|
|
||||||
Normally, you should be able to invoke the man pages via perf itself
|
Normally, you should be able to invoke the man pages via perf itself
|
||||||
e.g. 'perf help' or 'perf help record'.
|
e.g. 'perf help' or 'perf help record'.
|
||||||
|
|
||||||
However, by default Yocto doesn't install man pages, but perf invokes
|
However, by default Yocto doesn't install man pages, but perf invokes
|
||||||
the man pages for most help functionality. This is a bug and is being
|
the man pages for most help functionality. This is a bug and is being
|
||||||
addressed by a Yocto bug: :yocto_bugs:`Bug 3388 - perf: enable man pages for
|
addressed by a Yocto bug: `Bug 3388 - perf: enable man pages for basic
|
||||||
basic 'help' functionality </show_bug.cgi?id=3388>`.
|
'help'
|
||||||
|
functionality <https://bugzilla.yoctoproject.org/show_bug.cgi?id=3388>`__.
|
||||||
|
|
||||||
The man pages in text form, along with some other files, such as a set
|
The man pages in text form, along with some other files, such as a set
|
||||||
of examples, can be found in the 'perf' directory of the kernel tree: ::
|
of examples, can be found in the 'perf' directory of the kernel tree: ::
|
||||||
@@ -1171,6 +1182,8 @@ There's also a nice perf tutorial on the perf
|
|||||||
wiki that goes into more detail than we do here in certain areas: `Perf
|
wiki that goes into more detail than we do here in certain areas: `Perf
|
||||||
Tutorial <https://perf.wiki.kernel.org/index.php/Tutorial>`__
|
Tutorial <https://perf.wiki.kernel.org/index.php/Tutorial>`__
|
||||||
|
|
||||||
|
.. _profile-manual-ftrace:
|
||||||
|
|
||||||
ftrace
|
ftrace
|
||||||
======
|
======
|
||||||
|
|
||||||
@@ -1178,11 +1191,13 @@ ftrace
|
|||||||
this encompasses a number of related tracers along with the
|
this encompasses a number of related tracers along with the
|
||||||
infrastructure that they all make use of.
|
infrastructure that they all make use of.
|
||||||
|
|
||||||
|
.. _ftrace-setup:
|
||||||
|
|
||||||
ftrace Setup
|
ftrace Setup
|
||||||
------------
|
------------
|
||||||
|
|
||||||
For this section, we'll assume you've already performed the basic setup
|
For this section, we'll assume you've already performed the basic setup
|
||||||
outlined in the ":ref:`profile-manual/intro:General Setup`" section.
|
outlined in the ":ref:`profile-manual/profile-manual-intro:General Setup`" section.
|
||||||
|
|
||||||
ftrace, trace-cmd, and kernelshark run on the target system, and are
|
ftrace, trace-cmd, and kernelshark run on the target system, and are
|
||||||
ready to go out-of-the-box - no additional setup is necessary. For the
|
ready to go out-of-the-box - no additional setup is necessary. For the
|
||||||
@@ -1653,6 +1668,8 @@ trace-cmd and kernelshark in the next section.
|
|||||||
/sys/kernel/debug/tracing will be removed and replaced with
|
/sys/kernel/debug/tracing will be removed and replaced with
|
||||||
equivalent tracers based on the 'trace events' subsystem.
|
equivalent tracers based on the 'trace events' subsystem.
|
||||||
|
|
||||||
|
.. _trace-cmd-kernelshark:
|
||||||
|
|
||||||
trace-cmd/kernelshark
|
trace-cmd/kernelshark
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
@@ -1718,7 +1735,9 @@ events':
|
|||||||
|
|
||||||
The tool is pretty self-explanatory, but for more detailed information
|
The tool is pretty self-explanatory, but for more detailed information
|
||||||
on navigating through the data, see the `kernelshark
|
on navigating through the data, see the `kernelshark
|
||||||
website <https://rostedt.homelinux.com/kernelshark/>`__.
|
website <http://rostedt.homelinux.com/kernelshark/>`__.
|
||||||
|
|
||||||
|
.. _ftrace-documentation:
|
||||||
|
|
||||||
ftrace Documentation
|
ftrace Documentation
|
||||||
--------------------
|
--------------------
|
||||||
@@ -1736,23 +1755,25 @@ Documentation directory: ::
|
|||||||
There is a nice series of articles on using ftrace and trace-cmd at LWN:
|
There is a nice series of articles on using ftrace and trace-cmd at LWN:
|
||||||
|
|
||||||
- `Debugging the kernel using Ftrace - part
|
- `Debugging the kernel using Ftrace - part
|
||||||
1 <https://lwn.net/Articles/365835/>`__
|
1 <http://lwn.net/Articles/365835/>`__
|
||||||
|
|
||||||
- `Debugging the kernel using Ftrace - part
|
- `Debugging the kernel using Ftrace - part
|
||||||
2 <https://lwn.net/Articles/366796/>`__
|
2 <http://lwn.net/Articles/366796/>`__
|
||||||
|
|
||||||
- `Secrets of the Ftrace function
|
- `Secrets of the Ftrace function
|
||||||
tracer <https://lwn.net/Articles/370423/>`__
|
tracer <http://lwn.net/Articles/370423/>`__
|
||||||
|
|
||||||
- `trace-cmd: A front-end for
|
- `trace-cmd: A front-end for
|
||||||
Ftrace <https://lwn.net/Articles/410200/>`__
|
Ftrace <https://lwn.net/Articles/410200/>`__
|
||||||
|
|
||||||
There's more detailed documentation kernelshark usage here:
|
There's more detailed documentation kernelshark usage here:
|
||||||
`KernelShark <https://rostedt.homelinux.com/kernelshark/>`__
|
`KernelShark <http://rostedt.homelinux.com/kernelshark/>`__
|
||||||
|
|
||||||
An amusing yet useful README (a tracing mini-HOWTO) can be found in
|
An amusing yet useful README (a tracing mini-HOWTO) can be found in
|
||||||
``/sys/kernel/debug/tracing/README``.
|
``/sys/kernel/debug/tracing/README``.
|
||||||
|
|
||||||
|
.. _profile-manual-systemtap:
|
||||||
|
|
||||||
systemtap
|
systemtap
|
||||||
=========
|
=========
|
||||||
|
|
||||||
@@ -1763,7 +1784,7 @@ gather/print/aggregate data extracted from the context they end up being
|
|||||||
invoked under.
|
invoked under.
|
||||||
|
|
||||||
For example, this probe from the `SystemTap
|
For example, this probe from the `SystemTap
|
||||||
tutorial <https://sourceware.org/systemtap/tutorial/>`__ simply prints a
|
tutorial <http://sourceware.org/systemtap/tutorial/>`__ simply prints a
|
||||||
line every time any process on the system open()s a file. For each line,
|
line every time any process on the system open()s a file. For each line,
|
||||||
it prints the executable name of the program that opened the file, along
|
it prints the executable name of the program that opened the file, along
|
||||||
with its PID, and the name of the file it opened (or tried to open),
|
with its PID, and the name of the file it opened (or tried to open),
|
||||||
@@ -1814,6 +1835,8 @@ target system and 3) insert the module into the target kernel, which
|
|||||||
arms it, and 4) collect the data generated by the probe and display it
|
arms it, and 4) collect the data generated by the probe and display it
|
||||||
to the user.
|
to the user.
|
||||||
|
|
||||||
|
.. _systemtap-setup:
|
||||||
|
|
||||||
systemtap Setup
|
systemtap Setup
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
@@ -1870,7 +1893,7 @@ having done a build: ::
|
|||||||
|
|
||||||
So essentially what you need to
|
So essentially what you need to
|
||||||
do is build an SDK image or image with 'tools-profile' as detailed in
|
do is build an SDK image or image with 'tools-profile' as detailed in
|
||||||
the ":ref:`profile-manual/intro:General Setup`" section of this
|
the ":ref:`profile-manual/profile-manual-intro:General Setup`" section of this
|
||||||
manual, and boot the resulting target image.
|
manual, and boot the resulting target image.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
@@ -1932,15 +1955,19 @@ no password):
|
|||||||
matchbox-termin(1036) open ("/tmp/vte3FS2LW", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600)
|
matchbox-termin(1036) open ("/tmp/vte3FS2LW", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600)
|
||||||
matchbox-termin(1036) open ("/tmp/vteJMC7LW", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600)
|
matchbox-termin(1036) open ("/tmp/vteJMC7LW", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600)
|
||||||
|
|
||||||
|
.. _systemtap-documentation:
|
||||||
|
|
||||||
systemtap Documentation
|
systemtap Documentation
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
The SystemTap language reference can be found here: `SystemTap Language
|
The SystemTap language reference can be found here: `SystemTap Language
|
||||||
Reference <https://sourceware.org/systemtap/langref/>`__
|
Reference <http://sourceware.org/systemtap/langref/>`__
|
||||||
|
|
||||||
Links to other SystemTap documents, tutorials, and examples can be found
|
Links to other SystemTap documents, tutorials, and examples can be found
|
||||||
here: `SystemTap documentation
|
here: `SystemTap documentation
|
||||||
page <https://sourceware.org/systemtap/documentation.html>`__
|
page <http://sourceware.org/systemtap/documentation.html>`__
|
||||||
|
|
||||||
|
.. _profile-manual-sysprof:
|
||||||
|
|
||||||
Sysprof
|
Sysprof
|
||||||
=======
|
=======
|
||||||
@@ -1949,11 +1976,13 @@ Sysprof is a very easy to use system-wide profiler that consists of a
|
|||||||
single window with three panes and a few buttons which allow you to
|
single window with three panes and a few buttons which allow you to
|
||||||
start, stop, and view the profile from one place.
|
start, stop, and view the profile from one place.
|
||||||
|
|
||||||
|
.. _sysprof-setup:
|
||||||
|
|
||||||
Sysprof Setup
|
Sysprof Setup
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
For this section, we'll assume you've already performed the basic setup
|
For this section, we'll assume you've already performed the basic setup
|
||||||
outlined in the ":ref:`profile-manual/intro:General Setup`" section.
|
outlined in the ":ref:`profile-manual/profile-manual-intro:General Setup`" section.
|
||||||
|
|
||||||
Sysprof is a GUI-based application that runs on the target system. For
|
Sysprof is a GUI-based application that runs on the target system. For
|
||||||
the rest of this document we assume you've ssh'ed to the host and will
|
the rest of this document we assume you've ssh'ed to the host and will
|
||||||
@@ -1961,6 +1990,8 @@ be running Sysprof on the target (you can use the '-X' option to ssh and
|
|||||||
have the Sysprof GUI run on the target but display remotely on the host
|
have the Sysprof GUI run on the target but display remotely on the host
|
||||||
if you want).
|
if you want).
|
||||||
|
|
||||||
|
.. _sysprof-basic-usage:
|
||||||
|
|
||||||
Basic Sysprof Usage
|
Basic Sysprof Usage
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
@@ -2009,6 +2040,8 @@ to the selected function, and so on.
|
|||||||
the -g (--call-graph) option that you can experiment with; one of the
|
the -g (--call-graph) option that you can experiment with; one of the
|
||||||
options is 'caller' for an inverted caller-based callgraph display.
|
options is 'caller' for an inverted caller-based callgraph display.
|
||||||
|
|
||||||
|
.. _sysprof-documentation:
|
||||||
|
|
||||||
Sysprof Documentation
|
Sysprof Documentation
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
@@ -2020,11 +2053,13 @@ Linux <http://sysprof.com/>`__
|
|||||||
LTTng (Linux Trace Toolkit, next generation)
|
LTTng (Linux Trace Toolkit, next generation)
|
||||||
============================================
|
============================================
|
||||||
|
|
||||||
|
.. _lttng-setup:
|
||||||
|
|
||||||
LTTng Setup
|
LTTng Setup
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
For this section, we'll assume you've already performed the basic setup
|
For this section, we'll assume you've already performed the basic setup
|
||||||
outlined in the ":ref:`profile-manual/intro:General Setup`" section.
|
outlined in the ":ref:`profile-manual/profile-manual-intro:General Setup`" section.
|
||||||
LTTng is run on the target system by ssh'ing to it.
|
LTTng is run on the target system by ssh'ing to it.
|
||||||
|
|
||||||
Collecting and Viewing Traces
|
Collecting and Viewing Traces
|
||||||
@@ -2032,7 +2067,7 @@ Collecting and Viewing Traces
|
|||||||
|
|
||||||
Once you've applied the above commits and built and booted your image
|
Once you've applied the above commits and built and booted your image
|
||||||
(you need to build the core-image-sato-sdk image or use one of the other
|
(you need to build the core-image-sato-sdk image or use one of the other
|
||||||
methods described in the ":ref:`profile-manual/intro:General Setup`" section), you're ready to start
|
methods described in the ":ref:`profile-manual/profile-manual-intro:General Setup`" section), you're ready to start
|
||||||
tracing.
|
tracing.
|
||||||
|
|
||||||
Collecting and viewing a trace on the target (inside a shell)
|
Collecting and viewing a trace on the target (inside a shell)
|
||||||
@@ -2204,6 +2239,8 @@ trace - it's still there in ~/lttng-traces): ::
|
|||||||
root@crownbay:~# lttng destroy
|
root@crownbay:~# lttng destroy
|
||||||
Session auto-20190303-021943 destroyed at /home/root
|
Session auto-20190303-021943 destroyed at /home/root
|
||||||
|
|
||||||
|
.. _lltng-documentation:
|
||||||
|
|
||||||
LTTng Documentation
|
LTTng Documentation
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
@@ -2214,9 +2251,11 @@ developers who are working in a Linux environment and are interested in
|
|||||||
efficient software tracing.
|
efficient software tracing.
|
||||||
|
|
||||||
For information on LTTng in general, visit the `LTTng
|
For information on LTTng in general, visit the `LTTng
|
||||||
Project <https://lttng.org/lttng2.0>`__ site. You can find a "Getting
|
Project <http://lttng.org/lttng2.0>`__ site. You can find a "Getting
|
||||||
Started" link on this site that takes you to an LTTng Quick Start.
|
Started" link on this site that takes you to an LTTng Quick Start.
|
||||||
|
|
||||||
|
.. _profile-manual-blktrace:
|
||||||
|
|
||||||
blktrace
|
blktrace
|
||||||
========
|
========
|
||||||
|
|
||||||
@@ -2225,21 +2264,25 @@ blktrace provides the tracing half of the equation; its output can be
|
|||||||
piped into the blkparse program, which renders the data in a
|
piped into the blkparse program, which renders the data in a
|
||||||
human-readable form and does some basic analysis:
|
human-readable form and does some basic analysis:
|
||||||
|
|
||||||
|
.. _blktrace-setup:
|
||||||
|
|
||||||
blktrace Setup
|
blktrace Setup
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
For this section, we'll assume you've already performed the basic setup
|
For this section, we'll assume you've already performed the basic setup
|
||||||
outlined in the ":ref:`profile-manual/intro:General Setup`"
|
outlined in the ":ref:`profile-manual/profile-manual-intro:General Setup`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
blktrace is an application that runs on the target system. You can run
|
blktrace is an application that runs on the target system. You can run
|
||||||
the entire blktrace and blkparse pipeline on the target, or you can run
|
the entire blktrace and blkparse pipeline on the target, or you can run
|
||||||
blktrace in 'listen' mode on the target and have blktrace and blkparse
|
blktrace in 'listen' mode on the target and have blktrace and blkparse
|
||||||
collect and analyze the data on the host (see the
|
collect and analyze the data on the host (see the
|
||||||
":ref:`profile-manual/usage:Using blktrace Remotely`" section
|
":ref:`profile-manual/profile-manual-usage:Using blktrace Remotely`" section
|
||||||
below). For the rest of this section we assume you've ssh'ed to the host and
|
below). For the rest of this section we assume you've ssh'ed to the host and
|
||||||
will be running blkrace on the target.
|
will be running blkrace on the target.
|
||||||
|
|
||||||
|
.. _blktrace-basic-usage:
|
||||||
|
|
||||||
Basic blktrace Usage
|
Basic blktrace Usage
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
@@ -2365,9 +2408,11 @@ first part of the filenames: ::
|
|||||||
The report shows each event that was
|
The report shows each event that was
|
||||||
found in the blktrace data, along with a summary of the overall block
|
found in the blktrace data, along with a summary of the overall block
|
||||||
I/O traffic during the run. You can look at the
|
I/O traffic during the run. You can look at the
|
||||||
`blkparse <https://linux.die.net/man/1/blkparse>`__ manpage to learn the
|
`blkparse <http://linux.die.net/man/1/blkparse>`__ manpage to learn the
|
||||||
meaning of each field displayed in the trace listing.
|
meaning of each field displayed in the trace listing.
|
||||||
|
|
||||||
|
.. _blktrace-live-mode:
|
||||||
|
|
||||||
Live Mode
|
Live Mode
|
||||||
~~~~~~~~~
|
~~~~~~~~~
|
||||||
|
|
||||||
@@ -2511,7 +2556,7 @@ Tracing Block I/O via 'ftrace'
|
|||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
It's also possible to trace block I/O using only
|
It's also possible to trace block I/O using only
|
||||||
:ref:`profile-manual/usage:The 'trace events' Subsystem`, which
|
:ref:`profile-manual/profile-manual-usage:The 'trace events' Subsystem`, which
|
||||||
can be useful for casual tracing if you don't want to bother dealing with the
|
can be useful for casual tracing if you don't want to bother dealing with the
|
||||||
userspace tools.
|
userspace tools.
|
||||||
|
|
||||||
@@ -2558,17 +2603,19 @@ And this turns off tracing for the specified device: ::
|
|||||||
|
|
||||||
root@crownbay:/sys/kernel/debug/tracing# echo 0 > /sys/block/sdc/trace/enable
|
root@crownbay:/sys/kernel/debug/tracing# echo 0 > /sys/block/sdc/trace/enable
|
||||||
|
|
||||||
|
.. _blktrace-documentation:
|
||||||
|
|
||||||
blktrace Documentation
|
blktrace Documentation
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
Online versions of the man pages for the commands discussed in this
|
Online versions of the man pages for the commands discussed in this
|
||||||
section can be found here:
|
section can be found here:
|
||||||
|
|
||||||
- https://linux.die.net/man/8/blktrace
|
- http://linux.die.net/man/8/blktrace
|
||||||
|
|
||||||
- https://linux.die.net/man/1/blkparse
|
- http://linux.die.net/man/1/blkparse
|
||||||
|
|
||||||
- https://linux.die.net/man/8/btrace
|
- http://linux.die.net/man/8/btrace
|
||||||
|
|
||||||
The above manpages, along with manpages for the other blktrace utilities
|
The above manpages, along with manpages for the other blktrace utilities
|
||||||
(btt, blkiomon, etc) can be found in the /doc directory of the blktrace
|
(btt, blkiomon, etc) can be found in the /doc directory of the blktrace
|
||||||
@@ -10,10 +10,10 @@ Yocto Project Profiling and Tracing Manual
|
|||||||
:caption: Table of Contents
|
:caption: Table of Contents
|
||||||
:numbered:
|
:numbered:
|
||||||
|
|
||||||
intro
|
profile-manual-intro
|
||||||
arch
|
profile-manual-arch
|
||||||
usage
|
profile-manual-usage
|
||||||
examples
|
profile-manual-examples
|
||||||
history
|
history
|
||||||
|
|
||||||
.. include:: /boilerplate.rst
|
.. include:: /boilerplate.rst
|
||||||
@@ -8,7 +8,7 @@ SRC_URI = "file://helloworld.c"
|
|||||||
S = "${WORKDIR}"
|
S = "${WORKDIR}"
|
||||||
|
|
||||||
do_compile() {
|
do_compile() {
|
||||||
${CC} ${LDFLAGS} helloworld.c -o helloworld
|
${CC} helloworld.c -o helloworld
|
||||||
}
|
}
|
||||||
|
|
||||||
do_install() {
|
do_install() {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Can I still use the Yocto Project?
|
|||||||
**A:** You can get the required tools on your host development system a
|
**A:** You can get the required tools on your host development system a
|
||||||
couple different ways (i.e. building a tarball or downloading a
|
couple different ways (i.e. building a tarball or downloading a
|
||||||
tarball). See the
|
tarball). See the
|
||||||
":ref:`ref-manual/system-requirements:required git, tar, python and gcc versions`"
|
":ref:`ref-manual/ref-system-requirements:required git, tar, python and gcc versions`"
|
||||||
section for steps on how to update your build tools.
|
section for steps on how to update your build tools.
|
||||||
|
|
||||||
**Q:** How can you claim Poky / OpenEmbedded-Core is stable?
|
**Q:** How can you claim Poky / OpenEmbedded-Core is stable?
|
||||||
@@ -45,9 +45,9 @@ section for steps on how to update your build tools.
|
|||||||
**A:** Support for an additional board is added by creating a Board
|
**A:** Support for an additional board is added by creating a Board
|
||||||
Support Package (BSP) layer for it. For more information on how to
|
Support Package (BSP) layer for it. For more information on how to
|
||||||
create a BSP layer, see the
|
create a BSP layer, see the
|
||||||
":ref:`dev-manual/common-tasks:understanding and creating layers`"
|
":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
|
||||||
section in the Yocto Project Development Tasks Manual and the
|
section in the Yocto Project Development Tasks Manual and the
|
||||||
:doc:`/bsp-guide/index`.
|
:doc:`../bsp-guide/bsp-guide`.
|
||||||
|
|
||||||
Usually, if the board is not completely exotic, adding support in the
|
Usually, if the board is not completely exotic, adding support in the
|
||||||
Yocto Project is fairly straightforward.
|
Yocto Project is fairly straightforward.
|
||||||
@@ -55,9 +55,9 @@ Yocto Project is fairly straightforward.
|
|||||||
**Q:** Are there any products built using the OpenEmbedded build system?
|
**Q:** Are there any products built using the OpenEmbedded build system?
|
||||||
|
|
||||||
**A:** The software running on the `Vernier
|
**A:** The software running on the `Vernier
|
||||||
LabQuest <https://vernier.com/labquest/>`__ is built using the
|
LabQuest <http://vernier.com/labquest/>`__ is built using the
|
||||||
OpenEmbedded build system. See the `Vernier
|
OpenEmbedded build system. See the `Vernier
|
||||||
LabQuest <https://www.vernier.com/products/interfaces/labq/>`__ website
|
LabQuest <http://www.vernier.com/products/interfaces/labq/>`__ website
|
||||||
for more information. There are a number of pre-production devices using
|
for more information. There are a number of pre-production devices using
|
||||||
the OpenEmbedded build system and the Yocto Project team announces them
|
the OpenEmbedded build system and the Yocto Project team announces them
|
||||||
as soon as they are released.
|
as soon as they are released.
|
||||||
@@ -73,7 +73,7 @@ device.
|
|||||||
|
|
||||||
**A:** To add a package, you need to create a BitBake recipe. For
|
**A:** To add a package, you need to create a BitBake recipe. For
|
||||||
information on how to create a BitBake recipe, see the
|
information on how to create a BitBake recipe, see the
|
||||||
":ref:`dev-manual/common-tasks:writing a new recipe`"
|
":ref:`dev-manual/dev-manual-common-tasks:writing a new recipe`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
**Q:** Do I have to reflash my entire board with a new Yocto Project
|
**Q:** Do I have to reflash my entire board with a new Yocto Project
|
||||||
@@ -140,7 +140,7 @@ The Yocto Project also includes a
|
|||||||
``meta-poky/conf/site.conf.sample`` file that shows how to configure CVS
|
``meta-poky/conf/site.conf.sample`` file that shows how to configure CVS
|
||||||
and Git proxy servers if needed. For more information on setting up
|
and Git proxy servers if needed. For more information on setting up
|
||||||
various proxy types and configuring proxy servers, see the
|
various proxy types and configuring proxy servers, see the
|
||||||
":yocto_wiki:`Working Behind a Network Proxy </Working_Behind_a_Network_Proxy>`"
|
":yocto_wiki:`Working Behind a Network Proxy </wiki/Working_Behind_a_Network_Proxy>`"
|
||||||
Wiki page.
|
Wiki page.
|
||||||
|
|
||||||
**Q:** What's the difference between target and target\ ``-native``?
|
**Q:** What's the difference between target and target\ ``-native``?
|
||||||
@@ -198,16 +198,16 @@ and also any configuration information about how that package was
|
|||||||
configured and built.
|
configured and built.
|
||||||
|
|
||||||
You can find more information on licensing in the
|
You can find more information on licensing in the
|
||||||
":ref:`overview-manual/development-environment:licensing`"
|
":ref:`overview-manual/overview-manual-development-environment:licensing`"
|
||||||
section in the Yocto
|
section in the Yocto
|
||||||
Project Overview and Concepts Manual and also in the
|
Project Overview and Concepts Manual and also in the
|
||||||
":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`"
|
":ref:`dev-manual/dev-manual-common-tasks:maintaining open source license compliance during your product's lifecycle`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
**Q:** How do I disable the cursor on my touchscreen device?
|
**Q:** How do I disable the cursor on my touchscreen device?
|
||||||
|
|
||||||
**A:** You need to create a form factor file as described in the
|
**A:** You need to create a form factor file as described in the
|
||||||
":ref:`bsp-guide/bsp:miscellaneous bsp-specific recipe files`" section in
|
":ref:`bsp-filelayout-misc-recipes`" section in
|
||||||
the Yocto Project Board Support Packages (BSP) Developer's Guide. Set
|
the Yocto Project Board Support Packages (BSP) Developer's Guide. Set
|
||||||
the ``HAVE_TOUCHSCREEN`` variable equal to one as follows:
|
the ``HAVE_TOUCHSCREEN`` variable equal to one as follows:
|
||||||
::
|
::
|
||||||
@@ -220,7 +220,7 @@ default?
|
|||||||
**A:** The default interfaces file provided by the netbase recipe does
|
**A:** The default interfaces file provided by the netbase recipe does
|
||||||
not automatically bring up network interfaces. Therefore, you will need
|
not automatically bring up network interfaces. Therefore, you will need
|
||||||
to add a BSP-specific netbase that includes an interfaces file. See the
|
to add a BSP-specific netbase that includes an interfaces file. See the
|
||||||
":ref:`bsp-guide/bsp:miscellaneous bsp-specific recipe files`" section in
|
":ref:`bsp-filelayout-misc-recipes`" section in
|
||||||
the Yocto Project Board Support Packages (BSP) Developer's Guide for
|
the Yocto Project Board Support Packages (BSP) Developer's Guide for
|
||||||
information on creating these types of miscellaneous recipe files.
|
information on creating these types of miscellaneous recipe files.
|
||||||
|
|
||||||
@@ -273,7 +273,7 @@ OpenEmbedded build system to use its internally built toolchain (i.e.
|
|||||||
particular, "external-\*" refers to external toolchains. One example is
|
particular, "external-\*" refers to external toolchains. One example is
|
||||||
the Sourcery G++ Toolchain. The support for this toolchain resides in
|
the Sourcery G++ Toolchain. The support for this toolchain resides in
|
||||||
the separate ``meta-sourcery`` layer at
|
the separate ``meta-sourcery`` layer at
|
||||||
https://github.com/MentorEmbedded/meta-sourcery/.
|
http://github.com/MentorEmbedded/meta-sourcery/.
|
||||||
|
|
||||||
In addition to the toolchain configuration, you also need a
|
In addition to the toolchain configuration, you also need a
|
||||||
corresponding toolchain recipe file. This recipe file needs to package
|
corresponding toolchain recipe file. This recipe file needs to package
|
||||||
@@ -362,7 +362,7 @@ redirect requests through proxy servers.
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
You can find more information on the
|
You can find more information on the
|
||||||
":yocto_wiki:`Working Behind a Network Proxy </Working_Behind_a_Network_Proxy>`"
|
":yocto_wiki:`Working Behind a Network Proxy </wiki/Working_Behind_a_Network_Proxy>`"
|
||||||
Wiki page.
|
Wiki page.
|
||||||
|
|
||||||
**Q:** Can I get rid of build output so I can start over?
|
**Q:** Can I get rid of build output so I can start over?
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ the OpenEmbedded community layers such as ``meta-oe`` and
|
|||||||
``meta-gnome``. For the remainder, you can now find them in the
|
``meta-gnome``. For the remainder, you can now find them in the
|
||||||
``meta-extras`` repository, which is in the
|
``meta-extras`` repository, which is in the
|
||||||
:yocto_git:`Source Repositories <>` at
|
:yocto_git:`Source Repositories <>` at
|
||||||
:yocto_git:`/meta-extras/`.
|
:yocto_git:`/cgit/cgit.cgi/meta-extras/`.
|
||||||
|
|
||||||
.. _1.3-linux-kernel-naming:
|
.. _1.3-linux-kernel-naming:
|
||||||
|
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ create an append file for the ``init-ifupdown`` recipe instead, which
|
|||||||
you can find in the :term:`Source Directory` at
|
you can find in the :term:`Source Directory` at
|
||||||
``meta/recipes-core/init-ifupdown``. For information on how to use
|
``meta/recipes-core/init-ifupdown``. For information on how to use
|
||||||
append files, see the
|
append files, see the
|
||||||
":ref:`dev-manual/common-tasks:using .bbappend files in your layer`"
|
":ref:`dev-manual/dev-manual-common-tasks:using .bbappend files in your layer`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _migration-1.4-remote-debugging:
|
.. _migration-1.4-remote-debugging:
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ provide packages for these, you can install and use the Buildtools
|
|||||||
tarball, which provides an SDK-like environment containing them.
|
tarball, which provides an SDK-like environment containing them.
|
||||||
|
|
||||||
For more information on this requirement, see the
|
For more information on this requirement, see the
|
||||||
":ref:`ref-manual/system-requirements:required git, tar, python and gcc versions`"
|
":ref:`ref-manual/ref-system-requirements:required git, tar, python and gcc versions`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
.. _migration-1.5-atom-pc-bsp:
|
.. _migration-1.5-atom-pc-bsp:
|
||||||
@@ -181,7 +181,7 @@ The following changes have been made that relate to
|
|||||||
|
|
||||||
The ``/run`` directory from the Filesystem Hierarchy Standard 3.0 has
|
The ``/run`` directory from the Filesystem Hierarchy Standard 3.0 has
|
||||||
been introduced. You can find some of the implications for this change
|
been introduced. You can find some of the implications for this change
|
||||||
:oe_git:`here </openembedded-core/commit/?id=0e326280a15b0f2c4ef2ef4ec441f63f55b75873>`.
|
`here <http://cgit.openembedded.org/openembedded-core/commit/?id=0e326280a15b0f2c4ef2ef4ec441f63f55b75873>`__.
|
||||||
The change also means that recipes that install files to ``/var/run``
|
The change also means that recipes that install files to ``/var/run``
|
||||||
must be changed. You can find a guide on how to make these changes
|
must be changed. You can find a guide on how to make these changes
|
||||||
`here <https://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg31649.html>`__.
|
`here <https://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg31649.html>`__.
|
||||||
@@ -246,7 +246,7 @@ A new automated image testing framework has been added through the
|
|||||||
framework replaces the older ``imagetest-qemu`` framework.
|
framework replaces the older ``imagetest-qemu`` framework.
|
||||||
|
|
||||||
You can learn more about performing automated image tests in the
|
You can learn more about performing automated image tests in the
|
||||||
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
|
":ref:`dev-manual/dev-manual-common-tasks:performing automated runtime testing`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _migration-1.5-build-history:
|
.. _migration-1.5-build-history:
|
||||||
@@ -269,7 +269,7 @@ Following are changes to Build History:
|
|||||||
option for each utility for more information on the new syntax.
|
option for each utility for more information on the new syntax.
|
||||||
|
|
||||||
For more information on Build History, see the
|
For more information on Build History, see the
|
||||||
":ref:`dev-manual/common-tasks:maintaining build output quality`"
|
":ref:`dev-manual/dev-manual-common-tasks:maintaining build output quality`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _migration-1.5-udev:
|
.. _migration-1.5-udev:
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ Project 1.6 Release from the prior release.
|
|||||||
The :ref:`archiver <ref-classes-archiver>` class has been rewritten
|
The :ref:`archiver <ref-classes-archiver>` class has been rewritten
|
||||||
and its configuration has been simplified. For more details on the
|
and its configuration has been simplified. For more details on the
|
||||||
source archiver, see the
|
source archiver, see the
|
||||||
":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`"
|
":ref:`dev-manual/dev-manual-common-tasks:maintaining open source license compliance during your product's lifecycle`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _migration-1.6-packaging-changes:
|
.. _migration-1.6-packaging-changes:
|
||||||
@@ -126,7 +126,7 @@ Changes to Variables
|
|||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
The following variables have changed. For information on the
|
The following variables have changed. For information on the
|
||||||
OpenEmbedded build system variables, see the ":doc:`/ref-manual/variables`" Chapter.
|
OpenEmbedded build system variables, see the ":doc:`ref-variables`" Chapter.
|
||||||
|
|
||||||
.. _migration-1.6-variable-changes-TMPDIR:
|
.. _migration-1.6-variable-changes-TMPDIR:
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ NFS mount, an error occurs.
|
|||||||
The ``PRINC`` variable has been deprecated and triggers a warning if
|
The ``PRINC`` variable has been deprecated and triggers a warning if
|
||||||
detected during a build. For :term:`PR` increments on changes,
|
detected during a build. For :term:`PR` increments on changes,
|
||||||
use the PR service instead. You can find out more about this service in
|
use the PR service instead. You can find out more about this service in
|
||||||
the ":ref:`dev-manual/common-tasks:working with a pr service`"
|
the ":ref:`dev-manual/dev-manual-common-tasks:working with a pr service`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _migration-1.6-variable-changes-IMAGE_TYPES:
|
.. _migration-1.6-variable-changes-IMAGE_TYPES:
|
||||||
@@ -221,7 +221,7 @@ Package Test (ptest)
|
|||||||
|
|
||||||
Package Tests (ptest) are built but not installed by default. For
|
Package Tests (ptest) are built but not installed by default. For
|
||||||
information on using Package Tests, see the
|
information on using Package Tests, see the
|
||||||
":ref:`dev-manual/common-tasks:testing packages with ptest`"
|
":ref:`dev-manual/dev-manual-common-tasks:testing packages with ptest`"
|
||||||
section in the Yocto Project Development Tasks Manual. For information on the
|
section in the Yocto Project Development Tasks Manual. For information on the
|
||||||
``ptest`` class, see the ":ref:`ptest.bbclass <ref-classes-ptest>`"
|
``ptest`` class, see the ":ref:`ptest.bbclass <ref-classes-ptest>`"
|
||||||
section.
|
section.
|
||||||
@@ -411,6 +411,6 @@ The previous reference BSPs for the ``beagleboard`` and
|
|||||||
``routerstationpro`` machines are still available in a new
|
``routerstationpro`` machines are still available in a new
|
||||||
``meta-yocto-bsp-old`` layer in the
|
``meta-yocto-bsp-old`` layer in the
|
||||||
:yocto_git:`Source Repositories <>` at
|
:yocto_git:`Source Repositories <>` at
|
||||||
:yocto_git:`/meta-yocto-bsp-old/`.
|
:yocto_git:`/cgit/cgit.cgi/meta-yocto-bsp-old/`.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -26,13 +26,13 @@ QEMU, you should now have these lines in ``local.conf``:
|
|||||||
Minimum Git version
|
Minimum Git version
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
The minimum :ref:`overview-manual/development-environment:git`
|
The minimum :ref:`overview-manual/overview-manual-development-environment:git`
|
||||||
version required on the
|
version required on the
|
||||||
build host is now 1.7.8 because the ``--list`` option is now required by
|
build host is now 1.7.8 because the ``--list`` option is now required by
|
||||||
BitBake's Git fetcher. As always, if your host distribution does not
|
BitBake's Git fetcher. As always, if your host distribution does not
|
||||||
provide a version of Git that meets this requirement, you can use the
|
provide a version of Git that meets this requirement, you can use the
|
||||||
``buildtools-tarball`` that does. See the
|
``buildtools-tarball`` that does. See the
|
||||||
":ref:`ref-manual/system-requirements:required git, tar, python and gcc versions`"
|
":ref:`ref-manual/ref-system-requirements:required git, tar, python and gcc versions`"
|
||||||
section for more information.
|
section for more information.
|
||||||
|
|
||||||
.. _migration-1.7-autotools-class-changes:
|
.. _migration-1.7-autotools-class-changes:
|
||||||
@@ -66,8 +66,8 @@ occurred:
|
|||||||
foreign mode themselves, the option is mostly superfluous. However,
|
foreign mode themselves, the option is mostly superfluous. However,
|
||||||
some recipes will need patches for this change. You can easily make
|
some recipes will need patches for this change. You can easily make
|
||||||
the change by patching ``configure.ac`` so that it passes "foreign"
|
the change by patching ``configure.ac`` so that it passes "foreign"
|
||||||
to ``AM_INIT_AUTOMAKE()``. See :oe_git:`this
|
to ``AM_INIT_AUTOMAKE()``. See `this
|
||||||
commit </openembedded-core/commit/?id=01943188f85ce6411717fb5bf702d609f55813f2>`
|
commit <http://cgit.openembedded.org/openembedded-core/commit/?id=01943188f85ce6411717fb5bf702d609f55813f2>`__
|
||||||
for an example showing how to make the patch.
|
for an example showing how to make the patch.
|
||||||
|
|
||||||
.. _migration-1.7-binary-configuration-scripts-disabled:
|
.. _migration-1.7-binary-configuration-scripts-disabled:
|
||||||
@@ -157,7 +157,7 @@ The following changes have occurred to the QA check process:
|
|||||||
added in order to verify that file dependencies are satisfied (e.g.
|
added in order to verify that file dependencies are satisfied (e.g.
|
||||||
package contains a script requiring ``/bin/bash``) and build-time
|
package contains a script requiring ``/bin/bash``) and build-time
|
||||||
dependencies are declared, respectively. For more information, please
|
dependencies are declared, respectively. For more information, please
|
||||||
see the ":doc:`/ref-manual/qa-checks`" chapter.
|
see the ":doc:`ref-qa-checks`" chapter.
|
||||||
|
|
||||||
- Package QA checks are now performed during a new
|
- Package QA checks are now performed during a new
|
||||||
:ref:`ref-tasks-package_qa` task rather than being
|
:ref:`ref-tasks-package_qa` task rather than being
|
||||||
@@ -190,7 +190,7 @@ Removed Recipes
|
|||||||
|
|
||||||
The following recipes have been removed:
|
The following recipes have been removed:
|
||||||
|
|
||||||
- ``x-load``: This recipe has been superseded by U-Boot SPL for all
|
- ``x-load``: This recipe has been superseded by U-boot SPL for all
|
||||||
Cortex-based TI SoCs. For legacy boards, the ``meta-ti`` layer, which
|
Cortex-based TI SoCs. For legacy boards, the ``meta-ti`` layer, which
|
||||||
contains a maintained recipe, should be used instead.
|
contains a maintained recipe, should be used instead.
|
||||||
|
|
||||||
@@ -217,7 +217,7 @@ The following miscellaneous change occurred:
|
|||||||
should manually remove old "build-id" files from your existing build
|
should manually remove old "build-id" files from your existing build
|
||||||
history repositories to avoid confusion. For information on the build
|
history repositories to avoid confusion. For information on the build
|
||||||
history feature, see the
|
history feature, see the
|
||||||
":ref:`dev-manual/common-tasks:maintaining build output quality`"
|
":ref:`dev-manual/dev-manual-common-tasks:maintaining build output quality`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ particular, users need to ensure that ``${S}`` (source files) and
|
|||||||
inherit from ``kernel-yocto`` or include ``linux-yocto.inc``, you might
|
inherit from ``kernel-yocto`` or include ``linux-yocto.inc``, you might
|
||||||
wish to refer to the ``linux.inc`` file in the ``meta-oe`` layer for the
|
wish to refer to the ``linux.inc`` file in the ``meta-oe`` layer for the
|
||||||
kinds of changes you need to make. For reference, here is the
|
kinds of changes you need to make. For reference, here is the
|
||||||
:oe_git:`commit </meta-openembedded/commit/meta-oe/recipes-kernel/linux/linux.inc?id=fc7132ede27ac67669448d3d2845ce7d46c6a1ee>`
|
`commit <http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-kernel/linux/linux.inc?id=fc7132ede27ac67669448d3d2845ce7d46c6a1ee>`__
|
||||||
where the ``linux.inc`` file in ``meta-oe`` was updated.
|
where the ``linux.inc`` file in ``meta-oe`` was updated.
|
||||||
|
|
||||||
Recipes that rely on the kernel source code and do not inherit the
|
Recipes that rely on the kernel source code and do not inherit the
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ package-specific nesting should be done by the package itself. Finally,
|
|||||||
having ``libexecdir`` change between recipes makes it very difficult for
|
having ``libexecdir`` change between recipes makes it very difficult for
|
||||||
different recipes to invoke binaries that have been installed into
|
different recipes to invoke binaries that have been installed into
|
||||||
``libexecdir``. The Filesystem Hierarchy Standard (i.e.
|
``libexecdir``. The Filesystem Hierarchy Standard (i.e.
|
||||||
https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html) now
|
http://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html) now
|
||||||
recognizes the use of ``${prefix}/libexec/``, giving distributions the
|
recognizes the use of ``${prefix}/libexec/``, giving distributions the
|
||||||
choice between ``${prefix}/lib`` or ``${prefix}/libexec`` without
|
choice between ``${prefix}/lib`` or ``${prefix}/libexec`` without
|
||||||
breaking FHS.
|
breaking FHS.
|
||||||
@@ -217,7 +217,7 @@ The following changes have been made to the build system user interface:
|
|||||||
- *Hob GTK+-based UI*: Removed because it is unmaintained and based on
|
- *Hob GTK+-based UI*: Removed because it is unmaintained and based on
|
||||||
the outdated GTK+ 2 library. The Toaster web-based UI is much more
|
the outdated GTK+ 2 library. The Toaster web-based UI is much more
|
||||||
capable and is actively maintained. See the
|
capable and is actively maintained. See the
|
||||||
":ref:`toaster-manual/setup-and-use:using the toaster web interface`"
|
":ref:`toaster-manual/toaster-manual-setup-and-use:using the toaster web interface`"
|
||||||
section in the Toaster User Manual for more information on this
|
section in the Toaster User Manual for more information on this
|
||||||
interface.
|
interface.
|
||||||
|
|
||||||
@@ -231,10 +231,10 @@ ADT Removed
|
|||||||
|
|
||||||
The Application Development Toolkit (ADT) has been removed because its
|
The Application Development Toolkit (ADT) has been removed because its
|
||||||
functionality almost completely overlapped with the :ref:`standard
|
functionality almost completely overlapped with the :ref:`standard
|
||||||
SDK <sdk-manual/using:using the standard sdk>` and the
|
SDK <sdk-manual/sdk-using:using the standard sdk>` and the
|
||||||
:ref:`extensible SDK <sdk-manual/extensible:using the extensible sdk>`. For
|
:ref:`extensible SDK <sdk-manual/sdk-extensible:using the extensible sdk>`. For
|
||||||
information on these SDKs and how to build and use them, see the
|
information on these SDKs and how to build and use them, see the
|
||||||
:doc:`/sdk-manual/index` manual.
|
:doc:`../sdk-manual/sdk-manual` manual.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -346,7 +346,7 @@ This release supports generation of GLib Introspective Repository (GIR)
|
|||||||
files through GObject introspection, which is the standard mechanism for
|
files through GObject introspection, which is the standard mechanism for
|
||||||
accessing GObject-based software from runtime environments. You can
|
accessing GObject-based software from runtime environments. You can
|
||||||
enable, disable, and test the generation of this data. See the
|
enable, disable, and test the generation of this data. See the
|
||||||
":ref:`dev-manual/common-tasks:enabling gobject introspection support`"
|
":ref:`dev-manual/dev-manual-common-tasks:enabling gobject introspection support`"
|
||||||
section in the Yocto Project Development Tasks Manual for more
|
section in the Yocto Project Development Tasks Manual for more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
@@ -360,7 +360,7 @@ These additional changes exist:
|
|||||||
- The minimum Git version has been increased to 1.8.3.1. If your host
|
- The minimum Git version has been increased to 1.8.3.1. If your host
|
||||||
distribution does not provide a sufficiently recent version, you can
|
distribution does not provide a sufficiently recent version, you can
|
||||||
install the buildtools, which will provide it. See the
|
install the buildtools, which will provide it. See the
|
||||||
:ref:`ref-manual/system-requirements:required git, tar, python and gcc versions`
|
:ref:`ref-manual/ref-system-requirements:required git, tar, python and gcc versions`
|
||||||
section for more information on the buildtools tarball.
|
section for more information on the buildtools tarball.
|
||||||
|
|
||||||
- The buggy and incomplete support for the RPM version 4 package
|
- The buggy and incomplete support for the RPM version 4 package
|
||||||
@@ -386,7 +386,7 @@ These additional changes exist:
|
|||||||
removed at runtime).
|
removed at runtime).
|
||||||
|
|
||||||
- The
|
- The
|
||||||
:ref:`devtool modify <sdk-manual/extensible:use \`\`devtool modify\`\` to modify the source of an existing component>`
|
:ref:`devtool modify <sdk-manual/sdk-extensible:use \`\`devtool modify\`\` to modify the source of an existing component>`
|
||||||
command now defaults to extracting the source since that is most
|
command now defaults to extracting the source since that is most
|
||||||
commonly expected. The "-x" or "--extract" options are now no-ops. If
|
commonly expected. The "-x" or "--extract" options are now no-ops. If
|
||||||
you wish to provide your own existing source tree, you will now need
|
you wish to provide your own existing source tree, you will now need
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ The way directories are staged in sysroot has been simplified and
|
|||||||
introduces the new :term:`SYSROOT_DIRS`,
|
introduces the new :term:`SYSROOT_DIRS`,
|
||||||
:term:`SYSROOT_DIRS_NATIVE`, and
|
:term:`SYSROOT_DIRS_NATIVE`, and
|
||||||
:term:`SYSROOT_DIRS_BLACKLIST`. See the
|
:term:`SYSROOT_DIRS_BLACKLIST`. See the
|
||||||
:oe_lists:`v2 patch series on the OE-Core Mailing List
|
`v2 patch series on the OE-Core Mailing
|
||||||
</pipermail/openembedded-core/2016-May/121365.html>`
|
List <http://lists.openembedded.org/pipermail/openembedded-core/2016-May/121365.html>`__
|
||||||
for additional information.
|
for additional information.
|
||||||
|
|
||||||
.. _migration-2.2-removal-of-old-images-from-tmp-deploy-now-enabled:
|
.. _migration-2.2-removal-of-old-images-from-tmp-deploy-now-enabled:
|
||||||
@@ -292,9 +292,9 @@ The following changes took place for BitBake:
|
|||||||
functionality. These changes will affect external tools that use
|
functionality. These changes will affect external tools that use
|
||||||
BitBake's tinfoil module. For information on these changes, see the
|
BitBake's tinfoil module. For information on these changes, see the
|
||||||
changes made to the scripts supplied with OpenEmbedded-Core:
|
changes made to the scripts supplied with OpenEmbedded-Core:
|
||||||
:yocto_git:`1 </poky/commit/?id=189371f8393971d00bca0fceffd67cc07784f6ee>`
|
`1 <http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=189371f8393971d00bca0fceffd67cc07784f6ee>`__
|
||||||
and
|
and
|
||||||
:yocto_git:`2 </poky/commit/?id=4a5aa7ea4d07c2c90a1654b174873abb018acc67>`.
|
`2 <http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=4a5aa7ea4d07c2c90a1654b174873abb018acc67>`__.
|
||||||
|
|
||||||
- The task management code has been rewritten to avoid using ID
|
- The task management code has been rewritten to avoid using ID
|
||||||
indirection in order to improve performance. This change is unlikely
|
indirection in order to improve performance. This change is unlikely
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ Consider the following:
|
|||||||
:term:`SYSROOT_PREPROCESS_FUNCS`.
|
:term:`SYSROOT_PREPROCESS_FUNCS`.
|
||||||
|
|
||||||
For an example, see the ``pixbufcache`` class in ``meta/classes/`` in
|
For an example, see the ``pixbufcache`` class in ``meta/classes/`` in
|
||||||
the :ref:`overview-manual/development-environment:yocto project source repositories`.
|
the :ref:`overview-manual/overview-manual-development-environment:yocto project source repositories`.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -198,7 +198,7 @@ The following changes took place for BitBake:
|
|||||||
fetcher passes the new parameter through the ``SVN_SSH`` environment
|
fetcher passes the new parameter through the ``SVN_SSH`` environment
|
||||||
variable during the :ref:`ref-tasks-fetch` task.
|
variable during the :ref:`ref-tasks-fetch` task.
|
||||||
|
|
||||||
See the ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-fetching:subversion (svn) fetcher (\`\`svn://\`\`)`"
|
See the ":ref:`bitbake:svn-fetcher`"
|
||||||
section in the BitBake
|
section in the BitBake
|
||||||
User Manual for additional information.
|
User Manual for additional information.
|
||||||
|
|
||||||
@@ -238,7 +238,7 @@ to substitute a GPLv2 version of a GPLv3 recipe, then you must add the
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
You can ``find meta-gplv2`` layer in the OpenEmbedded layer index at
|
You can ``find meta-gplv2`` layer in the OpenEmbedded layer index at
|
||||||
:oe_layer:`/meta-gplv2`.
|
https://layers.openembedded.org/layerindex/branch/master/layer/meta-gplv2/.
|
||||||
|
|
||||||
These relocated GPLv2 recipes do not receive the same level of
|
These relocated GPLv2 recipes do not receive the same level of
|
||||||
maintenance as other core recipes. The recipes do not get security fixes
|
maintenance as other core recipes. The recipes do not get security fixes
|
||||||
@@ -274,7 +274,7 @@ The following package management changes took place:
|
|||||||
fixed.
|
fixed.
|
||||||
|
|
||||||
For more information, see the `DNF
|
For more information, see the `DNF
|
||||||
Documentation <https://dnf.readthedocs.io/en/latest/>`__.
|
Documentation <http://dnf.readthedocs.io/en/latest/>`__.
|
||||||
|
|
||||||
- Rpm 5.x is replaced with Rpm 4.x. This is done for two major reasons:
|
- Rpm 5.x is replaced with Rpm 4.x. This is done for two major reasons:
|
||||||
|
|
||||||
@@ -323,7 +323,7 @@ The following package management changes took place:
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
For further details on this change, see the
|
For further details on this change, see the
|
||||||
:yocto_git:`commit message </poky/commit/?id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81>`.
|
:yocto_git:`commit message </cgit/cgit.cgi/poky/commit/?id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81>`.
|
||||||
|
|
||||||
.. _migration-2.3-removed-recipes:
|
.. _migration-2.3-removed-recipes:
|
||||||
|
|
||||||
@@ -366,7 +366,7 @@ The following changes have been made to Wic:
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
For more information on Wic, see the
|
For more information on Wic, see the
|
||||||
":ref:`dev-manual/common-tasks:creating partitioned images using wic`"
|
":ref:`dev-manual/dev-manual-common-tasks:creating partitioned images using wic`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- *Default Output Directory Changed:* Wic's default output directory is
|
- *Default Output Directory Changed:* Wic's default output directory is
|
||||||
@@ -404,7 +404,7 @@ The following QA checks have changed:
|
|||||||
|
|
||||||
For additional information, see the
|
For additional information, see the
|
||||||
:ref:`insane <ref-classes-insane>` class and the
|
:ref:`insane <ref-classes-insane>` class and the
|
||||||
":ref:`ref-manual/qa-checks:errors and warnings`" section.
|
":ref:`ref-manual/ref-qa-checks:errors and warnings`" section.
|
||||||
|
|
||||||
.. _migration-2.3-miscellaneous-changes:
|
.. _migration-2.3-miscellaneous-changes:
|
||||||
|
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ or ::
|
|||||||
The earlier build-time provides behavior was a quirk of the
|
The earlier build-time provides behavior was a quirk of the
|
||||||
way the Python manifest file was created. For more information on this
|
way the Python manifest file was created. For more information on this
|
||||||
change please see :yocto_git:`this commit
|
change please see :yocto_git:`this commit
|
||||||
</poky/commit/?id=8d94b9db221d1def42f091b991903faa2d1651ce>`.
|
</cgit/cgit.cgi/poky/commit/?id=8d94b9db221d1def42f091b991903faa2d1651ce>`.
|
||||||
|
|
||||||
.. _migration-2.5-miscellaneous-changes:
|
.. _migration-2.5-miscellaneous-changes:
|
||||||
|
|
||||||
@@ -266,7 +266,7 @@ The following are additional changes:
|
|||||||
will trigger a warning during ``do_rootfs``.
|
will trigger a warning during ``do_rootfs``.
|
||||||
|
|
||||||
For more information, see the
|
For more information, see the
|
||||||
":ref:`dev-manual/common-tasks:post-installation scripts`"
|
":ref:`dev-manual/dev-manual-common-tasks:post-installation scripts`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- The ``elf`` image type has been removed. This image type was removed
|
- The ``elf`` image type has been removed. This image type was removed
|
||||||
@@ -293,8 +293,8 @@ The following are additional changes:
|
|||||||
|
|
||||||
- Patches whose context does not match exactly (i.e. where patch
|
- Patches whose context does not match exactly (i.e. where patch
|
||||||
reports "fuzz" when applying) will generate a warning. For an example
|
reports "fuzz" when applying) will generate a warning. For an example
|
||||||
of this see :yocto_git:`this commit
|
of this see `this
|
||||||
</poky/commit/?id=cc97bc08125b63821ce3f616771830f77c456f57>`.
|
commit <http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=cc97bc08125b63821ce3f616771830f77c456f57>`__.
|
||||||
|
|
||||||
- Layers are expected to set ``LAYERSERIES_COMPAT_layername`` to match
|
- Layers are expected to set ``LAYERSERIES_COMPAT_layername`` to match
|
||||||
the version(s) of OpenEmbedded-Core they are compatible with. This is
|
the version(s) of OpenEmbedded-Core they are compatible with. This is
|
||||||
|
|||||||
@@ -278,7 +278,7 @@ The following changes have occurred:
|
|||||||
specifying list items to remove, be aware that leading and trailing
|
specifying list items to remove, be aware that leading and trailing
|
||||||
whitespace resulting from the removal is retained.
|
whitespace resulting from the removal is retained.
|
||||||
|
|
||||||
See the ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:removal (override style syntax)`"
|
See the ":ref:`bitbake:removing-override-style-syntax`"
|
||||||
section in the BitBake User Manual for a detailed example.
|
section in the BitBake User Manual for a detailed example.
|
||||||
|
|
||||||
.. _migration-2.6-systemd-configuration-now-split-out-to-system-conf:
|
.. _migration-2.6-systemd-configuration-now-split-out-to-system-conf:
|
||||||
@@ -372,7 +372,7 @@ Any failure of a ``pkg_postinst()`` script (including exit 1) triggers
|
|||||||
an error during the :ref:`ref-tasks-rootfs` task.
|
an error during the :ref:`ref-tasks-rootfs` task.
|
||||||
|
|
||||||
For more information on post-installation behavior, see the
|
For more information on post-installation behavior, see the
|
||||||
":ref:`dev-manual/common-tasks:post-installation scripts`"
|
":ref:`dev-manual/dev-manual-common-tasks:post-installation scripts`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _migration-2.6-python-3-profile-guided-optimizations:
|
.. _migration-2.6-python-3-profile-guided-optimizations:
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ The following miscellaneous changes occurred:
|
|||||||
from the top-level ``scripts`` directory.
|
from the top-level ``scripts`` directory.
|
||||||
|
|
||||||
- Perl now builds for the target using
|
- Perl now builds for the target using
|
||||||
`perl-cross <https://arsv.github.io/perl-cross/>`_ for better
|
`perl-cross <http://arsv.github.io/perl-cross/>`_ for better
|
||||||
maintainability and improved build performance. This change should
|
maintainability and improved build performance. This change should
|
||||||
not present any problems unless you have heavily customized your Perl
|
not present any problems unless you have heavily customized your Perl
|
||||||
recipe.
|
recipe.
|
||||||
|
|||||||
@@ -197,7 +197,7 @@ The following BitBake changes have occurred.
|
|||||||
- The arguments passed to functions used with
|
- The arguments passed to functions used with
|
||||||
:term:`bitbake:BB_HASHCHECK_FUNCTION`
|
:term:`bitbake:BB_HASHCHECK_FUNCTION`
|
||||||
have changed. If you are using your own custom hash check function,
|
have changed. If you are using your own custom hash check function,
|
||||||
see :yocto_git:`/poky/commit/?id=40a5e193c4ba45c928fccd899415ea56b5417725`
|
see :yocto_git:`/cgit/cgit.cgi/poky/commit/?id=40a5e193c4ba45c928fccd899415ea56b5417725`
|
||||||
for details.
|
for details.
|
||||||
|
|
||||||
- Task specifications in ``BB_TASKDEPDATA`` and class implementations
|
- Task specifications in ``BB_TASKDEPDATA`` and class implementations
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ be monitoring.
|
|||||||
In addition, pseudo's behaviour on mismatches has now been changed - rather
|
In addition, pseudo's behaviour on mismatches has now been changed - rather
|
||||||
than doing what turns out to be a rather dangerous "fixup" if it sees a file
|
than doing what turns out to be a rather dangerous "fixup" if it sees a file
|
||||||
with a different path but the same inode as another file it has previously seen,
|
with a different path but the same inode as another file it has previously seen,
|
||||||
pseudo will throw an ``abort()`` and direct you to a :yocto_wiki:`wiki page </Pseudo_Abort>`
|
pseudo will throw an ``abort()`` and direct you to a :yocto_wiki:`wiki page </wiki/Pseudo_Abort>`
|
||||||
that explains how to deal with this.
|
that explains how to deal with this.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ The ``archiver`` class supports releasing source code and other
|
|||||||
materials with the binaries.
|
materials with the binaries.
|
||||||
|
|
||||||
For more details on the source archiver, see the
|
For more details on the source archiver, see the
|
||||||
":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`"
|
":ref:`dev-manual/dev-manual-common-tasks:maintaining open source license compliance during your product's lifecycle`"
|
||||||
section in the Yocto Project Development Tasks Manual. You can also see
|
section in the Yocto Project Development Tasks Manual. You can also see
|
||||||
the :term:`ARCHIVER_MODE` variable for information
|
the :term:`ARCHIVER_MODE` variable for information
|
||||||
about the variable flags (varflags) that help control archive creation.
|
about the variable flags (varflags) that help control archive creation.
|
||||||
@@ -86,7 +86,7 @@ standardization. This class defines a set of tasks (e.g. ``configure``,
|
|||||||
should usually be enough to define a few standard variables and then
|
should usually be enough to define a few standard variables and then
|
||||||
simply ``inherit autotools``. These classes can also work with software
|
simply ``inherit autotools``. These classes can also work with software
|
||||||
that emulates Autotools. For more information, see the
|
that emulates Autotools. For more information, see the
|
||||||
":ref:`dev-manual/common-tasks:autotooled package`" section
|
":ref:`new-recipe-autotooled-package`" section
|
||||||
in the Yocto Project Development Tasks Manual.
|
in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
By default, the ``autotools*`` classes use out-of-tree builds (i.e.
|
By default, the ``autotools*`` classes use out-of-tree builds (i.e.
|
||||||
@@ -236,7 +236,7 @@ The ``buildhistory`` class records a history of build output metadata,
|
|||||||
which can be used to detect possible regressions as well as used for
|
which can be used to detect possible regressions as well as used for
|
||||||
analysis of the build output. For more information on using Build
|
analysis of the build output. For more information on using Build
|
||||||
History, see the
|
History, see the
|
||||||
":ref:`dev-manual/common-tasks:maintaining build output quality`"
|
":ref:`dev-manual/dev-manual-common-tasks:maintaining build output quality`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _ref-classes-buildstats:
|
.. _ref-classes-buildstats:
|
||||||
@@ -278,7 +278,7 @@ The ``ccache`` class enables the C/C++ Compiler Cache for the build.
|
|||||||
This class is used to give a minor performance boost during the build.
|
This class is used to give a minor performance boost during the build.
|
||||||
However, using the class can lead to unexpected side-effects. Thus, it
|
However, using the class can lead to unexpected side-effects. Thus, it
|
||||||
is recommended that you do not use this class. See
|
is recommended that you do not use this class. See
|
||||||
https://ccache.samba.org/ for information on the C/C++ Compiler
|
http://ccache.samba.org/ for information on the C/C++ Compiler
|
||||||
Cache.
|
Cache.
|
||||||
|
|
||||||
.. _ref-classes-chrpath:
|
.. _ref-classes-chrpath:
|
||||||
@@ -406,7 +406,7 @@ cross-compilation tools.
|
|||||||
|
|
||||||
The ``cross-canadian`` class provides support for the recipes that build
|
The ``cross-canadian`` class provides support for the recipes that build
|
||||||
the Canadian Cross-compilation tools for SDKs. See the
|
the Canadian Cross-compilation tools for SDKs. See the
|
||||||
":ref:`overview-manual/concepts:cross-development toolchain generation`"
|
":ref:`overview-manual/overview-manual-concepts:cross-development toolchain generation`"
|
||||||
section in the Yocto Project Overview and Concepts Manual for more
|
section in the Yocto Project Overview and Concepts Manual for more
|
||||||
discussion on these cross-compilation tools.
|
discussion on these cross-compilation tools.
|
||||||
|
|
||||||
@@ -417,7 +417,7 @@ discussion on these cross-compilation tools.
|
|||||||
|
|
||||||
The ``crosssdk`` class provides support for the recipes that build the
|
The ``crosssdk`` class provides support for the recipes that build the
|
||||||
cross-compilation tools used for building SDKs. See the
|
cross-compilation tools used for building SDKs. See the
|
||||||
":ref:`overview-manual/concepts:cross-development toolchain generation`"
|
":ref:`overview-manual/overview-manual-concepts:cross-development toolchain generation`"
|
||||||
section in the Yocto Project Overview and Concepts Manual for more
|
section in the Yocto Project Overview and Concepts Manual for more
|
||||||
discussion on these cross-compilation tools.
|
discussion on these cross-compilation tools.
|
||||||
|
|
||||||
@@ -458,7 +458,7 @@ staging the files from ``DEPLOYDIR`` to ``DEPLOY_DIR_IMAGE``.
|
|||||||
====================
|
====================
|
||||||
|
|
||||||
The ``devshell`` class adds the ``do_devshell`` task. Distribution
|
The ``devshell`` class adds the ``do_devshell`` task. Distribution
|
||||||
policy dictates whether to include this class. See the ":ref:`dev-manual/common-tasks:using a development shell`"
|
policy dictates whether to include this class. See the ":ref:`platdev-appdev-devshell`"
|
||||||
section in the Yocto Project Development Tasks Manual for more
|
section in the Yocto Project Development Tasks Manual for more
|
||||||
information about using ``devshell``.
|
information about using ``devshell``.
|
||||||
|
|
||||||
@@ -586,7 +586,7 @@ For more information on the ``externalsrc`` class, see the comments in
|
|||||||
``meta/classes/externalsrc.bbclass`` in the :term:`Source Directory`.
|
``meta/classes/externalsrc.bbclass`` in the :term:`Source Directory`.
|
||||||
For information on how to use the
|
For information on how to use the
|
||||||
``externalsrc`` class, see the
|
``externalsrc`` class, see the
|
||||||
":ref:`dev-manual/common-tasks:building software from an external source`"
|
":ref:`dev-manual/dev-manual-common-tasks:building software from an external source`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _ref-classes-extrausers:
|
.. _ref-classes-extrausers:
|
||||||
@@ -927,11 +927,11 @@ then one or more image files are created.
|
|||||||
install into the image.
|
install into the image.
|
||||||
|
|
||||||
For information on customizing images, see the
|
For information on customizing images, see the
|
||||||
":ref:`dev-manual/common-tasks:customizing images`" section
|
":ref:`usingpoky-extend-customimage`" section
|
||||||
in the Yocto Project Development Tasks Manual. For information on how
|
in the Yocto Project Development Tasks Manual. For information on how
|
||||||
images are created, see the
|
images are created, see the
|
||||||
":ref:`overview-manual/concepts:images`" section in the
|
":ref:`images-dev-environment`" section in the
|
||||||
Yocto Project Overview and Concepts Manual.
|
Yocto Project Overview and Concpets Manual.
|
||||||
|
|
||||||
.. _ref-classes-image-buildinfo:
|
.. _ref-classes-image-buildinfo:
|
||||||
|
|
||||||
@@ -1033,7 +1033,7 @@ You can configure the sanity checks so that specific test failures
|
|||||||
either raise a warning or an error message. Typically, failures for new
|
either raise a warning or an error message. Typically, failures for new
|
||||||
tests generate a warning. Subsequent failures for the same test would
|
tests generate a warning. Subsequent failures for the same test would
|
||||||
then generate an error message once the metadata is in a known and good
|
then generate an error message once the metadata is in a known and good
|
||||||
condition. See the ":doc:`/ref-manual/qa-checks`" Chapter for a list of all the warning
|
condition. See the ":doc:`ref-qa-checks`" Chapter for a list of all the warning
|
||||||
and error messages you might encounter using a default configuration.
|
and error messages you might encounter using a default configuration.
|
||||||
|
|
||||||
Use the :term:`WARN_QA` and
|
Use the :term:`WARN_QA` and
|
||||||
@@ -1276,7 +1276,7 @@ The following list shows the tests you can list with the ``WARN_QA`` and
|
|||||||
- ``textrel:`` Checks for ELF binaries that contain relocations in
|
- ``textrel:`` Checks for ELF binaries that contain relocations in
|
||||||
their ``.text`` sections, which can result in a performance impact at
|
their ``.text`` sections, which can result in a performance impact at
|
||||||
runtime. See the explanation for the ``ELF binary`` message in
|
runtime. See the explanation for the ``ELF binary`` message in
|
||||||
":doc:`/ref-manual/qa-checks`" for more information regarding runtime performance
|
":doc:`ref-qa-checks`" for more information regarding runtime performance
|
||||||
issues.
|
issues.
|
||||||
|
|
||||||
- ``unlisted-pkg-lics:`` Checks that all declared licenses applying
|
- ``unlisted-pkg-lics:`` Checks that all declared licenses applying
|
||||||
@@ -1344,7 +1344,7 @@ packages such as ``kernel-vmlinux``.
|
|||||||
The ``kernel`` class contains logic that allows you to embed an initial
|
The ``kernel`` class contains logic that allows you to embed an initial
|
||||||
RAM filesystem (initramfs) image when you build the kernel image. For
|
RAM filesystem (initramfs) image when you build the kernel image. For
|
||||||
information on how to build an initramfs, see the
|
information on how to build an initramfs, see the
|
||||||
":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`" section in
|
":ref:`building-an-initramfs-image`" section in
|
||||||
the Yocto Project Development Tasks Manual.
|
the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
Various other classes are used by the ``kernel`` and ``module`` classes
|
Various other classes are used by the ``kernel`` and ``module`` classes
|
||||||
@@ -1374,61 +1374,39 @@ generation.
|
|||||||
``kernel-fitimage.bbclass``
|
``kernel-fitimage.bbclass``
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
The ``kernel-fitimage`` class provides support to pack a kernel image,
|
The ``kernel-fitimage`` class provides support to pack a kernel Image,
|
||||||
device trees, a U-boot script, a Initramfs bundle and a RAM disk
|
device trees and a RAM disk into a single FIT image. In theory, a FIT
|
||||||
into a single FIT image. In theory, a FIT image can support any number
|
image can support any number of kernels, RAM disks and device-trees.
|
||||||
of kernels, U-boot scripts, Initramfs bundles, RAM disks and device-trees.
|
|
||||||
However, ``kernel-fitimage`` currently only supports
|
However, ``kernel-fitimage`` currently only supports
|
||||||
limited usescases: just one kernel image, an optional U-boot script,
|
limited usescases: just one kernel image, an optional RAM disk, and
|
||||||
an optional Initramfs bundle, an optional RAM disk, and any number of
|
any number of device tree.
|
||||||
device tree.
|
|
||||||
|
|
||||||
To create a FIT image, it is required that :term:`KERNEL_CLASSES`
|
To create a FIT image, it is required that :term:`KERNEL_CLASSES`
|
||||||
is set to include "kernel-fitimage" and :term:`KERNEL_IMAGETYPE`
|
is set to "kernel-fitimage" and :term:`KERNEL_IMAGETYPE`
|
||||||
is set to "fitImage".
|
is set to "fitImage".
|
||||||
|
|
||||||
The options for the device tree compiler passed to ``mkimage -D``
|
The options for the device tree compiler passed to mkimage -D feature
|
||||||
when creating the FIT image are specified using the
|
when creating the FIT image are specified using the
|
||||||
:term:`UBOOT_MKIMAGE_DTCOPTS` variable.
|
:term:`UBOOT_MKIMAGE_DTCOPTS` variable.
|
||||||
|
|
||||||
Only a single kernel can be added to the FIT image created by
|
Only a single kernel can be added to the FIT image created by
|
||||||
``kernel-fitimage`` and the kernel image in FIT is mandatory. The
|
``kernel-fitimage`` and the kernel image in FIT is mandatory. The
|
||||||
address where the kernel image is to be loaded by U-Boot is
|
address where the kernel image is to be loaded by U-boot is
|
||||||
specified by :term:`UBOOT_LOADADDRESS` and the entrypoint by
|
specified by :term:`UBOOT_LOADADDRESS` and the entrypoint by
|
||||||
:term:`UBOOT_ENTRYPOINT`.
|
:term:`UBOOT_ENTRYPOINT`.
|
||||||
|
|
||||||
Multiple device trees can be added to the FIT image created by
|
Multiple device trees can be added to the FIT image created by
|
||||||
``kernel-fitimage`` and the device tree is optional.
|
``kernel-fitimage`` and the device tree is optional.
|
||||||
The address where the device tree is to be loaded by U-Boot is
|
The address where the device tree is to be loaded by U-boot is
|
||||||
specified by :term:`UBOOT_DTBO_LOADADDRESS` for device tree overlays
|
specified by :term:`UBOOT_DTBO_LOADADDRESS` for device tree overlays
|
||||||
and by :term:`UBOOT_DTB_LOADADDRESS` for device tree binaries.
|
and by :term:`UBOOT_DTB_LOADADDRESS` for device tree binaries.
|
||||||
|
|
||||||
Only a single RAM disk can be added to the FIT image created by
|
Only a single RAM disk can be added to the FIT image created by
|
||||||
``kernel-fitimage`` and the RAM disk in FIT is optional.
|
``kernel-fitimage`` and the RAM disk in FIT is optional.
|
||||||
The address where the RAM disk image is to be loaded by U-Boot
|
The address where the RAM disk image is to be loaded by U-boot
|
||||||
is specified by :term:`UBOOT_RD_LOADADDRESS` and the entrypoint by
|
is specified by :term:`UBOOT_RD_LOADADDRESS` and the entrypoint by
|
||||||
:term:`UBOOT_RD_ENTRYPOINT`. The ramdisk is added to FIT image when
|
:term:`UBOOT_RD_ENTRYPOINT`. The ramdisk is added to FIT image when
|
||||||
:term:`INITRAMFS_IMAGE` is specified and that :term:`INITRAMFS_IMAGE_BUNDLE`
|
:term:`INITRAMFS_IMAGE` is specified.
|
||||||
is set to 0.
|
|
||||||
|
|
||||||
Only a single Initramfs bundle can be added to the FIT image created by
|
|
||||||
``kernel-fitimage`` and the Initramfs bundle in FIT is optional.
|
|
||||||
In case of Initramfs, the kernel is configured to be bundled with the rootfs
|
|
||||||
in the same binary (example: zImage-initramfs-:term:`MACHINE`.bin).
|
|
||||||
When the kernel is copied to RAM and executed, it unpacks the Initramfs rootfs.
|
|
||||||
The Initramfs bundle can be enabled when :term:`INITRAMFS_IMAGE`
|
|
||||||
is specified and that :term:`INITRAMFS_IMAGE_BUNDLE` is set to 1.
|
|
||||||
The address where the Initramfs bundle is to be loaded by U-boot is specified
|
|
||||||
by :term:`UBOOT_LOADADDRESS` and the entrypoint by :term:`UBOOT_ENTRYPOINT`.
|
|
||||||
|
|
||||||
Only a single U-boot boot script can be added to the FIT image created by
|
|
||||||
``kernel-fitimage`` and the boot script is optional.
|
|
||||||
The boot script is specified in the ITS file as a text file containing
|
|
||||||
U-boot commands. When using a boot script the user should configure the
|
|
||||||
U-boot ``do_install`` task to copy the script to sysroot.
|
|
||||||
So the script can be included in the the FIT image by the ``kernel-fitimage``
|
|
||||||
class. At run-time, U-boot CONFIG_BOOTCOMMAND define can be configured to
|
|
||||||
load the boot script from the FIT image and executes it.
|
|
||||||
|
|
||||||
The FIT image generated by ``kernel-fitimage`` class is signed when the
|
The FIT image generated by ``kernel-fitimage`` class is signed when the
|
||||||
variables :term:`UBOOT_SIGN_ENABLE`, :term:`UBOOT_MKIMAGE_DTCOPTS`,
|
variables :term:`UBOOT_SIGN_ENABLE`, :term:`UBOOT_MKIMAGE_DTCOPTS`,
|
||||||
@@ -1618,7 +1596,7 @@ and implements the :ref:`ref-tasks-compile` and
|
|||||||
everything needed to build and package a kernel module.
|
everything needed to build and package a kernel module.
|
||||||
|
|
||||||
For general information on out-of-tree Linux kernel modules, see the
|
For general information on out-of-tree Linux kernel modules, see the
|
||||||
":ref:`kernel-dev/common:incorporating out-of-tree modules`"
|
":ref:`kernel-dev/kernel-dev-common:incorporating out-of-tree modules`"
|
||||||
section in the Yocto Project Linux Kernel Development Manual.
|
section in the Yocto Project Linux Kernel Development Manual.
|
||||||
|
|
||||||
.. _ref-classes-module-base:
|
.. _ref-classes-module-base:
|
||||||
@@ -1642,7 +1620,7 @@ different target optimizations or target architectures and installing
|
|||||||
them side-by-side in the same image.
|
them side-by-side in the same image.
|
||||||
|
|
||||||
For more information on using the Multilib feature, see the
|
For more information on using the Multilib feature, see the
|
||||||
":ref:`dev-manual/common-tasks:combining multiple versions of library files into one image`"
|
":ref:`combining-multiple-versions-library-files-into-one-image`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _ref-classes-native:
|
.. _ref-classes-native:
|
||||||
@@ -1754,7 +1732,7 @@ package manager (NPM) <https://en.wikipedia.org/wiki/Npm_(software)>`__.
|
|||||||
fetcher to have dependencies fetched and packaged automatically.
|
fetcher to have dependencies fetched and packaged automatically.
|
||||||
|
|
||||||
For information on how to create NPM packages, see the
|
For information on how to create NPM packages, see the
|
||||||
":ref:`dev-manual/common-tasks:creating node package manager (npm) packages`"
|
":ref:`dev-manual/dev-manual-common-tasks:creating node package manager (npm) packages`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _ref-classes-oelint:
|
.. _ref-classes-oelint:
|
||||||
@@ -1824,7 +1802,7 @@ If you take the optional step to set up a repository (package feed) on
|
|||||||
the development host that can be used by DNF, you can install packages
|
the development host that can be used by DNF, you can install packages
|
||||||
from the feed while you are running the image on the target (i.e.
|
from the feed while you are running the image on the target (i.e.
|
||||||
runtime installation of packages). For more information, see the
|
runtime installation of packages). For more information, see the
|
||||||
":ref:`dev-manual/common-tasks:using runtime package management`"
|
":ref:`dev-manual/dev-manual-common-tasks:using runtime package management`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
The package-specific class you choose can affect build-time performance
|
The package-specific class you choose can affect build-time performance
|
||||||
@@ -1943,7 +1921,7 @@ so forth). It is highly recommended that all package group recipes
|
|||||||
inherit this class.
|
inherit this class.
|
||||||
|
|
||||||
For information on how to use this class, see the
|
For information on how to use this class, see the
|
||||||
":ref:`dev-manual/common-tasks:customizing images using custom package groups`"
|
":ref:`usingpoky-extend-customimage-customtasks`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
Previously, this class was called the ``task`` class.
|
Previously, this class was called the ``task`` class.
|
||||||
@@ -2008,7 +1986,7 @@ files.
|
|||||||
The ``populate_sdk`` class provides support for SDK-only recipes. For
|
The ``populate_sdk`` class provides support for SDK-only recipes. For
|
||||||
information on advantages gained when building a cross-development
|
information on advantages gained when building a cross-development
|
||||||
toolchain using the :ref:`ref-tasks-populate_sdk`
|
toolchain using the :ref:`ref-tasks-populate_sdk`
|
||||||
task, see the ":ref:`sdk-manual/appendix-obtain:building an sdk installer`"
|
task, see the ":ref:`sdk-manual/sdk-appendix-obtain:building an sdk installer`"
|
||||||
section in the Yocto Project Application Development and the Extensible
|
section in the Yocto Project Application Development and the Extensible
|
||||||
Software Development Kit (eSDK) manual.
|
Software Development Kit (eSDK) manual.
|
||||||
|
|
||||||
@@ -2061,12 +2039,12 @@ These classes are inherited by and used with the ``populate_sdk_base``
|
|||||||
class.
|
class.
|
||||||
|
|
||||||
For more information on the cross-development toolchain generation, see
|
For more information on the cross-development toolchain generation, see
|
||||||
the ":ref:`overview-manual/concepts:cross-development toolchain generation`"
|
the ":ref:`overview-manual/overview-manual-concepts:cross-development toolchain generation`"
|
||||||
section in the Yocto Project Overview and Concepts Manual. For
|
section in the Yocto Project Overview and Concepts Manual. For
|
||||||
information on advantages gained when building a cross-development
|
information on advantages gained when building a cross-development
|
||||||
toolchain using the :ref:`ref-tasks-populate_sdk`
|
toolchain using the :ref:`ref-tasks-populate_sdk`
|
||||||
task, see the
|
task, see the
|
||||||
":ref:`sdk-manual/appendix-obtain:building an sdk installer`"
|
":ref:`sdk-manual/sdk-appendix-obtain:building an sdk installer`"
|
||||||
section in the Yocto Project Application Development and the Extensible
|
section in the Yocto Project Application Development and the Extensible
|
||||||
Software Development Kit (eSDK) manual.
|
Software Development Kit (eSDK) manual.
|
||||||
|
|
||||||
@@ -2102,7 +2080,7 @@ The ``primport`` class provides functionality for importing
|
|||||||
==================
|
==================
|
||||||
|
|
||||||
The ``prserv`` class provides functionality for using a :ref:`PR
|
The ``prserv`` class provides functionality for using a :ref:`PR
|
||||||
service <dev-manual/common-tasks:working with a pr service>` in order to
|
service <dev-manual/dev-manual-common-tasks:working with a pr service>` in order to
|
||||||
automatically manage the incrementing of the :term:`PR`
|
automatically manage the incrementing of the :term:`PR`
|
||||||
variable for each recipe.
|
variable for each recipe.
|
||||||
|
|
||||||
@@ -2122,7 +2100,7 @@ runtime tests for recipes that build software that provides these tests.
|
|||||||
This class is intended to be inherited by individual recipes. However,
|
This class is intended to be inherited by individual recipes. However,
|
||||||
the class' functionality is largely disabled unless "ptest" appears in
|
the class' functionality is largely disabled unless "ptest" appears in
|
||||||
:term:`DISTRO_FEATURES`. See the
|
:term:`DISTRO_FEATURES`. See the
|
||||||
":ref:`dev-manual/common-tasks:testing packages with ptest`"
|
":ref:`dev-manual/dev-manual-common-tasks:testing packages with ptest`"
|
||||||
section in the Yocto Project Development Tasks Manual for more information
|
section in the Yocto Project Development Tasks Manual for more information
|
||||||
on ptest.
|
on ptest.
|
||||||
|
|
||||||
@@ -2135,7 +2113,7 @@ Enables package tests (ptests) specifically for GNOME packages, which
|
|||||||
have tests intended to be executed with ``gnome-desktop-testing``.
|
have tests intended to be executed with ``gnome-desktop-testing``.
|
||||||
|
|
||||||
For information on setting up and running ptests, see the
|
For information on setting up and running ptests, see the
|
||||||
":ref:`dev-manual/common-tasks:testing packages with ptest`"
|
":ref:`dev-manual/dev-manual-common-tasks:testing packages with ptest`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _ref-classes-python-dir:
|
.. _ref-classes-python-dir:
|
||||||
@@ -2221,7 +2199,7 @@ override the removal by setting ``REMOVE_LIBTOOL_LA`` to "0" as follows:
|
|||||||
========================
|
========================
|
||||||
|
|
||||||
The ``report-error`` class supports enabling the :ref:`error reporting
|
The ``report-error`` class supports enabling the :ref:`error reporting
|
||||||
tool <dev-manual/common-tasks:using the error reporting tool>`",
|
tool <dev-manual/dev-manual-common-tasks:using the error reporting tool>`",
|
||||||
which allows you to submit build error information to a central database.
|
which allows you to submit build error information to a central database.
|
||||||
|
|
||||||
The class collects debug information for recipe, recipe version, task,
|
The class collects debug information for recipe, recipe version, task,
|
||||||
@@ -2290,7 +2268,7 @@ The root filesystem is created from packages using one of the
|
|||||||
:term:`PACKAGE_CLASSES` variable.
|
:term:`PACKAGE_CLASSES` variable.
|
||||||
|
|
||||||
For information on how root filesystem images are created, see the
|
For information on how root filesystem images are created, see the
|
||||||
":ref:`overview-manual/concepts:image generation`"
|
":ref:`image-generation-dev-environment`"
|
||||||
section in the Yocto Project Overview and Concepts Manual.
|
section in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
.. _ref-classes-sanity:
|
.. _ref-classes-sanity:
|
||||||
@@ -2397,7 +2375,7 @@ default, the class is enabled through the
|
|||||||
:term:`INHERIT_DISTRO` variable's default value.
|
:term:`INHERIT_DISTRO` variable's default value.
|
||||||
|
|
||||||
For more information on sstate, see the
|
For more information on sstate, see the
|
||||||
":ref:`overview-manual/concepts:shared state cache`"
|
":ref:`overview-manual/overview-manual-concepts:shared state cache`"
|
||||||
section in the Yocto Project Overview and Concepts Manual.
|
section in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
.. _ref-classes-staging:
|
.. _ref-classes-staging:
|
||||||
@@ -2576,7 +2554,7 @@ unless you have set
|
|||||||
:term:`SYSTEMD_AUTO_ENABLE` to "disable".
|
:term:`SYSTEMD_AUTO_ENABLE` to "disable".
|
||||||
|
|
||||||
For more information on ``systemd``, see the
|
For more information on ``systemd``, see the
|
||||||
":ref:`dev-manual/common-tasks:selecting an initialization manager`"
|
":ref:`dev-manual/dev-manual-common-tasks:selecting an initialization manager`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _ref-classes-systemd-boot:
|
.. _ref-classes-systemd-boot:
|
||||||
@@ -2603,7 +2581,7 @@ the :term:`SYSTEMD_BOOT_CFG`,
|
|||||||
:term:`SYSTEMD_BOOT_TIMEOUT` variables.
|
:term:`SYSTEMD_BOOT_TIMEOUT` variables.
|
||||||
|
|
||||||
You can also see the `Systemd-boot
|
You can also see the `Systemd-boot
|
||||||
documentation <https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__
|
documentation <http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__
|
||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
.. _ref-classes-terminal:
|
.. _ref-classes-terminal:
|
||||||
@@ -2653,7 +2631,7 @@ runs tests on an image after the image is constructed (i.e.
|
|||||||
:term:`TESTIMAGE_AUTO` must be set to "1").
|
:term:`TESTIMAGE_AUTO` must be set to "1").
|
||||||
|
|
||||||
For information on how to enable, run, and create new tests, see the
|
For information on how to enable, run, and create new tests, see the
|
||||||
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
|
":ref:`dev-manual/dev-manual-common-tasks:performing automated runtime testing`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _ref-classes-testsdk:
|
.. _ref-classes-testsdk:
|
||||||
@@ -2796,7 +2774,7 @@ To use this class, you need to define a number of variables:
|
|||||||
These variables list alternative commands needed by a package, provide
|
These variables list alternative commands needed by a package, provide
|
||||||
pathnames for links, default links for targets, and so forth. For
|
pathnames for links, default links for targets, and so forth. For
|
||||||
details on how to use this class, see the comments in the
|
details on how to use this class, see the comments in the
|
||||||
:yocto_git:`update-alternatives.bbclass </poky/tree/meta/classes/update-alternatives.bbclass>`
|
:yocto_git:`update-alternatives.bbclass </cgit/cgit.cgi/poky/tree/meta/classes/update-alternatives.bbclass>`
|
||||||
file.
|
file.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
@@ -11,7 +11,7 @@ is a key part of the extensible SDK.
|
|||||||
|
|
||||||
This chapter provides a Quick Reference for the ``devtool`` command. For
|
This chapter provides a Quick Reference for the ``devtool`` command. For
|
||||||
more information on how to apply the command when using the extensible
|
more information on how to apply the command when using the extensible
|
||||||
SDK, see the ":doc:`/sdk-manual/extensible`" chapter in the Yocto
|
SDK, see the ":doc:`../sdk-manual/sdk-extensible`" chapter in the Yocto
|
||||||
Project Application Development and the Extensible Software Development
|
Project Application Development and the Extensible Software Development
|
||||||
Kit (eSDK) manual.
|
Kit (eSDK) manual.
|
||||||
|
|
||||||
@@ -193,7 +193,7 @@ external source tree.
|
|||||||
run your application. If dependent packages (e.g. libraries) do not
|
run your application. If dependent packages (e.g. libraries) do not
|
||||||
exist on the target, your application, when run, will fail to find
|
exist on the target, your application, when run, will fail to find
|
||||||
those functions. For more information, see the
|
those functions. For more information, see the
|
||||||
":ref:`ref-manual/devtool-reference:deploying your software on the target machine`"
|
":ref:`ref-manual/ref-devtool-reference:deploying your software on the target machine`"
|
||||||
section.
|
section.
|
||||||
|
|
||||||
By default, ``devtool add`` uses the latest revision (i.e. master) when
|
By default, ``devtool add`` uses the latest revision (i.e. master) when
|
||||||
@@ -204,20 +204,20 @@ specify these options when using the ``devtool add`` command:
|
|||||||
- To specify a source branch, use the ``--srcbranch`` option:
|
- To specify a source branch, use the ``--srcbranch`` option:
|
||||||
::
|
::
|
||||||
|
|
||||||
$ devtool add --srcbranch &DISTRO_NAME_NO_CAP; jackson /home/user/sources/jackson
|
$ devtool add --srcbranch DISTRO_NAME_NO_CAP jackson /home/user/sources/jackson
|
||||||
|
|
||||||
In the previous example, you are checking out the &DISTRO_NAME_NO_CAP;
|
In the previous example, you are checking out the DISTRO_NAME_NO_CAP
|
||||||
branch.
|
branch.
|
||||||
|
|
||||||
- To specify a specific tag or commit hash, use the ``--srcrev``
|
- To specify a specific tag or commit hash, use the ``--srcrev``
|
||||||
option:
|
option:
|
||||||
::
|
::
|
||||||
|
|
||||||
$ devtool add --srcrev &DISTRO_REL_TAG; jackson /home/user/sources/jackson
|
$ devtool add --srcrev DISTRO_REL_TAG jackson /home/user/sources/jackson
|
||||||
$ devtool add --srcrev some_commit_hash /home/user/sources/jackson
|
$ devtool add --srcrev some_commit_hash /home/user/sources/jackson
|
||||||
|
|
||||||
The previous examples check out the
|
The previous examples check out the
|
||||||
&DISTRO_REL_TAG; tag and the commit associated with the
|
DISTRO_REL_TAG tag and the commit associated with the
|
||||||
some_commit_hash hash.
|
some_commit_hash hash.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
@@ -349,10 +349,10 @@ particular recipe.
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
- For the ``oe-core`` layer, recipe maintainers come from the
|
- For the ``oe-core`` layer, recipe maintainers come from the
|
||||||
:yocto_git:`maintainers.inc </poky/tree/meta/conf/distro/include/maintainers.inc>`
|
`maintainers.inc <http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/conf/distro/include/maintainers.inc>`_
|
||||||
file.
|
file.
|
||||||
|
|
||||||
- If the recipe is using the :ref:`bitbake:bitbake-user-manual/bitbake-user-manual-fetching:git fetcher (\`\`git://\`\`)`
|
- If the recipe is using the :ref:`bitbake:git-fetcher`
|
||||||
rather than a
|
rather than a
|
||||||
tarball, the commit hash points to the commit that matches the
|
tarball, the commit hash points to the commit that matches the
|
||||||
recipe's latest version tag.
|
recipe's latest version tag.
|
||||||
@@ -388,7 +388,7 @@ satisfied.
|
|||||||
When a reason for not upgrading displays, the reason is usually
|
When a reason for not upgrading displays, the reason is usually
|
||||||
written into the recipe using the ``RECIPE_NO_UPDATE_REASON``
|
written into the recipe using the ``RECIPE_NO_UPDATE_REASON``
|
||||||
variable. See the
|
variable. See the
|
||||||
:yocto_git:`base-passwd.bb </poky/tree/meta/recipes-core/base-passwd/base-passwd_3.5.29.bb>`
|
:yocto_git:`base-passwd.bb </cgit/cgit.cgi/poky/tree/meta/recipes-core/base-passwd/base-passwd_3.5.29.bb>`
|
||||||
recipe for an example.
|
recipe for an example.
|
||||||
|
|
||||||
::
|
::
|
||||||
@@ -413,7 +413,7 @@ Upgrading a Recipe
|
|||||||
As software matures, upstream recipes are upgraded to newer versions. As
|
As software matures, upstream recipes are upgraded to newer versions. As
|
||||||
a developer, you need to keep your local recipes up-to-date with the
|
a developer, you need to keep your local recipes up-to-date with the
|
||||||
upstream version releases. Several methods exist by which you can
|
upstream version releases. Several methods exist by which you can
|
||||||
upgrade recipes. You can read about them in the ":ref:`dev-manual/common-tasks:upgrading recipes`"
|
upgrade recipes. You can read about them in the ":ref:`gs-upgrading-recipes`"
|
||||||
section of the Yocto Project Development Tasks Manual. This section
|
section of the Yocto Project Development Tasks Manual. This section
|
||||||
overviews the ``devtool upgrade`` command.
|
overviews the ``devtool upgrade`` command.
|
||||||
|
|
||||||
@@ -438,10 +438,10 @@ revision to which you want to upgrade (i.e. the
|
|||||||
forth.
|
forth.
|
||||||
|
|
||||||
You can read more on the ``devtool upgrade`` workflow in the
|
You can read more on the ``devtool upgrade`` workflow in the
|
||||||
":ref:`sdk-manual/extensible:use \`\`devtool upgrade\`\` to create a version of the recipe that supports a newer version of the software`"
|
":ref:`sdk-devtool-use-devtool-upgrade-to-create-a-version-of-the-recipe-that-supports-a-newer-version-of-the-software`"
|
||||||
section in the Yocto Project Application Development and the Extensible
|
section in the Yocto Project Application Development and the Extensible
|
||||||
Software Development Kit (eSDK) manual. You can also see an example of
|
Software Development Kit (eSDK) manual. You can also see an example of
|
||||||
how to use ``devtool upgrade`` in the ":ref:`dev-manual/common-tasks:using \`\`devtool upgrade\`\``"
|
how to use ``devtool upgrade`` in the ":ref:`gs-using-devtool-upgrade`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _devtool-resetting-a-recipe:
|
.. _devtool-resetting-a-recipe:
|
||||||
@@ -561,7 +561,7 @@ Removing Your Software from the Target Machine
|
|||||||
Use the ``devtool undeploy-target`` command to remove deployed build
|
Use the ``devtool undeploy-target`` command to remove deployed build
|
||||||
output from the target machine. For the ``devtool undeploy-target``
|
output from the target machine. For the ``devtool undeploy-target``
|
||||||
command to work, you must have previously used the
|
command to work, you must have previously used the
|
||||||
":ref:`devtool deploy-target <ref-manual/devtool-reference:deploying your software on the target machine>`"
|
":ref:`devtool deploy-target <ref-manual/ref-devtool-reference:deploying your software on the target machine>`"
|
||||||
command.
|
command.
|
||||||
::
|
::
|
||||||
|
|
||||||
@@ -609,7 +609,7 @@ The ``devtool status`` command has no command-line options:
|
|||||||
$ devtool status
|
$ devtool status
|
||||||
|
|
||||||
Following is sample output after using
|
Following is sample output after using
|
||||||
:ref:`devtool add <ref-manual/devtool-reference:adding a new recipe to the workspace layer>`
|
:ref:`devtool add <ref-manual/ref-devtool-reference:adding a new recipe to the workspace layer>`
|
||||||
to create and add the ``mtr_0.86.bb`` recipe to the ``workspace`` directory:
|
to create and add the ``mtr_0.86.bb`` recipe to the ``workspace`` directory:
|
||||||
::
|
::
|
||||||
|
|
||||||
@@ -118,7 +118,7 @@ metadata:
|
|||||||
- *api-documentation:* Enables generation of API documentation during
|
- *api-documentation:* Enables generation of API documentation during
|
||||||
recipe builds. The resulting documentation is added to SDK tarballs
|
recipe builds. The resulting documentation is added to SDK tarballs
|
||||||
when the ``bitbake -c populate_sdk`` command is used. See the
|
when the ``bitbake -c populate_sdk`` command is used. See the
|
||||||
":ref:`sdk-manual/appendix-customizing-standard:adding api documentation to the standard sdk`"
|
":ref:`sdk-manual/sdk-appendix-customizing-standard:adding api documentation to the standard sdk`"
|
||||||
section in the Yocto Project Application Development and the
|
section in the Yocto Project Application Development and the
|
||||||
Extensible Software Development Kit (eSDK) manual.
|
Extensible Software Development Kit (eSDK) manual.
|
||||||
|
|
||||||
@@ -156,7 +156,7 @@ metadata:
|
|||||||
|
|
||||||
- *ptest:* Enables building the package tests where supported by
|
- *ptest:* Enables building the package tests where supported by
|
||||||
individual recipes. For more information on package tests, see the
|
individual recipes. For more information on package tests, see the
|
||||||
":ref:`dev-manual/common-tasks:testing packages with ptest`" section
|
":ref:`dev-manual/dev-manual-common-tasks:testing packages with ptest`" section
|
||||||
in the Yocto Project Development Tasks Manual.
|
in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- *smbfs:* Include SMB networks client support (for mounting
|
- *smbfs:* Include SMB networks client support (for mounting
|
||||||
@@ -236,7 +236,7 @@ The following image features are available for all images:
|
|||||||
|
|
||||||
- *read-only-rootfs:* Creates an image whose root filesystem is
|
- *read-only-rootfs:* Creates an image whose root filesystem is
|
||||||
read-only. See the
|
read-only. See the
|
||||||
":ref:`dev-manual/common-tasks:creating a read-only root filesystem`"
|
":ref:`dev-manual/dev-manual-common-tasks:creating a read-only root filesystem`"
|
||||||
section in the Yocto Project Development Tasks Manual for more
|
section in the Yocto Project Development Tasks Manual for more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
@@ -261,7 +261,7 @@ these valid features is as follows:
|
|||||||
|
|
||||||
- *perf:* Installs profiling tools such as ``perf``, ``systemtap``, and
|
- *perf:* Installs profiling tools such as ``perf``, ``systemtap``, and
|
||||||
``LTTng``. For general information on user-space tools, see the
|
``LTTng``. For general information on user-space tools, see the
|
||||||
:doc:`/sdk-manual/index` manual.
|
:doc:`../sdk-manual/sdk-manual` manual.
|
||||||
|
|
||||||
- *ssh-server-dropbear:* Installs the Dropbear minimal SSH server.
|
- *ssh-server-dropbear:* Installs the Dropbear minimal SSH server.
|
||||||
|
|
||||||
@@ -273,9 +273,9 @@ these valid features is as follows:
|
|||||||
|
|
||||||
- *tools-debug:* Installs debugging tools such as ``strace`` and
|
- *tools-debug:* Installs debugging tools such as ``strace`` and
|
||||||
``gdb``. For information on GDB, see the
|
``gdb``. For information on GDB, see the
|
||||||
":ref:`dev-manual/common-tasks:debugging with the gnu project debugger (gdb) remotely`" section
|
":ref:`platdev-gdb-remotedebug`" section
|
||||||
in the Yocto Project Development Tasks Manual. For information on
|
in the Yocto Project Development Tasks Manual. For information on
|
||||||
tracing and profiling, see the :doc:`/profile-manual/index`.
|
tracing and profiling, see the :doc:`../profile-manual/profile-manual`.
|
||||||
|
|
||||||
- *tools-sdk:* Installs a full SDK that runs on the device.
|
- *tools-sdk:* Installs a full SDK that runs on the device.
|
||||||
|
|
||||||
@@ -37,9 +37,9 @@ Following is a list of supported recipes:
|
|||||||
all the pieces required to run builds using the build system as well
|
all the pieces required to run builds using the build system as well
|
||||||
as the build system itself. You can boot and run the image using
|
as the build system itself. You can boot and run the image using
|
||||||
either the `VMware
|
either the `VMware
|
||||||
Player <https://www.vmware.com/products/player/overview.html>`__ or
|
Player <http://www.vmware.com/products/player/overview.html>`__ or
|
||||||
`VMware
|
`VMware
|
||||||
Workstation <https://www.vmware.com/products/workstation/overview.html>`__.
|
Workstation <http://www.vmware.com/products/workstation/overview.html>`__.
|
||||||
For more information on this image, see the :yocto_home:`Build
|
For more information on this image, see the :yocto_home:`Build
|
||||||
Appliance </software-item/build-appliance>` page
|
Appliance </software-item/build-appliance>` page
|
||||||
on the Yocto Project website.
|
on the Yocto Project website.
|
||||||
@@ -122,7 +122,7 @@ Following is a list of supported recipes:
|
|||||||
deployed to a separate partition so that you can boot into it and use
|
deployed to a separate partition so that you can boot into it and use
|
||||||
it to deploy a second image to be tested. You can find more
|
it to deploy a second image to be tested. You can find more
|
||||||
information about runtime testing in the
|
information about runtime testing in the
|
||||||
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
|
":ref:`dev-manual/dev-manual-common-tasks:performing automated runtime testing`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- ``core-image-testmaster-initramfs``: A RAM-based Initial Root
|
- ``core-image-testmaster-initramfs``: A RAM-based Initial Root
|
||||||
@@ -132,7 +132,7 @@ Following is a list of supported recipes:
|
|||||||
- ``core-image-weston``: A very basic Wayland image with a terminal.
|
- ``core-image-weston``: A very basic Wayland image with a terminal.
|
||||||
This image provides the Wayland protocol libraries and the reference
|
This image provides the Wayland protocol libraries and the reference
|
||||||
Weston compositor. For more information, see the
|
Weston compositor. For more information, see the
|
||||||
":ref:`dev-manual/common-tasks:using wayland and weston`"
|
":ref:`dev-manual/dev-manual-common-tasks:using wayland and weston`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- ``core-image-x11``: A very basic X11 image with a terminal.
|
- ``core-image-x11``: A very basic X11 image with a terminal.
|
||||||
@@ -24,7 +24,7 @@ The information lists the commands, their syntax, and meanings.
|
|||||||
Kickstart commands are based on the Fedora kickstart versions but with
|
Kickstart commands are based on the Fedora kickstart versions but with
|
||||||
modifications to reflect Wic capabilities. You can see the original
|
modifications to reflect Wic capabilities. You can see the original
|
||||||
documentation for those commands at the following link:
|
documentation for those commands at the following link:
|
||||||
https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html
|
http://pykickstart.readthedocs.io/en/latest/kickstart-docs.html
|
||||||
|
|
||||||
Command: part or partition
|
Command: part or partition
|
||||||
==========================
|
==========================
|
||||||
@@ -79,7 +79,7 @@ the ``part`` and ``partition`` commands:
|
|||||||
source of the data that populates the partition. The most common
|
source of the data that populates the partition. The most common
|
||||||
value for this option is "rootfs", but you can use any value that
|
value for this option is "rootfs", but you can use any value that
|
||||||
maps to a valid source plugin. For information on the source plugins,
|
maps to a valid source plugin. For information on the source plugins,
|
||||||
see the ":ref:`dev-manual/common-tasks:using the wic plugin interface`"
|
see the ":ref:`dev-manual/dev-manual-common-tasks:using the wic plugin interface`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
If you use ``--source rootfs``, Wic creates a partition as large as
|
If you use ``--source rootfs``, Wic creates a partition as large as
|
||||||
@@ -164,7 +164,7 @@ the ``part`` and ``partition`` commands:
|
|||||||
- ``--part-type``: This option is a Wic-specific option that
|
- ``--part-type``: This option is a Wic-specific option that
|
||||||
specifies the partition type globally unique identifier (GUID) for
|
specifies the partition type globally unique identifier (GUID) for
|
||||||
GPT partitions. You can find the list of partition type GUIDs at
|
GPT partitions. You can find the list of partition type GUIDs at
|
||||||
https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs.
|
http://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs.
|
||||||
|
|
||||||
- ``--use-uuid``: This option is a Wic-specific option that causes
|
- ``--use-uuid``: This option is a Wic-specific option that causes
|
||||||
Wic to generate a random GUID for the partition. The generated
|
Wic to generate a random GUID for the partition. The generated
|
||||||
@@ -10,20 +10,20 @@ Yocto Project Reference Manual
|
|||||||
:caption: Table of Contents
|
:caption: Table of Contents
|
||||||
:numbered:
|
:numbered:
|
||||||
|
|
||||||
system-requirements
|
ref-system-requirements
|
||||||
terms
|
ref-terms
|
||||||
release-process
|
ref-release-process
|
||||||
migration
|
migration
|
||||||
structure
|
ref-structure
|
||||||
classes
|
ref-classes
|
||||||
tasks
|
ref-tasks
|
||||||
devtool-reference
|
ref-devtool-reference
|
||||||
kickstart
|
ref-kickstart
|
||||||
qa-checks
|
ref-qa-checks
|
||||||
images
|
ref-images
|
||||||
features
|
ref-features
|
||||||
variables
|
ref-variables
|
||||||
varlocality
|
ref-varlocality
|
||||||
faq
|
faq
|
||||||
resources
|
resources
|
||||||
history
|
history
|
||||||
@@ -227,7 +227,7 @@ Errors and Warnings
|
|||||||
CFLAGS_append = " -fPIC "
|
CFLAGS_append = " -fPIC "
|
||||||
|
|
||||||
For more information on text relocations at runtime, see
|
For more information on text relocations at runtime, see
|
||||||
https://www.akkadia.org/drepper/textrelocs.html.
|
http://www.akkadia.org/drepper/textrelocs.html.
|
||||||
|
|
||||||
|
|
||||||
.. _qa-check-ldflags:
|
.. _qa-check-ldflags:
|
||||||
@@ -12,7 +12,7 @@ stability.
|
|||||||
Major and Minor Release Cadence
|
Major and Minor Release Cadence
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
The Yocto Project delivers major releases (e.g. &DISTRO;) using a six
|
The Yocto Project delivers major releases (e.g. DISTRO) using a six
|
||||||
month cadence roughly timed each April and October of the year.
|
month cadence roughly timed each April and October of the year.
|
||||||
Following are examples of some major YP releases with their codenames
|
Following are examples of some major YP releases with their codenames
|
||||||
also shown. See the "`Major Release
|
also shown. See the "`Major Release
|
||||||
@@ -50,21 +50,21 @@ Major Release Codenames
|
|||||||
=======================
|
=======================
|
||||||
|
|
||||||
Each major release receives a codename that identifies the release in
|
Each major release receives a codename that identifies the release in
|
||||||
the :ref:`overview-manual/development-environment:yocto project source repositories`.
|
the :ref:`overview-manual/overview-manual-development-environment:yocto project source repositories`.
|
||||||
The concept is that branches of :term:`Metadata` with the same
|
The concept is that branches of :term:`Metadata` with the same
|
||||||
codename are likely to be compatible and thus work together.
|
codename are likely to be compatible and thus work together.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Codenames are associated with major releases because a Yocto Project
|
Codenames are associated with major releases because a Yocto Project
|
||||||
release number (e.g. &DISTRO;) could conflict with a given layer or
|
release number (e.g. DISTRO) could conflict with a given layer or
|
||||||
company versioning scheme. Codenames are unique, interesting, and
|
company versioning scheme. Codenames are unique, interesting, and
|
||||||
easily identifiable.
|
easily identifiable.
|
||||||
|
|
||||||
Releases are given a nominal release version as well but the codename is
|
Releases are given a nominal release version as well but the codename is
|
||||||
used in repositories for this reason. You can find information on Yocto
|
used in repositories for this reason. You can find information on Yocto
|
||||||
Project releases and codenames at
|
Project releases and codenames at
|
||||||
:yocto_wiki:`/Releases`.
|
:yocto_wiki:`/wiki/Releases`.
|
||||||
|
|
||||||
Stable Release Process
|
Stable Release Process
|
||||||
======================
|
======================
|
||||||
@@ -94,7 +94,7 @@ Community LTS trees and branches exist where community members share
|
|||||||
patches for older releases. However, these types of patches do not go
|
patches for older releases. However, these types of patches do not go
|
||||||
through the same release process as do point releases. You can find more
|
through the same release process as do point releases. You can find more
|
||||||
information about stable branch maintenance at
|
information about stable branch maintenance at
|
||||||
:yocto_wiki:`/Stable_branch_maintenance`.
|
:yocto_wiki:`/wiki/Stable_branch_maintenance`.
|
||||||
|
|
||||||
Testing and Quality Assurance
|
Testing and Quality Assurance
|
||||||
=============================
|
=============================
|
||||||
@@ -106,7 +106,7 @@ Additionally, because the test strategies are visible to you as a
|
|||||||
developer, you can validate your projects. This section overviews the
|
developer, you can validate your projects. This section overviews the
|
||||||
available test infrastructure used in the Yocto Project. For information
|
available test infrastructure used in the Yocto Project. For information
|
||||||
on how to run available tests on your projects, see the
|
on how to run available tests on your projects, see the
|
||||||
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
|
":ref:`dev-manual/dev-manual-common-tasks:performing automated runtime testing`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
The QA/testing infrastructure is woven into the project to the point
|
The QA/testing infrastructure is woven into the project to the point
|
||||||
@@ -128,12 +128,12 @@ consists of the following pieces:
|
|||||||
|
|
||||||
- :ref:`testimage.bbclass <ref-classes-testimage*>`: This class
|
- :ref:`testimage.bbclass <ref-classes-testimage*>`: This class
|
||||||
performs runtime testing of images after they are built. The tests
|
performs runtime testing of images after they are built. The tests
|
||||||
are usually used with :doc:`QEMU </dev-manual/qemu>`
|
are usually used with :doc:`QEMU <../dev-manual/dev-manual-qemu>`
|
||||||
to boot the images and check the combined runtime result boot
|
to boot the images and check the combined runtime result boot
|
||||||
operation and functions. However, the test can also use the IP
|
operation and functions. However, the test can also use the IP
|
||||||
address of a machine to test.
|
address of a machine to test.
|
||||||
|
|
||||||
- :ref:`ptest <dev-manual/common-tasks:testing packages with ptest>`:
|
- :ref:`ptest <dev-manual/dev-manual-common-tasks:testing packages with ptest>`:
|
||||||
Runs tests against packages produced during the build for a given
|
Runs tests against packages produced during the build for a given
|
||||||
piece of software. The test allows the packages to be be run within a
|
piece of software. The test allows the packages to be be run within a
|
||||||
target image.
|
target image.
|
||||||
@@ -146,7 +146,7 @@ consists of the following pieces:
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Running ``oe-selftest`` requires host packages beyond the "Essential"
|
Running ``oe-selftest`` requires host packages beyond the "Essential"
|
||||||
grouping. See the :ref:`ref-manual/system-requirements:required packages for the build host`
|
grouping. See the :ref:`ref-manual/ref-system-requirements:required packages for the build host`
|
||||||
section for more information.
|
section for more information.
|
||||||
|
|
||||||
Originally, much of this testing was done manually. However, significant
|
Originally, much of this testing was done manually. However, significant
|
||||||
@@ -12,7 +12,7 @@ and directories.
|
|||||||
|
|
||||||
For information on how to establish a local Source Directory on your
|
For information on how to establish a local Source Directory on your
|
||||||
development system, see the
|
development system, see the
|
||||||
":ref:`dev-manual/start:locating yocto project source files`"
|
":ref:`dev-manual/dev-manual-start:locating yocto project source files`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
@@ -104,7 +104,7 @@ metadata to define the Poky reference distribution.
|
|||||||
|
|
||||||
This directory contains the Yocto Project reference hardware Board
|
This directory contains the Yocto Project reference hardware Board
|
||||||
Support Packages (BSPs). For more information on BSPs, see the
|
Support Packages (BSPs). For more information on BSPs, see the
|
||||||
:doc:`/bsp-guide/index`.
|
:doc:`../bsp-guide/bsp-guide`.
|
||||||
|
|
||||||
.. _structure-meta-selftest:
|
.. _structure-meta-selftest:
|
||||||
|
|
||||||
@@ -176,7 +176,7 @@ within the :term:`Source Directory`. If you design a
|
|||||||
custom distribution, you can include your own version of this
|
custom distribution, you can include your own version of this
|
||||||
configuration file to mention the targets defined by your distribution.
|
configuration file to mention the targets defined by your distribution.
|
||||||
See the
|
See the
|
||||||
":ref:`dev-manual/common-tasks:creating a custom template configuration directory`"
|
":ref:`dev-manual/dev-manual-common-tasks:creating a custom template configuration directory`"
|
||||||
section in the Yocto Project Development Tasks Manual for more
|
section in the Yocto Project Development Tasks Manual for more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
@@ -193,7 +193,7 @@ Directory named ``mybuilds/`` that is outside of the :term:`Source Directory`:
|
|||||||
The OpenEmbedded build system uses the template configuration files, which
|
The OpenEmbedded build system uses the template configuration files, which
|
||||||
are found by default in the ``meta-poky/conf/`` directory in the Source
|
are found by default in the ``meta-poky/conf/`` directory in the Source
|
||||||
Directory. See the
|
Directory. See the
|
||||||
":ref:`dev-manual/common-tasks:creating a custom template configuration directory`"
|
":ref:`dev-manual/dev-manual-common-tasks:creating a custom template configuration directory`"
|
||||||
section in the Yocto Project Development Tasks Manual for more
|
section in the Yocto Project Development Tasks Manual for more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
@@ -236,7 +236,7 @@ The OpenEmbedded build system creates this directory when you enable
|
|||||||
build history via the ``buildhistory`` class file. The directory
|
build history via the ``buildhistory`` class file. The directory
|
||||||
organizes build information into image, packages, and SDK
|
organizes build information into image, packages, and SDK
|
||||||
subdirectories. For information on the build history feature, see the
|
subdirectories. For information on the build history feature, see the
|
||||||
":ref:`dev-manual/common-tasks:maintaining build output quality`"
|
":ref:`dev-manual/dev-manual-common-tasks:maintaining build output quality`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _structure-build-conf-local.conf:
|
.. _structure-build-conf-local.conf:
|
||||||
@@ -292,7 +292,7 @@ file, it uses ``sed`` to substitute final
|
|||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
This configuration file defines
|
This configuration file defines
|
||||||
:ref:`layers <dev-manual/common-tasks:understanding and creating layers>`,
|
:ref:`layers <dev-manual/dev-manual-common-tasks:understanding and creating layers>`,
|
||||||
which are directory trees, traversed (or walked) by BitBake. The
|
which are directory trees, traversed (or walked) by BitBake. The
|
||||||
``bblayers.conf`` file uses the :term:`BBLAYERS`
|
``bblayers.conf`` file uses the :term:`BBLAYERS`
|
||||||
variable to list the layers BitBake tries to find.
|
variable to list the layers BitBake tries to find.
|
||||||
@@ -399,8 +399,8 @@ This directory contains any "end result" output from the OpenEmbedded
|
|||||||
build process. The :term:`DEPLOY_DIR` variable points
|
build process. The :term:`DEPLOY_DIR` variable points
|
||||||
to this directory. For more detail on the contents of the ``deploy``
|
to this directory. For more detail on the contents of the ``deploy``
|
||||||
directory, see the
|
directory, see the
|
||||||
":ref:`overview-manual/concepts:images`" and
|
":ref:`images-dev-environment`" and
|
||||||
":ref:`overview-manual/concepts:application development sdk`" sections in the Yocto
|
":ref:`sdk-dev-environment`" sections in the Yocto
|
||||||
Project Overview and Concepts Manual.
|
Project Overview and Concepts Manual.
|
||||||
|
|
||||||
.. _structure-build-tmp-deploy-deb:
|
.. _structure-build-tmp-deploy-deb:
|
||||||
@@ -438,7 +438,7 @@ directory contains sub-directories for ``bash``, ``busybox``, and
|
|||||||
``glibc`` (among others) that in turn contain appropriate ``COPYING``
|
``glibc`` (among others) that in turn contain appropriate ``COPYING``
|
||||||
license files with other licensing information. For information on
|
license files with other licensing information. For information on
|
||||||
licensing, see the
|
licensing, see the
|
||||||
":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`"
|
":ref:`dev-manual/dev-manual-common-tasks:maintaining open source license compliance during your product's lifecycle`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _structure-build-tmp-deploy-images:
|
.. _structure-build-tmp-deploy-images:
|
||||||
@@ -477,7 +477,7 @@ the kernel files:
|
|||||||
The OpenEmbedded build system creates this directory to hold toolchain
|
The OpenEmbedded build system creates this directory to hold toolchain
|
||||||
installer scripts which, when executed, install the sysroot that matches
|
installer scripts which, when executed, install the sysroot that matches
|
||||||
your target hardware. You can find out more about these installers in
|
your target hardware. You can find out more about these installers in
|
||||||
the ":ref:`sdk-manual/appendix-obtain:building an sdk installer`"
|
the ":ref:`sdk-manual/sdk-appendix-obtain:building an sdk installer`"
|
||||||
section in the Yocto Project Application Development and the Extensible
|
section in the Yocto Project Application Development and the Extensible
|
||||||
Software Development Kit (eSDK) manual.
|
Software Development Kit (eSDK) manual.
|
||||||
|
|
||||||
@@ -545,7 +545,7 @@ and timestamps for tracking purposes.
|
|||||||
|
|
||||||
For information on how BitBake uses stamp files to determine if a task
|
For information on how BitBake uses stamp files to determine if a task
|
||||||
should be rerun, see the
|
should be rerun, see the
|
||||||
":ref:`overview-manual/concepts:stamp files and the rerunning of tasks`"
|
":ref:`overview-manual/overview-manual-concepts:stamp files and the rerunning of tasks`"
|
||||||
section in the Yocto Project Overview and Concepts Manual.
|
section in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
.. _structure-build-tmp-log:
|
.. _structure-build-tmp-log:
|
||||||
@@ -577,7 +577,7 @@ built within the Yocto Project. For this package, a work directory of
|
|||||||
``tmp/work/qemux86-poky-linux/linux-yocto/3.0+git1+<.....>``, referred
|
``tmp/work/qemux86-poky-linux/linux-yocto/3.0+git1+<.....>``, referred
|
||||||
to as the ``WORKDIR``, is created. Within this directory, the source is
|
to as the ``WORKDIR``, is created. Within this directory, the source is
|
||||||
unpacked to ``linux-qemux86-standard-build`` and then patched by Quilt.
|
unpacked to ``linux-qemux86-standard-build`` and then patched by Quilt.
|
||||||
(See the ":ref:`dev-manual/common-tasks:using quilt in your workflow`" section in
|
(See the ":ref:`using-a-quilt-workflow`" section in
|
||||||
the Yocto Project Development Tasks Manual for more information.) Within
|
the Yocto Project Development Tasks Manual for more information.) Within
|
||||||
the ``linux-qemux86-standard-build`` directory, standard Quilt
|
the ``linux-qemux86-standard-build`` directory, standard Quilt
|
||||||
directories ``linux-3.0/patches`` and ``linux-3.0/.pc`` are created, and
|
directories ``linux-3.0/patches`` and ``linux-3.0/.pc`` are created, and
|
||||||
@@ -682,7 +682,7 @@ generation or packaging also have their specific class files such as
|
|||||||
``image.bbclass``, ``rootfs_*.bbclass`` and ``package*.bbclass``.
|
``image.bbclass``, ``rootfs_*.bbclass`` and ``package*.bbclass``.
|
||||||
|
|
||||||
For reference information on classes, see the
|
For reference information on classes, see the
|
||||||
":ref:`ref-manual/classes:Classes`" chapter.
|
":ref:`ref-manual/ref-classes:Classes`" chapter.
|
||||||
|
|
||||||
.. _structure-meta-conf:
|
.. _structure-meta-conf:
|
||||||
|
|
||||||
@@ -15,14 +15,14 @@ Yocto Project.
|
|||||||
|
|
||||||
For introductory information on the Yocto Project, see the
|
For introductory information on the Yocto Project, see the
|
||||||
:yocto_home:`Yocto Project Website <>` and the
|
:yocto_home:`Yocto Project Website <>` and the
|
||||||
":ref:`overview-manual/development-environment:the yocto project development environment`"
|
":ref:`overview-manual/overview-manual-development-environment:the yocto project development environment`"
|
||||||
chapter in the Yocto Project Overview and Concepts Manual.
|
chapter in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
If you want to use the Yocto Project to quickly build an image without
|
If you want to use the Yocto Project to quickly build an image without
|
||||||
having to understand concepts, work through the
|
having to understand concepts, work through the
|
||||||
:doc:`/brief-yoctoprojectqs/index` document. You can find "how-to"
|
:doc:`../brief-yoctoprojectqs/brief-yoctoprojectqs` document. You can find "how-to"
|
||||||
information in the :doc:`/dev-manual/index`. You can find Yocto Project overview
|
information in the :doc:`../dev-manual/dev-manual`. You can find Yocto Project overview
|
||||||
and conceptual information in the :doc:`/overview-manual/index`.
|
and conceptual information in the :doc:`../overview-manual/overview-manual`.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -93,8 +93,8 @@ distributions:
|
|||||||
Bugzilla <>` and submit a bug. We are
|
Bugzilla <>` and submit a bug. We are
|
||||||
interested in hearing about your experience. For information on
|
interested in hearing about your experience. For information on
|
||||||
how to submit a bug, see the Yocto Project
|
how to submit a bug, see the Yocto Project
|
||||||
:yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
|
:yocto_wiki:`Bugzilla wiki page </wiki/Bugzilla_Configuration_and_Bug_Tracking>`
|
||||||
and the ":ref:`dev-manual/common-tasks:submitting a defect against the yocto project`"
|
and the ":ref:`dev-manual/dev-manual-common-tasks:submitting a defect against the yocto project`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
|
|
||||||
@@ -340,12 +340,12 @@ of the two methods by which you can get these tools:
|
|||||||
traditional installer:
|
traditional installer:
|
||||||
::
|
::
|
||||||
|
|
||||||
$ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
|
$ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-DISTRO.sh
|
||||||
|
|
||||||
Here is an example for the extended installer:
|
Here is an example for the extended installer:
|
||||||
::
|
::
|
||||||
|
|
||||||
$ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh
|
$ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-DISTRO.sh
|
||||||
|
|
||||||
During execution, a prompt appears that allows you to choose the
|
During execution, a prompt appears that allows you to choose the
|
||||||
installation directory. For example, you could choose the following:
|
installation directory. For example, you could choose the following:
|
||||||
@@ -122,7 +122,7 @@ If the ``do_deploy`` task re-executes, any previous output is removed
|
|||||||
|
|
||||||
Fetches the source code. This task uses the
|
Fetches the source code. This task uses the
|
||||||
:term:`SRC_URI` variable and the argument's prefix to
|
:term:`SRC_URI` variable and the argument's prefix to
|
||||||
determine the correct :ref:`fetcher <bitbake:bitbake-user-manual/bitbake-user-manual-fetching:fetchers>`
|
determine the correct :ref:`fetcher <bitbake:bb-fetchers>`
|
||||||
module.
|
module.
|
||||||
|
|
||||||
.. _ref-tasks-image:
|
.. _ref-tasks-image:
|
||||||
@@ -140,7 +140,7 @@ The ``do_image`` task performs pre-processing on the image through the
|
|||||||
:term:`IMAGE_PREPROCESS_COMMAND` and
|
:term:`IMAGE_PREPROCESS_COMMAND` and
|
||||||
dynamically generates supporting ``do_image_*`` tasks as needed.
|
dynamically generates supporting ``do_image_*`` tasks as needed.
|
||||||
|
|
||||||
For more information on image creation, see the ":ref:`overview-manual/concepts:image generation`"
|
For more information on image creation, see the ":ref:`image-generation-dev-environment`"
|
||||||
section in the Yocto Project Overview and Concepts Manual.
|
section in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
.. _ref-tasks-image-complete:
|
.. _ref-tasks-image-complete:
|
||||||
@@ -159,7 +159,7 @@ through the
|
|||||||
:term:`IMAGE_POSTPROCESS_COMMAND`.
|
:term:`IMAGE_POSTPROCESS_COMMAND`.
|
||||||
|
|
||||||
For more information on image creation, see the
|
For more information on image creation, see the
|
||||||
":ref:`overview-manual/concepts:image generation`"
|
":ref:`image-generation-dev-environment`"
|
||||||
section in the Yocto Project Overview and Concepts Manual.
|
section in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
.. _ref-tasks-install:
|
.. _ref-tasks-install:
|
||||||
@@ -174,7 +174,7 @@ compilation directory. The ``do_install`` task, as well as other tasks
|
|||||||
that either directly or indirectly depend on the installed files (e.g.
|
that either directly or indirectly depend on the installed files (e.g.
|
||||||
:ref:`ref-tasks-package`, ``do_package_write_*``, and
|
:ref:`ref-tasks-package`, ``do_package_write_*``, and
|
||||||
:ref:`ref-tasks-rootfs`), run under
|
:ref:`ref-tasks-rootfs`), run under
|
||||||
:ref:`fakeroot <overview-manual/concepts:fakeroot and pseudo>`.
|
:ref:`fakeroot <overview-manual/overview-manual-concepts:fakeroot and pseudo>`.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -218,7 +218,7 @@ The ``do_package`` task, in conjunction with the
|
|||||||
:ref:`ref-tasks-packagedata` task, also saves some
|
:ref:`ref-tasks-packagedata` task, also saves some
|
||||||
important package metadata. For additional information, see the
|
important package metadata. For additional information, see the
|
||||||
:term:`PKGDESTWORK` variable and the
|
:term:`PKGDESTWORK` variable and the
|
||||||
":ref:`overview-manual/concepts:automatically added runtime dependencies`"
|
":ref:`overview-manual/overview-manual-concepts:automatically added runtime dependencies`"
|
||||||
section in the Yocto Project Overview and Concepts Manual.
|
section in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
.. _ref-tasks-package_qa:
|
.. _ref-tasks-package_qa:
|
||||||
@@ -237,7 +237,7 @@ see the :ref:`insane <ref-classes-insane>` class.
|
|||||||
Creates Debian packages (i.e. ``*.deb`` files) and places them in the
|
Creates Debian packages (i.e. ``*.deb`` files) and places them in the
|
||||||
``${``\ :term:`DEPLOY_DIR_DEB`\ ``}`` directory in
|
``${``\ :term:`DEPLOY_DIR_DEB`\ ``}`` directory in
|
||||||
the package feeds area. For more information, see the
|
the package feeds area. For more information, see the
|
||||||
":ref:`overview-manual/concepts:package feeds`" section in
|
":ref:`package-feeds-dev-environment`" section in
|
||||||
the Yocto Project Overview and Concepts Manual.
|
the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
.. _ref-tasks-package_write_ipk:
|
.. _ref-tasks-package_write_ipk:
|
||||||
@@ -248,7 +248,7 @@ the Yocto Project Overview and Concepts Manual.
|
|||||||
Creates IPK packages (i.e. ``*.ipk`` files) and places them in the
|
Creates IPK packages (i.e. ``*.ipk`` files) and places them in the
|
||||||
``${``\ :term:`DEPLOY_DIR_IPK`\ ``}`` directory in
|
``${``\ :term:`DEPLOY_DIR_IPK`\ ``}`` directory in
|
||||||
the package feeds area. For more information, see the
|
the package feeds area. For more information, see the
|
||||||
":ref:`overview-manual/concepts:package feeds`" section in
|
":ref:`package-feeds-dev-environment`" section in
|
||||||
the Yocto Project Overview and Concepts Manual.
|
the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
.. _ref-tasks-package_write_rpm:
|
.. _ref-tasks-package_write_rpm:
|
||||||
@@ -259,7 +259,7 @@ the Yocto Project Overview and Concepts Manual.
|
|||||||
Creates RPM packages (i.e. ``*.rpm`` files) and places them in the
|
Creates RPM packages (i.e. ``*.rpm`` files) and places them in the
|
||||||
``${``\ :term:`DEPLOY_DIR_RPM`\ ``}`` directory in
|
``${``\ :term:`DEPLOY_DIR_RPM`\ ``}`` directory in
|
||||||
the package feeds area. For more information, see the
|
the package feeds area. For more information, see the
|
||||||
":ref:`overview-manual/concepts:package feeds`" section in
|
":ref:`package-feeds-dev-environment`" section in
|
||||||
the Yocto Project Overview and Concepts Manual.
|
the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
.. _ref-tasks-package_write_tar:
|
.. _ref-tasks-package_write_tar:
|
||||||
@@ -270,7 +270,7 @@ the Yocto Project Overview and Concepts Manual.
|
|||||||
Creates tarballs and places them in the
|
Creates tarballs and places them in the
|
||||||
``${``\ :term:`DEPLOY_DIR_TAR`\ ``}`` directory in
|
``${``\ :term:`DEPLOY_DIR_TAR`\ ``}`` directory in
|
||||||
the package feeds area. For more information, see the
|
the package feeds area. For more information, see the
|
||||||
":ref:`overview-manual/concepts:package feeds`" section in
|
":ref:`package-feeds-dev-environment`" section in
|
||||||
the Yocto Project Overview and Concepts Manual.
|
the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
.. _ref-tasks-packagedata:
|
.. _ref-tasks-packagedata:
|
||||||
@@ -301,7 +301,7 @@ to locate and apply patch files to the source code.
|
|||||||
Patch files, by default, are ``*.patch`` and ``*.diff`` files created
|
Patch files, by default, are ``*.patch`` and ``*.diff`` files created
|
||||||
and kept in a subdirectory of the directory holding the recipe file. For
|
and kept in a subdirectory of the directory holding the recipe file. For
|
||||||
example, consider the
|
example, consider the
|
||||||
:yocto_git:`bluez5 </poky/tree/meta/recipes-connectivity/bluez5>`
|
:yocto_git:`bluez5 </cgit/cgit.cgi/poky/tree/meta/recipes-connectivity/bluez5>`
|
||||||
recipe from the OE-Core layer (i.e. ``poky/meta``):
|
recipe from the OE-Core layer (i.e. ``poky/meta``):
|
||||||
::
|
::
|
||||||
|
|
||||||
@@ -349,9 +349,9 @@ patch files end with either ``.patch`` or ``.diff``, every file would be
|
|||||||
applied as a patch by default except for the ``patch_file5`` patch.
|
applied as a patch by default except for the ``patch_file5`` patch.
|
||||||
|
|
||||||
You can find out more about the patching process in the
|
You can find out more about the patching process in the
|
||||||
":ref:`overview-manual/concepts:patching`" section in
|
":ref:`patching-dev-environment`" section in
|
||||||
the Yocto Project Overview and Concepts Manual and the
|
the Yocto Project Overview and Concepts Manual and the
|
||||||
":ref:`dev-manual/common-tasks:patching code`" section in the
|
":ref:`new-recipe-patching-code`" section in the
|
||||||
Yocto Project Development Tasks Manual.
|
Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _ref-tasks-populate_lic:
|
.. _ref-tasks-populate_lic:
|
||||||
@@ -368,7 +368,7 @@ the image is constructed.
|
|||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Creates the file and directory structure for an installable SDK. See the
|
Creates the file and directory structure for an installable SDK. See the
|
||||||
":ref:`overview-manual/concepts:sdk generation`"
|
":ref:`sdk-generation-dev-environment`"
|
||||||
section in the Yocto Project Overview and Concepts Manual for more
|
section in the Yocto Project Overview and Concepts Manual for more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
@@ -378,7 +378,7 @@ information.
|
|||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
Creates the file and directory structure for an installable extensible
|
Creates the file and directory structure for an installable extensible
|
||||||
SDK (eSDK). See the ":ref:`overview-manual/concepts:sdk generation`"
|
SDK (eSDK). See the ":ref:`sdk-generation-dev-environment`"
|
||||||
section in the Yocto Project Overview and Concepts Manual for more
|
section in the Yocto Project Overview and Concepts Manual for more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
@@ -434,7 +434,7 @@ Unpacks the source code into a working directory pointed to by
|
|||||||
``${``\ :term:`WORKDIR`\ ``}``. The :term:`S`
|
``${``\ :term:`WORKDIR`\ ``}``. The :term:`S`
|
||||||
variable also plays a role in where unpacked source files ultimately
|
variable also plays a role in where unpacked source files ultimately
|
||||||
reside. For more information on how source files are unpacked, see the
|
reside. For more information on how source files are unpacked, see the
|
||||||
":ref:`overview-manual/concepts:source fetching`"
|
":ref:`source-fetching-dev-environment`"
|
||||||
section in the Yocto Project Overview and Concepts Manual and also see
|
section in the Yocto Project Overview and Concepts Manual and also see
|
||||||
the ``WORKDIR`` and ``S`` variable descriptions.
|
the ``WORKDIR`` and ``S`` variable descriptions.
|
||||||
|
|
||||||
@@ -461,7 +461,7 @@ devtool commands:
|
|||||||
$ devtool latest-version
|
$ devtool latest-version
|
||||||
$ devtool check-upgrade-status
|
$ devtool check-upgrade-status
|
||||||
|
|
||||||
See the ":ref:`ref-manual/devtool-reference:\`\`devtool\`\` quick reference`"
|
See the ":ref:`ref-manual/ref-devtool-reference:\`\`devtool\`\` quick reference`"
|
||||||
chapter for more information on
|
chapter for more information on
|
||||||
``devtool``. See the ":ref:`devtool-checking-on-the-upgrade-status-of-a-recipe`"
|
``devtool``. See the ":ref:`devtool-checking-on-the-upgrade-status-of-a-recipe`"
|
||||||
section for information on checking the upgrade status of a recipe.
|
section for information on checking the upgrade status of a recipe.
|
||||||
@@ -500,7 +500,7 @@ You can run this task using BitBake as follows:
|
|||||||
$ bitbake -c clean recipe
|
$ bitbake -c clean recipe
|
||||||
|
|
||||||
Running this task does not remove the
|
Running this task does not remove the
|
||||||
:ref:`sstate <overview-manual/concepts:shared state cache>` cache files.
|
:ref:`sstate <overview-manual/overview-manual-concepts:shared state cache>` cache files.
|
||||||
Consequently, if no changes have been made and the recipe is rebuilt
|
Consequently, if no changes have been made and the recipe is rebuilt
|
||||||
after cleaning, output files are simply restored from the sstate cache.
|
after cleaning, output files are simply restored from the sstate cache.
|
||||||
If you want to remove the sstate cache files for the recipe, you need to
|
If you want to remove the sstate cache files for the recipe, you need to
|
||||||
@@ -513,7 +513,7 @@ use the :ref:`ref-tasks-cleansstate` task instead
|
|||||||
---------------
|
---------------
|
||||||
|
|
||||||
Removes all output files, shared state
|
Removes all output files, shared state
|
||||||
(:ref:`sstate <overview-manual/concepts:shared state cache>`) cache, and
|
(:ref:`sstate <overview-manual/overview-manual-concepts:shared state cache>`) cache, and
|
||||||
downloaded source files for a target (i.e. the contents of
|
downloaded source files for a target (i.e. the contents of
|
||||||
:term:`DL_DIR`). Essentially, the ``do_cleanall`` task is
|
:term:`DL_DIR`). Essentially, the ``do_cleanall`` task is
|
||||||
identical to the :ref:`ref-tasks-cleansstate` task
|
identical to the :ref:`ref-tasks-cleansstate` task
|
||||||
@@ -534,10 +534,10 @@ task.
|
|||||||
------------------
|
------------------
|
||||||
|
|
||||||
Removes all output files and shared state
|
Removes all output files and shared state
|
||||||
(:ref:`sstate <overview-manual/concepts:shared state cache>`) cache for a
|
(:ref:`sstate <overview-manual/overview-manual-concepts:shared state cache>`) cache for a
|
||||||
target. Essentially, the ``do_cleansstate`` task is identical to the
|
target. Essentially, the ``do_cleansstate`` task is identical to the
|
||||||
:ref:`ref-tasks-clean` task with the added removal of
|
:ref:`ref-tasks-clean` task with the added removal of
|
||||||
shared state (:ref:`sstate <overview-manual/concepts:shared state cache>`)
|
shared state (:ref:`sstate <overview-manual/overview-manual-concepts:shared state cache>`)
|
||||||
cache.
|
cache.
|
||||||
|
|
||||||
You can run this task using BitBake as follows:
|
You can run this task using BitBake as follows:
|
||||||
@@ -567,7 +567,7 @@ scratch is guaranteed.
|
|||||||
Starts a shell in which an interactive Python interpreter allows you to
|
Starts a shell in which an interactive Python interpreter allows you to
|
||||||
interact with the BitBake build environment. From within this shell, you
|
interact with the BitBake build environment. From within this shell, you
|
||||||
can directly examine and set bits from the data store and execute
|
can directly examine and set bits from the data store and execute
|
||||||
functions as if within the BitBake environment. See the ":ref:`dev-manual/common-tasks:using a development python shell`" section in
|
functions as if within the BitBake environment. See the ":ref:`platdev-appdev-devpyshell`" section in
|
||||||
the Yocto Project Development Tasks Manual for more information about
|
the Yocto Project Development Tasks Manual for more information about
|
||||||
using ``devpyshell``.
|
using ``devpyshell``.
|
||||||
|
|
||||||
@@ -577,7 +577,7 @@ using ``devpyshell``.
|
|||||||
---------------
|
---------------
|
||||||
|
|
||||||
Starts a shell whose environment is set up for development, debugging,
|
Starts a shell whose environment is set up for development, debugging,
|
||||||
or both. See the ":ref:`dev-manual/common-tasks:using a development shell`" section in the
|
or both. See the ":ref:`platdev-appdev-devshell`" section in the
|
||||||
Yocto Project Development Tasks Manual for more information about using
|
Yocto Project Development Tasks Manual for more information about using
|
||||||
``devshell``.
|
``devshell``.
|
||||||
|
|
||||||
@@ -593,7 +593,7 @@ Lists all defined tasks for a target.
|
|||||||
``do_package_index``
|
``do_package_index``
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
Creates or updates the index in the :ref:`overview-manual/concepts:package feeds` area.
|
Creates or updates the index in the :ref:`package-feeds-dev-environment` area.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -631,7 +631,7 @@ has some more information about these types of images.
|
|||||||
-------------
|
-------------
|
||||||
|
|
||||||
Creates the root filesystem (file and directory structure) for an image.
|
Creates the root filesystem (file and directory structure) for an image.
|
||||||
See the ":ref:`overview-manual/concepts:image generation`"
|
See the ":ref:`image-generation-dev-environment`"
|
||||||
section in the Yocto Project Overview and Concepts Manual for more
|
section in the Yocto Project Overview and Concepts Manual for more
|
||||||
information on how the root filesystem is created.
|
information on how the root filesystem is created.
|
||||||
|
|
||||||
@@ -642,7 +642,7 @@ information on how the root filesystem is created.
|
|||||||
|
|
||||||
Boots an image and performs runtime tests within the image. For
|
Boots an image and performs runtime tests within the image. For
|
||||||
information on automatically testing images, see the
|
information on automatically testing images, see the
|
||||||
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
|
":ref:`dev-manual/dev-manual-common-tasks:performing automated runtime testing`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _ref-tasks-testimage_auto:
|
.. _ref-tasks-testimage_auto:
|
||||||
@@ -655,7 +655,7 @@ after it has been built. This task is enabled when you set
|
|||||||
:term:`TESTIMAGE_AUTO` equal to "1".
|
:term:`TESTIMAGE_AUTO` equal to "1".
|
||||||
|
|
||||||
For information on automatically testing images, see the
|
For information on automatically testing images, see the
|
||||||
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
|
":ref:`dev-manual/dev-manual-common-tasks:performing automated runtime testing`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
Kernel-Related Tasks
|
Kernel-Related Tasks
|
||||||
@@ -693,7 +693,7 @@ from the command line as follows:
|
|||||||
$ bitbake linux-yocto -c diffconfig
|
$ bitbake linux-yocto -c diffconfig
|
||||||
|
|
||||||
For more information, see the
|
For more information, see the
|
||||||
":ref:`kernel-dev/common:creating configuration fragments`"
|
":ref:`kernel-dev/kernel-dev-common:creating configuration fragments`"
|
||||||
section in the Yocto Project Linux Kernel Development Manual.
|
section in the Yocto Project Linux Kernel Development Manual.
|
||||||
|
|
||||||
.. _ref-tasks-kernel_checkout:
|
.. _ref-tasks-kernel_checkout:
|
||||||
@@ -724,7 +724,7 @@ following command:
|
|||||||
$ bitbake linux-yocto -c kernel_configcheck -f
|
$ bitbake linux-yocto -c kernel_configcheck -f
|
||||||
|
|
||||||
For more information, see the
|
For more information, see the
|
||||||
":ref:`kernel-dev/common:validating configuration`"
|
":ref:`kernel-dev/kernel-dev-common:validating configuration`"
|
||||||
section in the Yocto Project Linux Kernel Development Manual.
|
section in the Yocto Project Linux Kernel Development Manual.
|
||||||
|
|
||||||
.. _ref-tasks-kernel_configme:
|
.. _ref-tasks-kernel_configme:
|
||||||
@@ -756,7 +756,7 @@ tool, which you then use to modify the kernel configuration.
|
|||||||
$ bitbake linux-yocto -c menuconfig
|
$ bitbake linux-yocto -c menuconfig
|
||||||
|
|
||||||
|
|
||||||
See the ":ref:`kernel-dev/common:using \`\`menuconfig\`\``"
|
See the ":ref:`kernel-dev/kernel-dev-common:using \`\`menuconfig\`\``"
|
||||||
section in the Yocto Project Linux Kernel Development Manual for more
|
section in the Yocto Project Linux Kernel Development Manual for more
|
||||||
information on this configuration tool.
|
information on this configuration tool.
|
||||||
|
|
||||||
@@ -780,7 +780,7 @@ which can then be applied by subsequent tasks such as
|
|||||||
|
|
||||||
Runs ``make menuconfig`` for the kernel. For information on
|
Runs ``make menuconfig`` for the kernel. For information on
|
||||||
``menuconfig``, see the
|
``menuconfig``, see the
|
||||||
":ref:`kernel-dev/common:using \`\`menuconfig\`\``"
|
":ref:`kernel-dev/kernel-dev-common:using \`\`menuconfig\`\``"
|
||||||
section in the Yocto Project Linux Kernel Development Manual.
|
section in the Yocto Project Linux Kernel Development Manual.
|
||||||
|
|
||||||
.. _ref-tasks-savedefconfig:
|
.. _ref-tasks-savedefconfig:
|
||||||
@@ -21,7 +21,7 @@ universal, the list includes them just in case:
|
|||||||
|
|
||||||
Information in append files extends or overrides the information in the
|
Information in append files extends or overrides the information in the
|
||||||
similarly-named recipe file. For an example of an append file in use, see
|
similarly-named recipe file. For an example of an append file in use, see
|
||||||
the ":ref:`dev-manual/common-tasks:Using .bbappend Files in
|
the ":ref:`dev-manual/dev-manual-common-tasks:Using .bbappend Files in
|
||||||
Your Layer`" section in the Yocto Project Development Tasks Manual.
|
Your Layer`" section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
When you name an append file, you can use the "``%``" wildcard character
|
When you name an append file, you can use the "``%``" wildcard character
|
||||||
@@ -58,13 +58,14 @@ universal, the list includes them just in case:
|
|||||||
:term:`Board Support Package (BSP)`
|
:term:`Board Support Package (BSP)`
|
||||||
A group of drivers, definitions, and other components that provide support
|
A group of drivers, definitions, and other components that provide support
|
||||||
for a specific hardware configuration. For more information on BSPs, see
|
for a specific hardware configuration. For more information on BSPs, see
|
||||||
the :doc:`/bsp-guide/index`.
|
the :ref:`bsp-guide/bsp-guide:Yocto Project Board Support Package
|
||||||
|
Developer's Guide`.
|
||||||
|
|
||||||
:term:`Build Directory`
|
:term:`Build Directory`
|
||||||
This term refers to the area used by the OpenEmbedded build system for
|
This term refers to the area used by the OpenEmbedded build system for
|
||||||
builds. The area is created when you ``source`` the setup environment
|
builds. The area is created when you ``source`` the setup environment
|
||||||
script that is found in the Source Directory
|
script that is found in the Source Directory
|
||||||
(i.e. :ref:`ref-manual/structure:\`\`oe-init-build-env\`\``). The
|
(i.e. :ref:`ref-manual/ref-structure:\`\`oe-init-build-env\`\``). The
|
||||||
:term:`TOPDIR` variable points to the Build Directory.
|
:term:`TOPDIR` variable points to the Build Directory.
|
||||||
|
|
||||||
You have a lot of flexibility when creating the Build Directory.
|
You have a lot of flexibility when creating the Build Directory.
|
||||||
@@ -90,13 +91,13 @@ universal, the list includes them just in case:
|
|||||||
- Provide a directory path and specifically name the Build
|
- Provide a directory path and specifically name the Build
|
||||||
Directory. Any intermediate folders in the pathname must exist.
|
Directory. Any intermediate folders in the pathname must exist.
|
||||||
This next example creates a Build Directory named
|
This next example creates a Build Directory named
|
||||||
``YP-&POKYVERSION;`` in your home directory within the existing
|
``YP-POKYVERSION`` in your home directory within the existing
|
||||||
directory ``mybuilds``:
|
directory ``mybuilds``:
|
||||||
|
|
||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
|
|
||||||
$ cd $HOME
|
$ cd $HOME
|
||||||
$ source $HOME/poky/oe-init-build-env $HOME/mybuilds/YP-&POKYVERSION;
|
$ source $HOME/poky/oe-init-build-env $HOME/mybuilds/YP-POKYVERSION
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -117,7 +118,7 @@ universal, the list includes them just in case:
|
|||||||
Files that provide for logic encapsulation and inheritance so that
|
Files that provide for logic encapsulation and inheritance so that
|
||||||
commonly used patterns can be defined once and then easily used in
|
commonly used patterns can be defined once and then easily used in
|
||||||
multiple recipes. For reference information on the Yocto Project classes,
|
multiple recipes. For reference information on the Yocto Project classes,
|
||||||
see the ":ref:`ref-manual/classes:Classes`" chapter. Class files end with the
|
see the ":ref:`ref-manual/ref-classes:Classes`" chapter. Class files end with the
|
||||||
``.bbclass`` filename extension.
|
``.bbclass`` filename extension.
|
||||||
|
|
||||||
:term:`Configuration File`
|
:term:`Configuration File`
|
||||||
@@ -160,24 +161,27 @@ universal, the list includes them just in case:
|
|||||||
|
|
||||||
Creation of these toolchains is simple and automated. For information on
|
Creation of these toolchains is simple and automated. For information on
|
||||||
toolchain concepts as they apply to the Yocto Project, see the
|
toolchain concepts as they apply to the Yocto Project, see the
|
||||||
":ref:`overview-manual/concepts:Cross-Development
|
":ref:`overview-manual/overview-manual-concepts:Cross-Development
|
||||||
Toolchain Generation`" section in the Yocto Project Overview and Concepts
|
Toolchain Generation`" section in the Yocto Project Overview and Concepts
|
||||||
Manual. You can also find more information on using the relocatable
|
Manual. You can also find more information on using the relocatable
|
||||||
toolchain in the :doc:`/sdk-manual/index` manual.
|
toolchain in the :ref:`sdk-manual/sdk-manual:Yocto Project Application
|
||||||
|
Development and the Extensible Software Development Kit (eSDK)` manual.
|
||||||
|
|
||||||
:term:`Extensible Software Development Kit (eSDK)`
|
:term:`Extensible Software Development Kit (eSDK)`
|
||||||
A custom SDK for application developers. This eSDK allows developers to
|
A custom SDK for application developers. This eSDK allows developers to
|
||||||
incorporate their library and programming changes back into the image to
|
incorporate their library and programming changes back into the image to
|
||||||
make their code available to other application developers.
|
make their code available to other application developers.
|
||||||
|
|
||||||
For information on the eSDK, see the :doc:`/sdk-manual/index` manual.
|
For information on the eSDK, see the :ref:`sdk-manual/sdk-manual:Yocto
|
||||||
|
Project Application Development and the Extensible Software Development
|
||||||
|
Kit (eSDK)` manual.
|
||||||
|
|
||||||
:term:`Image`
|
:term:`Image`
|
||||||
An image is an artifact of the BitBake build process given a collection of
|
An image is an artifact of the BitBake build process given a collection of
|
||||||
recipes and related Metadata. Images are the binary output that run on
|
recipes and related Metadata. Images are the binary output that run on
|
||||||
specific hardware or QEMU and are used for specific use-cases. For a list
|
specific hardware or QEMU and are used for specific use-cases. For a list
|
||||||
of the supported image types that the Yocto Project provides, see the
|
of the supported image types that the Yocto Project provides, see the
|
||||||
":ref:`ref-manual/images:Images`" chapter.
|
":ref:`ref-manual/ref-images:Images`" chapter.
|
||||||
|
|
||||||
:term:`Layer`
|
:term:`Layer`
|
||||||
A collection of related recipes. Layers allow you to consolidate related
|
A collection of related recipes. Layers allow you to consolidate related
|
||||||
@@ -189,10 +193,10 @@ universal, the list includes them just in case:
|
|||||||
layers used within Yocto Project.
|
layers used within Yocto Project.
|
||||||
|
|
||||||
For introductory information on layers, see the
|
For introductory information on layers, see the
|
||||||
":ref:`overview-manual/yp-intro:The Yocto Project Layer
|
":ref:`overview-manual/overview-manual-yp-intro:The Yocto Project Layer
|
||||||
Model`" section in the Yocto Project Overview and Concepts Manual. For
|
Model`" section in the Yocto Project Overview and Concepts Manual. For
|
||||||
more detailed information on layers, see the
|
more detailed information on layers, see the
|
||||||
":ref:`dev-manual/common-tasks:Understanding and Creating
|
":ref:`dev-manual/dev-manual-common-tasks:Understanding and Creating
|
||||||
Layers`" section in the Yocto Project Development Tasks Manual. For a
|
Layers`" section in the Yocto Project Development Tasks Manual. For a
|
||||||
discussion specifically on BSP Layers, see the ":ref:`bsp-guide/bsp:BSP
|
discussion specifically on BSP Layers, see the ":ref:`bsp-guide/bsp:BSP
|
||||||
Layers`" section in the Yocto Project Board Support Packages (BSP)
|
Layers`" section in the Yocto Project Board Support Packages (BSP)
|
||||||
@@ -214,7 +218,7 @@ universal, the list includes them just in case:
|
|||||||
|
|
||||||
In the context of the kernel ("kernel Metadata"), the term refers to
|
In the context of the kernel ("kernel Metadata"), the term refers to
|
||||||
the kernel config fragments and features contained in the
|
the kernel config fragments and features contained in the
|
||||||
:yocto_git:`yocto-kernel-cache </yocto-kernel-cache>`
|
:yocto_git:`yocto-kernel-cache </cgit/cgit.cgi/yocto-kernel-cache>`
|
||||||
Git repository.
|
Git repository.
|
||||||
|
|
||||||
:term:`OpenEmbedded-Core (OE-Core)`
|
:term:`OpenEmbedded-Core (OE-Core)`
|
||||||
@@ -228,7 +232,7 @@ universal, the list includes them just in case:
|
|||||||
core set of recipes.
|
core set of recipes.
|
||||||
|
|
||||||
You can see the Metadata in the ``meta`` directory of the Yocto
|
You can see the Metadata in the ``meta`` directory of the Yocto
|
||||||
Project :yocto_git:`Source Repositories </poky>`.
|
Project :yocto_git:`Source Repositories </cgit/cgit.cgi/poky>`.
|
||||||
|
|
||||||
:term:`OpenEmbedded Build System`
|
:term:`OpenEmbedded Build System`
|
||||||
The build system specific to the Yocto
|
The build system specific to the Yocto
|
||||||
@@ -252,7 +256,7 @@ universal, the list includes them just in case:
|
|||||||
|
|
||||||
It is worth noting that the term "package" can, in general, have
|
It is worth noting that the term "package" can, in general, have
|
||||||
subtle meanings. For example, the packages referred to in the
|
subtle meanings. For example, the packages referred to in the
|
||||||
":ref:`ref-manual/system-requirements:required packages for the build host`"
|
":ref:`ref-manual/ref-system-requirements:required packages for the build host`"
|
||||||
section are compiled binaries that, when installed, add functionality to
|
section are compiled binaries that, when installed, add functionality to
|
||||||
your Linux distribution.
|
your Linux distribution.
|
||||||
|
|
||||||
@@ -349,8 +353,7 @@ universal, the list includes them just in case:
|
|||||||
Source Directory is derived from the Yocto Project release tarball.
|
Source Directory is derived from the Yocto Project release tarball.
|
||||||
For example, downloading and unpacking
|
For example, downloading and unpacking
|
||||||
:yocto_dl:`/releases/yocto/&DISTRO_REL_TAG;/&YOCTO_POKY;.tar.bz2`
|
:yocto_dl:`/releases/yocto/&DISTRO_REL_TAG;/&YOCTO_POKY;.tar.bz2`
|
||||||
results in a Source Directory whose root folder is named
|
results in a Source Directory whose root folder is named ``poky``.
|
||||||
``&YOCTO_POKY;``.
|
|
||||||
|
|
||||||
It is important to understand the differences between the Source
|
It is important to understand the differences between the Source
|
||||||
Directory created by unpacking a released tarball as compared to
|
Directory created by unpacking a released tarball as compared to
|
||||||
@@ -367,7 +370,7 @@ universal, the list includes them just in case:
|
|||||||
|
|
||||||
For more information on concepts related to Git repositories,
|
For more information on concepts related to Git repositories,
|
||||||
branches, and tags, see the
|
branches, and tags, see the
|
||||||
":ref:`overview-manual/development-environment:repositories, tags, and branches`"
|
":ref:`overview-manual/overview-manual-development-environment:repositories, tags, and branches`"
|
||||||
section in the Yocto Project Overview and Concepts Manual.
|
section in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
:term:`Task`
|
:term:`Task`
|
||||||
@@ -381,7 +384,7 @@ universal, the list includes them just in case:
|
|||||||
The interface enables you to
|
The interface enables you to
|
||||||
configure and run your builds. Information about builds is collected
|
configure and run your builds. Information about builds is collected
|
||||||
and stored in a database. For information on Toaster, see the
|
and stored in a database. For information on Toaster, see the
|
||||||
:doc:`/toaster-manual/index`.
|
:doc:`../toaster-manual/toaster-manual`.
|
||||||
|
|
||||||
:term:`Upstream`
|
:term:`Upstream`
|
||||||
A reference to source code or repositories that are not
|
A reference to source code or repositories that are not
|
||||||
@@ -239,7 +239,7 @@ system and gives an overview of their function and contents.
|
|||||||
so that it does contain ``${SRCPV}``.
|
so that it does contain ``${SRCPV}``.
|
||||||
|
|
||||||
For more information see the
|
For more information see the
|
||||||
":ref:`dev-manual/common-tasks:automatically incrementing a package version number`"
|
":ref:`dev-manual/dev-manual-common-tasks:automatically incrementing a package version number`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`AVAILABLE_LICENSES`
|
:term:`AVAILABLE_LICENSES`
|
||||||
@@ -261,7 +261,7 @@ system and gives an overview of their function and contents.
|
|||||||
The list simply presents the tunes that are available. Not all tunes
|
The list simply presents the tunes that are available. Not all tunes
|
||||||
may be compatible with a particular machine configuration, or with
|
may be compatible with a particular machine configuration, or with
|
||||||
each other in a
|
each other in a
|
||||||
:ref:`Multilib <dev-manual/common-tasks:combining multiple versions of library files into one image>`
|
:ref:`Multilib <dev-manual/dev-manual-common-tasks:combining multiple versions of library files into one image>`
|
||||||
configuration.
|
configuration.
|
||||||
|
|
||||||
To add a tune to the list, be sure to append it with spaces using the
|
To add a tune to the list, be sure to append it with spaces using the
|
||||||
@@ -317,7 +317,7 @@ system and gives an overview of their function and contents.
|
|||||||
:term:`BASE_LIB`
|
:term:`BASE_LIB`
|
||||||
The library directory name for the CPU or Application Binary
|
The library directory name for the CPU or Application Binary
|
||||||
Interface (ABI) tune. The ``BASE_LIB`` applies only in the Multilib
|
Interface (ABI) tune. The ``BASE_LIB`` applies only in the Multilib
|
||||||
context. See the ":ref:`dev-manual/common-tasks:combining multiple versions of library files into one image`"
|
context. See the ":ref:`dev-manual/dev-manual-common-tasks:combining multiple versions of library files into one image`"
|
||||||
section in the Yocto Project Development Tasks Manual for information
|
section in the Yocto Project Development Tasks Manual for information
|
||||||
on Multilib.
|
on Multilib.
|
||||||
|
|
||||||
@@ -545,7 +545,7 @@ system and gives an overview of their function and contents.
|
|||||||
is not set higher than "20".
|
is not set higher than "20".
|
||||||
|
|
||||||
For more information on speeding up builds, see the
|
For more information on speeding up builds, see the
|
||||||
":ref:`dev-manual/common-tasks:speeding up a build`"
|
":ref:`dev-manual/dev-manual-common-tasks:speeding up a build`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`BB_SERVER_TIMEOUT`
|
:term:`BB_SERVER_TIMEOUT`
|
||||||
@@ -746,7 +746,7 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
For information on how to use ``BBMULTICONFIG`` in an environment
|
For information on how to use ``BBMULTICONFIG`` in an environment
|
||||||
that supports building targets with multiple configurations, see the
|
that supports building targets with multiple configurations, see the
|
||||||
":ref:`dev-manual/common-tasks:building images for multiple targets using multiple configurations`"
|
":ref:`dev-building-images-for-multiple-targets-using-multiple-configurations`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`BBPATH`
|
:term:`BBPATH`
|
||||||
@@ -1002,7 +1002,7 @@ system and gives an overview of their function and contents.
|
|||||||
When inheriting the :ref:`buildhistory <ref-classes-buildhistory>`
|
When inheriting the :ref:`buildhistory <ref-classes-buildhistory>`
|
||||||
class, this variable specifies the build history features to be
|
class, this variable specifies the build history features to be
|
||||||
enabled. For more information on how build history works, see the
|
enabled. For more information on how build history works, see the
|
||||||
":ref:`dev-manual/common-tasks:maintaining build output quality`"
|
":ref:`dev-manual/dev-manual-common-tasks:maintaining build output quality`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
You can specify these features in the form of a space-separated list:
|
You can specify these features in the form of a space-separated list:
|
||||||
@@ -1016,7 +1016,7 @@ system and gives an overview of their function and contents.
|
|||||||
(SDK).
|
(SDK).
|
||||||
|
|
||||||
- *task:* Save output file signatures for
|
- *task:* Save output file signatures for
|
||||||
:ref:`shared state <overview-manual/concepts:shared state cache>`
|
:ref:`shared state <overview-manual/overview-manual-concepts:shared state cache>`
|
||||||
(sstate) tasks.
|
(sstate) tasks.
|
||||||
This saves one file per task and lists the SHA-256 checksums for
|
This saves one file per task and lists the SHA-256 checksums for
|
||||||
each file staged (i.e. the output of the task).
|
each file staged (i.e. the output of the task).
|
||||||
@@ -1299,7 +1299,7 @@ system and gives an overview of their function and contents.
|
|||||||
will be the aggregate of all of them.
|
will be the aggregate of all of them.
|
||||||
|
|
||||||
For information on creating an initramfs, see the
|
For information on creating an initramfs, see the
|
||||||
":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`" section
|
":ref:`building-an-initramfs-image`" section
|
||||||
in the Yocto Project Development Tasks Manual.
|
in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`CONFIG_SITE`
|
:term:`CONFIG_SITE`
|
||||||
@@ -1402,7 +1402,7 @@ system and gives an overview of their function and contents.
|
|||||||
newly installed packages to an image, which might be most suitable for
|
newly installed packages to an image, which might be most suitable for
|
||||||
read-only filesystems that cannot be upgraded. See the
|
read-only filesystems that cannot be upgraded. See the
|
||||||
:term:`LICENSE_CREATE_PACKAGE` variable for additional information.
|
:term:`LICENSE_CREATE_PACKAGE` variable for additional information.
|
||||||
You can also reference the ":ref:`dev-manual/common-tasks:providing license text`"
|
You can also reference the ":ref:`dev-manual/dev-manual-common-tasks:providing license text`"
|
||||||
section in the Yocto Project Development Tasks Manual for
|
section in the Yocto Project Development Tasks Manual for
|
||||||
information on providing license text.
|
information on providing license text.
|
||||||
|
|
||||||
@@ -1418,7 +1418,7 @@ system and gives an overview of their function and contents.
|
|||||||
newly installed packages to an image, which might be most suitable for
|
newly installed packages to an image, which might be most suitable for
|
||||||
read-only filesystems that cannot be upgraded. See the
|
read-only filesystems that cannot be upgraded. See the
|
||||||
:term:`LICENSE_CREATE_PACKAGE` variable for additional information.
|
:term:`LICENSE_CREATE_PACKAGE` variable for additional information.
|
||||||
You can also reference the ":ref:`dev-manual/common-tasks:providing license text`"
|
You can also reference the ":ref:`dev-manual/dev-manual-common-tasks:providing license text`"
|
||||||
section in the Yocto Project Development Tasks Manual for
|
section in the Yocto Project Development Tasks Manual for
|
||||||
information on providing license text.
|
information on providing license text.
|
||||||
|
|
||||||
@@ -1522,7 +1522,7 @@ system and gives an overview of their function and contents.
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Tasks that read from or write to this directory should run under
|
Tasks that read from or write to this directory should run under
|
||||||
:ref:`fakeroot <overview-manual/concepts:fakeroot and pseudo>`.
|
:ref:`fakeroot <overview-manual/overview-manual-concepts:fakeroot and pseudo>`.
|
||||||
|
|
||||||
:term:`DATE`
|
:term:`DATE`
|
||||||
The date the build was started. Dates appear using the year, month,
|
The date the build was started. Dates appear using the year, month,
|
||||||
@@ -1641,7 +1641,7 @@ system and gives an overview of their function and contents.
|
|||||||
- One recipe having another recipe in ``DEPENDS`` does not by
|
- One recipe having another recipe in ``DEPENDS`` does not by
|
||||||
itself add any runtime dependencies between the packages
|
itself add any runtime dependencies between the packages
|
||||||
produced by the two recipes. However, as explained in the
|
produced by the two recipes. However, as explained in the
|
||||||
":ref:`overview-manual/concepts:automatically added runtime dependencies`"
|
":ref:`overview-manual/overview-manual-concepts:automatically added runtime dependencies`"
|
||||||
section in the Yocto Project Overview and Concepts Manual,
|
section in the Yocto Project Overview and Concepts Manual,
|
||||||
runtime dependencies will often be added automatically, meaning
|
runtime dependencies will often be added automatically, meaning
|
||||||
``DEPENDS`` alone is sufficient for most recipes.
|
``DEPENDS`` alone is sufficient for most recipes.
|
||||||
@@ -1670,11 +1670,11 @@ system and gives an overview of their function and contents.
|
|||||||
``${TMPDIR}/deploy``.
|
``${TMPDIR}/deploy``.
|
||||||
|
|
||||||
For more information on the structure of the Build Directory, see
|
For more information on the structure of the Build Directory, see
|
||||||
":ref:`ref-manual/structure:the build directory - \`\`build/\`\``" section.
|
":ref:`ref-manual/ref-structure:the build directory - \`\`build/\`\``" section.
|
||||||
For more detail on the contents of the ``deploy`` directory, see the
|
For more detail on the contents of the ``deploy`` directory, see the
|
||||||
":ref:`overview-manual/concepts:images`",
|
":ref:`Images <images-dev-environment>`", ":ref:`Package
|
||||||
":ref:`overview-manual/concepts:package feeds`", and
|
Feeds <package-feeds-dev-environment>`", and
|
||||||
":ref:`overview-manual/concepts:application development sdk`" sections all in the
|
":ref:`sdk-dev-environment`" sections all in the
|
||||||
Yocto Project Overview and Concepts Manual.
|
Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
:term:`DEPLOY_DIR_DEB`
|
:term:`DEPLOY_DIR_DEB`
|
||||||
@@ -1695,8 +1695,8 @@ system and gives an overview of their function and contents.
|
|||||||
``DEPLOY_DIR_DEB`` variable to make sure the
|
``DEPLOY_DIR_DEB`` variable to make sure the
|
||||||
:ref:`ref-tasks-package_write_deb` task
|
:ref:`ref-tasks-package_write_deb` task
|
||||||
writes Debian packages into the appropriate folder. For more
|
writes Debian packages into the appropriate folder. For more
|
||||||
information on how packaging works, see the
|
information on how packaging works, see the ":ref:`Package
|
||||||
":ref:`overview-manual/concepts:package feeds`" section
|
Feeds <package-feeds-dev-environment>`" section
|
||||||
in the Yocto Project Overview and Concepts Manual.
|
in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
:term:`DEPLOY_DIR_IMAGE`
|
:term:`DEPLOY_DIR_IMAGE`
|
||||||
@@ -1708,10 +1708,10 @@ system and gives an overview of their function and contents.
|
|||||||
``${DEPLOY_DIR}/images/${MACHINE}/``.
|
``${DEPLOY_DIR}/images/${MACHINE}/``.
|
||||||
|
|
||||||
For more information on the structure of the Build Directory, see
|
For more information on the structure of the Build Directory, see
|
||||||
":ref:`ref-manual/structure:the build directory - \`\`build/\`\``" section.
|
":ref:`ref-manual/ref-structure:the build directory - \`\`build/\`\``" section.
|
||||||
For more detail on the contents of the ``deploy`` directory, see the
|
For more detail on the contents of the ``deploy`` directory, see the
|
||||||
":ref:`overview-manual/concepts:images`" and
|
":ref:`Images <images-dev-environment>`" and
|
||||||
":ref:`overview-manual/concepts:application development sdk`" sections both in
|
":ref:`sdk-dev-environment`" sections both in
|
||||||
the Yocto Project Overview and Concepts Manual.
|
the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
:term:`DEPLOY_DIR_IPK`
|
:term:`DEPLOY_DIR_IPK`
|
||||||
@@ -1731,8 +1731,8 @@ system and gives an overview of their function and contents.
|
|||||||
``DEPLOY_DIR_IPK`` variable to make sure the
|
``DEPLOY_DIR_IPK`` variable to make sure the
|
||||||
:ref:`ref-tasks-package_write_ipk` task
|
:ref:`ref-tasks-package_write_ipk` task
|
||||||
writes IPK packages into the appropriate folder. For more information
|
writes IPK packages into the appropriate folder. For more information
|
||||||
on how packaging works, see the
|
on how packaging works, see the ":ref:`Package
|
||||||
":ref:`overview-manual/concepts:package feeds`" section
|
Feeds <package-feeds-dev-environment>`" section
|
||||||
in the Yocto Project Overview and Concepts Manual.
|
in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
:term:`DEPLOY_DIR_RPM`
|
:term:`DEPLOY_DIR_RPM`
|
||||||
@@ -1752,8 +1752,8 @@ system and gives an overview of their function and contents.
|
|||||||
``DEPLOY_DIR_RPM`` variable to make sure the
|
``DEPLOY_DIR_RPM`` variable to make sure the
|
||||||
:ref:`ref-tasks-package_write_rpm` task
|
:ref:`ref-tasks-package_write_rpm` task
|
||||||
writes RPM packages into the appropriate folder. For more information
|
writes RPM packages into the appropriate folder. For more information
|
||||||
on how packaging works, see the
|
on how packaging works, see the ":ref:`Package
|
||||||
":ref:`overview-manual/concepts:package feeds`" section
|
Feeds <package-feeds-dev-environment>`" section
|
||||||
in the Yocto Project Overview and Concepts Manual.
|
in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
:term:`DEPLOY_DIR_TAR`
|
:term:`DEPLOY_DIR_TAR`
|
||||||
@@ -1773,8 +1773,8 @@ system and gives an overview of their function and contents.
|
|||||||
``DEPLOY_DIR_TAR`` variable to make sure the
|
``DEPLOY_DIR_TAR`` variable to make sure the
|
||||||
:ref:`ref-tasks-package_write_tar` task
|
:ref:`ref-tasks-package_write_tar` task
|
||||||
writes TAR packages into the appropriate folder. For more information
|
writes TAR packages into the appropriate folder. For more information
|
||||||
on how packaging works, see the
|
on how packaging works, see the ":ref:`Package
|
||||||
":ref:`overview-manual/concepts:package feeds`" section
|
Feeds <package-feeds-dev-environment>`" section
|
||||||
in the Yocto Project Overview and Concepts Manual.
|
in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
:term:`DEPLOYDIR`
|
:term:`DEPLOYDIR`
|
||||||
@@ -1997,7 +1997,7 @@ system and gives an overview of their function and contents.
|
|||||||
process gets source files when working behind a firewall or proxy
|
process gets source files when working behind a firewall or proxy
|
||||||
server, see this specific question in the ":doc:`faq`"
|
server, see this specific question in the ":doc:`faq`"
|
||||||
chapter. You can also refer to the
|
chapter. You can also refer to the
|
||||||
":yocto_wiki:`Working Behind a Network Proxy </Working_Behind_a_Network_Proxy>`"
|
":yocto_wiki:`Working Behind a Network Proxy </wiki/Working_Behind_a_Network_Proxy>`"
|
||||||
Wiki page.
|
Wiki page.
|
||||||
|
|
||||||
:term:`DOC_COMPRESS`
|
:term:`DOC_COMPRESS`
|
||||||
@@ -2029,7 +2029,7 @@ system and gives an overview of their function and contents.
|
|||||||
When used with the :ref:`report-error <ref-classes-report-error>`
|
When used with the :ref:`report-error <ref-classes-report-error>`
|
||||||
class, specifies the path used for storing the debug files created by
|
class, specifies the path used for storing the debug files created by
|
||||||
the :ref:`error reporting
|
the :ref:`error reporting
|
||||||
tool <dev-manual/common-tasks:using the error reporting tool>`, which
|
tool <dev-manual/dev-manual-common-tasks:using the error reporting tool>`, which
|
||||||
allows you to submit build errors you encounter to a central
|
allows you to submit build errors you encounter to a central
|
||||||
database. By default, the value of this variable is
|
database. By default, the value of this variable is
|
||||||
``${``\ :term:`LOG_DIR`\ ``}/error-report``.
|
``${``\ :term:`LOG_DIR`\ ``}/error-report``.
|
||||||
@@ -2129,7 +2129,7 @@ system and gives an overview of their function and contents.
|
|||||||
For more information on ``externalsrc.bbclass``, see the
|
For more information on ``externalsrc.bbclass``, see the
|
||||||
":ref:`externalsrc.bbclass <ref-classes-externalsrc>`" section. You
|
":ref:`externalsrc.bbclass <ref-classes-externalsrc>`" section. You
|
||||||
can also find information on how to use this variable in the
|
can also find information on how to use this variable in the
|
||||||
":ref:`dev-manual/common-tasks:building software from an external source`"
|
":ref:`dev-manual/dev-manual-common-tasks:building software from an external source`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`EXTERNALSRC_BUILD`
|
:term:`EXTERNALSRC_BUILD`
|
||||||
@@ -2143,7 +2143,7 @@ system and gives an overview of their function and contents.
|
|||||||
For more information on ``externalsrc.bbclass``, see the
|
For more information on ``externalsrc.bbclass``, see the
|
||||||
":ref:`externalsrc.bbclass <ref-classes-externalsrc>`" section. You
|
":ref:`externalsrc.bbclass <ref-classes-externalsrc>`" section. You
|
||||||
can also find information on how to use this variable in the
|
can also find information on how to use this variable in the
|
||||||
":ref:`dev-manual/common-tasks:building software from an external source`"
|
":ref:`dev-manual/dev-manual-common-tasks:building software from an external source`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`EXTRA_AUTORECONF`
|
:term:`EXTRA_AUTORECONF`
|
||||||
@@ -2181,7 +2181,7 @@ system and gives an overview of their function and contents.
|
|||||||
useful if you want to develop against the libraries in the image.
|
useful if you want to develop against the libraries in the image.
|
||||||
- "read-only-rootfs" - Creates an image whose root filesystem is
|
- "read-only-rootfs" - Creates an image whose root filesystem is
|
||||||
read-only. See the
|
read-only. See the
|
||||||
":ref:`dev-manual/common-tasks:creating a read-only root filesystem`"
|
":ref:`dev-manual/dev-manual-common-tasks:creating a read-only root filesystem`"
|
||||||
section in the Yocto Project Development Tasks Manual for more
|
section in the Yocto Project Development Tasks Manual for more
|
||||||
information
|
information
|
||||||
- "tools-debug" - Adds debugging tools such as gdb and strace.
|
- "tools-debug" - Adds debugging tools such as gdb and strace.
|
||||||
@@ -2194,7 +2194,7 @@ system and gives an overview of their function and contents.
|
|||||||
Project, see the ":ref:`ref-features-image`" section.
|
Project, see the ":ref:`ref-features-image`" section.
|
||||||
|
|
||||||
For an example that shows how to customize your image by using this
|
For an example that shows how to customize your image by using this
|
||||||
variable, see the ":ref:`dev-manual/common-tasks:customizing images using custom \`\`image_features\`\` and \`\`extra_image_features\`\``"
|
variable, see the ":ref:`usingpoky-extend-customimage-imagefeatures`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`EXTRA_IMAGECMD`
|
:term:`EXTRA_IMAGECMD`
|
||||||
@@ -2419,7 +2419,7 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
The previous statement appears in the
|
The previous statement appears in the
|
||||||
``linux-yocto-dev.bbappend`` file, which is found in the
|
``linux-yocto-dev.bbappend`` file, which is found in the
|
||||||
:ref:`overview-manual/development-environment:yocto project source repositories` in
|
:ref:`overview-manual/overview-manual-development-environment:yocto project source repositories` in
|
||||||
``meta-intel/common/recipes-kernel/linux``. Here, the machine
|
``meta-intel/common/recipes-kernel/linux``. Here, the machine
|
||||||
override is a special :term:`PACKAGE_ARCH`
|
override is a special :term:`PACKAGE_ARCH`
|
||||||
definition for multiple ``meta-intel`` machines.
|
definition for multiple ``meta-intel`` machines.
|
||||||
@@ -2509,9 +2509,9 @@ system and gives an overview of their function and contents.
|
|||||||
build system uses files from ``files/defconfig``.
|
build system uses files from ``files/defconfig``.
|
||||||
|
|
||||||
You can find out more about the patching process in the
|
You can find out more about the patching process in the
|
||||||
":ref:`overview-manual/concepts:patching`" section
|
":ref:`patching-dev-environment`" section
|
||||||
in the Yocto Project Overview and Concepts Manual and the
|
in the Yocto Project Overview and Concepts Manual and the
|
||||||
":ref:`dev-manual/common-tasks:patching code`" section in
|
":ref:`new-recipe-patching-code`" section in
|
||||||
the Yocto Project Development Tasks Manual. See the
|
the Yocto Project Development Tasks Manual. See the
|
||||||
:ref:`ref-tasks-patch` task as well.
|
:ref:`ref-tasks-patch` task as well.
|
||||||
|
|
||||||
@@ -2538,13 +2538,6 @@ system and gives an overview of their function and contents.
|
|||||||
For guidance on how to create your own file permissions settings
|
For guidance on how to create your own file permissions settings
|
||||||
table file, examine the existing ``fs-perms.txt``.
|
table file, examine the existing ``fs-perms.txt``.
|
||||||
|
|
||||||
:term:`FIT_DESC`
|
|
||||||
Specifies the description string encoded into a fitImage. The default
|
|
||||||
value is set by the :ref:`kernel-fitimage <ref-classes-kernel-fitimage>`
|
|
||||||
class as follows::
|
|
||||||
|
|
||||||
FIT_DESC ?= "U-Boot fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}"
|
|
||||||
|
|
||||||
:term:`FIT_GENERATE_KEYS`
|
:term:`FIT_GENERATE_KEYS`
|
||||||
Decides whether to generate the keys for signing fitImage if they
|
Decides whether to generate the keys for signing fitImage if they
|
||||||
don't already exist. The keys are created in ``UBOOT_SIGN_KEYDIR``.
|
don't already exist. The keys are created in ``UBOOT_SIGN_KEYDIR``.
|
||||||
@@ -2575,13 +2568,6 @@ system and gives an overview of their function and contents.
|
|||||||
Size of private key in number of bits used in fitImage. The default
|
Size of private key in number of bits used in fitImage. The default
|
||||||
value is "2048".
|
value is "2048".
|
||||||
|
|
||||||
:term:`FIT_SIGN_INDIVIDUAL`
|
|
||||||
If set to "1", then the :ref:`kernel-fitimage <ref-classes-kernel-fitimage>`
|
|
||||||
class will sign the kernel, dtb and ramdisk images individually in addition
|
|
||||||
to signing the fitImage itself. This could be useful if you are
|
|
||||||
intending to verify signatures in another context than booting via
|
|
||||||
U-Boot.
|
|
||||||
|
|
||||||
:term:`FONT_EXTRA_RDEPENDS`
|
:term:`FONT_EXTRA_RDEPENDS`
|
||||||
When inheriting the :ref:`fontcache <ref-classes-fontcache>` class,
|
When inheriting the :ref:`fontcache <ref-classes-fontcache>` class,
|
||||||
this variable specifies the runtime dependencies for font packages.
|
this variable specifies the runtime dependencies for font packages.
|
||||||
@@ -2662,7 +2648,7 @@ system and gives an overview of their function and contents.
|
|||||||
GROUPADD_PARAM_${PN} = "-r netdev"
|
GROUPADD_PARAM_${PN} = "-r netdev"
|
||||||
|
|
||||||
For information on the standard Linux shell command
|
For information on the standard Linux shell command
|
||||||
``groupadd``, see https://linux.die.net/man/8/groupadd.
|
``groupadd``, see http://linux.die.net/man/8/groupadd.
|
||||||
|
|
||||||
:term:`GROUPMEMS_PARAM`
|
:term:`GROUPMEMS_PARAM`
|
||||||
When inheriting the :ref:`useradd <ref-classes-useradd>` class,
|
When inheriting the :ref:`useradd <ref-classes-useradd>` class,
|
||||||
@@ -2671,7 +2657,7 @@ system and gives an overview of their function and contents.
|
|||||||
of a group when the package is installed.
|
of a group when the package is installed.
|
||||||
|
|
||||||
For information on the standard Linux shell command ``groupmems``,
|
For information on the standard Linux shell command ``groupmems``,
|
||||||
see https://linux.die.net/man/8/groupmems.
|
see http://linux.die.net/man/8/groupmems.
|
||||||
|
|
||||||
:term:`GRUB_GFXSERIAL`
|
:term:`GRUB_GFXSERIAL`
|
||||||
Configures the GNU GRand Unified Bootloader (GRUB) to have graphics
|
Configures the GNU GRand Unified Bootloader (GRUB) to have graphics
|
||||||
@@ -2918,10 +2904,10 @@ system and gives an overview of their function and contents.
|
|||||||
the same files into a ``boot`` directory within the target partition.
|
the same files into a ``boot`` directory within the target partition.
|
||||||
|
|
||||||
You can find information on how to use the Wic tool in the
|
You can find information on how to use the Wic tool in the
|
||||||
":ref:`dev-manual/common-tasks:creating partitioned images using wic`"
|
":ref:`dev-manual/dev-manual-common-tasks:creating partitioned images using wic`"
|
||||||
section of the Yocto Project Development Tasks Manual. Reference
|
section of the Yocto Project Development Tasks Manual. Reference
|
||||||
material for Wic is located in the
|
material for Wic is located in the
|
||||||
":doc:`/ref-manual/kickstart`" chapter.
|
":doc:`../ref-manual/ref-kickstart`" chapter.
|
||||||
|
|
||||||
:term:`IMAGE_BOOT_FILES`
|
:term:`IMAGE_BOOT_FILES`
|
||||||
A space-separated list of files installed into the boot partition
|
A space-separated list of files installed into the boot partition
|
||||||
@@ -2954,10 +2940,10 @@ system and gives an overview of their function and contents.
|
|||||||
the same files into a ``boot`` directory within the target partition.
|
the same files into a ``boot`` directory within the target partition.
|
||||||
|
|
||||||
You can find information on how to use the Wic tool in the
|
You can find information on how to use the Wic tool in the
|
||||||
":ref:`dev-manual/common-tasks:creating partitioned images using wic`"
|
":ref:`dev-manual/dev-manual-common-tasks:creating partitioned images using wic`"
|
||||||
section of the Yocto Project Development Tasks Manual. Reference
|
section of the Yocto Project Development Tasks Manual. Reference
|
||||||
material for Wic is located in the
|
material for Wic is located in the
|
||||||
":doc:`/ref-manual/kickstart`" chapter.
|
":doc:`../ref-manual/ref-kickstart`" chapter.
|
||||||
|
|
||||||
:term:`IMAGE_CLASSES`
|
:term:`IMAGE_CLASSES`
|
||||||
A list of classes that all images should inherit. You typically use
|
A list of classes that all images should inherit. You typically use
|
||||||
@@ -3014,7 +3000,7 @@ system and gives an overview of their function and contents.
|
|||||||
the ":ref:`ref-features-image`" section.
|
the ":ref:`ref-features-image`" section.
|
||||||
|
|
||||||
For an example that shows how to customize your image by using this
|
For an example that shows how to customize your image by using this
|
||||||
variable, see the ":ref:`dev-manual/common-tasks:customizing images using custom \`\`image_features\`\` and \`\`extra_image_features\`\``"
|
variable, see the ":ref:`usingpoky-extend-customimage-imagefeatures`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`IMAGE_FSTYPES`
|
:term:`IMAGE_FSTYPES`
|
||||||
@@ -3065,18 +3051,18 @@ system and gives an overview of their function and contents.
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
- When working with a
|
- When working with a
|
||||||
:ref:`core-image-minimal-initramfs <ref-manual/images:images>`
|
:ref:`core-image-minimal-initramfs <ref-manual/ref-images:images>`
|
||||||
image, do not use the ``IMAGE_INSTALL`` variable to specify
|
image, do not use the ``IMAGE_INSTALL`` variable to specify
|
||||||
packages for installation. Instead, use the
|
packages for installation. Instead, use the
|
||||||
:term:`PACKAGE_INSTALL` variable, which
|
:term:`PACKAGE_INSTALL` variable, which
|
||||||
allows the initial RAM filesystem (initramfs) recipe to use a
|
allows the initial RAM filesystem (initramfs) recipe to use a
|
||||||
fixed set of packages and not be affected by ``IMAGE_INSTALL``.
|
fixed set of packages and not be affected by ``IMAGE_INSTALL``.
|
||||||
For information on creating an initramfs, see the
|
For information on creating an initramfs, see the
|
||||||
":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`"
|
":ref:`building-an-initramfs-image`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- Using ``IMAGE_INSTALL`` with the
|
- Using ``IMAGE_INSTALL`` with the
|
||||||
:ref:`+= <bitbake:bitbake-user-manual/bitbake-user-manual-metadata:appending (+=) and prepending (=+) with spaces>`
|
:ref:`+= <bitbake:appending-and-prepending>`
|
||||||
BitBake operator within the ``/conf/local.conf`` file or from
|
BitBake operator within the ``/conf/local.conf`` file or from
|
||||||
within an image recipe is not recommended. Use of this operator
|
within an image recipe is not recommended. Use of this operator
|
||||||
in these ways can cause ordering issues. Since
|
in these ways can cause ordering issues. Since
|
||||||
@@ -3140,7 +3126,7 @@ system and gives an overview of their function and contents.
|
|||||||
The location is
|
The location is
|
||||||
derived using the :term:`DEPLOY_DIR_IMAGE`
|
derived using the :term:`DEPLOY_DIR_IMAGE`
|
||||||
and :term:`IMAGE_NAME` variables. You can find
|
and :term:`IMAGE_NAME` variables. You can find
|
||||||
information on how the image is created in the ":ref:`overview-manual/concepts:image generation`"
|
information on how the image is created in the ":ref:`image-generation-dev-environment`"
|
||||||
section in the Yocto Project Overview and Concepts Manual.
|
section in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
:term:`IMAGE_NAME`
|
:term:`IMAGE_NAME`
|
||||||
@@ -3568,7 +3554,7 @@ system and gives an overview of their function and contents.
|
|||||||
:term:`INITRAMFS_IMAGE_BUNDLE`
|
:term:`INITRAMFS_IMAGE_BUNDLE`
|
||||||
variable, which allows the generated image to be bundled inside the
|
variable, which allows the generated image to be bundled inside the
|
||||||
kernel image. Additionally, for information on creating an initramfs
|
kernel image. Additionally, for information on creating an initramfs
|
||||||
image, see the ":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`" section
|
image, see the ":ref:`building-an-initramfs-image`" section
|
||||||
in the Yocto Project Development Tasks Manual.
|
in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`INITRAMFS_IMAGE_BUNDLE`
|
:term:`INITRAMFS_IMAGE_BUNDLE`
|
||||||
@@ -3614,9 +3600,9 @@ system and gives an overview of their function and contents.
|
|||||||
configuration file. You cannot set the variable in a recipe file.
|
configuration file. You cannot set the variable in a recipe file.
|
||||||
|
|
||||||
See the
|
See the
|
||||||
:yocto_git:`local.conf.sample.extended </poky/tree/meta-poky/conf/local.conf.sample.extended>`
|
:yocto_git:`local.conf.sample.extended </cgit/cgit.cgi/poky/tree/meta-poky/conf/local.conf.sample.extended>`
|
||||||
file for additional information. Also, for information on creating an
|
file for additional information. Also, for information on creating an
|
||||||
initramfs, see the ":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`" section
|
initramfs, see the ":ref:`building-an-initramfs-image`" section
|
||||||
in the Yocto Project Development Tasks Manual.
|
in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`INITRAMFS_LINK_NAME`
|
:term:`INITRAMFS_LINK_NAME`
|
||||||
@@ -3737,7 +3723,7 @@ system and gives an overview of their function and contents.
|
|||||||
- qemu
|
- qemu
|
||||||
- mips
|
- mips
|
||||||
|
|
||||||
You define the ``KARCH`` variable in the :ref:`kernel-dev/advanced:bsp descriptions`.
|
You define the ``KARCH`` variable in the :ref:`kernel-dev/kernel-dev-advanced:bsp descriptions`.
|
||||||
|
|
||||||
:term:`KBRANCH`
|
:term:`KBRANCH`
|
||||||
A regular expression used by the build process to explicitly identify
|
A regular expression used by the build process to explicitly identify
|
||||||
@@ -3807,7 +3793,7 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
For more
|
For more
|
||||||
information on how to use the ``KBUILD_DEFCONFIG`` variable, see the
|
information on how to use the ``KBUILD_DEFCONFIG`` variable, see the
|
||||||
":ref:`kernel-dev/common:using an "in-tree" \`\`defconfig\`\` file`"
|
":ref:`kernel-dev/kernel-dev-common:using an "in-tree" \`\`defconfig\`\` file`"
|
||||||
section in the Yocto Project Linux Kernel Development Manual.
|
section in the Yocto Project Linux Kernel Development Manual.
|
||||||
|
|
||||||
:term:`KERNEL_ALT_IMAGETYPE`
|
:term:`KERNEL_ALT_IMAGETYPE`
|
||||||
@@ -3884,15 +3870,6 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
|
KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
|
||||||
|
|
||||||
:term:`KERNEL_DTC_FLAGS`
|
|
||||||
Specifies the ``dtc`` flags that are passed to the Linux kernel build
|
|
||||||
system when generating the device trees (via ``DTC_FLAGS`` environment
|
|
||||||
variable).
|
|
||||||
|
|
||||||
In order to use this variable, the
|
|
||||||
:ref:`kernel-devicetree <ref-classes-kernel-devicetree>` class must
|
|
||||||
be inherited.
|
|
||||||
|
|
||||||
:term:`KERNEL_EXTRA_ARGS`
|
:term:`KERNEL_EXTRA_ARGS`
|
||||||
Specifies additional ``make`` command-line arguments the OpenEmbedded
|
Specifies additional ``make`` command-line arguments the OpenEmbedded
|
||||||
build system passes on when compiling the kernel.
|
build system passes on when compiling the kernel.
|
||||||
@@ -4006,9 +3983,8 @@ system and gives an overview of their function and contents.
|
|||||||
when building the kernel and is passed to ``make`` as the target to
|
when building the kernel and is passed to ``make`` as the target to
|
||||||
build.
|
build.
|
||||||
|
|
||||||
If you want to build an alternate kernel image type in addition to that
|
If you want to build an alternate kernel image type, use the
|
||||||
specified by ``KERNEL_IMAGETYPE``, use the :term:`KERNEL_ALT_IMAGETYPE`
|
:term:`KERNEL_ALT_IMAGETYPE` variable.
|
||||||
variable.
|
|
||||||
|
|
||||||
:term:`KERNEL_MODULE_AUTOLOAD`
|
:term:`KERNEL_MODULE_AUTOLOAD`
|
||||||
Lists kernel modules that need to be auto-loaded during boot.
|
Lists kernel modules that need to be auto-loaded during boot.
|
||||||
@@ -4053,7 +4029,7 @@ system and gives an overview of their function and contents.
|
|||||||
of the :term:`STAGING_KERNEL_DIR` within
|
of the :term:`STAGING_KERNEL_DIR` within
|
||||||
the :ref:`module <ref-classes-module>` class. For information on
|
the :ref:`module <ref-classes-module>` class. For information on
|
||||||
how this variable is used, see the
|
how this variable is used, see the
|
||||||
":ref:`kernel-dev/common:incorporating out-of-tree modules`"
|
":ref:`kernel-dev/kernel-dev-common:incorporating out-of-tree modules`"
|
||||||
section in the Yocto Project Linux Kernel Development Manual.
|
section in the Yocto Project Linux Kernel Development Manual.
|
||||||
|
|
||||||
To help maximize compatibility with out-of-tree drivers used to build
|
To help maximize compatibility with out-of-tree drivers used to build
|
||||||
@@ -4067,7 +4043,7 @@ system and gives an overview of their function and contents.
|
|||||||
of the :term:`STAGING_KERNEL_DIR` within
|
of the :term:`STAGING_KERNEL_DIR` within
|
||||||
the :ref:`module <ref-classes-module>` class. For information on
|
the :ref:`module <ref-classes-module>` class. For information on
|
||||||
how this variable is used, see the
|
how this variable is used, see the
|
||||||
":ref:`kernel-dev/common:incorporating out-of-tree modules`"
|
":ref:`kernel-dev/kernel-dev-common:incorporating out-of-tree modules`"
|
||||||
section in the Yocto Project Linux Kernel Development Manual.
|
section in the Yocto Project Linux Kernel Development Manual.
|
||||||
|
|
||||||
To help maximize compatibility with out-of-tree drivers used to build
|
To help maximize compatibility with out-of-tree drivers used to build
|
||||||
@@ -4132,13 +4108,13 @@ system and gives an overview of their function and contents.
|
|||||||
:term:`KTYPE`
|
:term:`KTYPE`
|
||||||
Defines the kernel type to be used in assembling the configuration.
|
Defines the kernel type to be used in assembling the configuration.
|
||||||
The linux-yocto recipes define "standard", "tiny", and "preempt-rt"
|
The linux-yocto recipes define "standard", "tiny", and "preempt-rt"
|
||||||
kernel types. See the ":ref:`kernel-dev/advanced:kernel types`"
|
kernel types. See the ":ref:`kernel-dev/kernel-dev-advanced:kernel types`"
|
||||||
section in the
|
section in the
|
||||||
Yocto Project Linux Kernel Development Manual for more information on
|
Yocto Project Linux Kernel Development Manual for more information on
|
||||||
kernel types.
|
kernel types.
|
||||||
|
|
||||||
You define the ``KTYPE`` variable in the
|
You define the ``KTYPE`` variable in the
|
||||||
:ref:`kernel-dev/advanced:bsp descriptions`. The
|
:ref:`kernel-dev/kernel-dev-advanced:bsp descriptions`. The
|
||||||
value you use must match the value used for the
|
value you use must match the value used for the
|
||||||
:term:`LINUX_KERNEL_TYPE` value used by the
|
:term:`LINUX_KERNEL_TYPE` value used by the
|
||||||
kernel recipe.
|
kernel recipe.
|
||||||
@@ -4201,12 +4177,12 @@ system and gives an overview of their function and contents.
|
|||||||
To specify the OE-Core versions for which a layer is compatible, use
|
To specify the OE-Core versions for which a layer is compatible, use
|
||||||
this variable in your layer's ``conf/layer.conf`` configuration file.
|
this variable in your layer's ``conf/layer.conf`` configuration file.
|
||||||
For the list, use the Yocto Project
|
For the list, use the Yocto Project
|
||||||
:yocto_wiki:`Release Name </Releases>` (e.g.
|
:yocto_wiki:`Release Name </wiki/Releases>` (e.g.
|
||||||
&DISTRO_NAME_NO_CAP;). To specify multiple OE-Core versions for the
|
DISTRO_NAME_NO_CAP). To specify multiple OE-Core versions for the
|
||||||
layer, use a space-separated list:
|
layer, use a space-separated list:
|
||||||
::
|
::
|
||||||
|
|
||||||
LAYERSERIES_COMPAT_layer_root_name = "&DISTRO_NAME_NO_CAP; &DISTRO_NAME_NO_CAP_MINUS_ONE;"
|
LAYERSERIES_COMPAT_layer_root_name = "DISTRO_NAME_NO_CAP DISTRO_NAME_NO_CAP_MINUS_ONE"
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -4215,7 +4191,7 @@ system and gives an overview of their function and contents.
|
|||||||
The OpenEmbedded build system produces a warning if the variable
|
The OpenEmbedded build system produces a warning if the variable
|
||||||
is not set for any given layer.
|
is not set for any given layer.
|
||||||
|
|
||||||
See the ":ref:`dev-manual/common-tasks:creating your own layer`"
|
See the ":ref:`dev-manual/dev-manual-common-tasks:creating your own layer`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`LAYERVERSION`
|
:term:`LAYERVERSION`
|
||||||
@@ -4264,7 +4240,7 @@ system and gives an overview of their function and contents.
|
|||||||
This variable must be defined for all recipes (unless
|
This variable must be defined for all recipes (unless
|
||||||
:term:`LICENSE` is set to "CLOSED").
|
:term:`LICENSE` is set to "CLOSED").
|
||||||
|
|
||||||
For more information, see the ":ref:`dev-manual/common-tasks:tracking license changes`"
|
For more information, see the ":ref:`usingpoky-configuring-lic_files_chksum`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`LICENSE`
|
:term:`LICENSE`
|
||||||
@@ -4330,7 +4306,7 @@ system and gives an overview of their function and contents.
|
|||||||
For related information on providing license text, see the
|
For related information on providing license text, see the
|
||||||
:term:`COPY_LIC_DIRS` variable, the
|
:term:`COPY_LIC_DIRS` variable, the
|
||||||
:term:`COPY_LIC_MANIFEST` variable, and the
|
:term:`COPY_LIC_MANIFEST` variable, and the
|
||||||
":ref:`dev-manual/common-tasks:providing license text`"
|
":ref:`dev-manual/dev-manual-common-tasks:providing license text`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`LICENSE_FLAGS`
|
:term:`LICENSE_FLAGS`
|
||||||
@@ -4343,7 +4319,7 @@ system and gives an overview of their function and contents.
|
|||||||
typically used to mark recipes that might require additional licenses
|
typically used to mark recipes that might require additional licenses
|
||||||
in order to be used in a commercial product. For more information,
|
in order to be used in a commercial product. For more information,
|
||||||
see the
|
see the
|
||||||
":ref:`dev-manual/common-tasks:enabling commercially licensed recipes`"
|
":ref:`dev-manual/dev-manual-common-tasks:enabling commercially licensed recipes`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`LICENSE_FLAGS_WHITELIST`
|
:term:`LICENSE_FLAGS_WHITELIST`
|
||||||
@@ -4351,7 +4327,7 @@ system and gives an overview of their function and contents.
|
|||||||
:term:`LICENSE_FLAGS` within a recipe should not
|
:term:`LICENSE_FLAGS` within a recipe should not
|
||||||
prevent that recipe from being built. This practice is otherwise
|
prevent that recipe from being built. This practice is otherwise
|
||||||
known as "whitelisting" license flags. For more information, see the
|
known as "whitelisting" license flags. For more information, see the
|
||||||
":ref:`dev-manual/common-tasks:enabling commercially licensed recipes`"
|
":ref:`dev-manual/dev-manual-common-tasks:enabling commercially licensed recipes`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`LICENSE_PATH`
|
:term:`LICENSE_PATH`
|
||||||
@@ -4367,7 +4343,7 @@ system and gives an overview of their function and contents.
|
|||||||
:term:`LINUX_KERNEL_TYPE`
|
:term:`LINUX_KERNEL_TYPE`
|
||||||
Defines the kernel type to be used in assembling the configuration.
|
Defines the kernel type to be used in assembling the configuration.
|
||||||
The linux-yocto recipes define "standard", "tiny", and "preempt-rt"
|
The linux-yocto recipes define "standard", "tiny", and "preempt-rt"
|
||||||
kernel types. See the ":ref:`kernel-dev/advanced:kernel types`"
|
kernel types. See the ":ref:`kernel-dev/kernel-dev-advanced:kernel types`"
|
||||||
section in the
|
section in the
|
||||||
Yocto Project Linux Kernel Development Manual for more information on
|
Yocto Project Linux Kernel Development Manual for more information on
|
||||||
kernel types.
|
kernel types.
|
||||||
@@ -4703,7 +4679,7 @@ system and gives an overview of their function and contents.
|
|||||||
See the :term:`KERNEL_MODULE_AUTOLOAD` variable for more information.
|
See the :term:`KERNEL_MODULE_AUTOLOAD` variable for more information.
|
||||||
|
|
||||||
module_conf
|
module_conf
|
||||||
Specifies `modprobe.d <https://linux.die.net/man/5/modprobe.d>`_
|
Specifies `modprobe.d <http://linux.die.net/man/5/modprobe.d>`_
|
||||||
syntax lines for inclusion in the ``/etc/modprobe.d/modname.conf``
|
syntax lines for inclusion in the ``/etc/modprobe.d/modname.conf``
|
||||||
file.
|
file.
|
||||||
|
|
||||||
@@ -4914,7 +4890,7 @@ system and gives an overview of their function and contents.
|
|||||||
Controls how the OpenEmbedded build system spawns interactive
|
Controls how the OpenEmbedded build system spawns interactive
|
||||||
terminals on the host development system (e.g. using the BitBake
|
terminals on the host development system (e.g. using the BitBake
|
||||||
command with the ``-c devshell`` command-line option). For more
|
command with the ``-c devshell`` command-line option). For more
|
||||||
information, see the ":ref:`dev-manual/common-tasks:using a development shell`" section in
|
information, see the ":ref:`platdev-appdev-devshell`" section in
|
||||||
the Yocto Project Development Tasks Manual.
|
the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
You can use the following values for the ``OE_TERMINAL`` variable:
|
You can use the following values for the ``OE_TERMINAL`` variable:
|
||||||
@@ -4983,7 +4959,7 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
An easy way to see what overrides apply is to search for ``OVERRIDES``
|
An easy way to see what overrides apply is to search for ``OVERRIDES``
|
||||||
in the output of the ``bitbake -e`` command. See the
|
in the output of the ``bitbake -e`` command. See the
|
||||||
":ref:`dev-manual/common-tasks:viewing variable values`" section in the Yocto
|
":ref:`dev-debugging-viewing-variable-values`" section in the Yocto
|
||||||
Project Development Tasks Manual for more information.
|
Project Development Tasks Manual for more information.
|
||||||
|
|
||||||
:term:`P`
|
:term:`P`
|
||||||
@@ -5005,7 +4981,7 @@ system and gives an overview of their function and contents.
|
|||||||
specific by using the package name as a suffix.
|
specific by using the package name as a suffix.
|
||||||
|
|
||||||
You can find out more about applying this variable in the
|
You can find out more about applying this variable in the
|
||||||
":ref:`dev-manual/common-tasks:adding custom metadata to packages`"
|
":ref:`dev-manual/dev-manual-common-tasks:adding custom metadata to packages`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`PACKAGE_ARCH`
|
:term:`PACKAGE_ARCH`
|
||||||
@@ -5103,7 +5079,7 @@ system and gives an overview of their function and contents.
|
|||||||
separate ``*-src`` pkg. This is the default behavior.
|
separate ``*-src`` pkg. This is the default behavior.
|
||||||
|
|
||||||
You can find out more about debugging using GDB by reading the
|
You can find out more about debugging using GDB by reading the
|
||||||
":ref:`dev-manual/common-tasks:debugging with the gnu project debugger (gdb) remotely`" section
|
":ref:`platdev-gdb-remotedebug`" section
|
||||||
in the Yocto Project Development Tasks Manual.
|
in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`PACKAGE_EXCLUDE_COMPLEMENTARY`
|
:term:`PACKAGE_EXCLUDE_COMPLEMENTARY`
|
||||||
@@ -5264,10 +5240,10 @@ system and gives an overview of their function and contents.
|
|||||||
general, you should use the
|
general, you should use the
|
||||||
:term:`IMAGE_INSTALL` variable to specify
|
:term:`IMAGE_INSTALL` variable to specify
|
||||||
packages for installation. The exception to this is when working with
|
packages for installation. The exception to this is when working with
|
||||||
the :ref:`core-image-minimal-initramfs <ref-manual/images:images>`
|
the :ref:`core-image-minimal-initramfs <ref-manual/ref-images:images>`
|
||||||
image. When working with an initial RAM filesystem (initramfs) image,
|
image. When working with an initial RAM filesystem (initramfs) image,
|
||||||
use the ``PACKAGE_INSTALL`` variable. For information on creating an
|
use the ``PACKAGE_INSTALL`` variable. For information on creating an
|
||||||
initramfs, see the ":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`" section
|
initramfs, see the ":ref:`building-an-initramfs-image`" section
|
||||||
in the Yocto Project Development Tasks Manual.
|
in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`PACKAGE_INSTALL_ATTEMPTONLY`
|
:term:`PACKAGE_INSTALL_ATTEMPTONLY`
|
||||||
@@ -5290,7 +5266,7 @@ system and gives an overview of their function and contents.
|
|||||||
``PACKAGE_WRITE_DEPS``.
|
``PACKAGE_WRITE_DEPS``.
|
||||||
|
|
||||||
For information on running post-installation scripts, see the
|
For information on running post-installation scripts, see the
|
||||||
":ref:`dev-manual/common-tasks:post-installation scripts`"
|
":ref:`dev-manual/dev-manual-common-tasks:post-installation scripts`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`PACKAGECONFIG`
|
:term:`PACKAGECONFIG`
|
||||||
@@ -5447,7 +5423,7 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
For an example of how to use the ``PACKAGES_DYNAMIC`` variable when
|
For an example of how to use the ``PACKAGES_DYNAMIC`` variable when
|
||||||
you are splitting packages, see the
|
you are splitting packages, see the
|
||||||
":ref:`dev-manual/common-tasks:handling optional module packaging`"
|
":ref:`dev-manual/dev-manual-common-tasks:handling optional module packaging`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`PACKAGESPLITFUNCS`
|
:term:`PACKAGESPLITFUNCS`
|
||||||
@@ -5482,7 +5458,7 @@ system and gives an overview of their function and contents.
|
|||||||
the ``do_compile`` task that result in race conditions, you can clear
|
the ``do_compile`` task that result in race conditions, you can clear
|
||||||
the ``PARALLEL_MAKE`` variable within the recipe as a workaround. For
|
the ``PARALLEL_MAKE`` variable within the recipe as a workaround. For
|
||||||
information on addressing race conditions, see the
|
information on addressing race conditions, see the
|
||||||
":ref:`dev-manual/common-tasks:debugging parallel make races`"
|
":ref:`dev-manual/dev-manual-common-tasks:debugging parallel make races`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
For single socket systems (i.e. one CPU), you should not have to
|
For single socket systems (i.e. one CPU), you should not have to
|
||||||
@@ -5492,7 +5468,7 @@ system and gives an overview of their function and contents.
|
|||||||
not set higher than "-j 20".
|
not set higher than "-j 20".
|
||||||
|
|
||||||
For more information on speeding up builds, see the
|
For more information on speeding up builds, see the
|
||||||
":ref:`dev-manual/common-tasks:speeding up a build`"
|
":ref:`dev-manual/dev-manual-common-tasks:speeding up a build`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`PARALLEL_MAKEINST`
|
:term:`PARALLEL_MAKEINST`
|
||||||
@@ -5512,7 +5488,7 @@ system and gives an overview of their function and contents.
|
|||||||
the ``do_install`` task that result in race conditions, you can
|
the ``do_install`` task that result in race conditions, you can
|
||||||
clear the ``PARALLEL_MAKEINST`` variable within the recipe as a
|
clear the ``PARALLEL_MAKEINST`` variable within the recipe as a
|
||||||
workaround. For information on addressing race conditions, see the
|
workaround. For information on addressing race conditions, see the
|
||||||
":ref:`dev-manual/common-tasks:debugging parallel make races`"
|
":ref:`dev-manual/dev-manual-common-tasks:debugging parallel make races`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`PATCHRESOLVE`
|
:term:`PATCHRESOLVE`
|
||||||
@@ -5602,9 +5578,9 @@ system and gives an overview of their function and contents.
|
|||||||
${STAGING_DIR_HOST}/pkgdata
|
${STAGING_DIR_HOST}/pkgdata
|
||||||
|
|
||||||
For examples of how this data is used, see the
|
For examples of how this data is used, see the
|
||||||
":ref:`overview-manual/concepts:automatically added runtime dependencies`"
|
":ref:`overview-manual/overview-manual-concepts:automatically added runtime dependencies`"
|
||||||
section in the Yocto Project Overview and Concepts Manual and the
|
section in the Yocto Project Overview and Concepts Manual and the
|
||||||
":ref:`dev-manual/common-tasks:viewing package information with \`\`oe-pkgdata-util\`\``"
|
":ref:`dev-manual/dev-manual-common-tasks:viewing package information with \`\`oe-pkgdata-util\`\``"
|
||||||
section in the Yocto Project Development Tasks Manual. For more
|
section in the Yocto Project Development Tasks Manual. For more
|
||||||
information on the shared, global-state directory, see
|
information on the shared, global-state directory, see
|
||||||
:term:`STAGING_DIR_HOST`.
|
:term:`STAGING_DIR_HOST`.
|
||||||
@@ -5715,9 +5691,9 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
The OpenEmbedded build system does not need the aid of ``PR``
|
The OpenEmbedded build system does not need the aid of ``PR``
|
||||||
to know when to rebuild a recipe. The build system uses the task
|
to know when to rebuild a recipe. The build system uses the task
|
||||||
:ref:`input checksums <overview-manual/concepts:checksums (signatures)>` along with the
|
:ref:`input checksums <overview-checksums>` along with the
|
||||||
:ref:`stamp <structure-build-tmp-stamps>` and
|
:ref:`stamp <structure-build-tmp-stamps>` and
|
||||||
:ref:`overview-manual/concepts:shared state cache`
|
:ref:`overview-manual/overview-manual-concepts:shared state cache`
|
||||||
mechanisms.
|
mechanisms.
|
||||||
|
|
||||||
The ``PR`` variable primarily becomes significant when a package
|
The ``PR`` variable primarily becomes significant when a package
|
||||||
@@ -5737,7 +5713,7 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
Because manually managing ``PR`` can be cumbersome and error-prone,
|
Because manually managing ``PR`` can be cumbersome and error-prone,
|
||||||
an automated solution exists. See the
|
an automated solution exists. See the
|
||||||
":ref:`dev-manual/common-tasks:working with a pr service`" section
|
":ref:`dev-manual/dev-manual-common-tasks:working with a pr service`" section
|
||||||
in the Yocto Project Development Tasks Manual for more information.
|
in the Yocto Project Development Tasks Manual for more information.
|
||||||
|
|
||||||
:term:`PREFERRED_PROVIDER`
|
:term:`PREFERRED_PROVIDER`
|
||||||
@@ -5762,7 +5738,7 @@ system and gives an overview of their function and contents.
|
|||||||
PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
|
PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
|
||||||
|
|
||||||
For more
|
For more
|
||||||
information, see the ":ref:`dev-manual/common-tasks:using virtual providers`"
|
information, see the ":ref:`metadata-virtual-providers`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
@@ -5899,7 +5875,7 @@ system and gives an overview of their function and contents.
|
|||||||
libplds4.so"
|
libplds4.so"
|
||||||
|
|
||||||
For more information, see the
|
For more information, see the
|
||||||
":ref:`overview-manual/concepts:automatically added runtime dependencies`"
|
":ref:`overview-manual/overview-manual-concepts:automatically added runtime dependencies`"
|
||||||
section in the Yocto Project Overview and Concepts Manual.
|
section in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
:term:`PROVIDES`
|
:term:`PROVIDES`
|
||||||
@@ -5915,16 +5891,23 @@ system and gives an overview of their function and contents.
|
|||||||
file ``eudev_3.2.9.bb``:
|
file ``eudev_3.2.9.bb``:
|
||||||
::
|
::
|
||||||
|
|
||||||
PROVIDES += "udev"
|
PROVIDES = "udev"
|
||||||
|
|
||||||
The ``PROVIDES`` statement
|
The ``PROVIDES`` statement
|
||||||
results in the "eudev" recipe also being available as simply "udev".
|
results in the "eudev" recipe also being available as simply "udev".
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
A recipe's own recipe name (:term:`PN`) is always implicitly prepended
|
Given that a recipe's own recipe name is already implicitly in its
|
||||||
to `PROVIDES`, so while using "+=" in the above example may not be
|
own PROVIDES list, it is unnecessary to add aliases with the "+=" operator;
|
||||||
strictly necessary it is recommended to avoid confusion.
|
using a simple assignment will be sufficient. In other words,
|
||||||
|
while you could write:
|
||||||
|
::
|
||||||
|
|
||||||
|
PROVIDES += "udev"
|
||||||
|
|
||||||
|
|
||||||
|
in the above, the "+=" is overkill and unnecessary.
|
||||||
|
|
||||||
In addition to providing recipes under alternate names, the
|
In addition to providing recipes under alternate names, the
|
||||||
``PROVIDES`` mechanism is also used to implement virtual targets. A
|
``PROVIDES`` mechanism is also used to implement virtual targets. A
|
||||||
@@ -5968,7 +5951,7 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
You must
|
You must
|
||||||
set the variable if you want to automatically start a local :ref:`PR
|
set the variable if you want to automatically start a local :ref:`PR
|
||||||
service <dev-manual/common-tasks:working with a pr service>`. You can
|
service <dev-manual/dev-manual-common-tasks:working with a pr service>`. You can
|
||||||
set ``PRSERV_HOST`` to other values to use a remote PR service.
|
set ``PRSERV_HOST`` to other values to use a remote PR service.
|
||||||
|
|
||||||
|
|
||||||
@@ -5982,7 +5965,7 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
:term:`PTEST_ENABLED`
|
:term:`PTEST_ENABLED`
|
||||||
Specifies whether or not :ref:`Package
|
Specifies whether or not :ref:`Package
|
||||||
Test <dev-manual/common-tasks:testing packages with ptest>` (ptest)
|
Test <dev-manual/dev-manual-common-tasks:testing packages with ptest>` (ptest)
|
||||||
functionality is enabled when building a recipe. You should not set
|
functionality is enabled when building a recipe. You should not set
|
||||||
this variable directly. Enabling and disabling building Package Tests
|
this variable directly. Enabling and disabling building Package Tests
|
||||||
at build time should be done by adding "ptest" to (or removing it
|
at build time should be done by adding "ptest" to (or removing it
|
||||||
@@ -6085,7 +6068,7 @@ system and gives an overview of their function and contents.
|
|||||||
runtime dependencies are automatically detected and added. Therefore,
|
runtime dependencies are automatically detected and added. Therefore,
|
||||||
most recipes do not need to set ``RDEPENDS``. For more information,
|
most recipes do not need to set ``RDEPENDS``. For more information,
|
||||||
see the
|
see the
|
||||||
":ref:`overview-manual/concepts:automatically added runtime dependencies`"
|
":ref:`overview-manual/overview-manual-concepts:automatically added runtime dependencies`"
|
||||||
section in the Yocto Project Overview and Concepts Manual.
|
section in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
The practical effect of the above ``RDEPENDS`` assignment is that
|
The practical effect of the above ``RDEPENDS`` assignment is that
|
||||||
@@ -6559,7 +6542,7 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
For additional information on how to customize the extensible SDK's
|
For additional information on how to customize the extensible SDK's
|
||||||
configuration, see the
|
configuration, see the
|
||||||
":ref:`sdk-manual/appendix-customizing:configuring the extensible sdk`"
|
":ref:`sdk-manual/sdk-appendix-customizing:configuring the extensible sdk`"
|
||||||
section in the Yocto Project Application Development and the
|
section in the Yocto Project Application Development and the
|
||||||
Extensible Software Development Kit (eSDK) manual.
|
Extensible Software Development Kit (eSDK) manual.
|
||||||
|
|
||||||
@@ -6585,7 +6568,7 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
For additional information on how to customize the extensible SDK's
|
For additional information on how to customize the extensible SDK's
|
||||||
configuration, see the
|
configuration, see the
|
||||||
":ref:`sdk-manual/appendix-customizing:configuring the extensible sdk`"
|
":ref:`sdk-manual/sdk-appendix-customizing:configuring the extensible sdk`"
|
||||||
section in the Yocto Project Application Development and the
|
section in the Yocto Project Application Development and the
|
||||||
Extensible Software Development Kit (eSDK) manual.
|
Extensible Software Development Kit (eSDK) manual.
|
||||||
|
|
||||||
@@ -6604,7 +6587,7 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
For additional information on how to customize the extensible SDK's
|
For additional information on how to customize the extensible SDK's
|
||||||
configuration, see the
|
configuration, see the
|
||||||
":ref:`sdk-manual/appendix-customizing:configuring the extensible sdk`"
|
":ref:`sdk-manual/sdk-appendix-customizing:configuring the extensible sdk`"
|
||||||
section in the Yocto Project Application Development and the
|
section in the Yocto Project Application Development and the
|
||||||
Extensible Software Development Kit (eSDK) manual.
|
Extensible Software Development Kit (eSDK) manual.
|
||||||
|
|
||||||
@@ -6727,7 +6710,7 @@ system and gives an overview of their function and contents.
|
|||||||
``SDK_TITLE`` is set to "Poky (Yocto Project Reference Distro)".
|
``SDK_TITLE`` is set to "Poky (Yocto Project Reference Distro)".
|
||||||
|
|
||||||
For information on how to change this default title, see the
|
For information on how to change this default title, see the
|
||||||
":ref:`sdk-manual/appendix-customizing:changing the extensible sdk installer title`"
|
":ref:`sdk-manual/sdk-appendix-customizing:changing the extensible sdk installer title`"
|
||||||
section in the Yocto Project Application Development and the
|
section in the Yocto Project Application Development and the
|
||||||
Extensible Software Development Kit (eSDK) manual.
|
Extensible Software Development Kit (eSDK) manual.
|
||||||
|
|
||||||
@@ -6765,7 +6748,7 @@ system and gives an overview of their function and contents.
|
|||||||
default distribution "poky", the ``SDKEXTPATH`` is set to "poky_sdk".
|
default distribution "poky", the ``SDKEXTPATH`` is set to "poky_sdk".
|
||||||
|
|
||||||
For information on how to change this default directory, see the
|
For information on how to change this default directory, see the
|
||||||
":ref:`sdk-manual/appendix-customizing:changing the default sdk installation directory`"
|
":ref:`sdk-manual/sdk-appendix-customizing:changing the default sdk installation directory`"
|
||||||
section in the Yocto Project Application Development and the
|
section in the Yocto Project Application Development and the
|
||||||
Extensible Software Development Kit (eSDK) manual.
|
Extensible Software Development Kit (eSDK) manual.
|
||||||
|
|
||||||
@@ -7017,7 +7000,7 @@ system and gives an overview of their function and contents.
|
|||||||
various ``SPL_*`` variables used by the OpenEmbedded build system.
|
various ``SPL_*`` variables used by the OpenEmbedded build system.
|
||||||
|
|
||||||
See the BeagleBone machine configuration example in the
|
See the BeagleBone machine configuration example in the
|
||||||
":ref:`dev-manual/common-tasks:adding a layer using the \`\`bitbake-layers\`\` script`"
|
":ref:`dev-manual/dev-manual-common-tasks:adding a layer using the \`\`bitbake-layers\`\` script`"
|
||||||
section in the Yocto Project Board Support Package Developer's Guide
|
section in the Yocto Project Board Support Package Developer's Guide
|
||||||
for additional information.
|
for additional information.
|
||||||
|
|
||||||
@@ -7035,12 +7018,12 @@ system and gives an overview of their function and contents.
|
|||||||
protocols are highly dependent on particular BitBake Fetcher
|
protocols are highly dependent on particular BitBake Fetcher
|
||||||
submodules. Depending on the fetcher BitBake uses, various URL
|
submodules. Depending on the fetcher BitBake uses, various URL
|
||||||
parameters are employed. For specifics on the supported Fetchers, see
|
parameters are employed. For specifics on the supported Fetchers, see
|
||||||
the ":ref:`Fetchers <bitbake:bitbake-user-manual/bitbake-user-manual-fetching:fetchers>`" section in the
|
the ":ref:`Fetchers <bitbake:bb-fetchers>`" section in the
|
||||||
BitBake User Manual.
|
BitBake User Manual.
|
||||||
|
|
||||||
- ``file://`` - Fetches files, which are usually files shipped
|
- ``file://`` - Fetches files, which are usually files shipped
|
||||||
with the :term:`Metadata`, from the local machine (e.g.
|
with the :term:`Metadata`, from the local machine (e.g.
|
||||||
:ref:`patch <overview-manual/concepts:patching>` files).
|
:ref:`patch <patching-dev-environment>` files).
|
||||||
The path is relative to the :term:`FILESPATH`
|
The path is relative to the :term:`FILESPATH`
|
||||||
variable. Thus, the build system searches, in order, from the
|
variable. Thus, the build system searches, in order, from the
|
||||||
following directories, which are assumed to be a subdirectories of
|
following directories, which are assumed to be a subdirectories of
|
||||||
@@ -7217,7 +7200,7 @@ system and gives an overview of their function and contents.
|
|||||||
For information on limitations when inheriting the latest revision
|
For information on limitations when inheriting the latest revision
|
||||||
of software using ``SRCREV``, see the :term:`AUTOREV` variable
|
of software using ``SRCREV``, see the :term:`AUTOREV` variable
|
||||||
description and the
|
description and the
|
||||||
":ref:`dev-manual/common-tasks:automatically incrementing a package version number`"
|
":ref:`automatically-incrementing-a-binary-package-revision-number`"
|
||||||
section, which is in the Yocto Project Development Tasks Manual.
|
section, which is in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`SSTATE_DIR`
|
:term:`SSTATE_DIR`
|
||||||
@@ -7331,9 +7314,9 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
For information on how staging for recipe-specific sysroots occurs,
|
For information on how staging for recipe-specific sysroots occurs,
|
||||||
see the :ref:`ref-tasks-populate_sysroot`
|
see the :ref:`ref-tasks-populate_sysroot`
|
||||||
task, the ":ref:`sdk-manual/extensible:sharing files between recipes`"
|
task, the ":ref:`sdk-manual/sdk-extensible:sharing files between recipes`"
|
||||||
section in the Yocto Project Development Tasks Manual, the
|
section in the Yocto Project Development Tasks Manual, the
|
||||||
":ref:`overview-manual/concepts:configuration, compilation, and staging`"
|
":ref:`configuration-compilation-and-staging-dev-environment`"
|
||||||
section in the Yocto Project Overview and Concepts Manual, and the
|
section in the Yocto Project Overview and Concepts Manual, and the
|
||||||
:term:`SYSROOT_DIRS` variable.
|
:term:`SYSROOT_DIRS` variable.
|
||||||
|
|
||||||
@@ -7454,7 +7437,7 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
For information on how BitBake uses stamp files to determine if a
|
For information on how BitBake uses stamp files to determine if a
|
||||||
task should be rerun, see the
|
task should be rerun, see the
|
||||||
":ref:`overview-manual/concepts:stamp files and the rerunning of tasks`"
|
":ref:`overview-manual/overview-manual-concepts:stamp files and the rerunning of tasks`"
|
||||||
section in the Yocto Project Overview and Concepts Manual.
|
section in the Yocto Project Overview and Concepts Manual.
|
||||||
|
|
||||||
See :term:`STAMPS_DIR`,
|
See :term:`STAMPS_DIR`,
|
||||||
@@ -7621,7 +7604,7 @@ system and gives an overview of their function and contents.
|
|||||||
SYSTEMD_BOOT_CFG ?= "${:term:`S`}/loader.conf"
|
SYSTEMD_BOOT_CFG ?= "${:term:`S`}/loader.conf"
|
||||||
|
|
||||||
For information on Systemd-boot, see the `Systemd-boot
|
For information on Systemd-boot, see the `Systemd-boot
|
||||||
documentation <https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
|
documentation <http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
|
||||||
|
|
||||||
:term:`SYSTEMD_BOOT_ENTRIES`
|
:term:`SYSTEMD_BOOT_ENTRIES`
|
||||||
When :term:`EFI_PROVIDER` is set to
|
When :term:`EFI_PROVIDER` is set to
|
||||||
@@ -7635,7 +7618,7 @@ system and gives an overview of their function and contents.
|
|||||||
SYSTEMD_BOOT_ENTRIES ?= ""
|
SYSTEMD_BOOT_ENTRIES ?= ""
|
||||||
|
|
||||||
For information on Systemd-boot, see the `Systemd-boot
|
For information on Systemd-boot, see the `Systemd-boot
|
||||||
documentation <https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
|
documentation <http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
|
||||||
|
|
||||||
:term:`SYSTEMD_BOOT_TIMEOUT`
|
:term:`SYSTEMD_BOOT_TIMEOUT`
|
||||||
When :term:`EFI_PROVIDER` is set to
|
When :term:`EFI_PROVIDER` is set to
|
||||||
@@ -7648,7 +7631,7 @@ system and gives an overview of their function and contents.
|
|||||||
SYSTEMD_BOOT_TIMEOUT ?= "10"
|
SYSTEMD_BOOT_TIMEOUT ?= "10"
|
||||||
|
|
||||||
For information on Systemd-boot, see the `Systemd-boot
|
For information on Systemd-boot, see the `Systemd-boot
|
||||||
documentation <https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
|
documentation <http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
|
||||||
|
|
||||||
:term:`SYSTEMD_PACKAGES`
|
:term:`SYSTEMD_PACKAGES`
|
||||||
When inheriting the :ref:`systemd <ref-classes-systemd>` class,
|
When inheriting the :ref:`systemd <ref-classes-systemd>` class,
|
||||||
@@ -7677,9 +7660,9 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
:term:`SYSVINIT_ENABLED_GETTYS`
|
:term:`SYSVINIT_ENABLED_GETTYS`
|
||||||
When using
|
When using
|
||||||
:ref:`SysVinit <dev-manual/common-tasks:enabling system services>`,
|
:ref:`SysVinit <dev-manual/dev-manual-common-tasks:enabling system services>`,
|
||||||
specifies a space-separated list of the virtual terminals that should
|
specifies a space-separated list of the virtual terminals that should
|
||||||
run a `getty <https://en.wikipedia.org/wiki/Getty_%28Unix%29>`__
|
run a `getty <http://en.wikipedia.org/wiki/Getty_%28Unix%29>`__
|
||||||
(allowing login), assuming :term:`USE_VT` is not set to
|
(allowing login), assuming :term:`USE_VT` is not set to
|
||||||
"0".
|
"0".
|
||||||
|
|
||||||
@@ -7903,7 +7886,7 @@ system and gives an overview of their function and contents.
|
|||||||
toolchain. One example is the Sourcery G++ Toolchain. The support for
|
toolchain. One example is the Sourcery G++ Toolchain. The support for
|
||||||
this toolchain resides in the separate Mentor Graphics
|
this toolchain resides in the separate Mentor Graphics
|
||||||
``meta-sourcery`` layer at
|
``meta-sourcery`` layer at
|
||||||
https://github.com/MentorEmbedded/meta-sourcery/.
|
http://github.com/MentorEmbedded/meta-sourcery/.
|
||||||
|
|
||||||
The layer's ``README`` file contains information on how to use the
|
The layer's ``README`` file contains information on how to use the
|
||||||
Sourcery G++ Toolchain as an external toolchain. In summary, you must
|
Sourcery G++ Toolchain as an external toolchain. In summary, you must
|
||||||
@@ -7963,7 +7946,7 @@ system and gives an overview of their function and contents.
|
|||||||
file.
|
file.
|
||||||
|
|
||||||
For more information on testing images, see the
|
For more information on testing images, see the
|
||||||
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
|
":ref:`dev-manual/dev-manual-common-tasks:performing automated runtime testing`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`TEST_SERIALCONTROL_CMD`
|
:term:`TEST_SERIALCONTROL_CMD`
|
||||||
@@ -8039,7 +8022,7 @@ system and gives an overview of their function and contents.
|
|||||||
TEST_SUITES = "test_A test_B"
|
TEST_SUITES = "test_A test_B"
|
||||||
|
|
||||||
For more information on testing images, see the
|
For more information on testing images, see the
|
||||||
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
|
":ref:`dev-manual/dev-manual-common-tasks:performing automated runtime testing`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`TEST_TARGET`
|
:term:`TEST_TARGET`
|
||||||
@@ -8059,7 +8042,7 @@ system and gives an overview of their function and contents.
|
|||||||
You can provide the following arguments with ``TEST_TARGET``:
|
You can provide the following arguments with ``TEST_TARGET``:
|
||||||
|
|
||||||
- *"qemu":* Boots a QEMU image and runs the tests. See the
|
- *"qemu":* Boots a QEMU image and runs the tests. See the
|
||||||
":ref:`dev-manual/common-tasks:enabling runtime tests on qemu`" section
|
":ref:`qemu-image-enabling-tests`" section
|
||||||
in the Yocto Project Development Tasks Manual for more
|
in the Yocto Project Development Tasks Manual for more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
@@ -8075,7 +8058,7 @@ system and gives an overview of their function and contents.
|
|||||||
``meta/lib/oeqa/controllers/simpleremote.py``.
|
``meta/lib/oeqa/controllers/simpleremote.py``.
|
||||||
|
|
||||||
For information on running tests on hardware, see the
|
For information on running tests on hardware, see the
|
||||||
":ref:`dev-manual/common-tasks:enabling runtime tests on hardware`"
|
":ref:`hardware-image-enabling-tests`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
:term:`TEST_TARGET_IP`
|
:term:`TEST_TARGET_IP`
|
||||||
@@ -8113,7 +8096,7 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
For more information
|
For more information
|
||||||
on enabling, running, and writing these tests, see the
|
on enabling, running, and writing these tests, see the
|
||||||
":ref:`dev-manual/common-tasks:performing automated runtime testing`"
|
":ref:`dev-manual/dev-manual-common-tasks:performing automated runtime testing`"
|
||||||
section in the Yocto Project Development Tasks Manual and the
|
section in the Yocto Project Development Tasks Manual and the
|
||||||
":ref:`testimage*.bbclass <ref-classes-testimage*>`" section.
|
":ref:`testimage*.bbclass <ref-classes-testimage*>`" section.
|
||||||
|
|
||||||
@@ -8162,16 +8145,16 @@ system and gives an overview of their function and contents.
|
|||||||
In this case, a default list of packages is
|
In this case, a default list of packages is
|
||||||
set in this variable, but you can add additional packages to the
|
set in this variable, but you can add additional packages to the
|
||||||
list. See the
|
list. See the
|
||||||
":ref:`sdk-manual/appendix-customizing-standard:adding individual packages to the standard sdk`" section
|
":ref:`sdk-manual/sdk-appendix-customizing-standard:adding individual packages to the standard sdk`" section
|
||||||
in the Yocto Project Application Development and the Extensible
|
in the Yocto Project Application Development and the Extensible
|
||||||
Software Development Kit (eSDK) manual for more information.
|
Software Development Kit (eSDK) manual for more information.
|
||||||
|
|
||||||
For background information on cross-development toolchains in the
|
For background information on cross-development toolchains in the
|
||||||
Yocto Project development environment, see the
|
Yocto Project development environment, see the
|
||||||
":ref:`sdk-manual/intro:the cross-development toolchain`"
|
":ref:`sdk-manual/sdk-intro:the cross-development toolchain`"
|
||||||
section in the Yocto Project Overview and Concepts Manual. For
|
section in the Yocto Project Overview and Concepts Manual. For
|
||||||
information on setting up a cross-development environment, see the
|
information on setting up a cross-development environment, see the
|
||||||
:doc:`/sdk-manual/index` manual.
|
:doc:`../sdk-manual/sdk-manual` manual.
|
||||||
|
|
||||||
:term:`TOOLCHAIN_OUTPUTNAME`
|
:term:`TOOLCHAIN_OUTPUTNAME`
|
||||||
This variable defines the name used for the toolchain output. The
|
This variable defines the name used for the toolchain output. The
|
||||||
@@ -8192,16 +8175,16 @@ system and gives an overview of their function and contents.
|
|||||||
target hardware), which includes libraries and headers. Use this
|
target hardware), which includes libraries and headers. Use this
|
||||||
variable to add individual packages to the part of the SDK that runs
|
variable to add individual packages to the part of the SDK that runs
|
||||||
on the target. See the
|
on the target. See the
|
||||||
":ref:`sdk-manual/appendix-customizing-standard:adding individual packages to the standard sdk`" section
|
":ref:`sdk-manual/sdk-appendix-customizing-standard:adding individual packages to the standard sdk`" section
|
||||||
in the Yocto Project Application Development and the Extensible
|
in the Yocto Project Application Development and the Extensible
|
||||||
Software Development Kit (eSDK) manual for more information.
|
Software Development Kit (eSDK) manual for more information.
|
||||||
|
|
||||||
For background information on cross-development toolchains in the
|
For background information on cross-development toolchains in the
|
||||||
Yocto Project development environment, see the
|
Yocto Project development environment, see the
|
||||||
":ref:`sdk-manual/intro:the cross-development toolchain`"
|
":ref:`sdk-manual/sdk-intro:the cross-development toolchain`"
|
||||||
section in the Yocto Project Overview and Concepts Manual. For
|
section in the Yocto Project Overview and Concepts Manual. For
|
||||||
information on setting up a cross-development environment, see the
|
information on setting up a cross-development environment, see the
|
||||||
:doc:`/sdk-manual/index` manual.
|
:doc:`../sdk-manual/sdk-manual` manual.
|
||||||
|
|
||||||
:term:`TOPDIR`
|
:term:`TOPDIR`
|
||||||
The top-level :term:`Build Directory`. BitBake
|
The top-level :term:`Build Directory`. BitBake
|
||||||
@@ -8406,21 +8389,21 @@ system and gives an overview of their function and contents.
|
|||||||
In this example, "sd" is selected as the configuration of the possible four for the
|
In this example, "sd" is selected as the configuration of the possible four for the
|
||||||
``UBOOT_MACHINE``. The "sd" configuration defines
|
``UBOOT_MACHINE``. The "sd" configuration defines
|
||||||
"mx6qsabreauto_config" as the value for ``UBOOT_MACHINE``, while the
|
"mx6qsabreauto_config" as the value for ``UBOOT_MACHINE``, while the
|
||||||
"sdcard" specifies the ``IMAGE_FSTYPES`` to use for the U-Boot image.
|
"sdcard" specifies the ``IMAGE_FSTYPES`` to use for the U-boot image.
|
||||||
|
|
||||||
For more information on how the ``UBOOT_CONFIG`` is handled, see the
|
For more information on how the ``UBOOT_CONFIG`` is handled, see the
|
||||||
:ref:`uboot-config <ref-classes-uboot-config>`
|
:ref:`uboot-config <ref-classes-uboot-config>`
|
||||||
class.
|
class.
|
||||||
|
|
||||||
:term:`UBOOT_DTB_LOADADDRESS`
|
:term:`UBOOT_DTB_LOADADDRESS`
|
||||||
Specifies the load address for the dtb image used by U-Boot. During FIT
|
Specifies the load address for the dtb image used by U-boot. During FIT
|
||||||
image creation, the ``UBOOT_DTB_LOADADDRESS`` variable is used in
|
image creation, the ``UBOOT_DTB_LOADADDRESS`` variable is used in
|
||||||
:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to specify
|
:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to specify
|
||||||
the load address to be used in
|
the load address to be used in
|
||||||
creating the dtb sections of Image Tree Source for the FIT image.
|
creating the dtb sections of Image Tree Source for the FIT image.
|
||||||
|
|
||||||
:term:`UBOOT_DTBO_LOADADDRESS`
|
:term:`UBOOT_DTBO_LOADADDRESS`
|
||||||
Specifies the load address for the dtbo image used by U-Boot. During FIT
|
Specifies the load address for the dtbo image used by U-boot. During FIT
|
||||||
image creation, the ``UBOOT_DTBO_LOADADDRESS`` variable is used in
|
image creation, the ``UBOOT_DTBO_LOADADDRESS`` variable is used in
|
||||||
:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to specify the load address to be used in
|
:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to specify the load address to be used in
|
||||||
creating the dtbo sections of Image Tree Source for the FIT image.
|
creating the dtbo sections of Image Tree Source for the FIT image.
|
||||||
@@ -8457,29 +8440,9 @@ system and gives an overview of their function and contents.
|
|||||||
Specifies the target called in the ``Makefile``. The default target
|
Specifies the target called in the ``Makefile``. The default target
|
||||||
is "all".
|
is "all".
|
||||||
|
|
||||||
:term:`UBOOT_MKIMAGE`
|
|
||||||
Specifies the name of the mkimage command as used by the
|
|
||||||
:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to assemble
|
|
||||||
the FIT image. This can be used to substitute an alternative command, wrapper
|
|
||||||
script or function if desired. The default is "uboot-mkimage".
|
|
||||||
|
|
||||||
:term:`UBOOT_MKIMAGE_DTCOPTS`
|
:term:`UBOOT_MKIMAGE_DTCOPTS`
|
||||||
Options for the device tree compiler passed to mkimage '-D'
|
Options for the device tree compiler passed to mkimage '-D'
|
||||||
feature while creating FIT image in :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class.
|
feature while creating FIT image in :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class.
|
||||||
If ``UBOOT_MKIMAGE_DTCOPTS`` is not set then kernel-fitimage will not
|
|
||||||
pass the ``-D`` option to mkimage.
|
|
||||||
|
|
||||||
:term:`UBOOT_MKIMAGE_SIGN`
|
|
||||||
Specifies the name of the mkimage command as used by the
|
|
||||||
:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to sign
|
|
||||||
the FIT image after it has been assembled (if enabled). This can be used
|
|
||||||
to substitute an alternative command, wrapper script or function if
|
|
||||||
desired. The default is "${:term:`UBOOT_MKIMAGE`}".
|
|
||||||
|
|
||||||
:term:`UBOOT_MKIMAGE_SIGN_ARGS`
|
|
||||||
Optionally specifies additional arguments for the
|
|
||||||
:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to pass to the
|
|
||||||
mkimage command when signing the FIT image.
|
|
||||||
|
|
||||||
:term:`UBOOT_RD_ENTRYPOINT`
|
:term:`UBOOT_RD_ENTRYPOINT`
|
||||||
Specifies the entrypoint for the RAM disk image.
|
Specifies the entrypoint for the RAM disk image.
|
||||||
@@ -8505,7 +8468,7 @@ system and gives an overview of their function and contents.
|
|||||||
certificate used for signing FIT image.
|
certificate used for signing FIT image.
|
||||||
|
|
||||||
:term:`UBOOT_SIGN_KEYNAME`
|
:term:`UBOOT_SIGN_KEYNAME`
|
||||||
The name of keys used for signing U-Boot FIT image stored in
|
The name of keys used for signing U-boot FIT image stored in
|
||||||
:term:`UBOOT_SIGN_KEYDIR` directory. For e.g. dev.key key and dev.crt
|
:term:`UBOOT_SIGN_KEYDIR` directory. For e.g. dev.key key and dev.crt
|
||||||
certificate stored in :term:`UBOOT_SIGN_KEYDIR` directory will have
|
certificate stored in :term:`UBOOT_SIGN_KEYDIR` directory will have
|
||||||
:term:`UBOOT_SIGN_KEYNAME` set to "dev".
|
:term:`UBOOT_SIGN_KEYNAME` set to "dev".
|
||||||
@@ -8591,15 +8554,15 @@ system and gives an overview of their function and contents.
|
|||||||
specifically set. Typically, you would set ``USE_DEVFS`` to "0" for a
|
specifically set. Typically, you would set ``USE_DEVFS`` to "0" for a
|
||||||
statically populated ``/dev`` directory.
|
statically populated ``/dev`` directory.
|
||||||
|
|
||||||
See the ":ref:`dev-manual/common-tasks:selecting a device manager`" section in
|
See the ":ref:`selecting-dev-manager`" section in
|
||||||
the Yocto Project Development Tasks Manual for information on how to
|
the Yocto Project Development Tasks Manual for information on how to
|
||||||
use this variable.
|
use this variable.
|
||||||
|
|
||||||
:term:`USE_VT`
|
:term:`USE_VT`
|
||||||
When using
|
When using
|
||||||
:ref:`SysVinit <dev-manual/common-tasks:enabling system services>`,
|
:ref:`SysVinit <new-recipe-enabling-system-services>`,
|
||||||
determines whether or not to run a
|
determines whether or not to run a
|
||||||
`getty <https://en.wikipedia.org/wiki/Getty_%28Unix%29>`__ on any
|
`getty <http://en.wikipedia.org/wiki/Getty_%28Unix%29>`__ on any
|
||||||
virtual terminals in order to enable logging in through those
|
virtual terminals in order to enable logging in through those
|
||||||
terminals.
|
terminals.
|
||||||
|
|
||||||
@@ -8710,7 +8673,7 @@ system and gives an overview of their function and contents.
|
|||||||
|
|
||||||
For information on the
|
For information on the
|
||||||
standard Linux shell command ``useradd``, see
|
standard Linux shell command ``useradd``, see
|
||||||
https://linux.die.net/man/8/useradd.
|
http://linux.die.net/man/8/useradd.
|
||||||
|
|
||||||
:term:`USERADD_UID_TABLES`
|
:term:`USERADD_UID_TABLES`
|
||||||
Specifies a password file to use for obtaining static user
|
Specifies a password file to use for obtaining static user
|
||||||
@@ -8772,9 +8735,9 @@ system and gives an overview of their function and contents.
|
|||||||
OpenEmbedded build system to create a partitioned image
|
OpenEmbedded build system to create a partitioned image
|
||||||
(image\ ``.wic``). For information on how to create a partitioned
|
(image\ ``.wic``). For information on how to create a partitioned
|
||||||
image, see the
|
image, see the
|
||||||
":ref:`dev-manual/common-tasks:creating partitioned images using wic`"
|
":ref:`dev-manual/dev-manual-common-tasks:creating partitioned images using wic`"
|
||||||
section in the Yocto Project Development Tasks Manual. For details on
|
section in the Yocto Project Development Tasks Manual. For details on
|
||||||
the kickstart file format, see the ":doc:`/ref-manual/kickstart`" Chapter.
|
the kickstart file format, see the ":doc:`../ref-manual/ref-kickstart`" Chapter.
|
||||||
|
|
||||||
:term:`WKS_FILE_DEPENDS`
|
:term:`WKS_FILE_DEPENDS`
|
||||||
When placed in the recipe that builds your image, this variable lists
|
When placed in the recipe that builds your image, this variable lists
|
||||||
@@ -23,7 +23,7 @@ The Yocto Project gladly accepts contributions. You can submit changes
|
|||||||
to the project either by creating and sending pull requests, or by
|
to the project either by creating and sending pull requests, or by
|
||||||
submitting patches through email. For information on how to do both as
|
submitting patches through email. For information on how to do both as
|
||||||
well as information on how to identify the maintainer for each area of
|
well as information on how to identify the maintainer for each area of
|
||||||
code, see the ":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" section in the
|
code, see the ":ref:`how-to-submit-a-change`" section in the
|
||||||
Yocto Project Development Tasks Manual.
|
Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
.. _resources-bugtracker:
|
.. _resources-bugtracker:
|
||||||
@@ -47,12 +47,12 @@ A general procedure and guidelines exist for when you use Bugzilla to
|
|||||||
submit a bug. For information on how to use Bugzilla to submit a bug
|
submit a bug. For information on how to use Bugzilla to submit a bug
|
||||||
against the Yocto Project, see the following:
|
against the Yocto Project, see the following:
|
||||||
|
|
||||||
- The ":ref:`dev-manual/common-tasks:submitting a defect against the yocto project`"
|
- The ":ref:`dev-manual/dev-manual-common-tasks:submitting a defect against the yocto project`"
|
||||||
section in the Yocto Project Development Tasks Manual.
|
section in the Yocto Project Development Tasks Manual.
|
||||||
|
|
||||||
- The Yocto Project :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
|
- The Yocto Project :yocto_wiki:`Bugzilla wiki page </wiki/Bugzilla_Configuration_and_Bug_Tracking>`
|
||||||
|
|
||||||
For information on Bugzilla in general, see https://www.bugzilla.org/about/.
|
For information on Bugzilla in general, see http://www.bugzilla.org/about/.
|
||||||
|
|
||||||
.. _resources-mailinglist:
|
.. _resources-mailinglist:
|
||||||
|
|
||||||
@@ -108,7 +108,7 @@ Here is a list of resources you might find helpful:
|
|||||||
- :yocto_home:`The Yocto Project Website <>`\ *:* The home site
|
- :yocto_home:`The Yocto Project Website <>`\ *:* The home site
|
||||||
for the Yocto Project.
|
for the Yocto Project.
|
||||||
|
|
||||||
- :yocto_wiki:`The Yocto Project Main Wiki Page <>`\ *:* The main wiki page for
|
- :yocto_wiki:`The Yocto Project Main Wiki Page </wiki/Main_Page>`\ *:* The main wiki page for
|
||||||
the Yocto Project. This page contains information about project
|
the Yocto Project. This page contains information about project
|
||||||
planning, release engineering, QA & automation, a reference site map,
|
planning, release engineering, QA & automation, a reference site map,
|
||||||
and other resources related to the Yocto Project.
|
and other resources related to the Yocto Project.
|
||||||
@@ -118,39 +118,40 @@ Here is a list of resources you might find helpful:
|
|||||||
distribution from which the Yocto Project derives its build system
|
distribution from which the Yocto Project derives its build system
|
||||||
(Poky) and to which it contributes.
|
(Poky) and to which it contributes.
|
||||||
|
|
||||||
- :oe_wiki:`BitBake </BitBake>`\ *:* The tool used to process metadata.
|
- :oe_home:`BitBake </wiki/BitBake>`\ *:* The tool
|
||||||
|
used to process metadata.
|
||||||
|
|
||||||
- :doc:`BitBake User Manual <bitbake:index>`\ *:* A comprehensive
|
- :doc:`BitBake User Manual <bitbake:index>`\ *:* A comprehensive
|
||||||
guide to the BitBake tool. If you want information on BitBake, see
|
guide to the BitBake tool. If you want information on BitBake, see
|
||||||
this manual.
|
this manual.
|
||||||
|
|
||||||
- :doc:`/brief-yoctoprojectqs/index` *:* This
|
- :doc:`../brief-yoctoprojectqs/brief-yoctoprojectqs` *:* This
|
||||||
short document lets you experience building an image using the Yocto
|
short document lets you experience building an image using the Yocto
|
||||||
Project without having to understand any concepts or details.
|
Project without having to understand any concepts or details.
|
||||||
|
|
||||||
- :doc:`/overview-manual/index` *:* This manual provides overview
|
- :doc:`../overview-manual/overview-manual` *:* This manual provides overview
|
||||||
and conceptual information about the Yocto Project.
|
and conceptual information about the Yocto Project.
|
||||||
|
|
||||||
- :doc:`/dev-manual/index` *:* This manual is a "how-to" guide
|
- :doc:`../dev-manual/dev-manual` *:* This manual is a "how-to" guide
|
||||||
that presents procedures useful to both application and system
|
that presents procedures useful to both application and system
|
||||||
developers who use the Yocto Project.
|
developers who use the Yocto Project.
|
||||||
|
|
||||||
- :doc:`/sdk-manual/index` *manual :* This
|
- :doc:`../sdk-manual/sdk-manual` *manual :* This
|
||||||
guide provides information that lets you get going with the standard
|
guide provides information that lets you get going with the standard
|
||||||
or extensible SDK. An SDK, with its cross-development toolchains,
|
or extensible SDK. An SDK, with its cross-development toolchains,
|
||||||
allows you to develop projects inside or outside of the Yocto Project
|
allows you to develop projects inside or outside of the Yocto Project
|
||||||
environment.
|
environment.
|
||||||
|
|
||||||
- :doc:`/bsp-guide/bsp` *:* This guide defines the structure
|
- :doc:`../bsp-guide/bsp` *:* This guide defines the structure
|
||||||
for BSP components. Having a commonly understood structure encourages
|
for BSP components. Having a commonly understood structure encourages
|
||||||
standardization.
|
standardization.
|
||||||
|
|
||||||
- :doc:`/kernel-dev/index` *:* This manual describes
|
- :doc:`../kernel-dev/kernel-dev` *:* This manual describes
|
||||||
how to work with Linux Yocto kernels as well as provides a bit of
|
how to work with Linux Yocto kernels as well as provides a bit of
|
||||||
conceptual information on the construction of the Yocto Linux kernel
|
conceptual information on the construction of the Yocto Linux kernel
|
||||||
tree.
|
tree.
|
||||||
|
|
||||||
- :doc:`/ref-manual/index` *:* This
|
- :doc:`../ref-manual/ref-manual` *:* This
|
||||||
manual provides reference material such as variable, task, and class
|
manual provides reference material such as variable, task, and class
|
||||||
descriptions.
|
descriptions.
|
||||||
|
|
||||||
@@ -160,17 +161,17 @@ Here is a list of resources you might find helpful:
|
|||||||
which you can easily search for phrases and terms used in the Yocto
|
which you can easily search for phrases and terms used in the Yocto
|
||||||
Project documentation set.
|
Project documentation set.
|
||||||
|
|
||||||
- :doc:`/profile-manual/index` *:* This manual presents a set of
|
- :doc:`../profile-manual/profile-manual` *:* This manual presents a set of
|
||||||
common and generally useful tracing and profiling schemes along with
|
common and generally useful tracing and profiling schemes along with
|
||||||
their applications (as appropriate) to each tool.
|
their applications (as appropriate) to each tool.
|
||||||
|
|
||||||
- :doc:`/toaster-manual/index` *:* This manual
|
- :doc:`../toaster-manual/toaster-manual` *:* This manual
|
||||||
introduces and describes how to set up and use Toaster. Toaster is an
|
introduces and describes how to set up and use Toaster. Toaster is an
|
||||||
Application Programming Interface (API) and web-based interface to
|
Application Programming Interface (API) and web-based interface to
|
||||||
the :term:`OpenEmbedded Build System`, which uses
|
the :term:`OpenEmbedded Build System`, which uses
|
||||||
BitBake, that reports build information.
|
BitBake, that reports build information.
|
||||||
|
|
||||||
- :yocto_wiki:`FAQ </FAQ>`\ *:* A list of commonly asked
|
- :yocto_wiki:`FAQ </wiki/FAQ>`\ *:* A list of commonly asked
|
||||||
questions and their answers.
|
questions and their answers.
|
||||||
|
|
||||||
- *Release Notes:* Features, updates and known issues for the current
|
- *Release Notes:* Features, updates and known issues for the current
|
||||||
@@ -183,8 +184,7 @@ Here is a list of resources you might find helpful:
|
|||||||
the Yocto Project uses. If you find problems with the Yocto Project,
|
the Yocto Project uses. If you find problems with the Yocto Project,
|
||||||
you should report them using this application.
|
you should report them using this application.
|
||||||
|
|
||||||
- :yocto_wiki:`Bugzilla Configuration and Bug Tracking Wiki Page
|
- :yocto_wiki:`Bugzilla Configuration and Bug Tracking Wiki Page </wiki/Bugzilla_Configuration_and_Bug_Tracking>`\ *:*
|
||||||
</Bugzilla_Configuration_and_Bug_Tracking>`\ *:*
|
|
||||||
Information on how to get set up and use the Yocto Project
|
Information on how to get set up and use the Yocto Project
|
||||||
implementation of Bugzilla for logging and tracking Yocto Project
|
implementation of Bugzilla for logging and tracking Yocto Project
|
||||||
defects.
|
defects.
|
||||||
@@ -193,5 +193,5 @@ Here is a list of resources you might find helpful:
|
|||||||
available for Yocto Project and Poky discussions: ``#yocto`` and
|
available for Yocto Project and Poky discussions: ``#yocto`` and
|
||||||
``#poky``, respectively.
|
``#poky``, respectively.
|
||||||
|
|
||||||
- `Quick EMUlator (QEMU) <https://wiki.qemu.org/Index.html>`__\ *:* An
|
- `Quick EMUlator (QEMU) <http://wiki.qemu.org/Index.html>`__\ *:* An
|
||||||
open-source machine emulator and virtualizer.
|
open-source machine emulator and virtualizer.
|
||||||
|
|||||||
@@ -10,6 +10,9 @@
|
|||||||
|
|
||||||
- :yocto_docs:`3.2 Documentation </3.2>`
|
- :yocto_docs:`3.2 Documentation </3.2>`
|
||||||
- :yocto_docs:`3.2.1 Documentation </3.2.1>`
|
- :yocto_docs:`3.2.1 Documentation </3.2.1>`
|
||||||
|
- :yocto_docs:`3.2.2 Documentation </3.2.2>`
|
||||||
|
- :yocto_docs:`3.2.3 Documentation </3.2.3>`
|
||||||
|
- :yocto_docs:`3.2.4 Documentation </3.2.4>`
|
||||||
|
|
||||||
****************************
|
****************************
|
||||||
3.1 'dunfell' Release Series
|
3.1 'dunfell' Release Series
|
||||||
@@ -21,6 +24,8 @@
|
|||||||
- :yocto_docs:`3.1.3 Documentation </3.1.3>`
|
- :yocto_docs:`3.1.3 Documentation </3.1.3>`
|
||||||
- :yocto_docs:`3.1.4 Documentation </3.1.4>`
|
- :yocto_docs:`3.1.4 Documentation </3.1.4>`
|
||||||
- :yocto_docs:`3.1.5 Documentation </3.1.5>`
|
- :yocto_docs:`3.1.5 Documentation </3.1.5>`
|
||||||
|
- :yocto_docs:`3.1.6 Documentation </3.1.6>`
|
||||||
|
- :yocto_docs:`3.1.7 Documentation </3.1.7>`
|
||||||
|
|
||||||
==========================
|
==========================
|
||||||
Previous Release Manuals
|
Previous Release Manuals
|
||||||
@@ -34,6 +39,7 @@
|
|||||||
- :yocto_docs:`3.0.1 Documentation </3.0.1>`
|
- :yocto_docs:`3.0.1 Documentation </3.0.1>`
|
||||||
- :yocto_docs:`3.0.2 Documentation </3.0.2>`
|
- :yocto_docs:`3.0.2 Documentation </3.0.2>`
|
||||||
- :yocto_docs:`3.0.3 Documentation </3.0.3>`
|
- :yocto_docs:`3.0.3 Documentation </3.0.3>`
|
||||||
|
- :yocto_docs:`3.0.4 Documentation </3.0.4>`
|
||||||
|
|
||||||
****************************
|
****************************
|
||||||
2.7 'warrior' Release Series
|
2.7 'warrior' Release Series
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ adjustments:
|
|||||||
following:
|
following:
|
||||||
|
|
||||||
- After ensuring the tasks are :ref:`shared
|
- After ensuring the tasks are :ref:`shared
|
||||||
state <overview-manual/concepts:shared state cache>` tasks (i.e. the
|
state <overview-manual/overview-manual-concepts:shared state cache>` tasks (i.e. the
|
||||||
output of the task is saved to and can be restored from the shared
|
output of the task is saved to and can be restored from the shared
|
||||||
state cache) or ensuring the tasks are able to be produced quickly
|
state cache) or ensuring the tasks are able to be produced quickly
|
||||||
from a task that is a shared state task, add the task name to the
|
from a task that is a shared state task, add the task name to the
|
||||||
@@ -4,6 +4,8 @@
|
|||||||
Obtaining the SDK
|
Obtaining the SDK
|
||||||
*****************
|
*****************
|
||||||
|
|
||||||
|
.. _sdk-locating-pre-built-sdk-installers:
|
||||||
|
|
||||||
Locating Pre-Built SDK Installers
|
Locating Pre-Built SDK Installers
|
||||||
=================================
|
=================================
|
||||||
|
|
||||||
@@ -15,7 +17,7 @@ and then run the script to hand-install the toolchain.
|
|||||||
Follow these steps to locate and hand-install the toolchain:
|
Follow these steps to locate and hand-install the toolchain:
|
||||||
|
|
||||||
1. *Go to the Installers Directory:* Go to
|
1. *Go to the Installers Directory:* Go to
|
||||||
:yocto_dl:`/releases/yocto/yocto-&DISTRO;/toolchain/`
|
:yocto_dl:`/releases/yocto/yocto-3.1.2/toolchain/`
|
||||||
|
|
||||||
2. *Open the Folder for Your Build Host:* Open the folder that matches
|
2. *Open the Folder for Your Build Host:* Open the folder that matches
|
||||||
your :term:`Build Host` (i.e.
|
your :term:`Build Host` (i.e.
|
||||||
@@ -58,14 +60,14 @@ Follow these steps to locate and hand-install the toolchain:
|
|||||||
folder and download the following installer:
|
folder and download the following installer:
|
||||||
::
|
::
|
||||||
|
|
||||||
poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
|
poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-DISTRO.sh
|
||||||
|
|
||||||
4. *Run the Installer:* Be sure you have execution privileges and run
|
4. *Run the Installer:* Be sure you have execution privileges and run
|
||||||
the installer. Following is an example from the ``Downloads``
|
the installer. Following is an example from the ``Downloads``
|
||||||
directory:
|
directory:
|
||||||
::
|
::
|
||||||
|
|
||||||
$ ~/Downloads/poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
|
$ ~/Downloads/poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-DISTRO.sh
|
||||||
|
|
||||||
During execution of the script, you choose the root location for the
|
During execution of the script, you choose the root location for the
|
||||||
toolchain. See the "`Installed Standard SDK Directory
|
toolchain. See the "`Installed Standard SDK Directory
|
||||||
@@ -81,7 +83,7 @@ As an alternative to locating and downloading an SDK installer, you can
|
|||||||
build the SDK installer. Follow these steps:
|
build the SDK installer. Follow these steps:
|
||||||
|
|
||||||
1. *Set Up the Build Environment:* Be sure you are set up to use BitBake
|
1. *Set Up the Build Environment:* Be sure you are set up to use BitBake
|
||||||
in a shell. See the ":ref:`dev-manual/start:preparing the build host`" section
|
in a shell. See the ":ref:`dev-manual/dev-manual-start:preparing the build host`" section
|
||||||
in the Yocto Project Development Tasks Manual for information on how
|
in the Yocto Project Development Tasks Manual for information on how
|
||||||
to get a build host ready that is either a native Linux machine or a
|
to get a build host ready that is either a native Linux machine or a
|
||||||
machine that uses CROPS.
|
machine that uses CROPS.
|
||||||
@@ -89,9 +91,9 @@ build the SDK installer. Follow these steps:
|
|||||||
2. *Clone the ``poky`` Repository:* You need to have a local copy of the
|
2. *Clone the ``poky`` Repository:* You need to have a local copy of the
|
||||||
Yocto Project :term:`Source Directory`
|
Yocto Project :term:`Source Directory`
|
||||||
(i.e. a local
|
(i.e. a local
|
||||||
``poky`` repository). See the ":ref:`dev-manual/start:cloning the \`\`poky\`\` repository`" and
|
``poky`` repository). See the ":ref:`dev-manual/dev-manual-start:cloning the \`\`poky\`\` repository`" and
|
||||||
possibly the ":ref:`dev-manual/start:checking out by branch in poky`" and
|
possibly the ":ref:`dev-manual/dev-manual-start:checking out by branch in poky`" and
|
||||||
":ref:`dev-manual/start:checking out by tag in poky`" sections
|
":ref:`checkout-out-by-tag-in-poky`" sections
|
||||||
all in the Yocto Project Development Tasks Manual for information on
|
all in the Yocto Project Development Tasks Manual for information on
|
||||||
how to clone the ``poky`` repository and check out the appropriate
|
how to clone the ``poky`` repository and check out the appropriate
|
||||||
branch for your work.
|
branch for your work.
|
||||||
@@ -174,7 +176,7 @@ build the SDK installer. Follow these steps:
|
|||||||
::
|
::
|
||||||
|
|
||||||
$ cd ~/poky/build/tmp/deploy/sdk
|
$ cd ~/poky/build/tmp/deploy/sdk
|
||||||
$ ./poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
|
$ ./poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-DISTRO.sh
|
||||||
|
|
||||||
During execution of the script, you choose the root location for the
|
During execution of the script, you choose the root location for the
|
||||||
toolchain. See the "`Installed Standard SDK Directory
|
toolchain. See the "`Installed Standard SDK Directory
|
||||||
@@ -202,7 +204,7 @@ Follow these steps to extract the root filesystem:
|
|||||||
Image File:* You need to find and download the root filesystem image
|
Image File:* You need to find and download the root filesystem image
|
||||||
file that is appropriate for your target system. These files are kept
|
file that is appropriate for your target system. These files are kept
|
||||||
in machine-specific folders in the
|
in machine-specific folders in the
|
||||||
:yocto_dl:`Index of Releases </releases/yocto/yocto-&DISTRO;/machines/>`
|
:yocto_dl:`Index of Releases </releases/yocto/yocto-3.1.2/machines/>`
|
||||||
in the "machines" directory.
|
in the "machines" directory.
|
||||||
|
|
||||||
The machine-specific folders of the "machines" directory contain
|
The machine-specific folders of the "machines" directory contain
|
||||||
@@ -246,7 +248,7 @@ Follow these steps to extract the root filesystem:
|
|||||||
installed the toolchain (e.g. ``poky_sdk``).
|
installed the toolchain (e.g. ``poky_sdk``).
|
||||||
|
|
||||||
Following is an example based on the toolchain installed in the
|
Following is an example based on the toolchain installed in the
|
||||||
":ref:`sdk-manual/appendix-obtain:locating pre-built sdk installers`" section:
|
":ref:`sdk-locating-pre-built-sdk-installers`" section:
|
||||||
::
|
::
|
||||||
|
|
||||||
$ source ~/poky_sdk/environment-setup-core2-64-poky-linux
|
$ source ~/poky_sdk/environment-setup-core2-64-poky-linux
|
||||||
@@ -256,7 +258,7 @@ Follow these steps to extract the root filesystem:
|
|||||||
|
|
||||||
Following is an example command that extracts the root filesystem
|
Following is an example command that extracts the root filesystem
|
||||||
from a previously built root filesystem image that was downloaded
|
from a previously built root filesystem image that was downloaded
|
||||||
from the :yocto_dl:`Index of Releases </releases/yocto/yocto-&DISTRO;/machines/>`.
|
from the :yocto_dl:`Index of Releases </releases/yocto/yocto-3.1.2/machines/>`.
|
||||||
This command extracts the root filesystem into the ``core2-64-sato``
|
This command extracts the root filesystem into the ``core2-64-sato``
|
||||||
directory:
|
directory:
|
||||||
::
|
::
|
||||||
@@ -285,7 +287,7 @@ Within the figure, italicized text is used to indicate replaceable
|
|||||||
portions of the file or directory name. For example, install_dir/version
|
portions of the file or directory name. For example, install_dir/version
|
||||||
is the directory where the SDK is installed. By default, this directory
|
is the directory where the SDK is installed. By default, this directory
|
||||||
is ``/opt/poky/``. And, version represents the specific snapshot of the
|
is ``/opt/poky/``. And, version represents the specific snapshot of the
|
||||||
SDK (e.g. &DISTRO;). Furthermore, target represents the target architecture
|
SDK (e.g. 3.1.2). Furthermore, target represents the target architecture
|
||||||
(e.g. ``i586``) and host represents the development system's
|
(e.g. ``i586``) and host represents the development system's
|
||||||
architecture (e.g. ``x86_64``). Thus, the complete names of the two
|
architecture (e.g. ``x86_64``). Thus, the complete names of the two
|
||||||
directories within the ``sysroots`` could be ``i586-poky-linux`` and
|
directories within the ``sysroots`` could be ``i586-poky-linux`` and
|
||||||
@@ -24,6 +24,8 @@ alternatively make use of the toolchain directly, for example from
|
|||||||
Makefile and Autotools. See the "`Using the SDK Toolchain
|
Makefile and Autotools. See the "`Using the SDK Toolchain
|
||||||
Directly <#sdk-working-projects>`__" chapter for more information.
|
Directly <#sdk-working-projects>`__" chapter for more information.
|
||||||
|
|
||||||
|
.. _sdk-extensible-sdk-intro:
|
||||||
|
|
||||||
Why use the Extensible SDK and What is in It?
|
Why use the Extensible SDK and What is in It?
|
||||||
=============================================
|
=============================================
|
||||||
|
|
||||||
@@ -38,6 +40,8 @@ Basically, it contains an SDK environment setup script, some
|
|||||||
configuration files, an internal build system, and the ``devtool``
|
configuration files, an internal build system, and the ``devtool``
|
||||||
functionality.
|
functionality.
|
||||||
|
|
||||||
|
.. _sdk-installing-the-extensible-sdk:
|
||||||
|
|
||||||
Installing the Extensible SDK
|
Installing the Extensible SDK
|
||||||
=============================
|
=============================
|
||||||
|
|
||||||
@@ -47,7 +51,7 @@ Host` by running the ``*.sh`` installation script.
|
|||||||
You can download a tarball installer, which includes the pre-built
|
You can download a tarball installer, which includes the pre-built
|
||||||
toolchain, the ``runqemu`` script, the internal build system,
|
toolchain, the ``runqemu`` script, the internal build system,
|
||||||
``devtool``, and support files from the appropriate
|
``devtool``, and support files from the appropriate
|
||||||
:yocto_dl:`toolchain </releases/yocto/yocto-&DISTRO;/toolchain/>` directory within the Index of
|
:yocto_dl:`toolchain </releases/yocto/yocto-3.1.2/toolchain/>` directory within the Index of
|
||||||
Releases. Toolchains are available for several 32-bit and 64-bit
|
Releases. Toolchains are available for several 32-bit and 64-bit
|
||||||
architectures with the ``x86_64`` directories, respectively. The
|
architectures with the ``x86_64`` directories, respectively. The
|
||||||
toolchains the Yocto Project provides are based off the
|
toolchains the Yocto Project provides are based off the
|
||||||
@@ -78,14 +82,14 @@ is the general form:
|
|||||||
|
|
||||||
release_version is a string representing the release number of the Yocto Project:
|
release_version is a string representing the release number of the Yocto Project:
|
||||||
|
|
||||||
&DISTRO;, &DISTRO;+snapshot
|
3.1.2, 3.1.2+snapshot
|
||||||
|
|
||||||
For example, the following SDK installer is for a 64-bit
|
For example, the following SDK installer is for a 64-bit
|
||||||
development host system and a i586-tuned target architecture based off
|
development host system and a i586-tuned target architecture based off
|
||||||
the SDK for ``core-image-sato`` and using the current &DISTRO; snapshot:
|
the SDK for ``core-image-sato`` and using the current DISTRO snapshot:
|
||||||
::
|
::
|
||||||
|
|
||||||
poky-glibc-x86_64-core-image-sato-i586-toolchain-ext-&DISTRO;.sh
|
poky-glibc-x86_64-core-image-sato-i586-toolchain-ext-DISTRO.sh
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -134,6 +138,8 @@ architecture. The example assumes the SDK installer is located in
|
|||||||
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
|
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
|
||||||
$ . /home/scottrif/poky_sdk/environment-setup-core2-64-poky-linux
|
$ . /home/scottrif/poky_sdk/environment-setup-core2-64-poky-linux
|
||||||
|
|
||||||
|
.. _sdk-running-the-extensible-sdk-environment-setup-script:
|
||||||
|
|
||||||
Running the Extensible SDK Environment Setup Script
|
Running the Extensible SDK Environment Setup Script
|
||||||
===================================================
|
===================================================
|
||||||
|
|
||||||
@@ -183,7 +189,7 @@ system.
|
|||||||
part of an image built using the build system.
|
part of an image built using the build system.
|
||||||
|
|
||||||
The ``devtool`` command line is organized similarly to
|
The ``devtool`` command line is organized similarly to
|
||||||
:ref:`overview-manual/development-environment:git` in that it has a number of
|
:ref:`overview-manual/overview-manual-development-environment:git` in that it has a number of
|
||||||
sub-commands for each function. You can run ``devtool --help`` to see
|
sub-commands for each function. You can run ``devtool --help`` to see
|
||||||
all the commands.
|
all the commands.
|
||||||
|
|
||||||
@@ -219,6 +225,8 @@ recipes and the source go into a "workspace" directory under the SDK.
|
|||||||
The remainder of this section presents the ``devtool add``,
|
The remainder of this section presents the ``devtool add``,
|
||||||
``devtool modify``, and ``devtool upgrade`` workflows.
|
``devtool modify``, and ``devtool upgrade`` workflows.
|
||||||
|
|
||||||
|
.. _sdk-use-devtool-to-add-an-application:
|
||||||
|
|
||||||
Use ``devtool add`` to Add an Application
|
Use ``devtool add`` to Add an Application
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
|
|
||||||
@@ -393,6 +401,8 @@ command:
|
|||||||
proceed with your work. If you do use this command, realize that
|
proceed with your work. If you do use this command, realize that
|
||||||
the source tree is preserved.
|
the source tree is preserved.
|
||||||
|
|
||||||
|
.. _sdk-devtool-use-devtool-modify-to-modify-the-source-of-an-existing-component:
|
||||||
|
|
||||||
Use ``devtool modify`` to Modify the Source of an Existing Component
|
Use ``devtool modify`` to Modify the Source of an Existing Component
|
||||||
--------------------------------------------------------------------
|
--------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -603,6 +613,8 @@ command:
|
|||||||
proceed with your work. If you do use this command, realize that
|
proceed with your work. If you do use this command, realize that
|
||||||
the source tree is preserved.
|
the source tree is preserved.
|
||||||
|
|
||||||
|
.. _sdk-devtool-use-devtool-upgrade-to-create-a-version-of-the-recipe-that-supports-a-newer-version-of-the-software:
|
||||||
|
|
||||||
Use ``devtool upgrade`` to Create a Version of the Recipe that Supports a Newer Version of the Software
|
Use ``devtool upgrade`` to Create a Version of the Recipe that Supports a Newer Version of the Software
|
||||||
-------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -627,7 +639,7 @@ specify source code revision and versioning schemes, extract code into
|
|||||||
or out of the ``devtool``
|
or out of the ``devtool``
|
||||||
:ref:`devtool-the-workspace-layer-structure`,
|
:ref:`devtool-the-workspace-layer-structure`,
|
||||||
and work with any source file forms that the
|
and work with any source file forms that the
|
||||||
:ref:`fetchers <bitbake:bitbake-user-manual/bitbake-user-manual-fetching:fetchers>` support.
|
:ref:`fetchers <bitbake:bb-fetchers>` support.
|
||||||
|
|
||||||
The following diagram shows the common development flow used with the
|
The following diagram shows the common development flow used with the
|
||||||
``devtool upgrade`` command:
|
``devtool upgrade`` command:
|
||||||
@@ -771,6 +783,8 @@ The following diagram shows the common development flow used with the
|
|||||||
proceed with your work. If you do use this command, realize that
|
proceed with your work. If you do use this command, realize that
|
||||||
the source tree is preserved.
|
the source tree is preserved.
|
||||||
|
|
||||||
|
.. _sdk-a-closer-look-at-devtool-add:
|
||||||
|
|
||||||
A Closer Look at ``devtool add``
|
A Closer Look at ``devtool add``
|
||||||
================================
|
================================
|
||||||
|
|
||||||
@@ -812,6 +826,8 @@ the source tree is assumed to be using CMake and is treated accordingly.
|
|||||||
The remainder of this section covers specifics regarding how parts of
|
The remainder of this section covers specifics regarding how parts of
|
||||||
the recipe are generated.
|
the recipe are generated.
|
||||||
|
|
||||||
|
.. _sdk-name-and-version:
|
||||||
|
|
||||||
Name and Version
|
Name and Version
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
@@ -835,6 +851,8 @@ incorrect. For such a case, you must reset the recipe:
|
|||||||
After running the ``devtool reset`` command, you need to
|
After running the ``devtool reset`` command, you need to
|
||||||
run ``devtool add`` again and provide the name or the version.
|
run ``devtool add`` again and provide the name or the version.
|
||||||
|
|
||||||
|
.. _sdk-dependency-detection-and-mapping:
|
||||||
|
|
||||||
Dependency Detection and Mapping
|
Dependency Detection and Mapping
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
@@ -869,6 +887,8 @@ following to your recipe:
|
|||||||
dependency with an option that disables the associated functionality
|
dependency with an option that disables the associated functionality
|
||||||
passed to the configure script.
|
passed to the configure script.
|
||||||
|
|
||||||
|
.. _sdk-license-detection:
|
||||||
|
|
||||||
License Detection
|
License Detection
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
@@ -900,6 +920,8 @@ with development even though the settings are unlikely to be correct in
|
|||||||
all cases. You should check the documentation or source files for the
|
all cases. You should check the documentation or source files for the
|
||||||
software you are building to determine the actual license.
|
software you are building to determine the actual license.
|
||||||
|
|
||||||
|
.. _sdk-adding-makefile-only-software:
|
||||||
|
|
||||||
Adding Makefile-Only Software
|
Adding Makefile-Only Software
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
@@ -959,6 +981,8 @@ mind:
|
|||||||
``ldconfig``. For such cases, you might be able to apply patches that
|
``ldconfig``. For such cases, you might be able to apply patches that
|
||||||
remove these commands from the Makefile.
|
remove these commands from the Makefile.
|
||||||
|
|
||||||
|
.. _sdk-adding-native-tools:
|
||||||
|
|
||||||
Adding Native Tools
|
Adding Native Tools
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
@@ -985,6 +1009,8 @@ following methods when you run ``devtool add``:
|
|||||||
"DASHDASHalso-native" option, you can add the tool using just one
|
"DASHDASHalso-native" option, you can add the tool using just one
|
||||||
recipe file.
|
recipe file.
|
||||||
|
|
||||||
|
.. _sdk-adding-node-js-modules:
|
||||||
|
|
||||||
Adding Node.js Modules
|
Adding Node.js Modules
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
@@ -1027,6 +1053,8 @@ fetches the specified Git repository, detects the code as Node.js code,
|
|||||||
fetches dependencies using ``npm``, and sets
|
fetches dependencies using ``npm``, and sets
|
||||||
:term:`SRC_URI` accordingly.
|
:term:`SRC_URI` accordingly.
|
||||||
|
|
||||||
|
.. _sdk-working-with-recipes:
|
||||||
|
|
||||||
Working With Recipes
|
Working With Recipes
|
||||||
====================
|
====================
|
||||||
|
|
||||||
@@ -1065,6 +1093,8 @@ that most recipes typically need.
|
|||||||
The remainder of this section presents information useful when working
|
The remainder of this section presents information useful when working
|
||||||
with recipes.
|
with recipes.
|
||||||
|
|
||||||
|
.. _sdk-finding-logs-and-work-files:
|
||||||
|
|
||||||
Finding Logs and Work Files
|
Finding Logs and Work Files
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
@@ -1097,6 +1127,8 @@ links created within the source tree:
|
|||||||
You can use these links to get more information on what is happening at
|
You can use these links to get more information on what is happening at
|
||||||
each build step.
|
each build step.
|
||||||
|
|
||||||
|
.. _sdk-setting-configure-arguments:
|
||||||
|
|
||||||
Setting Configure Arguments
|
Setting Configure Arguments
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
@@ -1123,6 +1155,8 @@ arguments specified through ``EXTRA_OECONF`` or
|
|||||||
the output of the configure script's "DASHDASHhelp" option as a
|
the output of the configure script's "DASHDASHhelp" option as a
|
||||||
reference.
|
reference.
|
||||||
|
|
||||||
|
.. _sdk-sharing-files-between-recipes:
|
||||||
|
|
||||||
Sharing Files Between Recipes
|
Sharing Files Between Recipes
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
@@ -1145,6 +1179,8 @@ are cataloged in manifests in order to ensure they can be removed later
|
|||||||
when a recipe is modified or removed. Thus, the sysroot is able to
|
when a recipe is modified or removed. Thus, the sysroot is able to
|
||||||
remain free from stale files.
|
remain free from stale files.
|
||||||
|
|
||||||
|
.. _sdk-packaging:
|
||||||
|
|
||||||
Packaging
|
Packaging
|
||||||
---------
|
---------
|
||||||
|
|
||||||
@@ -1185,6 +1221,8 @@ you do not even need to set these variables in your recipe unless the
|
|||||||
software the recipe is building installs files into non-standard
|
software the recipe is building installs files into non-standard
|
||||||
locations.
|
locations.
|
||||||
|
|
||||||
|
.. _sdk-restoring-the-target-device-to-its-original-state:
|
||||||
|
|
||||||
Restoring the Target Device to its Original State
|
Restoring the Target Device to its Original State
|
||||||
=================================================
|
=================================================
|
||||||
|
|
||||||
@@ -1225,6 +1263,8 @@ target machine.
|
|||||||
and package manager operations on the target device. Doing so could
|
and package manager operations on the target device. Doing so could
|
||||||
result in a conflicting set of files.
|
result in a conflicting set of files.
|
||||||
|
|
||||||
|
.. _sdk-installing-additional-items-into-the-extensible-sdk:
|
||||||
|
|
||||||
Installing Additional Items Into the Extensible SDK
|
Installing Additional Items Into the Extensible SDK
|
||||||
===================================================
|
===================================================
|
||||||
|
|
||||||
@@ -1258,6 +1298,8 @@ takes significantly longer than installing the pre-built artifact. Also,
|
|||||||
if no recipe exists for the item you want to add to the SDK, you must
|
if no recipe exists for the item you want to add to the SDK, you must
|
||||||
instead add the item using the ``devtool add`` command.
|
instead add the item using the ``devtool add`` command.
|
||||||
|
|
||||||
|
.. _sdk-applying-updates-to-an-installed-extensible-sdk:
|
||||||
|
|
||||||
Applying Updates to an Installed Extensible SDK
|
Applying Updates to an Installed Extensible SDK
|
||||||
===============================================
|
===============================================
|
||||||
|
|
||||||
@@ -1285,6 +1327,8 @@ path_to_update_directory
|
|||||||
The URL needs to point specifically to a published SDK and not to an
|
The URL needs to point specifically to a published SDK and not to an
|
||||||
SDK installer that you would download and install.
|
SDK installer that you would download and install.
|
||||||
|
|
||||||
|
.. _sdk-creating-a-derivative-sdk-with-additional-components:
|
||||||
|
|
||||||
Creating a Derivative SDK With Additional Components
|
Creating a Derivative SDK With Additional Components
|
||||||
====================================================
|
====================================================
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user
