Compare commits
614 Commits
2.5_M2
...
uninative-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1169ee6acc | ||
|
|
3beb837234 | ||
|
|
b2f7a5fbf5 | ||
|
|
fe9e4bbee7 | ||
|
|
e5f5aa5604 | ||
|
|
d1d088db28 | ||
|
|
d71a037bc4 | ||
|
|
9528afa1f2 | ||
|
|
ac91e7084f | ||
|
|
50178323e6 | ||
|
|
9a260d32c1 | ||
|
|
ed9924f814 | ||
|
|
08e76acbaf | ||
|
|
98e78f2e49 | ||
|
|
e49ac3eabb | ||
|
|
72d33a8bd5 | ||
|
|
17ba4f4f6a | ||
|
|
b65741860f | ||
|
|
12190f1779 | ||
|
|
712b3c172e | ||
|
|
f749fd990c | ||
|
|
4fb2ba48f2 | ||
|
|
1de8b49c69 | ||
|
|
3dc8a2bef3 | ||
|
|
1d93df6fdd | ||
|
|
cce01dc991 | ||
|
|
56b56aef12 | ||
|
|
07dd613a66 | ||
|
|
b2998df084 | ||
|
|
8b11f872de | ||
|
|
0275093054 | ||
|
|
27cb6b5543 | ||
|
|
e53eebb49d | ||
|
|
438685084d | ||
|
|
aa0c57f6a5 | ||
|
|
63fe020e5e | ||
|
|
c43ff6a8b2 | ||
|
|
d1b6e1892d | ||
|
|
e109e6bd7f | ||
|
|
00cb0ff014 | ||
|
|
1059e17036 | ||
|
|
f38a6e35e2 | ||
|
|
a2a243b49b | ||
|
|
cf4232212e | ||
|
|
128dd9ec60 | ||
|
|
0fa0baed74 | ||
|
|
0d4459e708 | ||
|
|
8e3839ce26 | ||
|
|
a7c9bc7020 | ||
|
|
3a8cce8b5c | ||
|
|
266b2d16fc | ||
|
|
b4992cf036 | ||
|
|
f73dcd454e | ||
|
|
240c3db54d | ||
|
|
be2982a630 | ||
|
|
ba9d8c5a39 | ||
|
|
551cb1f373 | ||
|
|
f1318b0421 | ||
|
|
8715b5f311 | ||
|
|
e5969c7ec7 | ||
|
|
6c99444c76 | ||
|
|
3c198a52ba | ||
|
|
12cb35e4da | ||
|
|
1260b3f259 | ||
|
|
3a7f48ebcb | ||
|
|
83cd2b3e77 | ||
|
|
ffa658dc8f | ||
|
|
f0ccd96a64 | ||
|
|
1f9d6427f4 | ||
|
|
22318836f6 | ||
|
|
e42aad1a75 | ||
|
|
68956c3a86 | ||
|
|
261b8ddf5b | ||
|
|
e6a66da9a9 | ||
|
|
709552d96a | ||
|
|
d2a270bf69 | ||
|
|
e164b46c30 | ||
|
|
da5622b7a9 | ||
|
|
3cc4408f3a | ||
|
|
a6ca00f2af | ||
|
|
d8de33b0c2 | ||
|
|
8a21fa144c | ||
|
|
62fe2aa492 | ||
|
|
3c3505d588 | ||
|
|
da839dce3a | ||
|
|
0b60cf4cd7 | ||
|
|
2cf3698b06 | ||
|
|
6aa6a4699a | ||
|
|
f8e48db172 | ||
|
|
bbb425141e | ||
|
|
9e6be8b149 | ||
|
|
5b63a64f7f | ||
|
|
46a2d5ef5c | ||
|
|
395a4c8aee | ||
|
|
9fc1378a53 | ||
|
|
4a566242ab | ||
|
|
1ac7ffcbdf | ||
|
|
25c3d4e31d | ||
|
|
c141184cc7 | ||
|
|
e5f258cece | ||
|
|
4678ab168f | ||
|
|
23afd66b01 | ||
|
|
071489bb39 | ||
|
|
eee3ee5c5b | ||
|
|
d1e6aa57f7 | ||
|
|
40cdf6dd78 | ||
|
|
4d9519951c | ||
|
|
0302d02482 | ||
|
|
160e7b0875 | ||
|
|
c0d1858705 | ||
|
|
b949ac0f5e | ||
|
|
98fb2735cc | ||
|
|
8701fe54a8 | ||
|
|
3ffafcd9cf | ||
|
|
020915eb9b | ||
|
|
58472bc7d0 | ||
|
|
13fd7abbe0 | ||
|
|
02b8eae8c7 | ||
|
|
b6ff2564e9 | ||
|
|
29af62dfa0 | ||
|
|
dc2e108efe | ||
|
|
7a4ca89b55 | ||
|
|
26227695b3 | ||
|
|
ff9a4d5989 | ||
|
|
5e039c33d9 | ||
|
|
3449ae0f5d | ||
|
|
7e9b658196 | ||
|
|
24c88e544b | ||
|
|
8451fd7139 | ||
|
|
32925a582f | ||
|
|
8cc106d403 | ||
|
|
00acdebbed | ||
|
|
b84b422340 | ||
|
|
dbe0736341 | ||
|
|
49c638264c | ||
|
|
93e0e5f5fc | ||
|
|
46bb764616 | ||
|
|
b6e36c0197 | ||
|
|
9703185a83 | ||
|
|
bfd48060e3 | ||
|
|
3afd4a5fa0 | ||
|
|
531f7b4445 | ||
|
|
067ef24d2e | ||
|
|
a9921f64a7 | ||
|
|
00ab4a3a54 | ||
|
|
41f638fad9 | ||
|
|
a5a7ab8320 | ||
|
|
ff748ed826 | ||
|
|
fc723b156b | ||
|
|
3fff020bc3 | ||
|
|
5d793654b7 | ||
|
|
0230177d6d | ||
|
|
649d3aaf2c | ||
|
|
9d325d257e | ||
|
|
d0256e5470 | ||
|
|
85b3207a34 | ||
|
|
8a0727360d | ||
|
|
d41bcbdebf | ||
|
|
dc7ec9b8e0 | ||
|
|
420e9919c8 | ||
|
|
977c4f8a44 | ||
|
|
be18eff139 | ||
|
|
bd5424f5b0 | ||
|
|
2564712363 | ||
|
|
55baf5b707 | ||
|
|
4e884c8723 | ||
|
|
c2381e3a69 | ||
|
|
20a93757a3 | ||
|
|
be4c9df542 | ||
|
|
49f7c2cd87 | ||
|
|
1a992fd418 | ||
|
|
2bce61ee41 | ||
|
|
5a351c2aaa | ||
|
|
6a80053628 | ||
|
|
8006a9c95b | ||
|
|
59d70a95b3 | ||
|
|
ce2a11c25c | ||
|
|
4372294637 | ||
|
|
d7d3d341d2 | ||
|
|
615e700f7a | ||
|
|
e76cba5ae1 | ||
|
|
5925bfe412 | ||
|
|
da2e820471 | ||
|
|
824525d94b | ||
|
|
2aa530f24a | ||
|
|
9b8767a667 | ||
|
|
e923fe7dfa | ||
|
|
c89db29fa7 | ||
|
|
40d61125e6 | ||
|
|
fabbc9aeb1 | ||
|
|
ba9eed7fd9 | ||
|
|
bcbc7bbc4f | ||
|
|
a51236a244 | ||
|
|
52de574e0d | ||
|
|
d50b9c511e | ||
|
|
f0a5815732 | ||
|
|
c2feb21a5d | ||
|
|
1a5a0b409b | ||
|
|
d3534c018f | ||
|
|
8b8445461a | ||
|
|
bc326572ee | ||
|
|
90d66dc252 | ||
|
|
2327e0f585 | ||
|
|
5796b037d5 | ||
|
|
8eb7e66246 | ||
|
|
088b3b8c4c | ||
|
|
8557475e37 | ||
|
|
28ddb2d05c | ||
|
|
357b000cd3 | ||
|
|
ae354a1900 | ||
|
|
82f139e003 | ||
|
|
02fa98e663 | ||
|
|
10a51d758f | ||
|
|
80c2d5086a | ||
|
|
2a8d728681 | ||
|
|
795b4b4563 | ||
|
|
424ac46c17 | ||
|
|
b0d9ce473f | ||
|
|
823ca27a79 | ||
|
|
65f945574a | ||
|
|
2d19694b58 | ||
|
|
19916cfdab | ||
|
|
cc8b81abd6 | ||
|
|
937a672368 | ||
|
|
e267a8641e | ||
|
|
0a8957fa94 | ||
|
|
e815381e94 | ||
|
|
2036d809ab | ||
|
|
54c9794f0b | ||
|
|
cdf4f79a5d | ||
|
|
1fda08bc4e | ||
|
|
4759fa8830 | ||
|
|
5a3e97bf8c | ||
|
|
92ee38410f | ||
|
|
efc08b7b6f | ||
|
|
c6f2b40f1d | ||
|
|
bb4ab5a653 | ||
|
|
e701fdeeba | ||
|
|
35549a7a45 | ||
|
|
505a31c1a1 | ||
|
|
01658a83d7 | ||
|
|
422c6488d3 | ||
|
|
52331ef4d0 | ||
|
|
30ad0a8896 | ||
|
|
841458c70c | ||
|
|
e21faa4a9c | ||
|
|
3461d890d3 | ||
|
|
6f488928cb | ||
|
|
189851f9d6 | ||
|
|
68823387c3 | ||
|
|
a70b32c5a0 | ||
|
|
2c0d16904d | ||
|
|
c46b027622 | ||
|
|
afb5009c3b | ||
|
|
324da65885 | ||
|
|
8ec37c0811 | ||
|
|
de4b8febd8 | ||
|
|
2f56415059 | ||
|
|
03b758892b | ||
|
|
8994767745 | ||
|
|
b194e2f15f | ||
|
|
307c07fb8d | ||
|
|
d402a2a071 | ||
|
|
51b681cb3d | ||
|
|
7d06f1fc26 | ||
|
|
bcdfc5c993 | ||
|
|
2d3e099497 | ||
|
|
bdb026db90 | ||
|
|
4bc71faf76 | ||
|
|
4604ab6198 | ||
|
|
80feb637a4 | ||
|
|
e8c7c36c60 | ||
|
|
2f48cb606b | ||
|
|
3bb00af9ab | ||
|
|
0465558e83 | ||
|
|
e295135ba1 | ||
|
|
2f40a87424 | ||
|
|
9b49883f2f | ||
|
|
98aff12d9c | ||
|
|
4118603777 | ||
|
|
c3582d3669 | ||
|
|
3b0bb3b5a4 | ||
|
|
629619dce7 | ||
|
|
6497ebc0d6 | ||
|
|
d5182b3529 | ||
|
|
eac885c618 | ||
|
|
805fb404eb | ||
|
|
3eff72cc1f | ||
|
|
6a07697a6d | ||
|
|
1b7a9d4f63 | ||
|
|
0b1ca745f5 | ||
|
|
1bcbe159aa | ||
|
|
180513fea4 | ||
|
|
6ccc45aed5 | ||
|
|
06a1b9be8a | ||
|
|
389fcc6c40 | ||
|
|
1226d1b737 | ||
|
|
4e3d3c122f | ||
|
|
e15ce3ff0a | ||
|
|
3abf75f923 | ||
|
|
a63aa5c0e4 | ||
|
|
281e2b8cab | ||
|
|
251b430ec7 | ||
|
|
1c7307614a | ||
|
|
70a6314269 | ||
|
|
d6cd82a5a1 | ||
|
|
eaa9356744 | ||
|
|
b487251b86 | ||
|
|
f5fed8115a | ||
|
|
baf263e40f | ||
|
|
20e4d309e1 | ||
|
|
3294e0e79a | ||
|
|
b803bbcad2 | ||
|
|
dbf9346eaf | ||
|
|
1f334a3df0 | ||
|
|
12e7c34583 | ||
|
|
e3644b3a71 | ||
|
|
237a7d08af | ||
|
|
430a04d442 | ||
|
|
2e07b1c0bb | ||
|
|
6c0c3220aa | ||
|
|
da70697fc3 | ||
|
|
98b0176d9a | ||
|
|
d6caabd827 | ||
|
|
d87f108f40 | ||
|
|
20ba50bc8c | ||
|
|
ed551d23d7 | ||
|
|
d96f1d2379 | ||
|
|
c4172f3f76 | ||
|
|
704d0b114d | ||
|
|
f9c90755eb | ||
|
|
a63b504f9b | ||
|
|
4632a4511c | ||
|
|
70acbc6de4 | ||
|
|
ee997e9c54 | ||
|
|
188f161939 | ||
|
|
3bbf10c364 | ||
|
|
6bb3595ec5 | ||
|
|
d9046f8fd8 | ||
|
|
c2f4f93da2 | ||
|
|
d594496190 | ||
|
|
1dd146d5ac | ||
|
|
0e469a5c4e | ||
|
|
bdd9eeb341 | ||
|
|
5fcbfe8efd | ||
|
|
3629ba986b | ||
|
|
dfb9ffbafd | ||
|
|
bb5a8acd65 | ||
|
|
2f030dfc08 | ||
|
|
ec03a3a008 | ||
|
|
21931e30d6 | ||
|
|
c2e722f6a6 | ||
|
|
34abc2ca48 | ||
|
|
e5946b39c1 | ||
|
|
68512b7416 | ||
|
|
df78c6a5af | ||
|
|
a0773dfe35 | ||
|
|
ce09f38cf3 | ||
|
|
b2d17f2319 | ||
|
|
438372592d | ||
|
|
3de07043a4 | ||
|
|
cb820e01d5 | ||
|
|
437a508122 | ||
|
|
02641ef12d | ||
|
|
e4eae4ce34 | ||
|
|
f4ed0b2a67 | ||
|
|
22b5ced5c3 | ||
|
|
edab86235d | ||
|
|
d9b07b640b | ||
|
|
10f37113c9 | ||
|
|
81bfe329bc | ||
|
|
a0dd49c956 | ||
|
|
83402fb9cb | ||
|
|
049027e16d | ||
|
|
406ea737f1 | ||
|
|
81b5154aaf | ||
|
|
bcf9c49f15 | ||
|
|
20b7f2c535 | ||
|
|
96a87ced10 | ||
|
|
17dd9c4a1b | ||
|
|
4f61b2ad2a | ||
|
|
c4ca3c4a5c | ||
|
|
feded5fe27 | ||
|
|
c723f7c92a | ||
|
|
4ae1f081a5 | ||
|
|
df1ead11d2 | ||
|
|
325096cd2a | ||
|
|
4873716c0c | ||
|
|
ccd664d8d0 | ||
|
|
dc62837cac | ||
|
|
4239d9d2db | ||
|
|
b9bf37ec67 | ||
|
|
51c6e1d1cb | ||
|
|
848aa6541f | ||
|
|
0001a4259e | ||
|
|
e895029e76 | ||
|
|
6f54921fb9 | ||
|
|
908f072b74 | ||
|
|
e6ae22abf1 | ||
|
|
95a59ddf94 | ||
|
|
8028cb56f9 | ||
|
|
78311acbd3 | ||
|
|
2ae11f4a33 | ||
|
|
7c4146f03c | ||
|
|
eff20ce478 | ||
|
|
eb3b60d505 | ||
|
|
c2f72f6cb7 | ||
|
|
bf87d60cb5 | ||
|
|
618fa564d1 | ||
|
|
d0bad10a13 | ||
|
|
74891289d8 | ||
|
|
e4878cc197 | ||
|
|
b678d594ba | ||
|
|
fc73574d8d | ||
|
|
c427ed474c | ||
|
|
bed1fb22ec | ||
|
|
0f613f82c4 | ||
|
|
89cc1315b3 | ||
|
|
45f2a2f155 | ||
|
|
4cf6cf65a4 | ||
|
|
a54c59f2a2 | ||
|
|
97df5555ba | ||
|
|
a046b8555c | ||
|
|
84bcd1fd58 | ||
|
|
a1304721b5 | ||
|
|
02c4f3a484 | ||
|
|
502ee8e863 | ||
|
|
c129cbe1b8 | ||
|
|
cf85c5a490 | ||
|
|
f51f28b7b9 | ||
|
|
15f78b0ff3 | ||
|
|
971a3c0e2a | ||
|
|
8a229332a0 | ||
|
|
832934efd6 | ||
|
|
3e10060c99 | ||
|
|
60ff32e38d | ||
|
|
4a659dd584 | ||
|
|
f1dfc8bbe1 | ||
|
|
b20373e72d | ||
|
|
6d0d577767 | ||
|
|
0535570911 | ||
|
|
ab4a7a214c | ||
|
|
25917e58f4 | ||
|
|
d40532ca61 | ||
|
|
15816a519a | ||
|
|
57a357afc2 | ||
|
|
9726b66a1b | ||
|
|
54dd687620 | ||
|
|
3f6eb216ef | ||
|
|
2d9d05f2fd | ||
|
|
be15c2fefd | ||
|
|
89c4bd0dfb | ||
|
|
3916259f9a | ||
|
|
528835ba23 | ||
|
|
4faa630476 | ||
|
|
1a97243bf8 | ||
|
|
7899fd683b | ||
|
|
9c3b84d5ee | ||
|
|
48c94077ff | ||
|
|
d99333b065 | ||
|
|
e23d41fed9 | ||
|
|
daf59ef368 | ||
|
|
f16d8be9ab | ||
|
|
931f57080f | ||
|
|
f2d5967982 | ||
|
|
bb3a634226 | ||
|
|
3e76b1b50c | ||
|
|
85fa5ee825 | ||
|
|
f72a121233 | ||
|
|
afbc3f4427 | ||
|
|
8abf7d89a5 | ||
|
|
fe70fd1a03 | ||
|
|
9c44aee83d | ||
|
|
c75985f40a | ||
|
|
1a78cdaea6 | ||
|
|
30a206f8da | ||
|
|
cfdf4c78eb | ||
|
|
4b3ebf00dc | ||
|
|
31f0dda70b | ||
|
|
64b1736114 | ||
|
|
da0973642d | ||
|
|
813772451f | ||
|
|
b509d336c7 | ||
|
|
c56f781994 | ||
|
|
56729c9087 | ||
|
|
8d320536dc | ||
|
|
72be05b9f5 | ||
|
|
01a70aaea9 | ||
|
|
d74420e778 | ||
|
|
d9ead424c5 | ||
|
|
27072387fa | ||
|
|
30335a6269 | ||
|
|
64c70a7137 | ||
|
|
d924e446a3 | ||
|
|
6512622882 | ||
|
|
5eed9a3fbe | ||
|
|
e5b1c55760 | ||
|
|
675ba3064f | ||
|
|
d1249c2ba8 | ||
|
|
1c4908a1fb | ||
|
|
2da591b5c2 | ||
|
|
ca354ba536 | ||
|
|
0b70161692 | ||
|
|
4d623003f3 | ||
|
|
31bd483368 | ||
|
|
1f0a763637 | ||
|
|
8a99429c0d | ||
|
|
12a68f02bc | ||
|
|
a661287da3 | ||
|
|
f9db48724f | ||
|
|
52b871825f | ||
|
|
ae06e04cd2 | ||
|
|
ebc7de0948 | ||
|
|
30b91e6d89 | ||
|
|
355103f8cf | ||
|
|
c6f8814461 | ||
|
|
0d52f18d39 | ||
|
|
09e9f81c34 | ||
|
|
32651058c0 | ||
|
|
a59c06833c | ||
|
|
635bec34d0 | ||
|
|
0d45cf58ed | ||
|
|
bb6a218b6f | ||
|
|
b1f5509fc8 | ||
|
|
a0c5167103 | ||
|
|
b48c884f47 | ||
|
|
e4948134a8 | ||
|
|
9b4575b508 | ||
|
|
98a0739e59 | ||
|
|
16e417be63 | ||
|
|
99980546fa | ||
|
|
a60d9e2917 | ||
|
|
00f87f8416 | ||
|
|
937b66e9d1 | ||
|
|
6bf7b263ff | ||
|
|
707224b57a | ||
|
|
8097a978ce | ||
|
|
e2060287db | ||
|
|
60cfd0785b | ||
|
|
c06a654c1d | ||
|
|
160b202d62 | ||
|
|
29ae3d668c | ||
|
|
b797db0db4 | ||
|
|
64c37b5400 | ||
|
|
0ef765ed02 | ||
|
|
bc6a19d6a7 | ||
|
|
9f478d1358 | ||
|
|
44ea6ded0e | ||
|
|
dafa1ac864 | ||
|
|
2ae62f0d2b | ||
|
|
38fd8bbb7f | ||
|
|
0899c332f7 | ||
|
|
110f56dfa5 | ||
|
|
aa81e94f80 | ||
|
|
d00c35a181 | ||
|
|
18b862304b | ||
|
|
abe466bbd2 | ||
|
|
58ce11215d | ||
|
|
5f45587b4d | ||
|
|
bcd32abc3b | ||
|
|
35d48db298 | ||
|
|
5a8e74af21 | ||
|
|
b112b094cc | ||
|
|
e84b1b6358 | ||
|
|
6e06df7390 | ||
|
|
f7a97647ff | ||
|
|
5a23f93c3d | ||
|
|
a2efc9321a | ||
|
|
b7b552bd06 | ||
|
|
4a6b872bd4 | ||
|
|
9c6fc607ff | ||
|
|
f994f104d8 | ||
|
|
f26ea9b3dd | ||
|
|
60190ae960 | ||
|
|
dcfe332645 | ||
|
|
ee9a355d41 | ||
|
|
561d0ce503 | ||
|
|
659d10a64c | ||
|
|
4cce58051b | ||
|
|
a1027acfd7 | ||
|
|
aa5d5a50c6 | ||
|
|
85ddc66f3d | ||
|
|
d75fc2b878 | ||
|
|
7f6b919759 | ||
|
|
5a74a370ed | ||
|
|
232d382d17 | ||
|
|
bf4d336914 | ||
|
|
e3c3e30a0a | ||
|
|
c3d4f290d5 | ||
|
|
691fe3f456 | ||
|
|
1bd9013c31 | ||
|
|
475a6187dc | ||
|
|
17528da6b9 | ||
|
|
96ddd5e667 | ||
|
|
95fbee5af3 | ||
|
|
7aa9be36db | ||
|
|
39e48c8b06 | ||
|
|
863df3c81f | ||
|
|
98c4f485f0 | ||
|
|
7abd40cd26 | ||
|
|
ccd25825a0 | ||
|
|
7976479ddb | ||
|
|
a62c43a363 | ||
|
|
5f0c4c785d | ||
|
|
1d22ecc138 | ||
|
|
a1179425a9 | ||
|
|
fa9c077068 | ||
|
|
d38e1e2c2e | ||
|
|
bb40162b2b | ||
|
|
8a8c31db1a | ||
|
|
0da28271bf | ||
|
|
13884b26b6 | ||
|
|
d2ade75708 | ||
|
|
95dbd9d287 |
@@ -23,3 +23,4 @@ therefore provides compatibility with the following caveats:
|
||||
* libpng 1.2 isn't provided; oe-core includes the latest release of libpng
|
||||
instead.
|
||||
|
||||
* pax (POSIX standard archive) tool is not provided.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# ex:ts=4:sw=4:sts=4:et
|
||||
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
|
||||
#
|
||||
# Copyright (C) 2012 Wind River Systems, Inc.
|
||||
# Copyright (C) 2012, 2018 Wind River Systems, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License version 2 as
|
||||
@@ -18,51 +18,68 @@
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
#
|
||||
# This is used for dumping the bb_cache.dat, the output format is:
|
||||
# recipe_path PN PV PACKAGES
|
||||
# Used for dumping the bb_cache.dat
|
||||
#
|
||||
import os
|
||||
import sys
|
||||
import warnings
|
||||
import argparse
|
||||
|
||||
# For importing bb.cache
|
||||
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])), '../lib'))
|
||||
from bb.cache import CoreRecipeInfo
|
||||
|
||||
import pickle as pickle
|
||||
import pickle
|
||||
|
||||
def main(argv=None):
|
||||
"""
|
||||
Get the mapping for the target recipe.
|
||||
"""
|
||||
if len(argv) != 1:
|
||||
print("Error, need one argument!", file=sys.stderr)
|
||||
return 2
|
||||
class DumpCache(object):
|
||||
def __init__(self):
|
||||
parser = argparse.ArgumentParser(
|
||||
description="bb_cache.dat's dumper",
|
||||
epilog="Use %(prog)s --help to get help")
|
||||
parser.add_argument("-r", "--recipe",
|
||||
help="specify the recipe, default: all recipes", action="store")
|
||||
parser.add_argument("-m", "--members",
|
||||
help = "specify the member, use comma as separator for multiple ones, default: all members", action="store", default="")
|
||||
parser.add_argument("-s", "--skip",
|
||||
help = "skip skipped recipes", action="store_true")
|
||||
parser.add_argument("cachefile",
|
||||
help = "specify bb_cache.dat", nargs = 1, action="store", default="")
|
||||
|
||||
cachefile = argv[0]
|
||||
self.args = parser.parse_args()
|
||||
|
||||
with open(cachefile, "rb") as cachefile:
|
||||
pickled = pickle.Unpickler(cachefile)
|
||||
while cachefile:
|
||||
try:
|
||||
key = pickled.load()
|
||||
val = pickled.load()
|
||||
except Exception:
|
||||
break
|
||||
if isinstance(val, CoreRecipeInfo) and (not val.skipped):
|
||||
pn = val.pn
|
||||
# Filter out the native recipes.
|
||||
if key.startswith('virtual:native:') or pn.endswith("-native"):
|
||||
continue
|
||||
def main(self):
|
||||
with open(self.args.cachefile[0], "rb") as cachefile:
|
||||
pickled = pickle.Unpickler(cachefile)
|
||||
while True:
|
||||
try:
|
||||
key = pickled.load()
|
||||
val = pickled.load()
|
||||
except Exception:
|
||||
break
|
||||
if isinstance(val, CoreRecipeInfo):
|
||||
pn = val.pn
|
||||
|
||||
# 1.0 is the default version for a no PV recipe.
|
||||
if "pv" in val.__dict__:
|
||||
pv = val.pv
|
||||
else:
|
||||
pv = "1.0"
|
||||
if self.args.recipe and self.args.recipe != pn:
|
||||
continue
|
||||
|
||||
print("%s %s %s %s" % (key, pn, pv, ' '.join(val.packages)))
|
||||
if self.args.skip and val.skipped:
|
||||
continue
|
||||
|
||||
if self.args.members:
|
||||
out = key
|
||||
for member in self.args.members.split(','):
|
||||
out += ": %s" % val.__dict__.get(member)
|
||||
print("%s" % out)
|
||||
else:
|
||||
print("%s: %s" % (key, val.__dict__))
|
||||
elif not self.args.recipe:
|
||||
print("%s %s" % (key, val))
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main(sys.argv[1:]))
|
||||
|
||||
try:
|
||||
dump = DumpCache()
|
||||
ret = dump.main()
|
||||
except Exception as esc:
|
||||
ret = 1
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
sys.exit(ret)
|
||||
|
||||
@@ -777,6 +777,43 @@
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='repo-fetcher'>
|
||||
<title>Repo Fetcher (<filename>repo://</filename>)</title>
|
||||
|
||||
<para>
|
||||
This fetcher submodule fetches code from
|
||||
<filename>google-repo</filename> source control system.
|
||||
The fetcher works by initiating and syncing sources of the
|
||||
repository into
|
||||
<link linkend='var-REPODIR'><filename>REPODIR</filename></link>,
|
||||
which is usually
|
||||
<link linkend='var-DL_DIR'><filename>DL_DIR</filename></link><filename>/repo</filename>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This fetcher supports the following parameters:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<emphasis>"protocol":</emphasis>
|
||||
Protocol to fetch the repository manifest (default: git).
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>"branch":</emphasis>
|
||||
Branch or tag of repository to get (default: master).
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>"manifest":</emphasis>
|
||||
Name of the manifest file (default: <filename>default.xml</filename>).
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
Here are some example URLs:
|
||||
<literallayout class='monospaced'>
|
||||
SRC_URI = "repo://REPOROOT;protocol=git;branch=some_branch;manifest=my_manifest.xml"
|
||||
SRC_URI = "repo://REPOROOT;protocol=file;branch=some_branch;manifest=my_manifest.xml"
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='other-fetchers'>
|
||||
<title>Other Fetchers</title>
|
||||
|
||||
@@ -795,9 +832,6 @@
|
||||
<listitem><para>
|
||||
Secure Shell (<filename>ssh://</filename>)
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Repo (<filename>repo://</filename>)
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
OSC (<filename>osc://</filename>)
|
||||
</para></listitem>
|
||||
|
||||
@@ -383,10 +383,10 @@
|
||||
code separate from the general metadata used by BitBake.
|
||||
Thus, this example creates and uses a layer called "mylayer".
|
||||
<note>
|
||||
You can find additional information on layers at
|
||||
<ulink url='http://www.yoctoproject.org/docs/2.3/bitbake-user-manual/bitbake-user-manual.html#layers'></ulink>.
|
||||
</note>
|
||||
</para>
|
||||
You can find additional information on layers in the
|
||||
"<link linkend='layers'>Layers</link>" section.
|
||||
</note></para>
|
||||
|
||||
<para>Minimally, you need a recipe file and a layer configuration
|
||||
file in your layer.
|
||||
The configuration file needs to be in the <filename>conf</filename>
|
||||
|
||||
@@ -564,8 +564,12 @@
|
||||
Writes the event log of the build to a bitbake event
|
||||
json file. Use '' (empty string) to assign the name
|
||||
automatically.
|
||||
--runall=RUNALL Run the specified task for all build targets and their
|
||||
dependencies.
|
||||
--runall=RUNALL Run the specified task for any recipe in the taskgraph
|
||||
of the specified target (even if it wouldn't otherwise
|
||||
have run).
|
||||
--runonly=RUNONLY Run only the specified task within the taskgraph of
|
||||
the specified targets (and any task dependencies those
|
||||
tasks may have).
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -2651,14 +2651,19 @@
|
||||
OpenEmbedded metadata-based example.
|
||||
</para>
|
||||
|
||||
<!--
|
||||
<para>
|
||||
This list is a place holder of content existed from previous work
|
||||
Bug 12030: This list is a place holder of content existed from previous work
|
||||
on the manual.
|
||||
Some or all of it probably needs integrated into the subsections
|
||||
that make up this section.
|
||||
For now, I have just provided a short glossary-like description
|
||||
for each variable.
|
||||
Ultimately, this list goes away.
|
||||
</para>
|
||||
-->
|
||||
|
||||
<para>
|
||||
The following list describes related variables:
|
||||
<itemizedlist>
|
||||
<listitem><para><filename>STAMP</filename>:
|
||||
The base path to create stamp files.</para></listitem>
|
||||
|
||||
@@ -2089,6 +2089,16 @@
|
||||
</glossdef>
|
||||
</glossentry>
|
||||
|
||||
<glossentry id='var-REPODIR'><glossterm>REPODIR</glossterm>
|
||||
<glossdef>
|
||||
<para>
|
||||
The directory in which a local copy of a
|
||||
<filename>google-repo</filename> directory is stored
|
||||
when it is synced.
|
||||
</para>
|
||||
</glossdef>
|
||||
</glossentry>
|
||||
|
||||
<glossentry id='var-RPROVIDES'><glossterm>RPROVIDES</glossterm>
|
||||
<glossdef>
|
||||
<para>
|
||||
|
||||
@@ -395,7 +395,7 @@ class Cache(NoCache):
|
||||
self.has_cache = True
|
||||
self.cachefile = getCacheFile(self.cachedir, "bb_cache.dat", self.data_hash)
|
||||
|
||||
logger.debug(1, "Using cache in '%s'", self.cachedir)
|
||||
logger.debug(1, "Cache dir: %s", self.cachedir)
|
||||
bb.utils.mkdirhier(self.cachedir)
|
||||
|
||||
cache_ok = True
|
||||
@@ -408,6 +408,8 @@ class Cache(NoCache):
|
||||
self.load_cachefile()
|
||||
elif os.path.isfile(self.cachefile):
|
||||
logger.info("Out of date cache found, rebuilding...")
|
||||
else:
|
||||
logger.debug(1, "Cache file %s not found, building..." % self.cachefile)
|
||||
|
||||
def load_cachefile(self):
|
||||
cachesize = 0
|
||||
@@ -424,6 +426,7 @@ class Cache(NoCache):
|
||||
|
||||
for cache_class in self.caches_array:
|
||||
cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
|
||||
logger.debug(1, 'Loading cache file: %s' % cachefile)
|
||||
with open(cachefile, "rb") as cachefile:
|
||||
pickled = pickle.Unpickler(cachefile)
|
||||
# Check cache version information
|
||||
|
||||
@@ -516,6 +516,8 @@ class BBCooker:
|
||||
fn = runlist[0][3]
|
||||
else:
|
||||
envdata = self.data
|
||||
data.expandKeys(envdata)
|
||||
parse.ast.runAnonFuncs(envdata)
|
||||
|
||||
if fn:
|
||||
try:
|
||||
@@ -536,7 +538,6 @@ class BBCooker:
|
||||
logger.plain(env.getvalue())
|
||||
|
||||
# emit the metadata which isnt valid shell
|
||||
data.expandKeys(envdata)
|
||||
for e in sorted(envdata.keys()):
|
||||
if envdata.getVarFlag(e, 'func', False) and envdata.getVarFlag(e, 'python', False):
|
||||
logger.plain("\npython %s () {\n%s}\n", e, envdata.getVar(e, False))
|
||||
@@ -1170,6 +1171,7 @@ class BBCooker:
|
||||
elif regex == "":
|
||||
parselog.debug(1, "BBFILE_PATTERN_%s is empty" % c)
|
||||
errors = False
|
||||
continue
|
||||
else:
|
||||
try:
|
||||
cre = re.compile(regex)
|
||||
@@ -1603,8 +1605,6 @@ class BBCooker:
|
||||
|
||||
if self.parser:
|
||||
self.parser.shutdown(clean=not force, force=force)
|
||||
self.notifier.stop()
|
||||
self.confignotifier.stop()
|
||||
|
||||
def finishcommand(self):
|
||||
self.state = state.initial
|
||||
@@ -1807,21 +1807,25 @@ class CookerCollectFiles(object):
|
||||
realfn, cls, mc = bb.cache.virtualfn2realfn(p)
|
||||
priorities[p] = self.calc_bbfile_priority(realfn, matched)
|
||||
|
||||
# Don't show the warning if the BBFILE_PATTERN did match .bbappend files
|
||||
unmatched = set()
|
||||
for _, _, regex, pri in self.bbfile_config_priorities:
|
||||
if not regex in matched:
|
||||
unmatched.add(regex)
|
||||
|
||||
def findmatch(regex):
|
||||
# Don't show the warning if the BBFILE_PATTERN did match .bbappend files
|
||||
def find_bbappend_match(regex):
|
||||
for b in self.bbappends:
|
||||
(bbfile, append) = b
|
||||
if regex.match(append):
|
||||
# If the bbappend is matched by already "matched set", return False
|
||||
for matched_regex in matched:
|
||||
if matched_regex.match(append):
|
||||
return False
|
||||
return True
|
||||
return False
|
||||
|
||||
for unmatch in unmatched.copy():
|
||||
if findmatch(unmatch):
|
||||
if find_bbappend_match(unmatch):
|
||||
unmatched.remove(unmatch)
|
||||
|
||||
for collection, pattern, regex, _ in self.bbfile_config_priorities:
|
||||
|
||||
@@ -143,7 +143,8 @@ class CookerConfiguration(object):
|
||||
self.writeeventlog = False
|
||||
self.server_only = False
|
||||
self.limited_deps = False
|
||||
self.runall = None
|
||||
self.runall = []
|
||||
self.runonly = []
|
||||
|
||||
self.env = {}
|
||||
|
||||
|
||||
@@ -643,26 +643,25 @@ def verify_donestamp(ud, d, origud=None):
|
||||
if not ud.needdonestamp or (origud and not origud.needdonestamp):
|
||||
return True
|
||||
|
||||
if not os.path.exists(ud.donestamp):
|
||||
if not os.path.exists(ud.localpath):
|
||||
# local path does not exist
|
||||
if os.path.exists(ud.donestamp):
|
||||
# done stamp exists, but the downloaded file does not; the done stamp
|
||||
# must be incorrect, re-trigger the download
|
||||
bb.utils.remove(ud.donestamp)
|
||||
return False
|
||||
|
||||
if (not ud.method.supports_checksum(ud) or
|
||||
(origud and not origud.method.supports_checksum(origud))):
|
||||
# done stamp exists, checksums not supported; assume the local file is
|
||||
# current
|
||||
return True
|
||||
|
||||
if not os.path.exists(ud.localpath):
|
||||
# done stamp exists, but the downloaded file does not; the done stamp
|
||||
# must be incorrect, re-trigger the download
|
||||
bb.utils.remove(ud.donestamp)
|
||||
return False
|
||||
# if done stamp exists and checksums not supported; assume the local
|
||||
# file is current
|
||||
return os.path.exists(ud.donestamp)
|
||||
|
||||
precomputed_checksums = {}
|
||||
# Only re-use the precomputed checksums if the donestamp is newer than the
|
||||
# file. Do not rely on the mtime of directories, though. If ud.localpath is
|
||||
# a directory, there will probably not be any checksums anyway.
|
||||
if (os.path.isdir(ud.localpath) or
|
||||
if os.path.exists(ud.donestamp) and (os.path.isdir(ud.localpath) or
|
||||
os.path.getmtime(ud.localpath) < os.path.getmtime(ud.donestamp)):
|
||||
try:
|
||||
with open(ud.donestamp, "rb") as cachefile:
|
||||
|
||||
@@ -125,6 +125,9 @@ class GitProgressHandler(bb.progress.LineFilterProgressHandler):
|
||||
|
||||
|
||||
class Git(FetchMethod):
|
||||
bitbake_dir = os.path.abspath(os.path.join(os.path.dirname(os.path.join(os.path.abspath(__file__))), '..', '..', '..'))
|
||||
make_shallow_path = os.path.join(bitbake_dir, 'bin', 'git-make-shallow')
|
||||
|
||||
"""Class to fetch a module or modules from git repositories"""
|
||||
def init(self, d):
|
||||
pass
|
||||
@@ -446,7 +449,7 @@ class Git(FetchMethod):
|
||||
shallow_branches.append(r)
|
||||
|
||||
# Make the repository shallow
|
||||
shallow_cmd = ['git', 'make-shallow', '-s']
|
||||
shallow_cmd = [self.make_shallow_path, '-s']
|
||||
for b in shallow_branches:
|
||||
shallow_cmd.append('-r')
|
||||
shallow_cmd.append(b)
|
||||
|
||||
@@ -195,9 +195,11 @@ class Npm(FetchMethod):
|
||||
outputurl = pdata['dist']['tarball']
|
||||
data[pkg] = {}
|
||||
data[pkg]['tgz'] = os.path.basename(outputurl)
|
||||
if not outputurl in fetchedlist:
|
||||
self._runwget(ud, d, "%s --directory-prefix=%s %s" % (self.basecmd, ud.prefixdir, outputurl), False)
|
||||
fetchedlist.append(outputurl)
|
||||
if outputurl in fetchedlist:
|
||||
return
|
||||
|
||||
self._runwget(ud, d, "%s --directory-prefix=%s %s" % (self.basecmd, ud.prefixdir, outputurl), False)
|
||||
fetchedlist.append(outputurl)
|
||||
|
||||
dependencies = pdata.get('dependencies', {})
|
||||
optionalDependencies = pdata.get('optionalDependencies', {})
|
||||
|
||||
@@ -292,8 +292,12 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters):
|
||||
help="Writes the event log of the build to a bitbake event json file. "
|
||||
"Use '' (empty string) to assign the name automatically.")
|
||||
|
||||
parser.add_option("", "--runall", action="store", dest="runall",
|
||||
help="Run the specified task for all build targets and their dependencies.")
|
||||
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).")
|
||||
|
||||
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).")
|
||||
|
||||
|
||||
options, targets = parser.parse_args(argv)
|
||||
|
||||
|
||||
@@ -134,8 +134,9 @@ def resolve_file(fn, d):
|
||||
if not newfn:
|
||||
raise IOError(errno.ENOENT, "file %s not found in %s" % (fn, bbpath))
|
||||
fn = newfn
|
||||
else:
|
||||
mark_dependency(d, fn)
|
||||
|
||||
mark_dependency(d, fn)
|
||||
if not os.path.isfile(fn):
|
||||
raise IOError(errno.ENOENT, "file %s not found" % fn)
|
||||
|
||||
|
||||
@@ -335,6 +335,12 @@ def handleInherit(statements, filename, lineno, m):
|
||||
classes = m.group(1)
|
||||
statements.append(InheritNode(filename, lineno, classes))
|
||||
|
||||
def runAnonFuncs(d):
|
||||
code = []
|
||||
for funcname in d.getVar("__BBANONFUNCS", False) or []:
|
||||
code.append("%s(d)" % funcname)
|
||||
bb.utils.better_exec("\n".join(code), {"d": d})
|
||||
|
||||
def finalize(fn, d, variant = None):
|
||||
saved_handlers = bb.event.get_handlers().copy()
|
||||
|
||||
@@ -349,10 +355,7 @@ def finalize(fn, d, variant = None):
|
||||
bb.event.fire(bb.event.RecipePreFinalise(fn), d)
|
||||
|
||||
bb.data.expandKeys(d)
|
||||
code = []
|
||||
for funcname in d.getVar("__BBANONFUNCS", False) or []:
|
||||
code.append("%s(d)" % funcname)
|
||||
bb.utils.better_exec("\n".join(code), {"d": d})
|
||||
runAnonFuncs(d)
|
||||
|
||||
tasklist = d.getVar('__BBTASKS', False) or []
|
||||
bb.event.fire(bb.event.RecipeTaskPreProcess(fn, list(tasklist)), d)
|
||||
|
||||
@@ -131,9 +131,6 @@ def handle(fn, d, include):
|
||||
|
||||
abs_fn = resolve_file(fn, d)
|
||||
|
||||
if include:
|
||||
bb.parse.mark_dependency(d, abs_fn)
|
||||
|
||||
# actual loading
|
||||
statements = get_statements(fn, abs_fn, base_name)
|
||||
|
||||
|
||||
@@ -134,9 +134,6 @@ def handle(fn, data, include):
|
||||
abs_fn = resolve_file(fn, data)
|
||||
f = open(abs_fn, 'r')
|
||||
|
||||
if include:
|
||||
bb.parse.mark_dependency(data, abs_fn)
|
||||
|
||||
statements = ast.StatementGroup()
|
||||
lineno = 0
|
||||
while True:
|
||||
|
||||
@@ -581,12 +581,6 @@ class RunQueueData:
|
||||
if t in taskData[mc].taskentries:
|
||||
depends.add(t)
|
||||
|
||||
def add_resolved_dependencies(mc, fn, tasknames, depends):
|
||||
for taskname in tasknames:
|
||||
tid = build_tid(mc, fn, taskname)
|
||||
if tid in self.runtaskentries:
|
||||
depends.add(tid)
|
||||
|
||||
for mc in taskData:
|
||||
for tid in taskData[mc].taskentries:
|
||||
|
||||
@@ -673,57 +667,106 @@ class RunQueueData:
|
||||
recursiveitasks[tid].append(newdep)
|
||||
|
||||
self.runtaskentries[tid].depends = depends
|
||||
# Remove all self references
|
||||
self.runtaskentries[tid].depends.discard(tid)
|
||||
|
||||
#self.dump_data()
|
||||
|
||||
self.init_progress_reporter.next_stage()
|
||||
|
||||
# Resolve recursive 'recrdeptask' dependencies (Part B)
|
||||
#
|
||||
# e.g. do_sometask[recrdeptask] = "do_someothertask"
|
||||
# (makes sure sometask runs after someothertask of all DEPENDS, RDEPENDS and intertask dependencies, recursively)
|
||||
# We need to do this separately since we need all of runtaskentries[*].depends to be complete before this is processed
|
||||
self.init_progress_reporter.next_stage(len(recursivetasks))
|
||||
extradeps = {}
|
||||
for taskcounter, tid in enumerate(recursivetasks):
|
||||
extradeps[tid] = set(self.runtaskentries[tid].depends)
|
||||
|
||||
tasknames = recursivetasks[tid]
|
||||
seendeps = set()
|
||||
# Generating/interating recursive lists of dependencies is painful and potentially slow
|
||||
# Precompute recursive task dependencies here by:
|
||||
# a) create a temp list of reverse dependencies (revdeps)
|
||||
# b) walk up the ends of the chains (when a given task no longer has dependencies i.e. len(deps) == 0)
|
||||
# c) combine the total list of dependencies in cumulativedeps
|
||||
# d) optimise by pre-truncating 'task' off the items in cumulativedeps (keeps items in sets lower)
|
||||
|
||||
def generate_recdeps(t):
|
||||
newdeps = set()
|
||||
(mc, fn, taskname, _) = split_tid_mcfn(t)
|
||||
add_resolved_dependencies(mc, fn, tasknames, newdeps)
|
||||
extradeps[tid].update(newdeps)
|
||||
seendeps.add(t)
|
||||
newdeps.add(t)
|
||||
for i in newdeps:
|
||||
if i not in self.runtaskentries:
|
||||
# Not all recipes might have the recrdeptask task as a task
|
||||
continue
|
||||
task = self.runtaskentries[i].task
|
||||
for n in self.runtaskentries[i].depends:
|
||||
if n not in seendeps:
|
||||
generate_recdeps(n)
|
||||
generate_recdeps(tid)
|
||||
|
||||
if tid in recursiveitasks:
|
||||
for dep in recursiveitasks[tid]:
|
||||
generate_recdeps(dep)
|
||||
self.init_progress_reporter.update(taskcounter)
|
||||
|
||||
# Remove circular references so that do_a[recrdeptask] = "do_a do_b" can work
|
||||
for tid in recursivetasks:
|
||||
extradeps[tid].difference_update(recursivetasksselfref)
|
||||
|
||||
revdeps = {}
|
||||
deps = {}
|
||||
cumulativedeps = {}
|
||||
for tid in self.runtaskentries:
|
||||
task = self.runtaskentries[tid].task
|
||||
# Add in extra dependencies
|
||||
if tid in extradeps:
|
||||
self.runtaskentries[tid].depends = extradeps[tid]
|
||||
# Remove all self references
|
||||
if tid in self.runtaskentries[tid].depends:
|
||||
logger.debug(2, "Task %s contains self reference!", tid)
|
||||
self.runtaskentries[tid].depends.remove(tid)
|
||||
deps[tid] = set(self.runtaskentries[tid].depends)
|
||||
revdeps[tid] = set()
|
||||
cumulativedeps[tid] = set()
|
||||
# Generate a temp list of reverse dependencies
|
||||
for tid in self.runtaskentries:
|
||||
for dep in self.runtaskentries[tid].depends:
|
||||
revdeps[dep].add(tid)
|
||||
# Find the dependency chain endpoints
|
||||
endpoints = set()
|
||||
for tid in self.runtaskentries:
|
||||
if len(deps[tid]) == 0:
|
||||
endpoints.add(tid)
|
||||
# Iterate the chains collating dependencies
|
||||
while endpoints:
|
||||
next = set()
|
||||
for tid in endpoints:
|
||||
for dep in revdeps[tid]:
|
||||
cumulativedeps[dep].add(fn_from_tid(tid))
|
||||
cumulativedeps[dep].update(cumulativedeps[tid])
|
||||
if tid in deps[dep]:
|
||||
deps[dep].remove(tid)
|
||||
if len(deps[dep]) == 0:
|
||||
next.add(dep)
|
||||
endpoints = next
|
||||
#for tid in deps:
|
||||
# if len(deps[tid]) != 0:
|
||||
# bb.warn("Sanity test failure, dependencies left for %s (%s)" % (tid, deps[tid]))
|
||||
|
||||
# Loop here since recrdeptasks can depend upon other recrdeptasks and we have to
|
||||
# resolve these recursively until we aren't adding any further extra dependencies
|
||||
extradeps = True
|
||||
while extradeps:
|
||||
extradeps = 0
|
||||
for tid in recursivetasks:
|
||||
tasknames = recursivetasks[tid]
|
||||
|
||||
totaldeps = set(self.runtaskentries[tid].depends)
|
||||
if tid in recursiveitasks:
|
||||
totaldeps.update(recursiveitasks[tid])
|
||||
for dep in recursiveitasks[tid]:
|
||||
if dep not in self.runtaskentries:
|
||||
continue
|
||||
totaldeps.update(self.runtaskentries[dep].depends)
|
||||
|
||||
deps = set()
|
||||
for dep in totaldeps:
|
||||
if dep in cumulativedeps:
|
||||
deps.update(cumulativedeps[dep])
|
||||
|
||||
for t in deps:
|
||||
for taskname in tasknames:
|
||||
newtid = t + ":" + taskname
|
||||
if newtid == tid:
|
||||
continue
|
||||
if newtid in self.runtaskentries and newtid not in self.runtaskentries[tid].depends:
|
||||
extradeps += 1
|
||||
self.runtaskentries[tid].depends.add(newtid)
|
||||
|
||||
# Handle recursive tasks which depend upon other recursive tasks
|
||||
deps = set()
|
||||
for dep in self.runtaskentries[tid].depends.intersection(recursivetasks):
|
||||
deps.update(self.runtaskentries[dep].depends.difference(self.runtaskentries[tid].depends))
|
||||
for newtid in deps:
|
||||
for taskname in tasknames:
|
||||
if not newtid.endswith(":" + taskname):
|
||||
continue
|
||||
if newtid in self.runtaskentries:
|
||||
extradeps += 1
|
||||
self.runtaskentries[tid].depends.add(newtid)
|
||||
|
||||
bb.debug(1, "Added %s recursive dependencies in this loop" % extradeps)
|
||||
|
||||
# Remove recrdeptask circular references so that do_a[recrdeptask] = "do_a do_b" can work
|
||||
for tid in recursivetasksselfref:
|
||||
self.runtaskentries[tid].depends.difference_update(recursivetasksselfref)
|
||||
|
||||
self.init_progress_reporter.next_stage()
|
||||
|
||||
@@ -798,30 +841,57 @@ class RunQueueData:
|
||||
#
|
||||
# Once all active tasks are marked, prune the ones we don't need.
|
||||
|
||||
delcount = 0
|
||||
delcount = {}
|
||||
for tid in list(self.runtaskentries.keys()):
|
||||
if tid not in runq_build:
|
||||
delcount[tid] = self.runtaskentries[tid]
|
||||
del self.runtaskentries[tid]
|
||||
delcount += 1
|
||||
|
||||
self.init_progress_reporter.next_stage()
|
||||
|
||||
if self.cooker.configuration.runall is not None:
|
||||
runall = "do_%s" % self.cooker.configuration.runall
|
||||
runall_tids = { k: v for k, v in self.runtaskentries.items() if taskname_from_tid(k) == runall }
|
||||
|
||||
# Handle --runall
|
||||
if self.cooker.configuration.runall:
|
||||
# re-run the mark_active and then drop unused tasks from new list
|
||||
runq_build = {}
|
||||
for tid in list(runall_tids):
|
||||
mark_active(tid,1)
|
||||
|
||||
for task in self.cooker.configuration.runall:
|
||||
runall_tids = set()
|
||||
for tid in list(self.runtaskentries):
|
||||
wanttid = fn_from_tid(tid) + ":do_%s" % task
|
||||
if wanttid in delcount:
|
||||
self.runtaskentries[wanttid] = delcount[wanttid]
|
||||
if wanttid in self.runtaskentries:
|
||||
runall_tids.add(wanttid)
|
||||
|
||||
for tid in list(runall_tids):
|
||||
mark_active(tid,1)
|
||||
|
||||
for tid in list(self.runtaskentries.keys()):
|
||||
if tid not in runq_build:
|
||||
delcount[tid] = self.runtaskentries[tid]
|
||||
del self.runtaskentries[tid]
|
||||
delcount += 1
|
||||
|
||||
if len(self.runtaskentries) == 0:
|
||||
bb.msg.fatal("RunQueue", "No remaining tasks to run for build target %s with runall %s" % (target, runall))
|
||||
bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the recipes of the taskgraphs of the targets %s" % (str(self.cooker.configuration.runall), str(self.targets)))
|
||||
|
||||
self.init_progress_reporter.next_stage()
|
||||
|
||||
# Handle runonly
|
||||
if self.cooker.configuration.runonly:
|
||||
# re-run the mark_active and then drop unused tasks from new list
|
||||
runq_build = {}
|
||||
|
||||
for task in self.cooker.configuration.runonly:
|
||||
runonly_tids = { k: v for k, v in self.runtaskentries.items() if taskname_from_tid(k) == "do_%s" % task }
|
||||
|
||||
for tid in list(runonly_tids):
|
||||
mark_active(tid,1)
|
||||
|
||||
for tid in list(self.runtaskentries.keys()):
|
||||
if tid not in runq_build:
|
||||
delcount[tid] = self.runtaskentries[tid]
|
||||
del self.runtaskentries[tid]
|
||||
|
||||
if len(self.runtaskentries) == 0:
|
||||
bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the taskgraphs of the targets %s" % (str(self.cooker.configuration.runonly), str(self.targets)))
|
||||
|
||||
#
|
||||
# Step D - Sanity checks and computation
|
||||
@@ -834,7 +904,7 @@ class RunQueueData:
|
||||
else:
|
||||
bb.msg.fatal("RunQueue", "No active tasks and not in --continue mode?! Please report this bug.")
|
||||
|
||||
logger.verbose("Pruned %s inactive tasks, %s left", delcount, len(self.runtaskentries))
|
||||
logger.verbose("Pruned %s inactive tasks, %s left", len(delcount), len(self.runtaskentries))
|
||||
|
||||
logger.verbose("Assign Weightings")
|
||||
|
||||
|
||||
@@ -223,6 +223,8 @@ class ProcessServer(multiprocessing.Process):
|
||||
|
||||
try:
|
||||
self.cooker.shutdown(True)
|
||||
self.cooker.notifier.stop()
|
||||
self.cooker.confignotifier.stop()
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#
|
||||
|
||||
import unittest
|
||||
import hashlib
|
||||
import tempfile
|
||||
import subprocess
|
||||
import collections
|
||||
@@ -522,6 +523,109 @@ class FetcherLocalTest(FetcherTest):
|
||||
with self.assertRaises(bb.fetch2.UnpackError):
|
||||
self.fetchUnpack(['file://a;subdir=/bin/sh'])
|
||||
|
||||
class FetcherNoNetworkTest(FetcherTest):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
# all test cases are based on not having network
|
||||
self.d.setVar("BB_NO_NETWORK", "1")
|
||||
|
||||
def test_missing(self):
|
||||
string = "this is a test file\n".encode("utf-8")
|
||||
self.d.setVarFlag("SRC_URI", "md5sum", hashlib.md5(string).hexdigest())
|
||||
self.d.setVarFlag("SRC_URI", "sha256sum", hashlib.sha256(string).hexdigest())
|
||||
|
||||
self.assertFalse(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz")))
|
||||
self.assertFalse(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz.done")))
|
||||
fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/test-file.tar.gz"], self.d)
|
||||
with self.assertRaises(bb.fetch2.NetworkAccess):
|
||||
fetcher.download()
|
||||
|
||||
def test_valid_missing_donestamp(self):
|
||||
# create the file in the download directory with correct hash
|
||||
string = "this is a test file\n".encode("utf-8")
|
||||
with open(os.path.join(self.dldir, "test-file.tar.gz"), "wb") as f:
|
||||
f.write(string)
|
||||
|
||||
self.d.setVarFlag("SRC_URI", "md5sum", hashlib.md5(string).hexdigest())
|
||||
self.d.setVarFlag("SRC_URI", "sha256sum", hashlib.sha256(string).hexdigest())
|
||||
|
||||
self.assertTrue(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz")))
|
||||
self.assertFalse(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz.done")))
|
||||
fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/test-file.tar.gz"], self.d)
|
||||
fetcher.download()
|
||||
self.assertTrue(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz.done")))
|
||||
|
||||
def test_invalid_missing_donestamp(self):
|
||||
# create an invalid file in the download directory with incorrect hash
|
||||
string = "this is a test file\n".encode("utf-8")
|
||||
with open(os.path.join(self.dldir, "test-file.tar.gz"), "wb"):
|
||||
pass
|
||||
|
||||
self.d.setVarFlag("SRC_URI", "md5sum", hashlib.md5(string).hexdigest())
|
||||
self.d.setVarFlag("SRC_URI", "sha256sum", hashlib.sha256(string).hexdigest())
|
||||
|
||||
self.assertTrue(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz")))
|
||||
self.assertFalse(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz.done")))
|
||||
fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/test-file.tar.gz"], self.d)
|
||||
with self.assertRaises(bb.fetch2.NetworkAccess):
|
||||
fetcher.download()
|
||||
# the existing file should not exist or should have be moved to "bad-checksum"
|
||||
self.assertFalse(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz")))
|
||||
|
||||
def test_nochecksums_missing(self):
|
||||
self.assertFalse(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz")))
|
||||
self.assertFalse(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz.done")))
|
||||
# ssh fetch does not support checksums
|
||||
fetcher = bb.fetch.Fetch(["ssh://invalid@invalid.yoctoproject.org/test-file.tar.gz"], self.d)
|
||||
# attempts to download with missing donestamp
|
||||
with self.assertRaises(bb.fetch2.NetworkAccess):
|
||||
fetcher.download()
|
||||
|
||||
def test_nochecksums_missing_donestamp(self):
|
||||
# create a file in the download directory
|
||||
with open(os.path.join(self.dldir, "test-file.tar.gz"), "wb"):
|
||||
pass
|
||||
|
||||
self.assertTrue(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz")))
|
||||
self.assertFalse(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz.done")))
|
||||
# ssh fetch does not support checksums
|
||||
fetcher = bb.fetch.Fetch(["ssh://invalid@invalid.yoctoproject.org/test-file.tar.gz"], self.d)
|
||||
# attempts to download with missing donestamp
|
||||
with self.assertRaises(bb.fetch2.NetworkAccess):
|
||||
fetcher.download()
|
||||
|
||||
def test_nochecksums_has_donestamp(self):
|
||||
# create a file in the download directory with the donestamp
|
||||
with open(os.path.join(self.dldir, "test-file.tar.gz"), "wb"):
|
||||
pass
|
||||
with open(os.path.join(self.dldir, "test-file.tar.gz.done"), "wb"):
|
||||
pass
|
||||
|
||||
self.assertTrue(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz")))
|
||||
self.assertTrue(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz.done")))
|
||||
# ssh fetch does not support checksums
|
||||
fetcher = bb.fetch.Fetch(["ssh://invalid@invalid.yoctoproject.org/test-file.tar.gz"], self.d)
|
||||
# should not fetch
|
||||
fetcher.download()
|
||||
# both files should still exist
|
||||
self.assertTrue(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz")))
|
||||
self.assertTrue(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz.done")))
|
||||
|
||||
def test_nochecksums_missing_has_donestamp(self):
|
||||
# create a file in the download directory with the donestamp
|
||||
with open(os.path.join(self.dldir, "test-file.tar.gz.done"), "wb"):
|
||||
pass
|
||||
|
||||
self.assertFalse(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz")))
|
||||
self.assertTrue(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz.done")))
|
||||
# ssh fetch does not support checksums
|
||||
fetcher = bb.fetch.Fetch(["ssh://invalid@invalid.yoctoproject.org/test-file.tar.gz"], self.d)
|
||||
with self.assertRaises(bb.fetch2.NetworkAccess):
|
||||
fetcher.download()
|
||||
# both files should still exist
|
||||
self.assertFalse(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz")))
|
||||
self.assertFalse(os.path.exists(os.path.join(self.dldir, "test-file.tar.gz.done")))
|
||||
|
||||
class FetcherNetworkTest(FetcherTest):
|
||||
@skipIfNoNetwork()
|
||||
def test_fetch(self):
|
||||
@@ -874,9 +978,6 @@ class FetchCheckStatusTest(FetcherTest):
|
||||
|
||||
|
||||
class GitMakeShallowTest(FetcherTest):
|
||||
bitbake_dir = os.path.join(os.path.dirname(os.path.join(os.path.abspath(__file__))), '..', '..', '..')
|
||||
make_shallow_path = os.path.join(bitbake_dir, 'bin', 'git-make-shallow')
|
||||
|
||||
def setUp(self):
|
||||
FetcherTest.setUp(self)
|
||||
self.gitdir = os.path.join(self.tempdir, 'gitshallow')
|
||||
@@ -905,7 +1006,7 @@ class GitMakeShallowTest(FetcherTest):
|
||||
def make_shallow(self, args=None):
|
||||
if args is None:
|
||||
args = ['HEAD']
|
||||
return bb.process.run([self.make_shallow_path] + args, cwd=self.gitdir)
|
||||
return bb.process.run([bb.fetch2.git.Git.make_shallow_path] + args, cwd=self.gitdir)
|
||||
|
||||
def add_empty_file(self, path, msg=None):
|
||||
if msg is None:
|
||||
|
||||
@@ -192,7 +192,7 @@ class LocalhostBEController(BuildEnvironmentController):
|
||||
if commit != "HEAD":
|
||||
logger.debug("localhostbecontroller: checking out commit %s to %s " % (commit, localdirname))
|
||||
ref = commit if re.match('^[a-fA-F0-9]+$', commit) else 'origin/%s' % commit
|
||||
self._shellcmd('git fetch --all && git reset --hard "%s"' % ref, localdirname,env=git_env)
|
||||
self._shellcmd('git fetch && git reset --hard "%s"' % ref, localdirname,env=git_env)
|
||||
|
||||
# take the localdirname as poky dir if we can find the oe-init-build-env
|
||||
if self.pokydirname is None and os.path.exists(os.path.join(localdirname, "oe-init-build-env")):
|
||||
|
||||
@@ -84,6 +84,52 @@
|
||||
# for the 'denzil' branch.
|
||||
#
|
||||
|
||||
ifeq ($(DOC),brief-yoctoprojectqs)
|
||||
XSLTOPTS = --stringparam html.stylesheet brief-yoctoprojectqs-style.css \
|
||||
--stringparam chapter.autolabel 0 \
|
||||
--stringparam section.autolabel 0 \
|
||||
--stringparam section.label.includes.component.label 0 \
|
||||
--xinclude
|
||||
ALLPREQ = html tarball
|
||||
TARFILES = brief-yoctoprojectqs-style.css brief-yoctoprojectqs.html figures/ypqs-title.png \
|
||||
figures/yocto-project-transp.png
|
||||
MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
|
||||
FIGURES = figures
|
||||
STYLESHEET = $(DOC)/*.css
|
||||
|
||||
endif
|
||||
|
||||
ifeq ($(DOC),getting-started)
|
||||
XSLTOPTS = --xinclude
|
||||
ALLPREQ = html eclipse tarball
|
||||
TARFILES = getting-started-style.css getting-started.html figures/getting-started-title.png \
|
||||
figures/git-workflow.png figures/source-repos.png figures/index-downloads.png \
|
||||
figures/yp-download.png figures/YP-flow-diagram.png figures/key-dev-elements.png \
|
||||
figures/poky-reference-distribution.png \
|
||||
eclipse
|
||||
MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
|
||||
FIGURES = figures
|
||||
STYLESHEET = $(DOC)/*.css
|
||||
|
||||
endif
|
||||
|
||||
ifeq ($(DOC),concepts-manual)
|
||||
XSLTOPTS = --xinclude
|
||||
ALLPREQ = html eclipse tarball
|
||||
TARFILES = concepts-manual-style.css concepts-manual.html figures/concepts-manual-title.png \
|
||||
figures/cross-development-toolchains.png figures/yocto-environment-ref.png \
|
||||
figures/user-configuration.png figures/layer-input.png figures/source-input.png \
|
||||
figures/package-feeds.png figures/patching.png figures/source-fetching.png \
|
||||
figures/configuration-compile-autoreconf.png figures/analysis-for-package-splitting.png \
|
||||
figures/image-generation.png figures/sdk-generation.png figures/images.png \
|
||||
figures/sdk.png \
|
||||
eclipse
|
||||
MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
|
||||
FIGURES = figures
|
||||
STYLESHEET = $(DOC)/*.css
|
||||
|
||||
endif
|
||||
|
||||
ifeq ($(DOC),bsp-guide)
|
||||
XSLTOPTS = --xinclude
|
||||
ALLPREQ = html eclipse tarball
|
||||
@@ -128,8 +174,8 @@ TARFILES = dev-style.css dev-manual.html \
|
||||
figures/source-repos.png figures/yp-download.png \
|
||||
figures/wip.png
|
||||
else
|
||||
TARFILES = dev-style.css dev-manual.html \
|
||||
figures/dev-title.png \
|
||||
TARFILES = dev-style.css dev-manual.html figures/buildhistory-web.png \
|
||||
figures/dev-title.png figures/buildhistory.png \
|
||||
figures/recipe-workflow.png figures/bitbake-build-flow.png \
|
||||
eclipse
|
||||
endif
|
||||
@@ -196,7 +242,7 @@ TARFILES = mega-manual.html mega-style.css figures/yocto-environment.png \
|
||||
figures/wip.png
|
||||
else
|
||||
TARFILES = mega-manual.html mega-style.css \
|
||||
figures/building-an-image.png figures/YP-flow-diagram.png \
|
||||
figures/YP-flow-diagram.png \
|
||||
figures/using-a-pre-built-image.png \
|
||||
figures/poky-title.png figures/buildhistory.png \
|
||||
figures/buildhistory-web.png \
|
||||
@@ -240,16 +286,17 @@ TARFILES = mega-manual.html mega-style.css \
|
||||
figures/source-fetching.png figures/patching.png \
|
||||
figures/configuration-compile-autoreconf.png \
|
||||
figures/analysis-for-package-splitting.png \
|
||||
figures/image-generation.png \
|
||||
figures/image-generation.png figures/key-dev-elements.png\
|
||||
figures/sdk-generation.png figures/recipe-workflow.png \
|
||||
figures/build-workspace-directory.png figures/mega-title.png \
|
||||
figures/toaster-title.png figures/hosted-service.png \
|
||||
figures/simple-configuration.png \
|
||||
figures/simple-configuration.png figures/poky-reference-distribution.png \
|
||||
figures/compatible-layers.png figures/import-layer.png figures/new-project.png \
|
||||
figures/sdk-environment.png figures/sdk-installed-standard-sdk-directory.png \
|
||||
figures/sdk-devtool-add-flow.png figures/sdk-installed-extensible-sdk-directory.png \
|
||||
figures/sdk-devtool-modify-flow.png figures/sdk-eclipse-dev-flow.png \
|
||||
figures/sdk-devtool-upgrade-flow.png figures/bitbake-build-flow.png figures/ypqs-title.png
|
||||
figures/sdk-devtool-upgrade-flow.png figures/bitbake-build-flow.png figures/ypqs-title.png \
|
||||
figures/getting-started-title.png figures/concepts-manual-title.png
|
||||
endif
|
||||
|
||||
MANUALS = $(DOC)/$(DOC).html
|
||||
@@ -261,17 +308,9 @@ endif
|
||||
ifeq ($(DOC),ref-manual)
|
||||
XSLTOPTS = --xinclude
|
||||
ALLPREQ = html eclipse tarball
|
||||
TARFILES = ref-manual.html ref-style.css figures/poky-title.png figures/YP-flow-diagram.png \
|
||||
figures/buildhistory.png figures/buildhistory-web.png eclipse \
|
||||
figures/cross-development-toolchains.png figures/layer-input.png \
|
||||
figures/package-feeds.png figures/source-input.png \
|
||||
figures/user-configuration.png figures/yocto-environment-ref.png \
|
||||
figures/images.png figures/sdk.png figures/source-fetching.png \
|
||||
figures/patching.png figures/configuration-compile-autoreconf.png \
|
||||
figures/analysis-for-package-splitting.png figures/image-generation.png \
|
||||
figures/sdk-generation.png figures/building-an-image.png \
|
||||
figures/build-workspace-directory.png figures/source-repos.png \
|
||||
figures/index-downloads.png figures/yp-download.png figures/git-workflow.png
|
||||
TARFILES = ref-manual.html ref-style.css figures/poky-title.png \
|
||||
figures/build-workspace-directory.png \
|
||||
eclipse
|
||||
MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
|
||||
FIGURES = figures
|
||||
STYLESHEET = $(DOC)/*.css
|
||||
@@ -360,9 +399,9 @@ XSL_XHTML_URI = $(XSL_BASE_URI)/xhtml/docbook.xsl
|
||||
all: $(ALLPREQ)
|
||||
|
||||
pdf:
|
||||
ifeq ($(DOC),yocto-project-qs)
|
||||
ifeq ($(DOC),yocto-project-qs brief-yoctoprojectqs)
|
||||
@echo " "
|
||||
@echo "ERROR: You cannot generate a yocto-project-qs PDF file."
|
||||
@echo "ERROR: You cannot generate yocto-project-qs or brief-yoctoprojectqs PDF files."
|
||||
@echo " "
|
||||
|
||||
else ifeq ($(DOC),mega-manual)
|
||||
@@ -406,10 +445,12 @@ eclipse: eclipse-generate eclipse-resolve-links
|
||||
.PHONY : eclipse-generate eclipse-resolve-links
|
||||
|
||||
eclipse-generate:
|
||||
ifeq ($(filter $(DOC), sdk-manual bsp-guide dev-manual kernel-dev profile-manual ref-manual yocto-project-qs),)
|
||||
ifeq ($(filter $(DOC), concepts-manual getting-started sdk-manual bsp-guide dev-manual kernel-dev profile-manual ref-manual yocto-project-qs),)
|
||||
@echo " "
|
||||
@echo "ERROR: You can only create eclipse documentation"
|
||||
@echo " of the following documentation parts:"
|
||||
@echo " - concepts-manual"
|
||||
@echo " - getting-started"
|
||||
@echo " - sdk-manual"
|
||||
@echo " - bsp-guide"
|
||||
@echo " - dev-manual"
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
<?xml version='1.0'?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
|
||||
|
||||
<xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
|
||||
|
||||
<!--
|
||||
|
||||
<xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
|
||||
|
||||
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.76.1/xhtml/docbook.xsl" />
|
||||
|
||||
-->
|
||||
|
||||
<xsl:import href="brief-yoctoprojectqs-titlepage.xsl"/>
|
||||
|
||||
<xsl:include href="../template/permalinks.xsl"/>
|
||||
<xsl:include href="../template/section.title.xsl"/>
|
||||
<xsl:include href="../template/component.title.xsl"/>
|
||||
<xsl:include href="../template/division.title.xsl"/>
|
||||
<xsl:include href="../template/formal.object.heading.xsl"/>
|
||||
|
||||
<xsl:param name="generate.toc" select="'article nop'"></xsl:param>
|
||||
<xsl:param name="html.stylesheet" select="'brief-yoctoprojectqs-style.css'" />
|
||||
</xsl:stylesheet>
|
||||
@@ -0,0 +1,989 @@
|
||||
/*
|
||||
Generic XHTML / DocBook XHTML CSS Stylesheet.
|
||||
|
||||
Browser wrangling and typographic design by
|
||||
Oyvind Kolas / pippin@gimp.org
|
||||
|
||||
Customised for Poky by
|
||||
Matthew Allum / mallum@o-hand.com
|
||||
|
||||
Thanks to:
|
||||
Liam R. E. Quin
|
||||
William Skaggs
|
||||
Jakub Steiner
|
||||
|
||||
Structure
|
||||
---------
|
||||
|
||||
The stylesheet is divided into the following sections:
|
||||
|
||||
Positioning
|
||||
Margins, paddings, width, font-size, clearing.
|
||||
Decorations
|
||||
Borders, style
|
||||
Colors
|
||||
Colors
|
||||
Graphics
|
||||
Graphical backgrounds
|
||||
Nasty IE tweaks
|
||||
Workarounds needed to make it work in internet explorer,
|
||||
currently makes the stylesheet non validating, but up until
|
||||
this point it is validating.
|
||||
Mozilla extensions
|
||||
Transparency for footer
|
||||
Rounded corners on boxes
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*************** /
|
||||
/ Positioning /
|
||||
/ ***************/
|
||||
|
||||
body {
|
||||
font-family: Verdana, Sans, sans-serif;
|
||||
|
||||
min-width: 640px;
|
||||
width: 80%;
|
||||
margin: 0em auto;
|
||||
padding: 2em 5em 5em 5em;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6,h7 {
|
||||
font-family: Arial, Sans;
|
||||
color: #00557D;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
text-align: left;
|
||||
padding: 0em 0em 0em 0em;
|
||||
margin: 2em 0em 0em 0em;
|
||||
}
|
||||
|
||||
h2.subtitle {
|
||||
margin: 0.10em 0em 3.0em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
font-size: 1.8em;
|
||||
padding-left: 20%;
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin: 2em 0em 0.66em 0em;
|
||||
padding: 0.5em 0em 0em 0em;
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h3.subtitle {
|
||||
margin: 0em 0em 1em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
font-size: 142.14%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 1em 0em 0.5em 0em;
|
||||
padding: 1em 0em 0em 0em;
|
||||
font-size: 140%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin: 1em 0em 0.5em 0em;
|
||||
padding: 1em 0em 0em 0em;
|
||||
font-size: 120%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h5 {
|
||||
margin: 1em 0em 0.5em 0em;
|
||||
padding: 1em 0em 0em 0em;
|
||||
font-size: 110%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h6 {
|
||||
margin: 1em 0em 0em 0em;
|
||||
padding: 1em 0em 0em 0em;
|
||||
font-size: 110%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.authorgroup {
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
padding-top: 256px;
|
||||
background-image: url("figures/ypqs-title.png");
|
||||
background-position: left top;
|
||||
margin-top: -256px;
|
||||
padding-right: 50px;
|
||||
margin-left: 0px;
|
||||
text-align: right;
|
||||
width: 740px;
|
||||
}
|
||||
|
||||
h3.author {
|
||||
margin: 0em 0me 0em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
font-weight: normal;
|
||||
font-size: 100%;
|
||||
color: #333;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.author tt.email {
|
||||
font-size: 66%;
|
||||
}
|
||||
|
||||
.titlepage hr {
|
||||
width: 0em;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.revhistory {
|
||||
padding-top: 2em;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.toc,
|
||||
.list-of-tables,
|
||||
.list-of-examples,
|
||||
.list-of-figures {
|
||||
padding: 1.33em 0em 2.5em 0em;
|
||||
color: #00557D;
|
||||
}
|
||||
|
||||
.toc p,
|
||||
.list-of-tables p,
|
||||
.list-of-figures p,
|
||||
.list-of-examples p {
|
||||
padding: 0em 0em 0em 0em;
|
||||
padding: 0em 0em 0.3em;
|
||||
margin: 1.5em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.toc p b,
|
||||
.list-of-tables p b,
|
||||
.list-of-figures p b,
|
||||
.list-of-examples p b{
|
||||
font-size: 100.0%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.toc dl,
|
||||
.list-of-tables dl,
|
||||
.list-of-figures dl,
|
||||
.list-of-examples dl {
|
||||
margin: 0em 0em 0.5em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.toc dt {
|
||||
margin: 0em 0em 0em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.toc dd {
|
||||
margin: 0em 0em 0em 2.6em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
div.glossary dl,
|
||||
div.variablelist dl {
|
||||
}
|
||||
|
||||
.glossary dl dt,
|
||||
.variablelist dl dt,
|
||||
.variablelist dl dt span.term {
|
||||
font-weight: normal;
|
||||
width: 20em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.variablelist dl dt {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
.glossary dl dd,
|
||||
.variablelist dl dd {
|
||||
margin-top: -1em;
|
||||
margin-left: 25.5em;
|
||||
}
|
||||
|
||||
.glossary dd p,
|
||||
.variablelist dd p {
|
||||
margin-top: 0em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
|
||||
div.calloutlist table td {
|
||||
padding: 0em 0em 0em 0em;
|
||||
margin: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
div.calloutlist table td p {
|
||||
margin-top: 0em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
div p.copyright {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
div.legalnotice p.legalnotice-title {
|
||||
margin-bottom: 0em;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 1.5em;
|
||||
margin-top: 0em;
|
||||
|
||||
}
|
||||
|
||||
dl {
|
||||
padding-top: 0em;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: solid 1px;
|
||||
}
|
||||
|
||||
|
||||
.mediaobject,
|
||||
.mediaobjectco {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0em 0em 0em 1.5em;
|
||||
}
|
||||
|
||||
ul li {
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
ul li p {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
table {
|
||||
width :100%;
|
||||
}
|
||||
|
||||
th {
|
||||
padding: 0.25em;
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 0.25em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
p a[id] {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
display: inline;
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: underline;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
pre {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
/*font-weight: bold;*/
|
||||
}
|
||||
|
||||
/* This style defines how the permalink character
|
||||
appears by itself and when hovered over with
|
||||
the mouse. */
|
||||
|
||||
[alt='Permalink'] { color: #eee; }
|
||||
[alt='Permalink']:hover { color: black; }
|
||||
|
||||
|
||||
div.informalfigure,
|
||||
div.informalexample,
|
||||
div.informaltable,
|
||||
div.figure,
|
||||
div.table,
|
||||
div.example {
|
||||
margin: 1em 0em;
|
||||
padding: 1em;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
|
||||
div.informalfigure p.title b,
|
||||
div.informalexample p.title b,
|
||||
div.informaltable p.title b,
|
||||
div.figure p.title b,
|
||||
div.example p.title b,
|
||||
div.table p.title b{
|
||||
padding-top: 0em;
|
||||
margin-top: 0em;
|
||||
font-size: 100%;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.mediaobject .caption,
|
||||
.mediaobject .caption p {
|
||||
text-align: center;
|
||||
font-size: 80%;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.epigraph {
|
||||
padding-left: 55%;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.epigraph p {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.epigraph .quote {
|
||||
font-style: italic;
|
||||
}
|
||||
.epigraph .attribution {
|
||||
font-style: normal;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
span.application {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.programlisting {
|
||||
font-family: monospace;
|
||||
font-size: 80%;
|
||||
white-space: pre;
|
||||
margin: 1.33em 0em;
|
||||
padding: 1.33em;
|
||||
}
|
||||
|
||||
.tip,
|
||||
.warning,
|
||||
.caution,
|
||||
.note {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
|
||||
}
|
||||
|
||||
/* force full width of table within div */
|
||||
.tip table,
|
||||
.warning table,
|
||||
.caution table,
|
||||
.note table {
|
||||
border: none;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
.tip table th,
|
||||
.warning table th,
|
||||
.caution table th,
|
||||
.note table th {
|
||||
padding: 0.8em 0.0em 0.0em 0.0em;
|
||||
margin : 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.tip p,
|
||||
.warning p,
|
||||
.caution p,
|
||||
.note p {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
padding-right: 1em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.acronym {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
b.keycap,
|
||||
.keycap {
|
||||
padding: 0.09em 0.3em;
|
||||
margin: 0em;
|
||||
}
|
||||
|
||||
.itemizedlist li {
|
||||
clear: none;
|
||||
}
|
||||
|
||||
.filename {
|
||||
font-size: medium;
|
||||
font-family: Courier, monospace;
|
||||
}
|
||||
|
||||
|
||||
div.navheader, div.heading{
|
||||
position: absolute;
|
||||
left: 0em;
|
||||
top: 0em;
|
||||
width: 100%;
|
||||
background-color: #cdf;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.navfooter, div.footing{
|
||||
position: fixed;
|
||||
left: 0em;
|
||||
bottom: 0em;
|
||||
background-color: #eee;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
div.navheader td,
|
||||
div.navfooter td {
|
||||
font-size: 66%;
|
||||
}
|
||||
|
||||
div.navheader table th {
|
||||
/*font-family: Georgia, Times, serif;*/
|
||||
/*font-size: x-large;*/
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
div.navheader table {
|
||||
border-left: 0em;
|
||||
border-right: 0em;
|
||||
border-top: 0em;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.navfooter table {
|
||||
border-left: 0em;
|
||||
border-right: 0em;
|
||||
border-bottom: 0em;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.navheader table td a,
|
||||
div.navfooter table td a {
|
||||
color: #777;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* normal text in the footer */
|
||||
div.navfooter table td {
|
||||
color: black;
|
||||
}
|
||||
|
||||
div.navheader table td a:visited,
|
||||
div.navfooter table td a:visited {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
|
||||
/* links in header and footer */
|
||||
div.navheader table td a:hover,
|
||||
div.navfooter table td a:hover {
|
||||
text-decoration: underline;
|
||||
background-color: transparent;
|
||||
color: #33a;
|
||||
}
|
||||
|
||||
div.navheader hr,
|
||||
div.navfooter hr {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
.qandaset tr.question td p {
|
||||
margin: 0em 0em 1em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.qandaset tr.answer td p {
|
||||
margin: 0em 0em 1em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
.answer td {
|
||||
padding-bottom: 1.5em;
|
||||
}
|
||||
|
||||
.emphasis {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
/************* /
|
||||
/ decorations /
|
||||
/ *************/
|
||||
|
||||
.titlepage {
|
||||
}
|
||||
|
||||
.part .title {
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
border: none;
|
||||
}
|
||||
|
||||
/*
|
||||
h1 {
|
||||
border: none;
|
||||
}
|
||||
|
||||
h2 {
|
||||
border-top: solid 0.2em;
|
||||
border-bottom: solid 0.06em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
border-top: 0em;
|
||||
border-bottom: solid 0.06em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
border: 0em;
|
||||
border-bottom: solid 0.06em;
|
||||
}
|
||||
|
||||
h5 {
|
||||
border: 0em;
|
||||
}
|
||||
*/
|
||||
|
||||
.programlisting {
|
||||
border: solid 1px;
|
||||
}
|
||||
|
||||
div.figure,
|
||||
div.table,
|
||||
div.informalfigure,
|
||||
div.informaltable,
|
||||
div.informalexample,
|
||||
div.example {
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.tip,
|
||||
.warning,
|
||||
.caution,
|
||||
.note {
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
.tip table th,
|
||||
.warning table th,
|
||||
.caution table th,
|
||||
.note table th {
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
|
||||
.question td {
|
||||
border-top: 1px solid black;
|
||||
}
|
||||
|
||||
.answer {
|
||||
}
|
||||
|
||||
|
||||
b.keycap,
|
||||
.keycap {
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
|
||||
div.navheader, div.heading{
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
|
||||
|
||||
div.navfooter, div.footing{
|
||||
border-top: 1px solid;
|
||||
}
|
||||
|
||||
/********* /
|
||||
/ colors /
|
||||
/ *********/
|
||||
|
||||
body {
|
||||
color: #333;
|
||||
background: white;
|
||||
}
|
||||
|
||||
a {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
background-color: #dedede;
|
||||
}
|
||||
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
h7,
|
||||
h8 {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
hr {
|
||||
border-color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
.tip, .warning, .caution, .note {
|
||||
border-color: #fff;
|
||||
}
|
||||
|
||||
|
||||
.tip table th,
|
||||
.warning table th,
|
||||
.caution table th,
|
||||
.note table th {
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
|
||||
|
||||
.warning {
|
||||
background-color: #f0f0f2;
|
||||
}
|
||||
|
||||
.caution {
|
||||
background-color: #f0f0f2;
|
||||
}
|
||||
|
||||
.tip {
|
||||
background-color: #f0f0f2;
|
||||
}
|
||||
|
||||
.note {
|
||||
background-color: #f0f0f2;
|
||||
}
|
||||
|
||||
.glossary dl dt,
|
||||
.variablelist dl dt,
|
||||
.variablelist dl dt span.term {
|
||||
color: #044;
|
||||
}
|
||||
|
||||
div.figure,
|
||||
div.table,
|
||||
div.example,
|
||||
div.informalfigure,
|
||||
div.informaltable,
|
||||
div.informalexample {
|
||||
border-color: #aaa;
|
||||
}
|
||||
|
||||
pre.programlisting {
|
||||
color: black;
|
||||
background-color: #fff;
|
||||
border-color: #aaa;
|
||||
border-width: 2px;
|
||||
}
|
||||
|
||||
.guimenu,
|
||||
.guilabel,
|
||||
.guimenuitem {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
|
||||
b.keycap,
|
||||
.keycap {
|
||||
background-color: #eee;
|
||||
border-color: #999;
|
||||
}
|
||||
|
||||
|
||||
div.navheader {
|
||||
border-color: black;
|
||||
}
|
||||
|
||||
|
||||
div.navfooter {
|
||||
border-color: black;
|
||||
}
|
||||
|
||||
|
||||
.writernotes {
|
||||
color: red;
|
||||
}
|
||||
|
||||
|
||||
/*********** /
|
||||
/ graphics /
|
||||
/ ***********/
|
||||
|
||||
/*
|
||||
body {
|
||||
background-image: url("images/body_bg.jpg");
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
.navheader,
|
||||
.note,
|
||||
.tip {
|
||||
background-image: url("images/note_bg.jpg");
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
.warning,
|
||||
.caution {
|
||||
background-image: url("images/warning_bg.jpg");
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
.figure,
|
||||
.informalfigure,
|
||||
.example,
|
||||
.informalexample,
|
||||
.table,
|
||||
.informaltable {
|
||||
background-image: url("images/figure_bg.jpg");
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
*/
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
h7{
|
||||
}
|
||||
|
||||
/*
|
||||
Example of how to stick an image as part of the title.
|
||||
|
||||
div.article .titlepage .title
|
||||
{
|
||||
background-image: url("figures/white-on-black.png");
|
||||
background-position: center;
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
*/
|
||||
|
||||
div.preface .titlepage .title,
|
||||
div.colophon .title,
|
||||
div.chapter .titlepage .title {
|
||||
background-position: bottom;
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
|
||||
div.section div.section .titlepage .title,
|
||||
div.sect2 .titlepage .title {
|
||||
background: none;
|
||||
}
|
||||
|
||||
|
||||
h1.title {
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
height: 256px;
|
||||
text-indent: -9000px;
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
h2.subtitle {
|
||||
background-color: transparent;
|
||||
text-indent: -9000px;
|
||||
overflow:hidden;
|
||||
width: 0px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*************************************** /
|
||||
/ pippin.gimp.org specific alterations /
|
||||
/ ***************************************/
|
||||
|
||||
/*
|
||||
div.heading, div.navheader {
|
||||
color: #777;
|
||||
font-size: 80%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
text-align: left;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
background: url('/gfx/heading_bg.png') transparent;
|
||||
background-repeat: repeat-x;
|
||||
background-attachment: fixed;
|
||||
border: none;
|
||||
}
|
||||
|
||||
div.heading a {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
div.footing, div.navfooter {
|
||||
border: none;
|
||||
color: #ddd;
|
||||
font-size: 80%;
|
||||
text-align:right;
|
||||
|
||||
width: 100%;
|
||||
padding-top: 10px;
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
left: 0px;
|
||||
|
||||
background: url('/gfx/footing_bg.png') transparent;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/****************** /
|
||||
/ nasty ie tweaks /
|
||||
/ ******************/
|
||||
|
||||
/*
|
||||
div.heading, div.navheader {
|
||||
width:expression(document.body.clientWidth + "px");
|
||||
}
|
||||
|
||||
div.footing, div.navfooter {
|
||||
width:expression(document.body.clientWidth + "px");
|
||||
margin-left:expression("-5em");
|
||||
}
|
||||
body {
|
||||
padding:expression("4em 5em 0em 5em");
|
||||
}
|
||||
*/
|
||||
|
||||
/**************************************** /
|
||||
/ mozilla vendor specific css extensions /
|
||||
/ ****************************************/
|
||||
/*
|
||||
div.navfooter, div.footing{
|
||||
-moz-opacity: 0.8em;
|
||||
}
|
||||
|
||||
div.figure,
|
||||
div.table,
|
||||
div.informalfigure,
|
||||
div.informaltable,
|
||||
div.informalexample,
|
||||
div.example,
|
||||
.tip,
|
||||
.warning,
|
||||
.caution,
|
||||
.note {
|
||||
-moz-border-radius: 0.5em;
|
||||
}
|
||||
|
||||
b.keycap,
|
||||
.keycap {
|
||||
-moz-border-radius: 0.3em;
|
||||
}
|
||||
*/
|
||||
|
||||
table tr td table tr td {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
hr {
|
||||
display: none;
|
||||
}
|
||||
|
||||
table {
|
||||
border: 0em;
|
||||
}
|
||||
|
||||
.photo {
|
||||
float: right;
|
||||
margin-left: 1.5em;
|
||||
margin-bottom: 1.5em;
|
||||
margin-top: 0em;
|
||||
max-width: 17em;
|
||||
border: 1px solid gray;
|
||||
padding: 3px;
|
||||
background: white;
|
||||
}
|
||||
.seperator {
|
||||
padding-top: 2em;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#validators {
|
||||
margin-top: 5em;
|
||||
text-align: right;
|
||||
color: #777;
|
||||
}
|
||||
@media print {
|
||||
body {
|
||||
font-size: 8pt;
|
||||
}
|
||||
.noprint {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.tip,
|
||||
.note {
|
||||
background: #f0f0f2;
|
||||
color: #333;
|
||||
padding: 20px;
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.tip h3,
|
||||
.note h3 {
|
||||
padding: 0em;
|
||||
margin: 0em;
|
||||
font-size: 2em;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.tip a,
|
||||
.note a {
|
||||
color: #333;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.footnote {
|
||||
font-size: small;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
/* Changes the announcement text */
|
||||
.tip h3,
|
||||
.warning h3,
|
||||
.caution h3,
|
||||
.note h3 {
|
||||
font-size:large;
|
||||
color: #00557D;
|
||||
}
|
||||
357
documentation/brief-yoctoprojectqs/brief-yoctoprojectqs.xml
Normal file
@@ -0,0 +1,357 @@
|
||||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
|
||||
|
||||
<article id='brief-yocto-project-qs-intro'>
|
||||
<articleinfo>
|
||||
<title>My First Yocto Project Build</title>
|
||||
|
||||
<copyright>
|
||||
<year>©RIGHT_YEAR;</year>
|
||||
<holder>Linux Foundation</holder>
|
||||
</copyright>
|
||||
|
||||
<legalnotice>
|
||||
<para>
|
||||
Permission is granted to copy, distribute and/or modify this document under
|
||||
the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Attribution-Share Alike 2.0 UK: England & Wales</ulink> as published by Creative Commons.
|
||||
</para>
|
||||
<!--
|
||||
<note><title>Manual Notes</title>
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
For the latest version of this document associated with
|
||||
this Yocto Project release
|
||||
(version &YOCTO_DOC_VERSION;), see the "My First
|
||||
Yocto Project Build" from the
|
||||
<ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project documentation page</ulink>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
This paper is written for the &YOCTO_DOC_VERSION;.
|
||||
For later releases of the Yocto Project (if they exist),
|
||||
go to the
|
||||
<ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project documentation page</ulink>
|
||||
and use the drop-down "Active Releases" button
|
||||
and choose the Yocto Project version for which you want
|
||||
the manual.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
-->
|
||||
</legalnotice>
|
||||
|
||||
|
||||
<abstract>
|
||||
<imagedata fileref="figures/yocto-project-transp.png"
|
||||
width="6in" depth="1in"
|
||||
align="right" scale="25" />
|
||||
</abstract>
|
||||
</articleinfo>
|
||||
|
||||
<section id='brief-welcome'>
|
||||
<title>Welcome!</title>
|
||||
|
||||
<para>
|
||||
Welcome!
|
||||
This short document steps you through the process for a typical
|
||||
image build using the Yocto Project.
|
||||
You will use Yocto Project to build a reference embedded OS
|
||||
called Poky.
|
||||
<note>
|
||||
The examples in this paper assume you are using a native Linux
|
||||
system running a recent Ubuntu Linux distribution.
|
||||
If the machine you want to use
|
||||
Yocto Project on to build an image is not a native Linux
|
||||
system, you can still perform these steps by using CROss
|
||||
PlatformS (CROPS) and setting up a Poky container.
|
||||
See the
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;#setting-up-to-use-crops'>Setting Up to Use CROss PlatformS (CROPS)</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual for more
|
||||
information.
|
||||
</note>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you want more conceptual or background information on the
|
||||
Yocto Project, see the
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;'>Getting Started With Yocto Project Manual</ulink>.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='brief-compatible-distro'>
|
||||
<title>Compatible Linux Distribution</title>
|
||||
|
||||
<para>
|
||||
Make sure your build system meets the following requirements:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
50 Gbytes of free disk space
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Runs a supported Linux distribution (i.e. recent releases of
|
||||
Fedora, openSUSE, CentOS, Debian, or Ubuntu). For a list of
|
||||
Linux distributions that support the Yocto Project, see the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>"
|
||||
section in the Yocto Project Reference Manual.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
Git 1.8.3.1 or greater
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
tar 1.27 or greater
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Python 3.4.0 or greater.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
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 can still use the Yocto Project.
|
||||
See the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</ulink>"
|
||||
section in the Yocto Project Reference Manual for information.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='brief-build-system-packages'>
|
||||
<title>Build System Packages</title>
|
||||
|
||||
<para>
|
||||
You must install essential host packages on your
|
||||
development host.
|
||||
The following command installs the host packages based on an
|
||||
Ubuntu distribution:
|
||||
<note>
|
||||
For host package requirements on all supported Linux
|
||||
distributions, see the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>"
|
||||
section in the Yocto Project Reference Manual.
|
||||
</note>
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL; libsdl1.2-dev xterm
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='brief-use-git-to-clone-poky'>
|
||||
<title>Use Git to Clone Poky</title>
|
||||
|
||||
<para>
|
||||
Once you complete the setup instructions for your machine,
|
||||
you need to get a copy of the Poky repository on your build
|
||||
system.
|
||||
Use the following commands to clone the Poky
|
||||
repository and then checkout the &DISTRO_REL_TAG; release:
|
||||
<literallayout class='monospaced'>
|
||||
$ git clone git://git.yoctoproject.org/poky
|
||||
Cloning into 'poky'...
|
||||
remote: Counting objects: 361782, done.
|
||||
remote: Compressing objects: 100% (87100/87100), done.
|
||||
remote: Total 361782 (delta 268619), reused 361439 (delta 268277)
|
||||
Receiving objects: 100% (361782/361782), 131.94 MiB | 6.88 MiB/s, done.
|
||||
Resolving deltas: 100% (268619/268619), done.
|
||||
Checking connectivity... done.
|
||||
$ git checkout tags/yocto-2.5 -b my-yocto-2.5
|
||||
</literallayout>
|
||||
The previous Git checkout command creates a local branch
|
||||
named my-&DISTRO_REL_TAG;. The files available to you in that
|
||||
branch exactly match the repository's files in the
|
||||
"&DISTRO_NAME_NO_CAP;" development branch at the time of the
|
||||
Yocto Project &DISTRO; release.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For more options and information about accessing Yocto
|
||||
Project related repositories, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-yocto-project-source-files'>Working With Yocto Project Source Files</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='brief-building-your-image'>
|
||||
<title>Building Your Image</title>
|
||||
|
||||
<para>
|
||||
Use the following steps to build your image.
|
||||
The OpenEmbedded build system creates an entire Linux
|
||||
distribution, including the toolchain, from source.
|
||||
<note>
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
If you are working behind a firewall and your build
|
||||
host is not set up for proxies, you could encounter
|
||||
problems with the build process when fetching source
|
||||
code (e.g. fetcher failures or Git failures).
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
If you do not know your proxy settings, consult your
|
||||
local network infrastructure resources and get that
|
||||
information.
|
||||
A good starting point could also be to check your
|
||||
web browser settings.
|
||||
Finally, you can find more information on the
|
||||
"<ulink url='https://wiki.yoctoproject.org/wiki/Working_Behind_a_Network_Proxy'>Working Behind a Network Proxy</ulink>"
|
||||
page of the Yocto Project Wiki.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<orderedlist>
|
||||
<listitem><para>
|
||||
<emphasis>Initialize the Build Environment:</emphasis>
|
||||
Run the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
|
||||
environment setup script to define the OpenEmbedded
|
||||
build environment on your build host.
|
||||
<literallayout class='monospaced'>
|
||||
$ source &OE_INIT_FILE;
|
||||
</literallayout>
|
||||
Among other things, the script creates the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>,
|
||||
which is <filename>build</filename> in this case
|
||||
and is located in the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
|
||||
After the script runs, your current working directory
|
||||
is set to the Build Directory.
|
||||
Later, when the build completes, the Build Directory
|
||||
contains all the files created during the build.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Examine Your Local Configuration File:</emphasis>
|
||||
When you set up the build environment, a local
|
||||
configuration file named
|
||||
<filename>local.conf</filename> becomes available in
|
||||
a <filename>conf</filename> subdirectory of the
|
||||
Build Directory.
|
||||
For this example, the defaults are set to build
|
||||
for a <filename>qemux86</filename> target, which is
|
||||
suitable for emulation.
|
||||
The package manager used is set to the RPM package
|
||||
manager.
|
||||
<tip>
|
||||
You can significantly speed up your build and guard
|
||||
against fetcher failures by using mirrors.
|
||||
To use mirrors, add these lines to your
|
||||
<filename>local.conf</filename> file in the Build
|
||||
directory:
|
||||
<literallayout class='monospaced'>
|
||||
SSTATE_MIRRORS = "\
|
||||
file://.* http://sstate.yoctoproject.org/dev/PATH;downloadfilename=PATH \n \
|
||||
file://.* http://sstate.yoctoproject.org/2.3/PATH;downloadfilename=PATH \n \
|
||||
file://.* http://sstate.yoctoproject.org/2.4/PATH;downloadfilename=PATH \n \
|
||||
"
|
||||
</literallayout>
|
||||
The previous examples showed how to add sstate
|
||||
paths for Yocto Project 2.3, 2.4, and a development
|
||||
area.
|
||||
For a complete index of sstate locations, see
|
||||
<ulink url='http://sstate.yoctoproject.org/'></ulink>.
|
||||
</tip>
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Start the Build:</emphasis>
|
||||
Continue with the following command to build an OS image
|
||||
for the target, which is
|
||||
<filename>core-image-sato</filename> in this example:
|
||||
<literallayout class='monospaced'>
|
||||
$ bitbake core-image-sato
|
||||
</literallayout>
|
||||
For information on using the
|
||||
<filename>bitbake</filename> command, see the
|
||||
"<ulink url='&YOCTO_DOCS_OVERVIEW_URL;#usingpoky-components-bitbake'>BitBake</ulink>"
|
||||
section in the Yocto Project Overview Manual, or
|
||||
see the
|
||||
"<ulink url='&YOCTO_DOCS_BB_URL;#bitbake-user-manual-command'>BitBake Command</ulink>"
|
||||
section in the BitBake User Manual.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Simulate Your Image Using QEMU:</emphasis>
|
||||
Once this particular image is built, you can start
|
||||
QEMU, which is a Quick EMUlator that ships with
|
||||
the Yocto Project:
|
||||
<literallayout class='monospaced'>
|
||||
$ runqemu qemux86
|
||||
</literallayout>
|
||||
If you want to learn more about running QEMU, see the
|
||||
"<ulink url="&YOCTO_DOCS_DEV_URL;#dev-manual-qemu">Using the Quick EMUlator (QEMU)</ulink>"
|
||||
chapter in the Yocto Project Development Tasks Manual.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Exit QEMU:</emphasis>
|
||||
Exit QEMU by either clicking on the shutdown icon or by
|
||||
typing <filename>Ctrl-C</filename> in the QEMU
|
||||
transcript window from which you evoked QEMU.
|
||||
</para></listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='brief-where-to-go-next'>
|
||||
<title>Where To Go Next</title>
|
||||
|
||||
<para>
|
||||
Now that you have experienced using the Yocto Project, you might
|
||||
be asking yourself "What now?"
|
||||
The Yocto Project has many sources of information including
|
||||
the website, wiki pages, and user manuals:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<emphasis>Website:</emphasis>
|
||||
The
|
||||
<ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>
|
||||
provides background information, the latest builds,
|
||||
breaking news, full development documentation, and
|
||||
access to a rich Yocto Project Development Community
|
||||
into which you can tap.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Developer Screencast:</emphasis>
|
||||
The
|
||||
<ulink url='http://vimeo.com/36450321'>Getting Started with the Yocto Project - New Developer Screencast Tutorial</ulink>
|
||||
provides a 30-minute video created for users unfamiliar
|
||||
with the Yocto Project but familiar with Linux build
|
||||
hosts.
|
||||
While this screencast is somewhat dated, the
|
||||
introductory and fundamental concepts are useful for
|
||||
the beginner.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Yocto Project Wiki:</emphasis>
|
||||
The
|
||||
<ulink url='&YOCTO_WIKI_URL;'>Yocto Project Wiki</ulink>
|
||||
provides additional information on where to go next
|
||||
when ramping up with the Yocto Project, release
|
||||
information, project planning, and QA information.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Yocto Project Mailing Lists:</emphasis>
|
||||
Related mailing lists provide a forum for discussion,
|
||||
patch submission and announcements.
|
||||
Several mailing lists exist and are grouped according
|
||||
to areas of concern.
|
||||
See the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#resources-mailinglist'>Mailing lists</ulink>"
|
||||
section in the Yocto Project Reference Manual for a
|
||||
complete list of Yocto Project mailing lists.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Comprehensive List of Links and Other Documentation:</emphasis>
|
||||
The
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#resources-links-and-related-documentation'>Links and Related Documentation</ulink>"
|
||||
section in the Yocto Project Reference Manual provides a
|
||||
comprehensive list of all related links and other
|
||||
user documentation.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
</article>
|
||||
<!--
|
||||
vim: expandtab tw=80 ts=4
|
||||
-->
|
||||
BIN
documentation/brief-yoctoprojectqs/figures/yocto-project-transp.png
Executable file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
documentation/brief-yoctoprojectqs/figures/ypqs-title.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
@@ -55,7 +55,7 @@
|
||||
To help understand the BSP layer concept, consider the BSPs that the
|
||||
Yocto Project supports and provides with each release.
|
||||
You can see the layers in the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#yocto-project-repositories'>Yocto Project Source Repositories</ulink>
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#yocto-project-repositories'>Yocto Project Source Repositories</ulink>
|
||||
through a web interface at
|
||||
<ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi'></ulink>.
|
||||
If you go to that interface, you will find near the bottom of the list
|
||||
@@ -1415,9 +1415,9 @@
|
||||
Thus, the build system can build the corresponding recipe and include
|
||||
the component in the image.
|
||||
See the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#enabling-commercially-licensed-recipes'>Enabling
|
||||
Commercially Licensed Recipes</ulink>" section in the Yocto Project Reference
|
||||
Manual for details on how to use these variables.</para>
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#enabling-commercially-licensed-recipes'>Enabling Commercially Licensed Recipes</ulink>"
|
||||
section in the Yocto Project Concepts Manual for details on how
|
||||
to use these variables.</para>
|
||||
<para>If you build as you normally would, without
|
||||
specifying any recipes in the
|
||||
<filename>LICENSE_FLAGS_WHITELIST</filename>, the build stops and
|
||||
@@ -1486,7 +1486,7 @@
|
||||
|
||||
<para>
|
||||
Designed to have a command interface somewhat like
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#git'>Git</ulink>, each
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#git'>Git</ulink>, each
|
||||
tool is structured as a set of sub-commands under a
|
||||
top-level command.
|
||||
The top-level command (<filename>yocto-bsp</filename>
|
||||
|
||||
3610
documentation/concepts-manual/concepts-manual-concepts.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version='1.0'?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
|
||||
|
||||
<xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
|
||||
|
||||
<!--
|
||||
|
||||
<xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
|
||||
|
||||
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.76.1/xhtml/docbook.xsl" />
|
||||
|
||||
-->
|
||||
|
||||
<xsl:include href="../template/permalinks.xsl"/>
|
||||
<xsl:include href="../template/section.title.xsl"/>
|
||||
<xsl:include href="../template/component.title.xsl"/>
|
||||
<xsl:include href="../template/division.title.xsl"/>
|
||||
<xsl:include href="../template/formal.object.heading.xsl"/>
|
||||
|
||||
<xsl:param name="html.stylesheet" select="'concepts-manual-style.css'" />
|
||||
<xsl:param name="chapter.autolabel" select="1" />
|
||||
<xsl:param name="appendix.autolabel" select="A" />
|
||||
<xsl:param name="section.autolabel" select="1" />
|
||||
<xsl:param name="section.label.includes.component.label" select="1" />
|
||||
<xsl:param name="generate.id.attributes" select="1" />
|
||||
|
||||
</xsl:stylesheet>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version='1.0'?>
|
||||
<xsl:stylesheet
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="1.0">
|
||||
|
||||
<xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/eclipse/eclipse3.xsl" />
|
||||
|
||||
<!--
|
||||
|
||||
<xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/eclipse/eclipse3.xsl" />
|
||||
|
||||
<xsl:import
|
||||
href="http://docbook.sourceforge.net/release/xsl/1.76.1/eclipse/eclipse3.xsl" />
|
||||
|
||||
-->
|
||||
|
||||
<xsl:param name="chunker.output.indent" select="'yes'"/>
|
||||
<xsl:param name="chunk.quietly" select="1"/>
|
||||
<xsl:param name="chunk.first.sections" select="1"/>
|
||||
<xsl:param name="chunk.section.depth" select="10"/>
|
||||
<xsl:param name="use.id.as.filename" select="1"/>
|
||||
<xsl:param name="ulink.target" select="'_self'" />
|
||||
<xsl:param name="base.dir" select="'html/concepts-manual/'"/>
|
||||
<xsl:param name="html.stylesheet" select="'../book.css'"/>
|
||||
<xsl:param name="eclipse.manifest" select="0"/>
|
||||
<xsl:param name="create.plugin.xml" select="0"/>
|
||||
<xsl:param name="suppress.navigation" select="1"/>
|
||||
<xsl:param name="generate.index" select="0"/>
|
||||
<xsl:param name="chapter.autolabel" select="1" />
|
||||
<xsl:param name="appendix.autolabel" select="1" />
|
||||
<xsl:param name="section.autolabel" select="1" />
|
||||
<xsl:param name="section.label.includes.component.label" select="1" />
|
||||
</xsl:stylesheet>
|
||||
87
documentation/concepts-manual/concepts-manual-intro.xml
Normal file
@@ -0,0 +1,87 @@
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
|
||||
|
||||
<chapter id='concepts-manual-intro'>
|
||||
|
||||
<title>The Yocto Project Concepts Manual</title>
|
||||
<section id='concepts-overview-welcome'>
|
||||
<title>Welcome</title>
|
||||
|
||||
<para>
|
||||
Welcome to the Yocto Project Concepts Manual!
|
||||
This manual provides conceptual information that helps you
|
||||
better understand the Yocto Project.
|
||||
You can learn about Yocto Project components,
|
||||
cross-development toolchain generation, shared-state cache,
|
||||
and many other concepts.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This manual does not give you the following:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<emphasis>Complete Step-by-step Instructions for Development Tasks:</emphasis>
|
||||
Instructional procedures reside in other manuals within
|
||||
the Yocto Project documentation set.
|
||||
For example, the
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;'>Yocto Project Development Tasks Manual</ulink>
|
||||
provides examples on how to perform various development
|
||||
tasks.
|
||||
As another example, the
|
||||
<ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
|
||||
manual contains detailed instructions on how to install an
|
||||
SDK, which is used to develop applications for target
|
||||
hardware.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Reference Material:</emphasis>
|
||||
This type of material resides in an appropriate reference
|
||||
manual.
|
||||
For example, system variables are documented in the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;'>Yocto Project Reference Manual</ulink>.
|
||||
As another example, the
|
||||
<ulink url='&YOCTO_DOCS_BSP_URL;'>Yocto Project Board Support Package (BSP) Developer's Guide</ulink>
|
||||
contains reference information on BSPs.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Getting Started Material:</emphasis>
|
||||
This type of material resides in the
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;'>Getting Started With Yocto Project Manual</ulink>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Detailed Public Information Not Specific to the
|
||||
Yocto Project:</emphasis>
|
||||
For example, exhaustive information on how to use Git
|
||||
is better covered with Internet searches and official
|
||||
Git Documentation than through the Yocto Project
|
||||
documentation.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='concepts-overview-other-information'>
|
||||
<title>Other Information</title>
|
||||
|
||||
<para>
|
||||
Because this manual presents information for many different
|
||||
concepts, supplemental information is recommended for full
|
||||
comprehension.
|
||||
For additional introductory information on the Yocto Project, see
|
||||
the <ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>.
|
||||
You can find an introductory to using the Yocto Project by working
|
||||
through the
|
||||
<ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For a comprehensive list of links and other documentation, see the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#resources-links-and-related-documentation'>Links and Related Documentation</ulink>"
|
||||
section in the Yocto Project Reference Manual.
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
||||
<!--
|
||||
vim: expandtab tw=80 ts=4
|
||||
-->
|
||||
988
documentation/concepts-manual/concepts-manual-style.css
Normal file
@@ -0,0 +1,988 @@
|
||||
/*
|
||||
Generic XHTML / DocBook XHTML CSS Stylesheet.
|
||||
|
||||
Browser wrangling and typographic design by
|
||||
Oyvind Kolas / pippin@gimp.org
|
||||
|
||||
Customised for Poky by
|
||||
Matthew Allum / mallum@o-hand.com
|
||||
|
||||
Thanks to:
|
||||
Liam R. E. Quin
|
||||
William Skaggs
|
||||
Jakub Steiner
|
||||
|
||||
Structure
|
||||
---------
|
||||
|
||||
The stylesheet is divided into the following sections:
|
||||
|
||||
Positioning
|
||||
Margins, paddings, width, font-size, clearing.
|
||||
Decorations
|
||||
Borders, style
|
||||
Colors
|
||||
Colors
|
||||
Graphics
|
||||
Graphical backgrounds
|
||||
Nasty IE tweaks
|
||||
Workarounds needed to make it work in internet explorer,
|
||||
currently makes the stylesheet non validating, but up until
|
||||
this point it is validating.
|
||||
Mozilla extensions
|
||||
Transparency for footer
|
||||
Rounded corners on boxes
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*************** /
|
||||
/ Positioning /
|
||||
/ ***************/
|
||||
|
||||
body {
|
||||
font-family: Verdana, Sans, sans-serif;
|
||||
|
||||
min-width: 640px;
|
||||
width: 80%;
|
||||
margin: 0em auto;
|
||||
padding: 2em 5em 5em 5em;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6,h7 {
|
||||
font-family: Arial, Sans;
|
||||
color: #00557D;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
text-align: left;
|
||||
padding: 0em 0em 0em 0em;
|
||||
margin: 2em 0em 0em 0em;
|
||||
}
|
||||
|
||||
h2.subtitle {
|
||||
margin: 0.10em 0em 3.0em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
font-size: 1.8em;
|
||||
padding-left: 20%;
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin: 2em 0em 0.66em 0em;
|
||||
padding: 0.5em 0em 0em 0em;
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h3.subtitle {
|
||||
margin: 0em 0em 1em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
font-size: 142.14%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 1em 0em 0.5em 0em;
|
||||
padding: 1em 0em 0em 0em;
|
||||
font-size: 140%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin: 1em 0em 0.5em 0em;
|
||||
padding: 1em 0em 0em 0em;
|
||||
font-size: 120%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h5 {
|
||||
margin: 1em 0em 0.5em 0em;
|
||||
padding: 1em 0em 0em 0em;
|
||||
font-size: 110%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h6 {
|
||||
margin: 1em 0em 0em 0em;
|
||||
padding: 1em 0em 0em 0em;
|
||||
font-size: 110%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.authorgroup {
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
padding-top: 256px;
|
||||
background-image: url("figures/concepts-manual-title.png");
|
||||
background-position: left top;
|
||||
margin-top: -256px;
|
||||
padding-right: 50px;
|
||||
margin-left: 0px;
|
||||
text-align: right;
|
||||
width: 740px;
|
||||
}
|
||||
|
||||
h3.author {
|
||||
margin: 0em 0me 0em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
font-weight: normal;
|
||||
font-size: 100%;
|
||||
color: #333;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.author tt.email {
|
||||
font-size: 66%;
|
||||
}
|
||||
|
||||
.titlepage hr {
|
||||
width: 0em;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.revhistory {
|
||||
padding-top: 2em;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.toc,
|
||||
.list-of-tables,
|
||||
.list-of-examples,
|
||||
.list-of-figures {
|
||||
padding: 1.33em 0em 2.5em 0em;
|
||||
color: #00557D;
|
||||
}
|
||||
|
||||
.toc p,
|
||||
.list-of-tables p,
|
||||
.list-of-figures p,
|
||||
.list-of-examples p {
|
||||
padding: 0em 0em 0em 0em;
|
||||
padding: 0em 0em 0.3em;
|
||||
margin: 1.5em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.toc p b,
|
||||
.list-of-tables p b,
|
||||
.list-of-figures p b,
|
||||
.list-of-examples p b{
|
||||
font-size: 100.0%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.toc dl,
|
||||
.list-of-tables dl,
|
||||
.list-of-figures dl,
|
||||
.list-of-examples dl {
|
||||
margin: 0em 0em 0.5em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.toc dt {
|
||||
margin: 0em 0em 0em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.toc dd {
|
||||
margin: 0em 0em 0em 2.6em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
div.glossary dl,
|
||||
div.variablelist dl {
|
||||
}
|
||||
|
||||
.glossary dl dt,
|
||||
.variablelist dl dt,
|
||||
.variablelist dl dt span.term {
|
||||
font-weight: normal;
|
||||
width: 20em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.variablelist dl dt {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
.glossary dl dd,
|
||||
.variablelist dl dd {
|
||||
margin-top: -1em;
|
||||
margin-left: 25.5em;
|
||||
}
|
||||
|
||||
.glossary dd p,
|
||||
.variablelist dd p {
|
||||
margin-top: 0em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
|
||||
div.calloutlist table td {
|
||||
padding: 0em 0em 0em 0em;
|
||||
margin: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
div.calloutlist table td p {
|
||||
margin-top: 0em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
div p.copyright {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
div.legalnotice p.legalnotice-title {
|
||||
margin-bottom: 0em;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 1.5em;
|
||||
margin-top: 0em;
|
||||
|
||||
}
|
||||
|
||||
dl {
|
||||
padding-top: 0em;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: solid 1px;
|
||||
}
|
||||
|
||||
|
||||
.mediaobject,
|
||||
.mediaobjectco {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0em 0em 0em 1.5em;
|
||||
}
|
||||
|
||||
ul li {
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
ul li p {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
table {
|
||||
width :100%;
|
||||
}
|
||||
|
||||
th {
|
||||
padding: 0.25em;
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 0.25em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
p a[id] {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
display: inline;
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: underline;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
pre {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
/*font-weight: bold;*/
|
||||
}
|
||||
|
||||
/* This style defines how the permalink character
|
||||
appears by itself and when hovered over with
|
||||
the mouse. */
|
||||
|
||||
[alt='Permalink'] { color: #eee; }
|
||||
[alt='Permalink']:hover { color: black; }
|
||||
|
||||
|
||||
div.informalfigure,
|
||||
div.informalexample,
|
||||
div.informaltable,
|
||||
div.figure,
|
||||
div.table,
|
||||
div.example {
|
||||
margin: 1em 0em;
|
||||
padding: 1em;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
|
||||
div.informalfigure p.title b,
|
||||
div.informalexample p.title b,
|
||||
div.informaltable p.title b,
|
||||
div.figure p.title b,
|
||||
div.example p.title b,
|
||||
div.table p.title b{
|
||||
padding-top: 0em;
|
||||
margin-top: 0em;
|
||||
font-size: 100%;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.mediaobject .caption,
|
||||
.mediaobject .caption p {
|
||||
text-align: center;
|
||||
font-size: 80%;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.epigraph {
|
||||
padding-left: 55%;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.epigraph p {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.epigraph .quote {
|
||||
font-style: italic;
|
||||
}
|
||||
.epigraph .attribution {
|
||||
font-style: normal;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
span.application {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.programlisting {
|
||||
font-family: monospace;
|
||||
font-size: 80%;
|
||||
white-space: pre;
|
||||
margin: 1.33em 0em;
|
||||
padding: 1.33em;
|
||||
}
|
||||
|
||||
.tip,
|
||||
.warning,
|
||||
.caution,
|
||||
.note {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
|
||||
}
|
||||
|
||||
/* force full width of table within div */
|
||||
.tip table,
|
||||
.warning table,
|
||||
.caution table,
|
||||
.note table {
|
||||
border: none;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
.tip table th,
|
||||
.warning table th,
|
||||
.caution table th,
|
||||
.note table th {
|
||||
padding: 0.8em 0.0em 0.0em 0.0em;
|
||||
margin : 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.tip p,
|
||||
.warning p,
|
||||
.caution p,
|
||||
.note p {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
padding-right: 1em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.acronym {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
b.keycap,
|
||||
.keycap {
|
||||
padding: 0.09em 0.3em;
|
||||
margin: 0em;
|
||||
}
|
||||
|
||||
.itemizedlist li {
|
||||
clear: none;
|
||||
}
|
||||
|
||||
.filename {
|
||||
font-size: medium;
|
||||
font-family: Courier, monospace;
|
||||
}
|
||||
|
||||
|
||||
div.navheader, div.heading{
|
||||
position: absolute;
|
||||
left: 0em;
|
||||
top: 0em;
|
||||
width: 100%;
|
||||
background-color: #cdf;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.navfooter, div.footing{
|
||||
position: fixed;
|
||||
left: 0em;
|
||||
bottom: 0em;
|
||||
background-color: #eee;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
div.navheader td,
|
||||
div.navfooter td {
|
||||
font-size: 66%;
|
||||
}
|
||||
|
||||
div.navheader table th {
|
||||
/*font-family: Georgia, Times, serif;*/
|
||||
/*font-size: x-large;*/
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
div.navheader table {
|
||||
border-left: 0em;
|
||||
border-right: 0em;
|
||||
border-top: 0em;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.navfooter table {
|
||||
border-left: 0em;
|
||||
border-right: 0em;
|
||||
border-bottom: 0em;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.navheader table td a,
|
||||
div.navfooter table td a {
|
||||
color: #777;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* normal text in the footer */
|
||||
div.navfooter table td {
|
||||
color: black;
|
||||
}
|
||||
|
||||
div.navheader table td a:visited,
|
||||
div.navfooter table td a:visited {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
|
||||
/* links in header and footer */
|
||||
div.navheader table td a:hover,
|
||||
div.navfooter table td a:hover {
|
||||
text-decoration: underline;
|
||||
background-color: transparent;
|
||||
color: #33a;
|
||||
}
|
||||
|
||||
div.navheader hr,
|
||||
div.navfooter hr {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
.qandaset tr.question td p {
|
||||
margin: 0em 0em 1em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.qandaset tr.answer td p {
|
||||
margin: 0em 0em 1em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
.answer td {
|
||||
padding-bottom: 1.5em;
|
||||
}
|
||||
|
||||
.emphasis {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
/************* /
|
||||
/ decorations /
|
||||
/ *************/
|
||||
|
||||
.titlepage {
|
||||
}
|
||||
|
||||
.part .title {
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
border: none;
|
||||
}
|
||||
|
||||
/*
|
||||
h1 {
|
||||
border: none;
|
||||
}
|
||||
|
||||
h2 {
|
||||
border-top: solid 0.2em;
|
||||
border-bottom: solid 0.06em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
border-top: 0em;
|
||||
border-bottom: solid 0.06em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
border: 0em;
|
||||
border-bottom: solid 0.06em;
|
||||
}
|
||||
|
||||
h5 {
|
||||
border: 0em;
|
||||
}
|
||||
*/
|
||||
|
||||
.programlisting {
|
||||
border: solid 1px;
|
||||
}
|
||||
|
||||
div.figure,
|
||||
div.table,
|
||||
div.informalfigure,
|
||||
div.informaltable,
|
||||
div.informalexample,
|
||||
div.example {
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.tip,
|
||||
.warning,
|
||||
.caution,
|
||||
.note {
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
.tip table th,
|
||||
.warning table th,
|
||||
.caution table th,
|
||||
.note table th {
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
|
||||
.question td {
|
||||
border-top: 1px solid black;
|
||||
}
|
||||
|
||||
.answer {
|
||||
}
|
||||
|
||||
|
||||
b.keycap,
|
||||
.keycap {
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
|
||||
div.navheader, div.heading{
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
|
||||
|
||||
div.navfooter, div.footing{
|
||||
border-top: 1px solid;
|
||||
}
|
||||
|
||||
/********* /
|
||||
/ colors /
|
||||
/ *********/
|
||||
|
||||
body {
|
||||
color: #333;
|
||||
background: white;
|
||||
}
|
||||
|
||||
a {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
background-color: #dedede;
|
||||
}
|
||||
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
h7,
|
||||
h8 {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
hr {
|
||||
border-color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
.tip, .warning, .caution, .note {
|
||||
border-color: #fff;
|
||||
}
|
||||
|
||||
|
||||
.tip table th,
|
||||
.warning table th,
|
||||
.caution table th,
|
||||
.note table th {
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
|
||||
|
||||
.warning {
|
||||
background-color: #f0f0f2;
|
||||
}
|
||||
|
||||
.caution {
|
||||
background-color: #f0f0f2;
|
||||
}
|
||||
|
||||
.tip {
|
||||
background-color: #f0f0f2;
|
||||
}
|
||||
|
||||
.note {
|
||||
background-color: #f0f0f2;
|
||||
}
|
||||
|
||||
.glossary dl dt,
|
||||
.variablelist dl dt,
|
||||
.variablelist dl dt span.term {
|
||||
color: #044;
|
||||
}
|
||||
|
||||
div.figure,
|
||||
div.table,
|
||||
div.example,
|
||||
div.informalfigure,
|
||||
div.informaltable,
|
||||
div.informalexample {
|
||||
border-color: #aaa;
|
||||
}
|
||||
|
||||
pre.programlisting {
|
||||
color: black;
|
||||
background-color: #fff;
|
||||
border-color: #aaa;
|
||||
border-width: 2px;
|
||||
}
|
||||
|
||||
.guimenu,
|
||||
.guilabel,
|
||||
.guimenuitem {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
|
||||
b.keycap,
|
||||
.keycap {
|
||||
background-color: #eee;
|
||||
border-color: #999;
|
||||
}
|
||||
|
||||
|
||||
div.navheader {
|
||||
border-color: black;
|
||||
}
|
||||
|
||||
|
||||
div.navfooter {
|
||||
border-color: black;
|
||||
}
|
||||
|
||||
.writernotes {
|
||||
color: red;
|
||||
}
|
||||
|
||||
|
||||
/*********** /
|
||||
/ graphics /
|
||||
/ ***********/
|
||||
|
||||
/*
|
||||
body {
|
||||
background-image: url("images/body_bg.jpg");
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
.navheader,
|
||||
.note,
|
||||
.tip {
|
||||
background-image: url("images/note_bg.jpg");
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
.warning,
|
||||
.caution {
|
||||
background-image: url("images/warning_bg.jpg");
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
.figure,
|
||||
.informalfigure,
|
||||
.example,
|
||||
.informalexample,
|
||||
.table,
|
||||
.informaltable {
|
||||
background-image: url("images/figure_bg.jpg");
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
*/
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
h7{
|
||||
}
|
||||
|
||||
/*
|
||||
Example of how to stick an image as part of the title.
|
||||
|
||||
div.article .titlepage .title
|
||||
{
|
||||
background-image: url("figures/white-on-black.png");
|
||||
background-position: center;
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
*/
|
||||
|
||||
div.preface .titlepage .title,
|
||||
div.colophon .title,
|
||||
div.chapter .titlepage .title,
|
||||
div.article .titlepage .title
|
||||
{
|
||||
}
|
||||
|
||||
div.section div.section .titlepage .title,
|
||||
div.sect2 .titlepage .title {
|
||||
background: none;
|
||||
}
|
||||
|
||||
|
||||
h1.title {
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
height: 256px;
|
||||
text-indent: -9000px;
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
h2.subtitle {
|
||||
background-color: transparent;
|
||||
text-indent: -9000px;
|
||||
overflow:hidden;
|
||||
width: 0px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*************************************** /
|
||||
/ pippin.gimp.org specific alterations /
|
||||
/ ***************************************/
|
||||
|
||||
/*
|
||||
div.heading, div.navheader {
|
||||
color: #777;
|
||||
font-size: 80%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
text-align: left;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
background: url('/gfx/heading_bg.png') transparent;
|
||||
background-repeat: repeat-x;
|
||||
background-attachment: fixed;
|
||||
border: none;
|
||||
}
|
||||
|
||||
div.heading a {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
div.footing, div.navfooter {
|
||||
border: none;
|
||||
color: #ddd;
|
||||
font-size: 80%;
|
||||
text-align:right;
|
||||
|
||||
width: 100%;
|
||||
padding-top: 10px;
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
left: 0px;
|
||||
|
||||
background: url('/gfx/footing_bg.png') transparent;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/****************** /
|
||||
/ nasty ie tweaks /
|
||||
/ ******************/
|
||||
|
||||
/*
|
||||
div.heading, div.navheader {
|
||||
width:expression(document.body.clientWidth + "px");
|
||||
}
|
||||
|
||||
div.footing, div.navfooter {
|
||||
width:expression(document.body.clientWidth + "px");
|
||||
margin-left:expression("-5em");
|
||||
}
|
||||
body {
|
||||
padding:expression("4em 5em 0em 5em");
|
||||
}
|
||||
*/
|
||||
|
||||
/**************************************** /
|
||||
/ mozilla vendor specific css extensions /
|
||||
/ ****************************************/
|
||||
/*
|
||||
div.navfooter, div.footing{
|
||||
-moz-opacity: 0.8em;
|
||||
}
|
||||
|
||||
div.figure,
|
||||
div.table,
|
||||
div.informalfigure,
|
||||
div.informaltable,
|
||||
div.informalexample,
|
||||
div.example,
|
||||
.tip,
|
||||
.warning,
|
||||
.caution,
|
||||
.note {
|
||||
-moz-border-radius: 0.5em;
|
||||
}
|
||||
|
||||
b.keycap,
|
||||
.keycap {
|
||||
-moz-border-radius: 0.3em;
|
||||
}
|
||||
*/
|
||||
|
||||
table tr td table tr td {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
hr {
|
||||
display: none;
|
||||
}
|
||||
|
||||
table {
|
||||
border: 0em;
|
||||
}
|
||||
|
||||
.photo {
|
||||
float: right;
|
||||
margin-left: 1.5em;
|
||||
margin-bottom: 1.5em;
|
||||
margin-top: 0em;
|
||||
max-width: 17em;
|
||||
border: 1px solid gray;
|
||||
padding: 3px;
|
||||
background: white;
|
||||
}
|
||||
.seperator {
|
||||
padding-top: 2em;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#validators {
|
||||
margin-top: 5em;
|
||||
text-align: right;
|
||||
color: #777;
|
||||
}
|
||||
@media print {
|
||||
body {
|
||||
font-size: 8pt;
|
||||
}
|
||||
.noprint {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.tip,
|
||||
.note {
|
||||
background: #f0f0f2;
|
||||
color: #333;
|
||||
padding: 20px;
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.tip h3,
|
||||
.note h3 {
|
||||
padding: 0em;
|
||||
margin: 0em;
|
||||
font-size: 2em;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.tip a,
|
||||
.note a {
|
||||
color: #333;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.footnote {
|
||||
font-size: small;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
/* Changes the announcement text */
|
||||
.tip h3,
|
||||
.warning h3,
|
||||
.caution h3,
|
||||
.note h3 {
|
||||
font-size:large;
|
||||
color: #00557D;
|
||||
}
|
||||
92
documentation/concepts-manual/concepts-manual.xml
Normal file
@@ -0,0 +1,92 @@
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
|
||||
|
||||
<book id='concepts-manual' lang='en'
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude"
|
||||
xmlns="http://docbook.org/ns/docbook"
|
||||
>
|
||||
<bookinfo>
|
||||
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref='figures/concepts-manual-title.png'
|
||||
format='SVG'
|
||||
align='left' scalefit='1' width='100%'/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
|
||||
<title>
|
||||
Yocto Project Concepts Manual
|
||||
</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Scott</firstname> <surname>Rifenbark</surname>
|
||||
<affiliation>
|
||||
<orgname>Scotty's Documentation Services, INC</orgname>
|
||||
</affiliation>
|
||||
<email>srifenbark@gmail.com</email>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<revhistory>
|
||||
<revision>
|
||||
<revnumber>2.5</revnumber>
|
||||
<date>April 2018</date>
|
||||
<revremark>The initial document released with the Yocto Project 2.5 Release.</revremark>
|
||||
</revision>
|
||||
</revhistory>
|
||||
|
||||
<copyright>
|
||||
<year>©RIGHT_YEAR;</year>
|
||||
<holder>Linux Foundation</holder>
|
||||
</copyright>
|
||||
|
||||
<legalnotice>
|
||||
<para>
|
||||
Permission is granted to copy, distribute and/or modify this document under
|
||||
the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">
|
||||
Creative Commons Attribution-Share Alike 2.0 UK: England & Wales</ulink> as published by
|
||||
Creative Commons.
|
||||
</para>
|
||||
<note><title>Manual Notes</title>
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
This version of the
|
||||
<emphasis>Yocto Project Concepts Manual</emphasis>
|
||||
is for the &YOCTO_DOC_VERSION; release of the
|
||||
Yocto Project.
|
||||
To be sure you have the latest version of the manual
|
||||
for this release, use the manual from the
|
||||
<ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project documentation page</ulink>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
For manuals associated with other releases of the Yocto
|
||||
Project, go to the
|
||||
<ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project documentation page</ulink>
|
||||
and use the drop-down "Active Releases" button
|
||||
and choose the manual associated with the desired
|
||||
Yocto Project.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
To report any inaccuracies or problems with this
|
||||
manual, send an email to the Yocto Project
|
||||
discussion group at
|
||||
<filename>yocto@yoctoproject.com</filename> or log into
|
||||
the freenode <filename>#yocto</filename> channel.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
</legalnotice>
|
||||
|
||||
</bookinfo>
|
||||
|
||||
<xi:include href="concepts-manual-intro.xml"/>
|
||||
|
||||
<xi:include href="concepts-manual-concepts.xml"/>
|
||||
|
||||
</book>
|
||||
<!--
|
||||
vim: expandtab tw=80 ts=4
|
||||
-->
|
||||
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
BIN
documentation/concepts-manual/figures/concepts-manual-title.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 113 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
0
documentation/ref-manual/figures/user-configuration.png → documentation/concepts-manual/figures/user-configuration.png
Executable file → Normal file
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 81 KiB |
@@ -99,7 +99,7 @@
|
||||
with the OpenEmbedded build system is advisable.
|
||||
Of the SCMs BitBake supports, the
|
||||
Yocto Project team strongly recommends using
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#git'>Git</ulink>.
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#git'>Git</ulink>.
|
||||
Git is a distributed system that is easy to backup,
|
||||
allows you to work remotely, and then connects back to the
|
||||
infrastructure.
|
||||
@@ -310,7 +310,8 @@
|
||||
Consider the following:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
Use <ulink url='&YOCTO_DOCS_REF_URL;#git'>Git</ulink>
|
||||
Use
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#git'>Git</ulink>
|
||||
as the source control system.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
@@ -324,7 +325,7 @@
|
||||
Separate the project's Metadata and code by using
|
||||
separate Git repositories.
|
||||
See the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#yocto-project-repositories'>Yocto Project Source Repositories</ulink>"
|
||||
"<ulink url='&YOCTO_DOCS_GS_URL;#yocto-project-repositories'>Yocto Project Source Repositories</ulink>"
|
||||
section for information on these repositories.
|
||||
See the
|
||||
"<link linkend='working-with-yocto-project-source-files'>Working With Yocto Project Source Files</link>"
|
||||
@@ -548,8 +549,8 @@
|
||||
pull the change into the component's upstream repository.
|
||||
You do this by pushing to a contribution repository that is upstream.
|
||||
See the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#workflows'>Workflows</ulink>"
|
||||
section in the Yocto Project Reference Manual for additional
|
||||
"<ulink url='&YOCTO_DOCS_GS_URL;#workflows'>Workflows</ulink>"
|
||||
section in the Getting Started With Yocto Project Manual for additional
|
||||
concepts on working in the Yocto Project development environment.
|
||||
</para>
|
||||
|
||||
@@ -748,7 +749,7 @@
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Search by File:</emphasis>
|
||||
Using <ulink url='&YOCTO_DOCS_REF_URL;#git'>Git</ulink>,
|
||||
Using <ulink url='&YOCTO_DOCS_GS_URL;#git'>Git</ulink>,
|
||||
you can enter the following command to bring up a
|
||||
short list of all commits against a specific file:
|
||||
<literallayout class='monospaced'>
|
||||
|
||||
@@ -7,15 +7,51 @@
|
||||
<title>Using the Quick EMUlator (QEMU)</title>
|
||||
|
||||
<para>
|
||||
This chapter provides procedures that show you how to use the
|
||||
Quick EMUlator (QEMU), which is an Open Source project the Yocto
|
||||
Project uses as part of its development "tool set".
|
||||
For reference information on the Yocto Project implementation of QEMU,
|
||||
see the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#ref-quick-emulator-qemu'>Quick EMUlator (QEMU)</ulink>"
|
||||
section in the Yocto Project Reference Manual.
|
||||
The Yocto Project uses an implementation of the Quick EMUlator (QEMU)
|
||||
Open Source project as part of the Yocto Project development "tool
|
||||
set".
|
||||
This chapter provides both procedures that show you how to use the
|
||||
Quick EMUlator (QEMU) and other QEMU information helpful for
|
||||
development purposes.
|
||||
</para>
|
||||
|
||||
<section id='qemu-dev-overview'>
|
||||
<title>Overview</title>
|
||||
|
||||
<para>
|
||||
Within the context of the Yocto Project, QEMU is an
|
||||
emulator and virtualization machine that allows you to run a
|
||||
complete image you have built using the Yocto Project as just
|
||||
another task on your build system.
|
||||
QEMU is useful for running and testing images and applications on
|
||||
supported Yocto Project architectures without having actual
|
||||
hardware.
|
||||
Among other things, the Yocto Project uses QEMU to run automated
|
||||
Quality Assurance (QA) tests on final images shipped with each
|
||||
release.
|
||||
<note>
|
||||
This implementation is not the same as QEMU in general.
|
||||
</note>
|
||||
This section provides a brief reference for the Yocto Project
|
||||
implementation of QEMU.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For official information and documentation on QEMU in general, see
|
||||
the following references:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<emphasis><ulink url='http://wiki.qemu.org/Main_Page'>QEMU Website</ulink>:</emphasis>
|
||||
The official website for the QEMU Open Source project.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><ulink url='http://wiki.qemu.org/Manual'>Documentation</ulink>:</emphasis>
|
||||
The QEMU user manual.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='qemu-running-qemu'>
|
||||
<title>Running QEMU</title>
|
||||
|
||||
@@ -27,6 +63,9 @@
|
||||
<orderedlist>
|
||||
<listitem><para>
|
||||
<emphasis>Install QEMU:</emphasis>
|
||||
QEMU is made available with the Yocto Project a number of
|
||||
ways.
|
||||
One method is to install a Software Development Kit (SDK).
|
||||
See
|
||||
"<ulink url='&YOCTO_DOCS_SDK_URL;#the-qemu-emulator'>The QEMU Emulator</ulink>"
|
||||
section in the Yocto Project Application Development and
|
||||
@@ -303,6 +342,311 @@
|
||||
</note>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='qemu-dev-performance'>
|
||||
<title>QEMU Performance</title>
|
||||
|
||||
<para>
|
||||
Using QEMU to emulate your hardware can result in speed issues
|
||||
depending on the target and host architecture mix.
|
||||
For example, using the <filename>qemux86</filename> image in the
|
||||
emulator on an Intel-based 32-bit (x86) host machine is fast
|
||||
because the target and host architectures match.
|
||||
On the other hand, using the <filename>qemuarm</filename> image
|
||||
on the same Intel-based host can be slower.
|
||||
But, you still achieve faithful emulation of ARM-specific issues.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To speed things up, the QEMU images support using
|
||||
<filename>distcc</filename> to call a cross-compiler outside the
|
||||
emulated system.
|
||||
If you used <filename>runqemu</filename> to start QEMU, and the
|
||||
<filename>distccd</filename> application is present on the host
|
||||
system, any BitBake cross-compiling toolchain available from the
|
||||
build system is automatically used from within QEMU simply by
|
||||
calling <filename>distcc</filename>.
|
||||
You can accomplish this by defining the cross-compiler variable
|
||||
(e.g. <filename>export CC="distcc"</filename>).
|
||||
Alternatively, if you are using a suitable SDK image or the
|
||||
appropriate stand-alone toolchain is present, the toolchain is
|
||||
also automatically used.
|
||||
<note>
|
||||
Several mechanisms exist that let you connect to the system
|
||||
running on the QEMU emulator:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
QEMU provides a framebuffer interface that makes
|
||||
standard consoles available.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Generally, headless embedded devices have a serial port.
|
||||
If so, you can configure the operating system of the
|
||||
running image to use that port to run a console.
|
||||
The connection uses standard IP networking.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
SSH servers exist in some QEMU images.
|
||||
The <filename>core-image-sato</filename> QEMU image
|
||||
has a Dropbear secure shell (SSH) server that runs
|
||||
with the root password disabled.
|
||||
The <filename>core-image-full-cmdline</filename> and
|
||||
<filename>core-image-lsb</filename> QEMU images
|
||||
have OpenSSH instead of Dropbear.
|
||||
Including these SSH servers allow you to use standard
|
||||
<filename>ssh</filename> and <filename>scp</filename>
|
||||
commands.
|
||||
The <filename>core-image-minimal</filename> QEMU image,
|
||||
however, contains no SSH server.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
You can use a provided, user-space NFS server to boot
|
||||
the QEMU session using a local copy of the root
|
||||
filesystem on the host.
|
||||
In order to make this connection, you must extract a
|
||||
root filesystem tarball by using the
|
||||
<filename>runqemu-extract-sdk</filename> command.
|
||||
After running the command, you must then point the
|
||||
<filename>runqemu</filename>
|
||||
script to the extracted directory instead of a root
|
||||
filesystem image file.
|
||||
See the
|
||||
"<link linkend='qemu-running-under-a-network-file-system-nfs-server'>Running Under a Network File System (NFS) Server</link>"
|
||||
section for more information.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='qemu-dev-command-line-syntax'>
|
||||
<title>QEMU Command-Line Syntax</title>
|
||||
|
||||
<para>
|
||||
The basic <filename>runqemu</filename> command syntax is as
|
||||
follows:
|
||||
<literallayout class='monospaced'>
|
||||
$ runqemu [<replaceable>option</replaceable> ] [...]
|
||||
</literallayout>
|
||||
Based on what you provide on the command line,
|
||||
<filename>runqemu</filename> does a good job of figuring out what
|
||||
you are trying to do.
|
||||
For example, by default, QEMU looks for the most recently built
|
||||
image according to the timestamp when it needs to look for an
|
||||
image.
|
||||
Minimally, through the use of options, you must provide either
|
||||
a machine name, a virtual machine image
|
||||
(<filename>*wic.vmdk</filename>), or a kernel image
|
||||
(<filename>*.bin</filename>).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Following is the command-line help output for the
|
||||
<filename>runqemu</filename> command:
|
||||
<literallayout class='monospaced'>
|
||||
$ runqemu --help
|
||||
|
||||
Usage: you can run this script with any valid combination
|
||||
of the following environment variables (in any order):
|
||||
KERNEL - the kernel image file to use
|
||||
ROOTFS - the rootfs image file or nfsroot directory to use
|
||||
MACHINE - the machine name (optional, autodetected from KERNEL filename if unspecified)
|
||||
Simplified QEMU command-line options can be passed with:
|
||||
nographic - disable video console
|
||||
serial - enable a serial console on /dev/ttyS0
|
||||
slirp - enable user networking, no root privileges is required
|
||||
kvm - enable KVM when running x86/x86_64 (VT-capable CPU required)
|
||||
kvm-vhost - enable KVM with vhost when running x86/x86_64 (VT-capable CPU required)
|
||||
publicvnc - enable a VNC server open to all hosts
|
||||
audio - enable audio
|
||||
[*/]ovmf* - OVMF firmware file or base name for booting with UEFI
|
||||
tcpserial=<port> - specify tcp serial port number
|
||||
biosdir=<dir> - specify custom bios dir
|
||||
biosfilename=<filename> - specify bios filename
|
||||
qemuparams=<xyz> - specify custom parameters to QEMU
|
||||
bootparams=<xyz> - specify custom kernel parameters during boot
|
||||
help, -h, --help: print this text
|
||||
|
||||
Examples:
|
||||
runqemu
|
||||
runqemu qemuarm
|
||||
runqemu tmp/deploy/images/qemuarm
|
||||
runqemu tmp/deploy/images/qemux86/<qemuboot.conf>
|
||||
runqemu qemux86-64 core-image-sato ext4
|
||||
runqemu qemux86-64 wic-image-minimal wic
|
||||
runqemu path/to/bzImage-qemux86.bin path/to/nfsrootdir/ serial
|
||||
runqemu qemux86 iso/hddimg/wic.vmdk/wic.qcow2/wic.vdi/ramfs/cpio.gz...
|
||||
runqemu qemux86 qemuparams="-m 256"
|
||||
runqemu qemux86 bootparams="psplash=false"
|
||||
runqemu path/to/<image>-<machine>.wic
|
||||
runqemu path/to/<image>-<machine>.wic.vmdk
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='qemu-dev-runqemu-command-line-options'>
|
||||
<title><filename>runqemu</filename> Command-Line Options</title>
|
||||
|
||||
<para>
|
||||
Following is a description of <filename>runqemu</filename>
|
||||
options you can provide on the command line:
|
||||
<note><title>Tip</title>
|
||||
If you do provide some "illegal" option combination or perhaps
|
||||
you do not provide enough in the way of options,
|
||||
<filename>runqemu</filename> provides appropriate error
|
||||
messaging to help you correct the problem.
|
||||
</note>
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<replaceable>QEMUARCH</replaceable>:
|
||||
The QEMU machine architecture, which must be "qemuarm",
|
||||
"qemuarm64", "qemumips", "qemumips64", "qemuppc",
|
||||
"qemux86", or "qemux86-64".
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename><replaceable>VM</replaceable></filename>:
|
||||
The virtual machine image, which must be a
|
||||
<filename>.wic.vmdk</filename> file.
|
||||
Use this option when you want to boot a
|
||||
<filename>.wic.vmdk</filename> image.
|
||||
The image filename you provide must contain one of the
|
||||
following strings: "qemux86-64", "qemux86", "qemuarm",
|
||||
"qemumips64", "qemumips", "qemuppc", or "qemush4".
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<replaceable>ROOTFS</replaceable>:
|
||||
A root filesystem that has one of the following
|
||||
filetype extensions: "ext2", "ext3", "ext4", "jffs2",
|
||||
"nfs", or "btrfs".
|
||||
If the filename you provide for this option uses “nfs”, it
|
||||
must provide an explicit root filesystem path.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<replaceable>KERNEL</replaceable>:
|
||||
A kernel image, which is a <filename>.bin</filename> file.
|
||||
When you provide a <filename>.bin</filename> file,
|
||||
<filename>runqemu</filename> detects it and assumes the
|
||||
file is a kernel image.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<replaceable>MACHINE</replaceable>:
|
||||
The architecture of the QEMU machine, which must be one
|
||||
of the following: "qemux86", "qemux86-64", "qemuarm",
|
||||
"qemuarm64", "qemumips", “qemumips64", or "qemuppc".
|
||||
The <replaceable>MACHINE</replaceable> and
|
||||
<replaceable>QEMUARCH</replaceable> options are basically
|
||||
identical.
|
||||
If you do not provide a <replaceable>MACHINE</replaceable>
|
||||
option, <filename>runqemu</filename> tries to determine
|
||||
it based on other options.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>ramfs</filename>:
|
||||
Indicates you are booting an initial RAM disk (initramfs)
|
||||
image, which means the <filename>FSTYPE</filename> is
|
||||
<filename>cpio.gz</filename>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>iso</filename>:
|
||||
Indicates you are booting an ISO image, which means the
|
||||
<filename>FSTYPE</filename> is
|
||||
<filename>.iso</filename>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>nographic</filename>:
|
||||
Disables the video console, which sets the console to
|
||||
"ttys0".
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>serial</filename>:
|
||||
Enables a serial console on
|
||||
<filename>/dev/ttyS0</filename>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>biosdir</filename>:
|
||||
Establishes a custom directory for BIOS, VGA BIOS and
|
||||
keymaps.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>biosfilename</filename>:
|
||||
Establishes a custom BIOS name.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>qemuparams=\"<replaceable>xyz</replaceable>\"</filename>:
|
||||
Specifies custom QEMU parameters.
|
||||
Use this option to pass options other than the simple
|
||||
"kvm" and "serial" options.
|
||||
</para></listitem>
|
||||
<listitem><para><filename>bootparams=\"<replaceable>xyz</replaceable>\"</filename>:
|
||||
Specifies custom boot parameters for the kernel.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>audio</filename>:
|
||||
Enables audio in QEMU.
|
||||
The <replaceable>MACHINE</replaceable> option must be
|
||||
either "qemux86" or "qemux86-64" in order for audio to be
|
||||
enabled.
|
||||
Additionally, the <filename>snd_intel8x0</filename>
|
||||
or <filename>snd_ens1370</filename> driver must be
|
||||
installed in linux guest.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>slirp</filename>:
|
||||
Enables "slirp" networking, which is a different way
|
||||
of networking that does not need root access
|
||||
but also is not as easy to use or comprehensive
|
||||
as the default.
|
||||
</para></listitem>
|
||||
<listitem><para id='kvm-cond'>
|
||||
<filename>kvm</filename>:
|
||||
Enables KVM when running "qemux86" or "qemux86-64"
|
||||
QEMU architectures.
|
||||
For KVM to work, all the following conditions must be met:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
Your <replaceable>MACHINE</replaceable> must be either
|
||||
qemux86" or "qemux86-64".
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Your build host has to have the KVM modules
|
||||
installed, which are
|
||||
<filename>/dev/kvm</filename>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
The build host <filename>/dev/kvm</filename>
|
||||
directory has to be both writable and readable.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>kvm-vhost</filename>:
|
||||
Enables KVM with VHOST support when running "qemux86"
|
||||
or "qemux86-64" QEMU architectures.
|
||||
For KVM with VHOST to work, the following conditions must
|
||||
be met:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<link linkend='kvm-cond'>kvm</link> option
|
||||
conditions must be met.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Your build host has to have virtio net device, which
|
||||
are <filename>/dev/vhost-net</filename>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
The build host <filename>/dev/vhost-net</filename>
|
||||
directory has to be either readable or writable
|
||||
and “slirp-enabled”.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>publicvnc</filename>:
|
||||
Enables a VNC server open to all hosts.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
||||
<!--
|
||||
vim: expandtab tw=80 ts=4
|
||||
|
||||
@@ -8,10 +8,8 @@
|
||||
|
||||
<para>
|
||||
This chapter provides procedures related to getting set up to use the
|
||||
Yocto Project.
|
||||
For a more front-to-end process that takes you from minimally preparing
|
||||
a build host through building an image, see the
|
||||
<ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>.
|
||||
Yocto Project, working with Yocto Project source files, and building
|
||||
an image.
|
||||
</para>
|
||||
|
||||
<section id='setting-up-the-development-host-to-use-the-yocto-project'>
|
||||
@@ -262,13 +260,13 @@
|
||||
<listitem><para>
|
||||
For concepts and introductory information about Git as it
|
||||
is used in the Yocto Project, see the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#git'>Git</ulink>"
|
||||
section in the Yocto Project Reference Manual.
|
||||
"<ulink url='&YOCTO_DOCS_GS_URL;#git'>Git</ulink>"
|
||||
section in the Getting Started With Yocto Project Manual.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
For concepts on Yocto Project source repositories, see the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#yocto-project-repositories'>Yocto Project Source Repositories</ulink>"
|
||||
section in the Yocto Project Reference Manual."
|
||||
"<ulink url='&YOCTO_DOCS_GS_URL;#yocto-project-repositories'>Yocto Project Source Repositories</ulink>"
|
||||
section in the Getting Started With Yocto Project Manual."
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
@@ -278,9 +276,20 @@
|
||||
<title>Accessing Source Repositories</title>
|
||||
|
||||
<para>
|
||||
Yocto Project maintains upstream Git
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#source-repositories'>Source Repositories</ulink>
|
||||
that you can examine and access using a browser-based UI:
|
||||
Working from a copy of the upstream Yocto Project
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#source-repositories'>Source Repositories</ulink>
|
||||
is the preferred method for obtaining and using a Yocto Project
|
||||
release.
|
||||
You can view the Yocto Project Source Repositories at
|
||||
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>.
|
||||
In particular, you can find the
|
||||
<filename>poky</filename> repository at
|
||||
<ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/'></ulink>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Use the following procedure to locate the latest upstream copy of
|
||||
the <filename>poky</filename> Git repository:
|
||||
<orderedlist>
|
||||
<listitem><para>
|
||||
<emphasis>Access Repositories:</emphasis>
|
||||
@@ -290,24 +299,21 @@
|
||||
repositories.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Select a Repository:</emphasis>
|
||||
Click on any repository in which you are interested (e.g.
|
||||
<emphasis>Select the Repository:</emphasis>
|
||||
Click on the repository in which you are interested (i.e.
|
||||
<filename>poky</filename>).
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Find the URL Used to Clone the Repository:</emphasis>
|
||||
At the bottom of the page, note the URL used to
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#git-commands-clone'>clone</ulink>
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#git-commands-clone'>clone</ulink>
|
||||
that repository (e.g.
|
||||
<filename>&YOCTO_GIT_URL;/poky</filename>).
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Examine Change History of the Repository:</emphasis>
|
||||
At the top of the page, click on any branch in which you
|
||||
might be interested (e.g.
|
||||
<filename>&DISTRO_NAME_NO_CAP;</filename>).
|
||||
You can then view the commit log or tree view for that
|
||||
development branch.
|
||||
<note>
|
||||
For information on cloning a repository, see the
|
||||
"<link linkend='cloning-the-poky-repository'>Cloning the <filename>poky</filename> Repository</link>"
|
||||
section.
|
||||
</note>
|
||||
</para></listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
@@ -319,12 +325,12 @@
|
||||
<para>
|
||||
Yocto Project maintains an Index of Releases area that contains
|
||||
related files that contribute to the Yocto Project.
|
||||
Rather than Git repositories, these files represent snapshot
|
||||
tarballs.
|
||||
Rather than Git repositories, these files are tarballs that
|
||||
represent snapshots in time of a given component.
|
||||
<note><title>Tip</title>
|
||||
The recommended method for accessing Yocto Project
|
||||
components is to use Git to clone a repository and work from
|
||||
within that local repository.
|
||||
components is to use Git to clone the upstream repository and
|
||||
work from within that locally cloned repository.
|
||||
The procedure in this section exists should you desire a
|
||||
tarball snapshot of any given component.
|
||||
</note>
|
||||
@@ -342,8 +348,8 @@
|
||||
full array of released Poky tarballs.
|
||||
The <filename>poky</filename> directory in the
|
||||
Index of Releases was historically used for very
|
||||
early releases and exists for retroactive
|
||||
completeness only.
|
||||
early releases and exists now only for retroactive
|
||||
completeness.
|
||||
</note>
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
@@ -361,7 +367,7 @@
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Download the Tarball:</emphasis>
|
||||
Click a tarball to download and save a snapshot of a
|
||||
Click the tarball to download and save a snapshot of the
|
||||
given component.
|
||||
</para></listitem>
|
||||
</orderedlist>
|
||||
@@ -398,7 +404,7 @@
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Select the Type of Files:</emphasis>
|
||||
Click the type of files you want (i.e "Build System",
|
||||
Click the type of files you want such as "Build System",
|
||||
"Tools", or "Board Support Packages (BSPs)".
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
@@ -410,6 +416,43 @@
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='accessing-nightly-builds'>
|
||||
<title>Accessing Nightly Builds</title>
|
||||
|
||||
<para>
|
||||
Yocto Project maintains an area for nightly builds that contains
|
||||
tarball releases at <ulink url='&YOCTO_AB_NIGHTLY_URL;'/>.
|
||||
These builds include Yocto Project releases, SDK installation
|
||||
scripts, and experimental builds.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Should you ever want to access a nightly build of a particular
|
||||
Yocto Project component, use the following procedure:
|
||||
<orderedlist>
|
||||
<listitem><para>
|
||||
<emphasis>Access the Nightly Builds:</emphasis>
|
||||
Open a browser and go to
|
||||
<ulink url='&YOCTO_AB_NIGHTLY_URL;'/> to access the
|
||||
Nightly Builds.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Select a Build:</emphasis>
|
||||
Click on any build by date in which you are interested.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Find the Tarball:</emphasis>
|
||||
Drill down to find the associated tarball.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Download the Tarball:</emphasis>
|
||||
Click the tarball to download and save a snapshot of the
|
||||
given component.
|
||||
</para></listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='cloning-the-poky-repository'>
|
||||
<title>Cloning the <filename>poky</filename> Repository</title>
|
||||
|
||||
@@ -423,7 +466,7 @@
|
||||
|
||||
<para>
|
||||
You create your Source Directory by using
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#git'>Git</ulink> to clone a local
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#git'>Git</ulink> to clone a local
|
||||
copy of the upstream <filename>poky</filename> repository.
|
||||
<note><title>Tip</title>
|
||||
The preferred method of getting the Yocto Project Source
|
||||
@@ -635,7 +678,7 @@
|
||||
<listitem><para>
|
||||
<emphasis>Checkout the Branch:</emphasis>
|
||||
<literallayout class='monospaced'>
|
||||
$ git checkout tags/&DISTRO; -b my_yocto_&DISTRO;
|
||||
$ git checkout tags/&DISTRO_REL_TAG; -b my_yocto_&DISTRO;
|
||||
Switched to a new branch 'my_yocto_&DISTRO;'
|
||||
$ git branch
|
||||
master
|
||||
@@ -656,13 +699,16 @@
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id='performing-a-simple-build'>
|
||||
<title>Performing a Simple Build</title>
|
||||
<section id='dev-building-an-image'>
|
||||
<title>Building an Image</title>
|
||||
|
||||
<para>
|
||||
In the development environment, you need to build an image whenever
|
||||
you change hardware support, add or change system libraries, or add
|
||||
or change services that have dependencies.
|
||||
Several methods exist that allow you to build an image within the
|
||||
Yocto Project.
|
||||
This procedure shows how to build an image using BitBake from a
|
||||
This section shows you how to build an image using BitBake from a
|
||||
Linux host.
|
||||
<note><title>Notes</title>
|
||||
<itemizedlist>
|
||||
@@ -670,7 +716,7 @@
|
||||
For information on how to build an image using
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#toaster-term'>Toaster</ulink>,
|
||||
see the
|
||||
<ulink url='&YOCTO_DOCS_TOAST_URL;'>Yocto Project Toaster Manual</ulink>.
|
||||
<ulink url='&YOCTO_DOCS_TOAST_URL;'>Toaster Manual</ulink>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
For information on how to use
|
||||
@@ -679,6 +725,12 @@
|
||||
section in the Yocto Project Application Development and
|
||||
the Extensible Software Development Kit (eSDK) manual.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
For a practical example on how to build an image using the
|
||||
OpenEmbedded build system, see the
|
||||
"<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
|
||||
section of the Yocto Project Quick Start.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
</para>
|
||||
@@ -689,11 +741,8 @@
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>
|
||||
under <filename>tmp/deploy/images</filename>.
|
||||
For detailed information on the build process using BitBake, see the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#images-dev-environment'>Images</ulink>"
|
||||
section in the Yocto Project Reference Manual.
|
||||
You can also reference the
|
||||
"<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
|
||||
section in the Yocto Project Quick Start.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#images-dev-environment'>Images</ulink>"
|
||||
section in the Yocto Project Concepts Manual.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -712,14 +761,30 @@
|
||||
<emphasis>Initialize the Build Environment:</emphasis>
|
||||
Initialize the build environment by sourcing the build
|
||||
environment script (i.e.
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>).
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>):
|
||||
<literallayout class='monospaced'>
|
||||
$ source &OE_INIT_FILE; [<replaceable>build_dir</replaceable>]
|
||||
</literallayout></para>
|
||||
|
||||
<para>When you use the initialization script, the
|
||||
OpenEmbedded build system uses <filename>build</filename> as
|
||||
the default Build Directory in your current work directory.
|
||||
You can use a <replaceable>build_dir</replaceable> argument
|
||||
with the script to specify a different build directory.
|
||||
<note><title>Tip</title>
|
||||
A common practice is to use a different Build Directory for
|
||||
different targets.
|
||||
For example, <filename>~/build/x86</filename> for a
|
||||
<filename>qemux86</filename> target, and
|
||||
<filename>~/build/arm</filename> for a
|
||||
<filename>qemuarm</filename> target.
|
||||
</note>
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Make Sure Your <filename>local.conf</filename>
|
||||
File is Correct:</emphasis>
|
||||
Ensure the <filename>conf/local.conf</filename> configuration
|
||||
file, which is found in the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>,
|
||||
file, which is found in the Build Directory,
|
||||
is set up how you want it.
|
||||
This file defines many aspects of the build environment
|
||||
including the target machine architecture through the
|
||||
@@ -727,24 +792,213 @@
|
||||
the packaging format used during the build
|
||||
(<ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink>),
|
||||
and a centralized tarball download directory through the
|
||||
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-DL_DIR'>DL_DIR</ulink></filename> variable.
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-DL_DIR'><filename>DL_DIR</filename></ulink> variable.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Build the Image:</emphasis>
|
||||
Build the image using the <filename>bitbake</filename> command.
|
||||
For example, the following command builds the
|
||||
Build the image using the <filename>bitbake</filename> command:
|
||||
<literallayout class='monospaced'>
|
||||
$ bitbake <replaceable>target</replaceable>
|
||||
</literallayout>
|
||||
<note>
|
||||
For information on BitBake, see the
|
||||
<ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>.
|
||||
</note>
|
||||
The <replaceable>target</replaceable> is the name of the
|
||||
recipe you want to build.
|
||||
Common targets are the images in
|
||||
<filename>meta/recipes-core/images</filename>,
|
||||
<filename>meta/recipes-sato/images</filename>, etc. all found
|
||||
in the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
|
||||
Or, the target can be the name of a recipe for a specific
|
||||
piece of software such as BusyBox.
|
||||
For more details about the images the OpenEmbedded build
|
||||
system supports, see the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
|
||||
chapter in the Yocto Project Reference Manual.</para>
|
||||
|
||||
<para>As an example, the following command builds the
|
||||
<filename>core-image-minimal</filename> image:
|
||||
<literallayout class='monospaced'>
|
||||
$ bitbake core-image-minimal
|
||||
</literallayout>
|
||||
For information on BitBake, see the
|
||||
<ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>.
|
||||
Once an image has been built, it often needs to be installed.
|
||||
The images and kernels built by the OpenEmbedded build system
|
||||
are placed in the Build Directory in
|
||||
<filename class="directory">tmp/deploy/images</filename>.
|
||||
For information on how to run pre-built images such as
|
||||
<filename>qemux86</filename> and <filename>qemuarm</filename>,
|
||||
see the
|
||||
<ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
|
||||
manual.
|
||||
For information about how to install these images, see the
|
||||
documentation for your particular board or machine.
|
||||
</para></listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
-->
|
||||
<section id='speeding-up-the-build'>
|
||||
<title>Speeding Up the Build</title>
|
||||
|
||||
<para>
|
||||
Build time can be an issue.
|
||||
By default, the build system uses simple controls to try and maximize
|
||||
build efficiency.
|
||||
In general, the default settings for all the following variables
|
||||
result in the most efficient build times when dealing with single
|
||||
socket systems (i.e. a single CPU).
|
||||
If you have multiple CPUs, you might try increasing the default
|
||||
values to gain more speed.
|
||||
See the descriptions in the glossary for each variable for more
|
||||
information:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename>:</ulink>
|
||||
The maximum number of threads BitBake simultaneously executes.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<ulink url='&YOCTO_DOCS_BB_URL;#var-BB_NUMBER_PARSE_THREADS'><filename>BB_NUMBER_PARSE_THREADS</filename>:</ulink>
|
||||
The number of threads BitBake uses during parsing.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename>:</ulink>
|
||||
Extra options passed to the <filename>make</filename> command
|
||||
during the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-compile'><filename>do_compile</filename></ulink>
|
||||
task in order to specify parallel compilation on the
|
||||
local build host.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKEINST'><filename>PARALLEL_MAKEINST</filename>:</ulink>
|
||||
Extra options passed to the <filename>make</filename> command
|
||||
during the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>
|
||||
task in order to specify parallel installation on the
|
||||
local build host.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
As mentioned, these variables all scale to the number of processor
|
||||
cores available on the build system.
|
||||
For single socket systems, this auto-scaling ensures that the build
|
||||
system fundamentally takes advantage of potential parallel operations
|
||||
during the build based on the build machine's capabilities.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Following are additional factors that can affect build speed:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
File system type:
|
||||
The file system type that the build is being performed on can
|
||||
also influence performance.
|
||||
Using <filename>ext4</filename> is recommended as compared
|
||||
to <filename>ext2</filename> and <filename>ext3</filename>
|
||||
due to <filename>ext4</filename> improved features
|
||||
such as extents.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Disabling the updating of access time using
|
||||
<filename>noatime</filename>:
|
||||
The <filename>noatime</filename> mount option prevents the
|
||||
build system from updating file and directory access times.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Setting a longer commit:
|
||||
Using the "commit=" mount option increases the interval
|
||||
in seconds between disk cache writes.
|
||||
Changing this interval from the five second default to
|
||||
something longer increases the risk of data loss but decreases
|
||||
the need to write to the disk, thus increasing the build
|
||||
performance.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Choosing the packaging backend:
|
||||
Of the available packaging backends, IPK is the fastest.
|
||||
Additionally, selecting a singular packaging backend also
|
||||
helps.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Using <filename>tmpfs</filename> for
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>
|
||||
as a temporary file system:
|
||||
While this can help speed up the build, the benefits are
|
||||
limited due to the compiler using
|
||||
<filename>-pipe</filename>.
|
||||
The build system goes to some lengths to avoid
|
||||
<filename>sync()</filename> calls into the
|
||||
file system on the principle that if there was a significant
|
||||
failure, the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>
|
||||
contents could easily be rebuilt.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Inheriting the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-rm-work'><filename>rm_work</filename></ulink>
|
||||
class:
|
||||
Inheriting this class has shown to speed up builds due to
|
||||
significantly lower amounts of data stored in the data
|
||||
cache as well as on disk.
|
||||
Inheriting this class also makes cleanup of
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>
|
||||
faster, at the expense of being easily able to dive into the
|
||||
source code.
|
||||
File system maintainers have recommended that the fastest way
|
||||
to clean up large numbers of files is to reformat partitions
|
||||
rather than delete files due to the linear nature of
|
||||
partitions.
|
||||
This, of course, assumes you structure the disk partitions and
|
||||
file systems in a way that this is practical.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
Aside from the previous list, you should keep some trade offs in
|
||||
mind that can help you speed up the build:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
Remove items from
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></ulink>
|
||||
that you might not need.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Exclude debug symbols and other debug information:
|
||||
If you do not need these symbols and other debug information,
|
||||
disabling the <filename>*-dbg</filename> package generation
|
||||
can speed up the build.
|
||||
You can disable this generation by setting the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-INHIBIT_PACKAGE_DEBUG_SPLIT'><filename>INHIBIT_PACKAGE_DEBUG_SPLIT</filename></ulink>
|
||||
variable to "1".
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Disable static library generation for recipes derived from
|
||||
<filename>autoconf</filename> or <filename>libtool</filename>:
|
||||
Following is an example showing how to disable static
|
||||
libraries and still provide an override to handle exceptions:
|
||||
<literallayout class='monospaced'>
|
||||
STATICLIBCONF = "--disable-static"
|
||||
STATICLIBCONF_sqlite3-native = ""
|
||||
EXTRA_OECONF += "${STATICLIBCONF}"
|
||||
</literallayout>
|
||||
<note><title>Notes</title>
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
Some recipes need static libraries in order to work
|
||||
correctly (e.g. <filename>pseudo-native</filename>
|
||||
needs <filename>sqlite3-native</filename>).
|
||||
Overrides, as in the previous example, account for
|
||||
these kinds of exceptions.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Some packages have packaging code that assumes the
|
||||
presence of the static libraries.
|
||||
If so, you might need to exclude them as well.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
||||
<!--
|
||||
vim: expandtab tw=80 ts=4
|
||||
|
||||
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 186 KiB |
BIN
documentation/getting-started/figures/getting-started-title.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
BIN
documentation/getting-started/figures/key-dev-elements.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 12 KiB |
BIN
documentation/getting-started/figures/source-repos.png
Normal file
|
After Width: | Height: | Size: 292 KiB |
|
Before Width: | Height: | Size: 226 KiB After Width: | Height: | Size: 226 KiB |
@@ -0,0 +1,27 @@
|
||||
<?xml version='1.0'?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
|
||||
|
||||
<xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
|
||||
|
||||
<!--
|
||||
|
||||
<xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
|
||||
|
||||
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.76.1/xhtml/docbook.xsl" />
|
||||
|
||||
-->
|
||||
|
||||
<xsl:include href="../template/permalinks.xsl"/>
|
||||
<xsl:include href="../template/section.title.xsl"/>
|
||||
<xsl:include href="../template/component.title.xsl"/>
|
||||
<xsl:include href="../template/division.title.xsl"/>
|
||||
<xsl:include href="../template/formal.object.heading.xsl"/>
|
||||
|
||||
<xsl:param name="html.stylesheet" select="'getting-started-style.css'" />
|
||||
<xsl:param name="chapter.autolabel" select="1" />
|
||||
<xsl:param name="appendix.autolabel" select="A" />
|
||||
<xsl:param name="section.autolabel" select="1" />
|
||||
<xsl:param name="section.label.includes.component.label" select="1" />
|
||||
<xsl:param name="generate.id.attributes" select="1" />
|
||||
|
||||
</xsl:stylesheet>
|
||||
@@ -0,0 +1,974 @@
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
|
||||
|
||||
<chapter id='overview-development-environment'>
|
||||
<title>The Yocto Project Development Environment</title>
|
||||
|
||||
<para>
|
||||
This chapter takes a look at the Yocto Project development
|
||||
environment.
|
||||
The chapter provides Yocto Project Development environment concepts that
|
||||
help you understand how work is accomplished in an open source environment,
|
||||
which is very different as compared to work accomplished in a closed,
|
||||
proprietary environment.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Specifically, this chapter addresses open source philosophy, source
|
||||
repositories, workflows, Git, and licensing.
|
||||
</para>
|
||||
|
||||
<section id='open-source-philosophy'>
|
||||
<title>Open Source Philosophy</title>
|
||||
|
||||
<para>
|
||||
Open source philosophy is characterized by software development
|
||||
directed by peer production and collaboration through an active
|
||||
community of developers.
|
||||
Contrast this to the more standard centralized development models
|
||||
used by commercial software companies where a finite set of developers
|
||||
produces a product for sale using a defined set of procedures that
|
||||
ultimately result in an end product whose architecture and source
|
||||
material are closed to the public.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Open source projects conceptually have differing concurrent agendas,
|
||||
approaches, and production.
|
||||
These facets of the development process can come from anyone in the
|
||||
public (community) that has a stake in the software project.
|
||||
The open source environment contains new copyright, licensing, domain,
|
||||
and consumer issues that differ from the more traditional development
|
||||
environment.
|
||||
In an open source environment, the end product, source material,
|
||||
and documentation are all available to the public at no cost.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A benchmark example of an open source project is the Linux kernel,
|
||||
which was initially conceived and created by Finnish computer science
|
||||
student Linus Torvalds in 1991.
|
||||
Conversely, a good example of a non-open source project is the
|
||||
<trademark class='registered'>Windows</trademark> family of operating
|
||||
systems developed by
|
||||
<trademark class='registered'>Microsoft</trademark> Corporation.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Wikipedia has a good historical description of the Open Source
|
||||
Philosophy
|
||||
<ulink url='http://en.wikipedia.org/wiki/Open_source'>here</ulink>.
|
||||
You can also find helpful information on how to participate in the
|
||||
Linux Community
|
||||
<ulink url='http://ldn.linuxfoundation.org/book/how-participate-linux-community'>here</ulink>.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='gs-the-development-host'>
|
||||
<title>The Development Host</title>
|
||||
|
||||
<para>
|
||||
A development host or build host is key to using the Yocto Project.
|
||||
Because the goal of the Yocto Project is to develop images or
|
||||
applications that run on embedded hardware, development of those
|
||||
images and applications generally takes place on a system not
|
||||
intended to run the software - the development host.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You need to set up a development host in order to use it with the
|
||||
Yocto Project.
|
||||
Most find that it is best to have a native Linux machine function as
|
||||
the development host.
|
||||
However, it is possible to use a system that does not run Linux
|
||||
as its operating system as your development host.
|
||||
When you have a Mac or Windows-based system, you can set it up
|
||||
as the development host by using
|
||||
<ulink url='https://git.yoctoproject.org/cgit/cgit.cgi/crops/about/'>CROPS</ulink>,
|
||||
which leverages
|
||||
<ulink url='https://www.docker.com/'>Docker Containers</ulink>.
|
||||
Once you take the steps 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 development host.
|
||||
For the steps needed to set up a system using CROPS, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#setting-up-to-use-crops'>Setting Up to Use CROss PlatformS (CROPS)</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If your development host is going to be a system that runs a Linux
|
||||
distribution, steps still exist that you must take to prepare the
|
||||
system for use with the Yocto Project.
|
||||
You need to be sure that the Linux 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 that allow development using the Yocto Project.
|
||||
For the steps needed to set up a development host that runs Linux,
|
||||
see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#setting-up-a-native-linux-host'>Setting Up a Native Linux Host</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Once your development host is set up to use the Yocto Project,
|
||||
several methods exist for you to do work in the Yocto Project
|
||||
environment:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<emphasis>Command Lines, BitBake, and Shells:</emphasis>
|
||||
Traditional development in the Yocto Project involves using
|
||||
OpenEmbedded build system, which uses BitBake, in a
|
||||
command-line environment from a shell on your development
|
||||
host.
|
||||
You can accomplish this from a host that is a native Linux
|
||||
machine or from a host that has been set up with CROPS.
|
||||
Either way, you create, modify, and build images and
|
||||
applications all within a shell-based environment using
|
||||
components and tools available through your Linux distribution
|
||||
and the Yocto Project.</para>
|
||||
|
||||
<para>For a general flow of the build procedures, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#dev-building-an-image'>Building an Image</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Board Support Package (BSP) Development:</emphasis>
|
||||
Development of BSPs involves using the Yocto Project to
|
||||
create and test layers that allow easy development of
|
||||
images and applications targeted for specific hardware.
|
||||
To development BSPs, you need to take some additional steps
|
||||
beyond what was described in setting up a development host.
|
||||
</para>
|
||||
|
||||
<para>The
|
||||
<ulink url='&YOCTO_DOCS_BSP_URL;'>Yocto Project Board Support Package (BSP) Developer's Guide'</ulink>
|
||||
provides BSP-related development information.
|
||||
For specifics on development host preparation, see the
|
||||
"<ulink url='&YOCTO_DOCS_BSP_URL;#preparing-your-build-host-to-work-with-bsp-layers'>Preparing Your Build Host to Work With BSP Layers</ulink>"
|
||||
section in the Yocto Project Board Support Package (BSP)
|
||||
Developer's Guide.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Kernel Development:</emphasis>
|
||||
If you are going to be developing kernels using the Yocto
|
||||
Project you likely will be using <filename>devtool</filename>.
|
||||
A workflow using <filename>devtool</filename> makes kernel
|
||||
development quicker by reducing iteration cycle times.</para>
|
||||
|
||||
<para>The
|
||||
<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;'>Yocto Project Linux Kernel Development Manual</ulink>
|
||||
provides kernel-related development information.
|
||||
For specifics on development host preparation, see the
|
||||
"<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#preparing-the-build-host-to-work-on-the-kernel'>Preparing the Build Host to Work on the Kernel</ulink>"
|
||||
section in the Yocto Project Linux Kernel Development Manual.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Using the <trademark class='trade'>Eclipse</trademark> IDE:</emphasis>
|
||||
One of two Yocto Project development methods that involves an
|
||||
interface that effectively puts the Yocto Project into the
|
||||
background is the popular Eclipse IDE.
|
||||
This method of development is advantageous if you are already
|
||||
familiar with working within Eclipse.
|
||||
Development is supported through a plugin that you install
|
||||
onto your development host.</para>
|
||||
|
||||
<para>For steps that show you how to set up your development
|
||||
host to use the Eclipse Yocto Project plugin, see the
|
||||
"<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-eclipse-project'>Developing Applications Using <trademark class='trade'>Eclipse</trademark></ulink>"
|
||||
Chapter in the Yocto Project Application Development and the
|
||||
Extensible Software Development Kit (eSDK) manual.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Using the Toaster:</emphasis>
|
||||
The other Yocto Project development method that involves an
|
||||
interface that effectively puts the Yocto Project into the
|
||||
background is Toaster.
|
||||
Toaster provides an interface to the OpenEmbedded build system.
|
||||
The interface enables you to configure and run your builds.
|
||||
Information about builds is collected and stored in a database.
|
||||
You can use Toaster to configure and start builds on multiple
|
||||
remote build servers.</para>
|
||||
|
||||
<para>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
|
||||
<ulink url='&YOCTO_DOCS_TOAST_URL;'>Toaster User Manual</ulink>.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='yocto-project-repositories'>
|
||||
<title>Yocto Project Source Repositories</title>
|
||||
|
||||
<para>
|
||||
The Yocto Project team maintains complete source repositories for all
|
||||
Yocto Project files at
|
||||
<ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi'></ulink>.
|
||||
This web-based source code browser is organized into categories by
|
||||
function such as IDE Plugins, Matchbox, Poky, Yocto Linux Kernel, and
|
||||
so forth.
|
||||
From the interface, you can click on any particular item in the "Name"
|
||||
column and see the URL at the bottom of the page that you need to clone
|
||||
a Git repository for that particular item.
|
||||
Having a local Git repository of the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>,
|
||||
which is usually named "poky", allows
|
||||
you to make changes, contribute to the history, and ultimately enhance
|
||||
the Yocto Project's tools, Board Support Packages, and so forth.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For any supported release of Yocto Project, you can also go to the
|
||||
<ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink> and
|
||||
select the "Downloads" tab and get a released tarball of the
|
||||
<filename>poky</filename> repository or any supported BSP tarballs.
|
||||
Unpacking these tarballs gives you a snapshot of the released
|
||||
files.
|
||||
<note><title>Notes</title>
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
The recommended method for setting up the Yocto Project
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>
|
||||
and the files for supported BSPs
|
||||
(e.g., <filename>meta-intel</filename>) is to use
|
||||
<link linkend='git'>Git</link> to create a local copy of
|
||||
the upstream repositories.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Be sure to always work in matching branches for both
|
||||
the selected BSP repository and the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>
|
||||
(i.e. <filename>poky</filename>) repository.
|
||||
For example, if you have checked out the "master" branch
|
||||
of <filename>poky</filename> and you are going to use
|
||||
<filename>meta-intel</filename>, be sure to checkout the
|
||||
"master" branch of <filename>meta-intel</filename>.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In summary, here is where you can get the project files needed for
|
||||
development:
|
||||
<itemizedlist>
|
||||
<listitem><para id='source-repositories'>
|
||||
<emphasis>
|
||||
<ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi'>Source Repositories:</ulink>
|
||||
</emphasis>
|
||||
This area contains IDE Plugins, Matchbox, Poky, Poky Support,
|
||||
Tools, Yocto Linux Kernel, and Yocto Metadata Layers.
|
||||
You can create local copies of Git repositories for each of
|
||||
these areas.</para>
|
||||
|
||||
<para>
|
||||
<imagedata fileref="figures/source-repos.png" align="center" width="6in" depth="4in" />
|
||||
For steps on how to view and access these upstream Git
|
||||
repositories, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#accessing-source-repositories'>Accessing Source Repositories</ulink>"
|
||||
Section in the Yocto Project Development Tasks Manual.
|
||||
</para></listitem>
|
||||
<listitem><para><anchor id='index-downloads' />
|
||||
<emphasis>
|
||||
<ulink url='&YOCTO_DL_URL;/releases/'>Index of /releases:</ulink>
|
||||
</emphasis>
|
||||
This is an index of releases such as
|
||||
the <trademark class='trade'>Eclipse</trademark>
|
||||
Yocto Plug-in, miscellaneous support, Poky, Pseudo, installers
|
||||
for cross-development toolchains, and all released versions of
|
||||
Yocto Project in the form of images or tarballs.
|
||||
Downloading and extracting these files does not produce a local
|
||||
copy of the Git repository but rather a snapshot of a
|
||||
particular release or image.</para>
|
||||
|
||||
<para>
|
||||
<imagedata fileref="figures/index-downloads.png" align="center" width="6in" depth="3.5in" />
|
||||
For steps on how to view and access these files, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#accessing-index-of-releases'>Accessing Index of Releases</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para></listitem>
|
||||
<listitem><para id='downloads-page'>
|
||||
<emphasis>"Downloads" page for the
|
||||
<ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>:
|
||||
</emphasis></para>
|
||||
|
||||
<para role="writernotes">This section will change due to
|
||||
reworking of the YP Website.</para>
|
||||
|
||||
<para>The Yocto Project website includes a "Downloads" tab
|
||||
that allows you to download any Yocto Project
|
||||
release and Board Support Package (BSP) in tarball form.
|
||||
The tarballs are similar to those found in the
|
||||
<ulink url='&YOCTO_DL_URL;/releases/'>Index of /releases:</ulink> area.</para>
|
||||
|
||||
<para>
|
||||
<imagedata fileref="figures/yp-download.png" align="center" width="6in" depth="4in" />
|
||||
For steps on how to use the "Downloads" page, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#using-the-downloads-page'>Using the Downloads Page</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='gs-git-workflows-and-the-yocto-project'>
|
||||
<title>Git Workflows and the Yocto Project</title>
|
||||
|
||||
<para>
|
||||
Developing using the Yocto Project likely requires the use of
|
||||
<link linkend='git'>Git</link>.
|
||||
Git is a free, open source distributed version control system
|
||||
used as part of many collaborative design environments.
|
||||
This section provides workflow concepts using the Yocto Project and
|
||||
Git.
|
||||
In particular, the information covers basic practices that describe
|
||||
roles and actions in a collaborative development environment.
|
||||
<note>
|
||||
If you are familiar with this type of development environment, you
|
||||
might not want to read this section.
|
||||
</note>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The Yocto Project files are maintained using Git in "branches"
|
||||
whose Git histories track every change and whose structures
|
||||
provide branches for all diverging functionality.
|
||||
Although there is no need to use Git, many open source projects do so.
|
||||
<para>
|
||||
|
||||
</para>
|
||||
For the Yocto Project, a key individual called the "maintainer" is
|
||||
responsible for the integrity of the "master" branch of a given Git
|
||||
repository.
|
||||
The "master" branch is the “upstream” repository from which final or
|
||||
most recent builds of a project occur.
|
||||
The maintainer is responsible for accepting changes from other
|
||||
developers and for organizing the underlying branch structure to
|
||||
reflect release strategies and so forth.
|
||||
<note>
|
||||
For information on finding out who is responsible for (maintains)
|
||||
a particular area of code in the Yocto Project, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#how-to-submit-a-change'>Submitting a Change to the Yocto Project</ulink>"
|
||||
section of the Yocto Project Development Tasks Manual.
|
||||
</note>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The Yocto Project <filename>poky</filename> Git repository also has an
|
||||
upstream contribution Git repository named
|
||||
<filename>poky-contrib</filename>.
|
||||
You can see all the branches in this repository using the web interface
|
||||
of the
|
||||
<ulink url='&YOCTO_GIT_URL;'>Source Repositories</ulink> organized
|
||||
within the "Poky Support" area.
|
||||
These branches hold changes (commits) to the project that have been
|
||||
submitted or committed by the Yocto Project development team and by
|
||||
community members who contribute to the project.
|
||||
The maintainer determines if the changes are qualified to be moved
|
||||
from the "contrib" branches into the "master" branch of the Git
|
||||
repository.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Developers (including contributing community members) create and
|
||||
maintain cloned repositories of upstream branches.
|
||||
The cloned repositories are local to their development platforms and
|
||||
are used to develop changes.
|
||||
When a developer is satisfied with a particular feature or change,
|
||||
they "push" the change to the appropriate "contrib" repository.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Developers are responsible for keeping their local repository
|
||||
up-to-date with whatever upstream branch they are working against.
|
||||
They are also responsible for straightening out any conflicts that
|
||||
might arise within files that are being worked on simultaneously by
|
||||
more than one person.
|
||||
All this work is done locally on the development host before
|
||||
anything is pushed to a "contrib" area and examined at the maintainer’s
|
||||
level.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A somewhat formal method exists by which developers commit changes
|
||||
and push them into the "contrib" area and subsequently request that
|
||||
the maintainer include them into an upstream branch.
|
||||
This process is called “submitting a patch” or "submitting a change."
|
||||
For information on submitting patches and changes, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#how-to-submit-a-change'>Submitting a Change to the Yocto Project</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To summarize the development workflow: a single point of entry
|
||||
exists for changes into a "master" or development branch of the
|
||||
Git repository, which is controlled by the project’s maintainer.
|
||||
And, a set of developers exist who independently develop, test, and
|
||||
submit changes to "contrib" areas for the maintainer to examine.
|
||||
The maintainer then chooses which changes are going to become a
|
||||
permanent part of the project.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<imagedata fileref="figures/git-workflow.png" width="6in" depth="3in" align="left" scalefit="1" />
|
||||
</para>
|
||||
|
||||
<para>
|
||||
While each development environment is unique, there are some best
|
||||
practices or methods that help development run smoothly.
|
||||
The following list describes some of these practices.
|
||||
For more information about Git workflows, see the workflow topics in
|
||||
the
|
||||
<ulink url='http://book.git-scm.com'>Git Community Book</ulink>.
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<emphasis>Make Small Changes:</emphasis>
|
||||
It is best to keep the changes you commit small as compared to
|
||||
bundling many disparate changes into a single commit.
|
||||
This practice not only keeps things manageable but also allows
|
||||
the maintainer to more easily include or refuse changes.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Make Complete Changes:</emphasis>
|
||||
It is also good practice to leave the repository in a
|
||||
state that allows you to still successfully build your project.
|
||||
In other words, do not commit half of a feature,
|
||||
then add the other half as a separate, later commit.
|
||||
Each commit should take you from one buildable project state
|
||||
to another buildable state.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Use Branches Liberally:</emphasis>
|
||||
It is very easy to create, use, and delete local branches in
|
||||
your working Git repository on the development host.
|
||||
You can name these branches anything you like.
|
||||
It is helpful to give them names associated with the particular
|
||||
feature or change on which you are working.
|
||||
Once you are done with a feature or change and have merged it
|
||||
into your local master branch, simply discard the temporary
|
||||
branch.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Merge Changes:</emphasis>
|
||||
The <filename>git merge</filename> command allows you to take
|
||||
the changes from one branch and fold them into another branch.
|
||||
This process is especially helpful when more than a single
|
||||
developer might be working on different parts of the same
|
||||
feature.
|
||||
Merging changes also automatically identifies any collisions
|
||||
or "conflicts" that might happen as a result of the same lines
|
||||
of code being altered by two different developers.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Manage Branches:</emphasis>
|
||||
Because branches are easy to use, you should use a system
|
||||
where branches indicate varying levels of code readiness.
|
||||
For example, you can have a "work" branch to develop in, a
|
||||
"test" branch where the code or change is tested, a "stage"
|
||||
branch where changes are ready to be committed, and so forth.
|
||||
As your project develops, you can merge code across the
|
||||
branches to reflect ever-increasing stable states of the
|
||||
development.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Use Push and Pull:</emphasis>
|
||||
The push-pull workflow is based on the concept of developers
|
||||
"pushing" local commits to a remote repository, which is
|
||||
usually a contribution repository.
|
||||
This workflow is also based on developers "pulling" known
|
||||
states of the project down into their local development
|
||||
repositories.
|
||||
The workflow easily allows you to pull changes submitted by
|
||||
other developers from the upstream repository into your
|
||||
work area ensuring that you have the most recent software
|
||||
on which to develop.
|
||||
The Yocto Project has two scripts named
|
||||
<filename>create-pull-request</filename> and
|
||||
<filename>send-pull-request</filename> that ship with the
|
||||
release to facilitate this workflow.
|
||||
You can find these scripts in the <filename>scripts</filename>
|
||||
folder of the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
|
||||
For information on how to use these scripts, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#pushing-a-change-upstream'>Using Scripts to Push a Change Upstream and Request a Pull</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Patch Workflow:</emphasis>
|
||||
This workflow allows you to notify the maintainer through an
|
||||
email that you have a change (or patch) you would like
|
||||
considered for the "master" branch of the Git repository.
|
||||
To send this type of change, you format the patch and then
|
||||
send the email using the Git commands
|
||||
<filename>git format-patch</filename> and
|
||||
<filename>git send-email</filename>.
|
||||
For information on how to use these scripts, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#how-to-submit-a-change'>Submitting a Change to the Yocto Project</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='git'>
|
||||
<title>Git</title>
|
||||
|
||||
<para>
|
||||
The Yocto Project makes extensive use of Git, which is a
|
||||
free, open source distributed version control system.
|
||||
Git supports distributed development, non-linear development,
|
||||
and can handle large projects.
|
||||
It is best that you have some fundamental understanding
|
||||
of how Git tracks projects and how to work with Git if
|
||||
you are going to use the Yocto Project for development.
|
||||
This section provides a quick overview of how Git works and
|
||||
provides you with a summary of some essential Git commands.
|
||||
<note><title>Notes</title>
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
For more information on Git, see
|
||||
<ulink url='http://git-scm.com/documentation'></ulink>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
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 Ubuntu, use the Ubuntu Software feature).
|
||||
For the Git download page, see
|
||||
<ulink url='http://git-scm.com/download'></ulink>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
For information beyond the introductory nature in this
|
||||
section, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-yocto-project-source-files'>Working With Yocto Project Source Files</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
</para>
|
||||
|
||||
<section id='repositories-tags-and-branches'>
|
||||
<title>Repositories, Tags, and Branches</title>
|
||||
|
||||
<para>
|
||||
As mentioned briefly in the previous section and also in the
|
||||
"<link linkend='gs-git-workflows-and-the-yocto-project'>Git Workflows and the Yocto Project</link>"
|
||||
section, the Yocto Project maintains source repositories at
|
||||
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>.
|
||||
If you look at this web-interface of the repositories, each item
|
||||
is a separate Git repository.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Git repositories use branching techniques that track content
|
||||
change (not files) within a project (e.g. a new feature or updated
|
||||
documentation).
|
||||
Creating a tree-like structure based on project divergence allows
|
||||
for excellent historical information over the life of a project.
|
||||
This methodology also allows for an environment from which you can
|
||||
do lots of local experimentation on projects as you develop
|
||||
changes or new features.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A Git repository represents all development efforts for a given
|
||||
project.
|
||||
For example, the Git repository <filename>poky</filename> contains
|
||||
all changes and developments for that repository over the course
|
||||
of its entire life.
|
||||
That means that all changes that make up all releases are captured.
|
||||
The repository maintains a complete history of changes.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You can create a local copy of any repository by "cloning" it
|
||||
with the <filename>git clone</filename> command.
|
||||
When you clone a Git repository, you end up with 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 locally.
|
||||
For examples on how to clone Git repositories, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-yocto-project-source-files'>Working With Yocto Project Source Files</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
It is important to understand that Git tracks content change and
|
||||
not files.
|
||||
Git uses "branches" to organize different development efforts.
|
||||
For example, the <filename>poky</filename> repository has
|
||||
several branches that include the current "&DISTRO_NAME_NO_CAP;"
|
||||
branch, the "master" branch, and many branches for past
|
||||
Yocto Project releases.
|
||||
You can see all the branches by going to
|
||||
<ulink url='&YOCTO_GIT_URL;/cgit.cgi/poky/'></ulink> and
|
||||
clicking on the
|
||||
<filename><ulink url='&YOCTO_GIT_URL;/cgit.cgi/poky/refs/heads'>[...]</ulink></filename>
|
||||
link beneath the "Branch" heading.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Each of these branches represents a specific area of development.
|
||||
The "master" branch represents the current or most recent
|
||||
development.
|
||||
All other branches represent offshoots of the "master" branch.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
When you create a local copy of a Git repository, the copy has
|
||||
the same set of branches as the original.
|
||||
This means you can use Git to create a local working area
|
||||
(also called a branch) that tracks a specific development branch
|
||||
from the upstream source Git repository.
|
||||
in other words, you can define your local Git environment to
|
||||
work on any development branch in the repository.
|
||||
To help illustrate, consider the following example Git commands:
|
||||
<literallayout class='monospaced'>
|
||||
$ cd ~
|
||||
$ git clone git://git.yoctoproject.org/poky
|
||||
$ cd poky
|
||||
$ git checkout -b &DISTRO_NAME_NO_CAP; origin/&DISTRO_NAME_NO_CAP;
|
||||
</literallayout>
|
||||
In the previous example after moving to the home directory, the
|
||||
<filename>git clone</filename> command creates a
|
||||
local copy of the upstream <filename>poky</filename> Git repository.
|
||||
By default, Git checks out the "master" branch for your work.
|
||||
After changing the working directory to the new local repository
|
||||
(i.e. <filename>poky</filename>), the
|
||||
<filename>git checkout</filename> command creates
|
||||
and checks out a local branch named "&DISTRO_NAME_NO_CAP;", which
|
||||
tracks the upstream "origin/&DISTRO_NAME_NO_CAP;" branch.
|
||||
Changes you make while in this branch would ultimately affect
|
||||
the upstream "&DISTRO_NAME_NO_CAP;" branch of the
|
||||
<filename>poky</filename> repository.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
It is important to understand that when you create and checkout a
|
||||
local working branch based on a branch name,
|
||||
your local environment matches the "tip" of that particular
|
||||
development branch at the time you created your local branch,
|
||||
which could be different from the files in the "master" branch
|
||||
of the upstream repository.
|
||||
In other words, creating and checking out a local branch based on
|
||||
the "&DISTRO_NAME_NO_CAP;" branch name is not the same as
|
||||
checking out the "master" branch in the repository.
|
||||
Keep reading to see how you create a local snapshot of a Yocto
|
||||
Project Release.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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 final
|
||||
change (or commit) before a project is released.
|
||||
You can see the tags used with the <filename>poky</filename> Git
|
||||
repository by going to
|
||||
<ulink url='&YOCTO_GIT_URL;/cgit.cgi/poky/'></ulink> and
|
||||
clicking on the
|
||||
<filename><ulink url='&YOCTO_GIT_URL;/cgit.cgi/poky/refs/tags'>[...]</ulink></filename>
|
||||
link beneath the "Tag" heading.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Some key tags for the <filename>poky</filename> repository are
|
||||
<filename>jethro-14.0.3</filename>,
|
||||
<filename>morty-16.0.1</filename>,
|
||||
<filename>pyro-17.0.0</filename>, and
|
||||
<filename>&DISTRO_NAME_NO_CAP;-&POKYVERSION;</filename>.
|
||||
These tags represent Yocto Project releases.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
When you create a local copy of the Git repository, you also
|
||||
have access to all the tags in the upstream repository.
|
||||
Similar to branches, you can create and checkout a local working
|
||||
Git branch based on a tag name.
|
||||
When you do this, you get a snapshot of the Git repository that
|
||||
reflects the state of the files when the change was made associated
|
||||
with that tag.
|
||||
The most common use is to checkout a working branch that matches
|
||||
a specific Yocto Project release.
|
||||
Here is an example:
|
||||
<literallayout class='monospaced'>
|
||||
$ cd ~
|
||||
$ git clone git://git.yoctoproject.org/poky
|
||||
$ cd poky
|
||||
$ git fetch --all --tags --prune
|
||||
$ git checkout tags/pyro-17.0.0 -b my-pyro-17.0.0
|
||||
</literallayout>
|
||||
In this example, the name of the top-level directory of your
|
||||
local Yocto Project repository is <filename>poky</filename>.
|
||||
After moving to the <filename>poky</filename> directory, the
|
||||
<filename>git fetch</filename> command makes all the upstream
|
||||
tags available locally in your repository.
|
||||
Finally, the <filename>git checkout</filename> command
|
||||
creates and checks out a branch named "my-pyro-17.0.0" that is
|
||||
based on the upstream branch whose "HEAD" matches the
|
||||
commit in the repository associated with the "pyro-17.0.0" tag.
|
||||
The files in your repository now exactly match that particular
|
||||
Yocto Project release as it is tagged in the upstream Git
|
||||
repository.
|
||||
It is important to understand that when you create and
|
||||
checkout a local working branch based on a tag, your environment
|
||||
matches a specific point in time and not the entire development
|
||||
branch (i.e. from the "tip" of the branch backwards).
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='basic-commands'>
|
||||
<title>Basic Commands</title>
|
||||
|
||||
<para>
|
||||
Git has an extensive set of commands that lets you manage changes
|
||||
and perform collaboration over the life of a project.
|
||||
Conveniently though, 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 expert in Git to be functional.
|
||||
A good place to look for instruction on a minimal set of Git
|
||||
commands is
|
||||
<ulink url='http://git-scm.com/documentation'>here</ulink>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you do not know much about Git, you should educate
|
||||
yourself by visiting the links previously mentioned.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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 list (in most cases) simply shows
|
||||
the base command and omits the many arguments it supports.
|
||||
See the Git documentation for complete descriptions and strategies
|
||||
on how to use these commands:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<emphasis><filename>git init</filename>:</emphasis>
|
||||
Initializes an empty Git repository.
|
||||
You cannot use Git commands unless you have a
|
||||
<filename>.git</filename> repository.
|
||||
</para></listitem>
|
||||
<listitem><para id='git-commands-clone'>
|
||||
<emphasis><filename>git clone</filename>:</emphasis>
|
||||
Creates a local clone of a Git repository that is on
|
||||
equal footing with a fellow developer’s Git repository
|
||||
or an upstream repository.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>git add</filename>:</emphasis>
|
||||
Locally stages updated file contents to the index that
|
||||
Git uses to track changes.
|
||||
You must stage all files that have changed before you
|
||||
can commit them.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>git commit</filename>:</emphasis>
|
||||
Creates a local "commit" that documents the changes you
|
||||
made.
|
||||
Only changes that have been staged can be committed.
|
||||
Commits are used for historical purposes, for determining
|
||||
if a maintainer of a project will allow the change,
|
||||
and for ultimately pushing the change from your local
|
||||
Git repository into the project’s upstream repository.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>git status</filename>:</emphasis>
|
||||
Reports any modified files that possibly need to be
|
||||
staged and gives you a status of where you stand regarding
|
||||
local commits as compared to the upstream repository.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>git checkout</filename> <replaceable>branch-name</replaceable>:</emphasis>
|
||||
Changes your local working branch and in this form
|
||||
assumes the local branch already exists.
|
||||
This command is analogous to "cd".
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>git checkout –b</filename> <replaceable>working-branch</replaceable> <replaceable>upstream-branch</replaceable>:</emphasis>
|
||||
Creates and checks out a working branch on your local
|
||||
machine.
|
||||
The local branch tracks the upstream branch.
|
||||
You can use your local branch to isolate your work.
|
||||
It is a good idea to use local branches when adding
|
||||
specific features or changes.
|
||||
Using isolated branches facilitates easy removal of
|
||||
changes if they do not work out.
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis><filename>git branch</filename>:</emphasis>
|
||||
Displays the existing local branches associated with your
|
||||
local repository.
|
||||
The branch that you have currently checked out is noted
|
||||
with an asterisk character.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>git branch -D</filename> <replaceable>branch-name</replaceable>:</emphasis>
|
||||
Deletes an existing local branch.
|
||||
You need to be in a local branch other than the one you
|
||||
are deleting in order to delete
|
||||
<replaceable>branch-name</replaceable>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>git pull --rebase</filename>:</emphasis>
|
||||
Retrieves information from an upstream Git repository
|
||||
and places it in your local Git repository.
|
||||
You use this command to make sure you are synchronized with
|
||||
the repository from which you are basing changes
|
||||
(.e.g. the "master" branch).
|
||||
The "--rebase" option ensures that any local commits you
|
||||
have in your branch are preserved at the top of your
|
||||
local branch.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>git push</filename> <replaceable>repo-name</replaceable> <replaceable>local-branch</replaceable><filename>:</filename><replaceable>upstream-branch</replaceable>:</emphasis>
|
||||
Sends all your committed local changes to the upstream Git
|
||||
repository that your local repository is tracking
|
||||
(e.g. a contribution repository).
|
||||
The maintainer of the project draws from these repositories
|
||||
to merge changes (commits) into the appropriate branch
|
||||
of project's upstream repository.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>git merge</filename>:</emphasis>
|
||||
Combines or adds changes from one
|
||||
local branch of your repository with another branch.
|
||||
When you create a local Git repository, the default branch
|
||||
is named "master".
|
||||
A typical workflow is to create a temporary branch that is
|
||||
based off "master" that you would use for isolated work.
|
||||
You would make your changes in that isolated branch,
|
||||
stage and commit them locally, switch to the "master"
|
||||
branch, and then use the <filename>git merge</filename>
|
||||
command to apply the changes from your isolated branch
|
||||
into the currently checked out branch (e.g. "master").
|
||||
After the merge is complete and if you are done with
|
||||
working in that isolated branch, you can safely delete
|
||||
the isolated branch.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>git cherry-pick</filename> <replaceable>commits</replaceable>:</emphasis>
|
||||
Choose and apply specific commits from one branch
|
||||
into another branch.
|
||||
There are times when you might not be able to merge
|
||||
all the changes in one branch with
|
||||
another but need to pick out certain ones.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>gitk</filename>:</emphasis>
|
||||
Provides a GUI view of the branches and changes in your
|
||||
local Git repository.
|
||||
This command is a good way to graphically see where things
|
||||
have diverged in your local repository.
|
||||
<note>
|
||||
You need to install the <filename>gitk</filename>
|
||||
package on your development system to use this
|
||||
command.
|
||||
</note>
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>git log</filename>:</emphasis>
|
||||
Reports a history of your commits to the repository.
|
||||
This report lists all commits regardless of whether you
|
||||
have pushed them upstream or not.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>git diff</filename>:</emphasis>
|
||||
Displays line-by-line differences between a local
|
||||
working file and the same file as understood by Git.
|
||||
This command is useful to see what you have changed
|
||||
in any given file.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id='licensing'>
|
||||
<title>Licensing</title>
|
||||
|
||||
<para>
|
||||
Because open source projects are open to the public, they have
|
||||
different licensing structures in place.
|
||||
License evolution for both Open Source and Free Software has an
|
||||
interesting history.
|
||||
If you are interested in this history, you can find basic information
|
||||
here:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<ulink url='http://en.wikipedia.org/wiki/Open-source_license'>Open source license history</ulink>
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<ulink url='http://en.wikipedia.org/wiki/Free_software_license'>Free software license history</ulink>
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In general, the Yocto Project is broadly licensed under the
|
||||
Massachusetts Institute of Technology (MIT) License.
|
||||
MIT licensing permits the reuse of software within proprietary
|
||||
software as long as the license is distributed with that software.
|
||||
MIT is also compatible with the GNU General Public License (GPL).
|
||||
Patches to the Yocto Project follow the upstream licensing scheme.
|
||||
You can find information on the MIT license
|
||||
<ulink url='http://www.opensource.org/licenses/mit-license.php'>here</ulink>.
|
||||
You can find information on the GNU GPL
|
||||
<ulink url='http://www.opensource.org/licenses/LGPL-3.0'>here</ulink>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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 the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>
|
||||
at <filename>meta/files/common-licenses</filename>.
|
||||
Once the build completes, the list of all licenses found and used
|
||||
during that build are kept in the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>
|
||||
at <filename>tmp/deploy/licenses</filename>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If a module requires a license that is not in the base list, the
|
||||
build process generates a warning during the build.
|
||||
These tools make it easier for a developer to be certain of the
|
||||
licenses with which their shipped products must comply.
|
||||
However, even with these tools it is still up to the developer to
|
||||
resolve potential licensing issues.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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 Initiative (OSI) projects.
|
||||
<ulink url='http://spdx.org'>SPDX Group</ulink> is a working group of
|
||||
the Linux Foundation that maintains a specification for a standard
|
||||
format for communicating the components, licenses, and copyrights
|
||||
associated with a software package.
|
||||
<ulink url='http://opensource.org'>OSI</ulink> is a corporation
|
||||
dedicated to the Open Source Definition and the effort for reviewing
|
||||
and approving licenses that conform to the Open Source Definition
|
||||
(OSD).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You can find a list of the combined SPDX and OSI licenses that the
|
||||
Yocto Project uses in the
|
||||
<filename>meta/files/common-licenses</filename> directory in your
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For information that can help you maintain compliance with various
|
||||
open source licensing during the lifecycle of a product created using
|
||||
the Yocto Project, see the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-open-source-license-compliance-during-your-products-lifecycle'>Maintaining Open Source License Compliance During Your Product's Lifecycle</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
||||
<!--
|
||||
vim: expandtab tw=80 ts=4
|
||||
-->
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version='1.0'?>
|
||||
<xsl:stylesheet
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="1.0">
|
||||
|
||||
<xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/eclipse/eclipse3.xsl" />
|
||||
|
||||
<!--
|
||||
|
||||
<xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/eclipse/eclipse3.xsl" />
|
||||
|
||||
<xsl:import
|
||||
href="http://docbook.sourceforge.net/release/xsl/1.76.1/eclipse/eclipse3.xsl" />
|
||||
|
||||
-->
|
||||
|
||||
<xsl:param name="chunker.output.indent" select="'yes'"/>
|
||||
<xsl:param name="chunk.quietly" select="1"/>
|
||||
<xsl:param name="chunk.first.sections" select="1"/>
|
||||
<xsl:param name="chunk.section.depth" select="10"/>
|
||||
<xsl:param name="use.id.as.filename" select="1"/>
|
||||
<xsl:param name="ulink.target" select="'_self'" />
|
||||
<xsl:param name="base.dir" select="'html/getting-started/'"/>
|
||||
<xsl:param name="html.stylesheet" select="'../book.css'"/>
|
||||
<xsl:param name="eclipse.manifest" select="0"/>
|
||||
<xsl:param name="create.plugin.xml" select="0"/>
|
||||
<xsl:param name="suppress.navigation" select="1"/>
|
||||
<xsl:param name="generate.index" select="0"/>
|
||||
<xsl:param name="chapter.autolabel" select="1" />
|
||||
<xsl:param name="appendix.autolabel" select="1" />
|
||||
<xsl:param name="section.autolabel" select="1" />
|
||||
<xsl:param name="section.label.includes.component.label" select="1" />
|
||||
</xsl:stylesheet>
|
||||
110
documentation/getting-started/getting-started-intro.xml
Normal file
@@ -0,0 +1,110 @@
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
|
||||
|
||||
<chapter id='overview-manual-intro'>
|
||||
|
||||
<title>The Getting Started With Yocto Project Manual</title>
|
||||
<section id='getting-started-welcome'>
|
||||
<title>Welcome</title>
|
||||
|
||||
<para>
|
||||
Welcome to the Getting Started With Yocto Project Manual!
|
||||
This manual introduces the Yocto Project by providing concepts,
|
||||
software overviews, best-known-methods (BKMs), and any other
|
||||
high-level introductory information suitable for a new Yocto
|
||||
Project user.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The following list describes what you can get from this manual:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<emphasis><link linkend='overview-yp'>Introducing the Yocto Project</link>:</emphasis>
|
||||
This chapter provides an introduction to the Yocto
|
||||
Project.
|
||||
You will learn about features and challenges of the
|
||||
Yocto Project, the layer model, components and tools,
|
||||
development methods, the Poky reference distribution,
|
||||
the OpenEmbedded build system workflow, and some basic
|
||||
Yocto terms.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><link linkend='overview-development-environment'>The Yocto Project Development Environment</link>:</emphasis>
|
||||
This chapter helps you get started understanding the
|
||||
Yocto Project development environment.
|
||||
You will learn about open source, development hosts,
|
||||
Yocto Project source repositories, workflows using Git
|
||||
and the Yocto Project, a Git primer, and information
|
||||
about licensing.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This manual does not give you the following:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
<emphasis>Step-by-step Instructions for Development Tasks:</emphasis>
|
||||
Instructional procedures reside in other manuals within
|
||||
the Yocto Project documentation set.
|
||||
For example, the
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;'>Yocto Project Development Tasks Manual</ulink>
|
||||
provides examples on how to perform various development
|
||||
tasks.
|
||||
As another example, the
|
||||
<ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
|
||||
manual contains detailed instructions on how to install an
|
||||
SDK, which is used to develop applications for target
|
||||
hardware.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Reference Material:</emphasis>
|
||||
This type of material resides in an appropriate reference
|
||||
manual.
|
||||
For example, system variables are documented in the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;'>Yocto Project Reference Manual</ulink>.
|
||||
As another example, the
|
||||
<ulink url='&YOCTO_DOCS_BSP_URL;'>Yocto Project Board Support Package (BSP) Developer's Guide</ulink>
|
||||
contains reference information on BSPs.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Detailed Public Information Not Specific to the
|
||||
Yocto Project:</emphasis>
|
||||
For example, exhaustive information on how to use the
|
||||
Source Control Manager Git is better covered with Internet
|
||||
searches and official Git Documentation than through the
|
||||
Yocto Project documentation.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='getting-started-overview-other-information'>
|
||||
<title>Other Information</title>
|
||||
|
||||
<para>
|
||||
Because this manual presents information for many different
|
||||
topics, supplemental information is recommended for full
|
||||
comprehension.
|
||||
For additional introductory information on the Yocto Project, see
|
||||
the <ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>.
|
||||
You can find an introductory to using the Yocto Project by working
|
||||
through the
|
||||
<ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For a comprehensive list of links and other documentation, see the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#resources-links-and-related-documentation'>Links and Related Documentation</ulink>"
|
||||
section in the Yocto Project Reference Manual.
|
||||
For a paper showing how to set up and run a quick build using the
|
||||
Yocto Project, see the
|
||||
"<ulink url='&YOCTO_DOCS_BRIEF_URL;'>My First Yocto Project Build</ulink>"
|
||||
paper.
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
||||
<!--
|
||||
vim: expandtab tw=80 ts=4
|
||||
-->
|
||||
988
documentation/getting-started/getting-started-style.css
Normal file
@@ -0,0 +1,988 @@
|
||||
/*
|
||||
Generic XHTML / DocBook XHTML CSS Stylesheet.
|
||||
|
||||
Browser wrangling and typographic design by
|
||||
Oyvind Kolas / pippin@gimp.org
|
||||
|
||||
Customised for Poky by
|
||||
Matthew Allum / mallum@o-hand.com
|
||||
|
||||
Thanks to:
|
||||
Liam R. E. Quin
|
||||
William Skaggs
|
||||
Jakub Steiner
|
||||
|
||||
Structure
|
||||
---------
|
||||
|
||||
The stylesheet is divided into the following sections:
|
||||
|
||||
Positioning
|
||||
Margins, paddings, width, font-size, clearing.
|
||||
Decorations
|
||||
Borders, style
|
||||
Colors
|
||||
Colors
|
||||
Graphics
|
||||
Graphical backgrounds
|
||||
Nasty IE tweaks
|
||||
Workarounds needed to make it work in internet explorer,
|
||||
currently makes the stylesheet non validating, but up until
|
||||
this point it is validating.
|
||||
Mozilla extensions
|
||||
Transparency for footer
|
||||
Rounded corners on boxes
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*************** /
|
||||
/ Positioning /
|
||||
/ ***************/
|
||||
|
||||
body {
|
||||
font-family: Verdana, Sans, sans-serif;
|
||||
|
||||
min-width: 640px;
|
||||
width: 80%;
|
||||
margin: 0em auto;
|
||||
padding: 2em 5em 5em 5em;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6,h7 {
|
||||
font-family: Arial, Sans;
|
||||
color: #00557D;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
text-align: left;
|
||||
padding: 0em 0em 0em 0em;
|
||||
margin: 2em 0em 0em 0em;
|
||||
}
|
||||
|
||||
h2.subtitle {
|
||||
margin: 0.10em 0em 3.0em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
font-size: 1.8em;
|
||||
padding-left: 20%;
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin: 2em 0em 0.66em 0em;
|
||||
padding: 0.5em 0em 0em 0em;
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h3.subtitle {
|
||||
margin: 0em 0em 1em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
font-size: 142.14%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 1em 0em 0.5em 0em;
|
||||
padding: 1em 0em 0em 0em;
|
||||
font-size: 140%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin: 1em 0em 0.5em 0em;
|
||||
padding: 1em 0em 0em 0em;
|
||||
font-size: 120%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h5 {
|
||||
margin: 1em 0em 0.5em 0em;
|
||||
padding: 1em 0em 0em 0em;
|
||||
font-size: 110%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h6 {
|
||||
margin: 1em 0em 0em 0em;
|
||||
padding: 1em 0em 0em 0em;
|
||||
font-size: 110%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.authorgroup {
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
padding-top: 256px;
|
||||
background-image: url("figures/getting-started-title.png");
|
||||
background-position: left top;
|
||||
margin-top: -256px;
|
||||
padding-right: 50px;
|
||||
margin-left: 0px;
|
||||
text-align: right;
|
||||
width: 740px;
|
||||
}
|
||||
|
||||
h3.author {
|
||||
margin: 0em 0me 0em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
font-weight: normal;
|
||||
font-size: 100%;
|
||||
color: #333;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.author tt.email {
|
||||
font-size: 66%;
|
||||
}
|
||||
|
||||
.titlepage hr {
|
||||
width: 0em;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.revhistory {
|
||||
padding-top: 2em;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.toc,
|
||||
.list-of-tables,
|
||||
.list-of-examples,
|
||||
.list-of-figures {
|
||||
padding: 1.33em 0em 2.5em 0em;
|
||||
color: #00557D;
|
||||
}
|
||||
|
||||
.toc p,
|
||||
.list-of-tables p,
|
||||
.list-of-figures p,
|
||||
.list-of-examples p {
|
||||
padding: 0em 0em 0em 0em;
|
||||
padding: 0em 0em 0.3em;
|
||||
margin: 1.5em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.toc p b,
|
||||
.list-of-tables p b,
|
||||
.list-of-figures p b,
|
||||
.list-of-examples p b{
|
||||
font-size: 100.0%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.toc dl,
|
||||
.list-of-tables dl,
|
||||
.list-of-figures dl,
|
||||
.list-of-examples dl {
|
||||
margin: 0em 0em 0.5em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.toc dt {
|
||||
margin: 0em 0em 0em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.toc dd {
|
||||
margin: 0em 0em 0em 2.6em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
div.glossary dl,
|
||||
div.variablelist dl {
|
||||
}
|
||||
|
||||
.glossary dl dt,
|
||||
.variablelist dl dt,
|
||||
.variablelist dl dt span.term {
|
||||
font-weight: normal;
|
||||
width: 20em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.variablelist dl dt {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
.glossary dl dd,
|
||||
.variablelist dl dd {
|
||||
margin-top: -1em;
|
||||
margin-left: 25.5em;
|
||||
}
|
||||
|
||||
.glossary dd p,
|
||||
.variablelist dd p {
|
||||
margin-top: 0em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
|
||||
div.calloutlist table td {
|
||||
padding: 0em 0em 0em 0em;
|
||||
margin: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
div.calloutlist table td p {
|
||||
margin-top: 0em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
div p.copyright {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
div.legalnotice p.legalnotice-title {
|
||||
margin-bottom: 0em;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 1.5em;
|
||||
margin-top: 0em;
|
||||
|
||||
}
|
||||
|
||||
dl {
|
||||
padding-top: 0em;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: solid 1px;
|
||||
}
|
||||
|
||||
|
||||
.mediaobject,
|
||||
.mediaobjectco {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0em 0em 0em 1.5em;
|
||||
}
|
||||
|
||||
ul li {
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
ul li p {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
table {
|
||||
width :100%;
|
||||
}
|
||||
|
||||
th {
|
||||
padding: 0.25em;
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 0.25em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
p a[id] {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
display: inline;
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: underline;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
pre {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
/*font-weight: bold;*/
|
||||
}
|
||||
|
||||
/* This style defines how the permalink character
|
||||
appears by itself and when hovered over with
|
||||
the mouse. */
|
||||
|
||||
[alt='Permalink'] { color: #eee; }
|
||||
[alt='Permalink']:hover { color: black; }
|
||||
|
||||
|
||||
div.informalfigure,
|
||||
div.informalexample,
|
||||
div.informaltable,
|
||||
div.figure,
|
||||
div.table,
|
||||
div.example {
|
||||
margin: 1em 0em;
|
||||
padding: 1em;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
|
||||
div.informalfigure p.title b,
|
||||
div.informalexample p.title b,
|
||||
div.informaltable p.title b,
|
||||
div.figure p.title b,
|
||||
div.example p.title b,
|
||||
div.table p.title b{
|
||||
padding-top: 0em;
|
||||
margin-top: 0em;
|
||||
font-size: 100%;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.mediaobject .caption,
|
||||
.mediaobject .caption p {
|
||||
text-align: center;
|
||||
font-size: 80%;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.epigraph {
|
||||
padding-left: 55%;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.epigraph p {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.epigraph .quote {
|
||||
font-style: italic;
|
||||
}
|
||||
.epigraph .attribution {
|
||||
font-style: normal;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
span.application {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.programlisting {
|
||||
font-family: monospace;
|
||||
font-size: 80%;
|
||||
white-space: pre;
|
||||
margin: 1.33em 0em;
|
||||
padding: 1.33em;
|
||||
}
|
||||
|
||||
.tip,
|
||||
.warning,
|
||||
.caution,
|
||||
.note {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
|
||||
}
|
||||
|
||||
/* force full width of table within div */
|
||||
.tip table,
|
||||
.warning table,
|
||||
.caution table,
|
||||
.note table {
|
||||
border: none;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
.tip table th,
|
||||
.warning table th,
|
||||
.caution table th,
|
||||
.note table th {
|
||||
padding: 0.8em 0.0em 0.0em 0.0em;
|
||||
margin : 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.tip p,
|
||||
.warning p,
|
||||
.caution p,
|
||||
.note p {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
padding-right: 1em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.acronym {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
b.keycap,
|
||||
.keycap {
|
||||
padding: 0.09em 0.3em;
|
||||
margin: 0em;
|
||||
}
|
||||
|
||||
.itemizedlist li {
|
||||
clear: none;
|
||||
}
|
||||
|
||||
.filename {
|
||||
font-size: medium;
|
||||
font-family: Courier, monospace;
|
||||
}
|
||||
|
||||
|
||||
div.navheader, div.heading{
|
||||
position: absolute;
|
||||
left: 0em;
|
||||
top: 0em;
|
||||
width: 100%;
|
||||
background-color: #cdf;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.navfooter, div.footing{
|
||||
position: fixed;
|
||||
left: 0em;
|
||||
bottom: 0em;
|
||||
background-color: #eee;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
div.navheader td,
|
||||
div.navfooter td {
|
||||
font-size: 66%;
|
||||
}
|
||||
|
||||
div.navheader table th {
|
||||
/*font-family: Georgia, Times, serif;*/
|
||||
/*font-size: x-large;*/
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
div.navheader table {
|
||||
border-left: 0em;
|
||||
border-right: 0em;
|
||||
border-top: 0em;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.navfooter table {
|
||||
border-left: 0em;
|
||||
border-right: 0em;
|
||||
border-bottom: 0em;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.navheader table td a,
|
||||
div.navfooter table td a {
|
||||
color: #777;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* normal text in the footer */
|
||||
div.navfooter table td {
|
||||
color: black;
|
||||
}
|
||||
|
||||
div.navheader table td a:visited,
|
||||
div.navfooter table td a:visited {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
|
||||
/* links in header and footer */
|
||||
div.navheader table td a:hover,
|
||||
div.navfooter table td a:hover {
|
||||
text-decoration: underline;
|
||||
background-color: transparent;
|
||||
color: #33a;
|
||||
}
|
||||
|
||||
div.navheader hr,
|
||||
div.navfooter hr {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
.qandaset tr.question td p {
|
||||
margin: 0em 0em 1em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.qandaset tr.answer td p {
|
||||
margin: 0em 0em 1em 0em;
|
||||
padding: 0em 0em 0em 0em;
|
||||
}
|
||||
.answer td {
|
||||
padding-bottom: 1.5em;
|
||||
}
|
||||
|
||||
.emphasis {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
/************* /
|
||||
/ decorations /
|
||||
/ *************/
|
||||
|
||||
.titlepage {
|
||||
}
|
||||
|
||||
.part .title {
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
border: none;
|
||||
}
|
||||
|
||||
/*
|
||||
h1 {
|
||||
border: none;
|
||||
}
|
||||
|
||||
h2 {
|
||||
border-top: solid 0.2em;
|
||||
border-bottom: solid 0.06em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
border-top: 0em;
|
||||
border-bottom: solid 0.06em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
border: 0em;
|
||||
border-bottom: solid 0.06em;
|
||||
}
|
||||
|
||||
h5 {
|
||||
border: 0em;
|
||||
}
|
||||
*/
|
||||
|
||||
.programlisting {
|
||||
border: solid 1px;
|
||||
}
|
||||
|
||||
div.figure,
|
||||
div.table,
|
||||
div.informalfigure,
|
||||
div.informaltable,
|
||||
div.informalexample,
|
||||
div.example {
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.tip,
|
||||
.warning,
|
||||
.caution,
|
||||
.note {
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
.tip table th,
|
||||
.warning table th,
|
||||
.caution table th,
|
||||
.note table th {
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
|
||||
.question td {
|
||||
border-top: 1px solid black;
|
||||
}
|
||||
|
||||
.answer {
|
||||
}
|
||||
|
||||
|
||||
b.keycap,
|
||||
.keycap {
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
|
||||
div.navheader, div.heading{
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
|
||||
|
||||
div.navfooter, div.footing{
|
||||
border-top: 1px solid;
|
||||
}
|
||||
|
||||
/********* /
|
||||
/ colors /
|
||||
/ *********/
|
||||
|
||||
body {
|
||||
color: #333;
|
||||
background: white;
|
||||
}
|
||||
|
||||
a {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
background-color: #dedede;
|
||||
}
|
||||
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
h7,
|
||||
h8 {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
hr {
|
||||
border-color: #aaa;
|
||||
}
|
||||
|
||||
|
||||
.tip, .warning, .caution, .note {
|
||||
border-color: #fff;
|
||||
}
|
||||
|
||||
|
||||
.tip table th,
|
||||
.warning table th,
|
||||
.caution table th,
|
||||
.note table th {
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
|
||||
|
||||
.warning {
|
||||
background-color: #f0f0f2;
|
||||
}
|
||||
|
||||
.caution {
|
||||
background-color: #f0f0f2;
|
||||
}
|
||||
|
||||
.tip {
|
||||
background-color: #f0f0f2;
|
||||
}
|
||||
|
||||
.note {
|
||||
background-color: #f0f0f2;
|
||||
}
|
||||
|
||||
.glossary dl dt,
|
||||
.variablelist dl dt,
|
||||
.variablelist dl dt span.term {
|
||||
color: #044;
|
||||
}
|
||||
|
||||
div.figure,
|
||||
div.table,
|
||||
div.example,
|
||||
div.informalfigure,
|
||||
div.informaltable,
|
||||
div.informalexample {
|
||||
border-color: #aaa;
|
||||
}
|
||||
|
||||
pre.programlisting {
|
||||
color: black;
|
||||
background-color: #fff;
|
||||
border-color: #aaa;
|
||||
border-width: 2px;
|
||||
}
|
||||
|
||||
.guimenu,
|
||||
.guilabel,
|
||||
.guimenuitem {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
|
||||
b.keycap,
|
||||
.keycap {
|
||||
background-color: #eee;
|
||||
border-color: #999;
|
||||
}
|
||||
|
||||
|
||||
div.navheader {
|
||||
border-color: black;
|
||||
}
|
||||
|
||||
|
||||
div.navfooter {
|
||||
border-color: black;
|
||||
}
|
||||
|
||||
.writernotes {
|
||||
color: red;
|
||||
}
|
||||
|
||||
|
||||
/*********** /
|
||||
/ graphics /
|
||||
/ ***********/
|
||||
|
||||
/*
|
||||
body {
|
||||
background-image: url("images/body_bg.jpg");
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
.navheader,
|
||||
.note,
|
||||
.tip {
|
||||
background-image: url("images/note_bg.jpg");
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
.warning,
|
||||
.caution {
|
||||
background-image: url("images/warning_bg.jpg");
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
.figure,
|
||||
.informalfigure,
|
||||
.example,
|
||||
.informalexample,
|
||||
.table,
|
||||
.informaltable {
|
||||
background-image: url("images/figure_bg.jpg");
|
||||
background-attachment: fixed;
|
||||
}
|
||||
|
||||
*/
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
h7{
|
||||
}
|
||||
|
||||
/*
|
||||
Example of how to stick an image as part of the title.
|
||||
|
||||
div.article .titlepage .title
|
||||
{
|
||||
background-image: url("figures/white-on-black.png");
|
||||
background-position: center;
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
*/
|
||||
|
||||
div.preface .titlepage .title,
|
||||
div.colophon .title,
|
||||
div.chapter .titlepage .title,
|
||||
div.article .titlepage .title
|
||||
{
|
||||
}
|
||||
|
||||
div.section div.section .titlepage .title,
|
||||
div.sect2 .titlepage .title {
|
||||
background: none;
|
||||
}
|
||||
|
||||
|
||||
h1.title {
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
height: 256px;
|
||||
text-indent: -9000px;
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
h2.subtitle {
|
||||
background-color: transparent;
|
||||
text-indent: -9000px;
|
||||
overflow:hidden;
|
||||
width: 0px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*************************************** /
|
||||
/ pippin.gimp.org specific alterations /
|
||||
/ ***************************************/
|
||||
|
||||
/*
|
||||
div.heading, div.navheader {
|
||||
color: #777;
|
||||
font-size: 80%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
text-align: left;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
background: url('/gfx/heading_bg.png') transparent;
|
||||
background-repeat: repeat-x;
|
||||
background-attachment: fixed;
|
||||
border: none;
|
||||
}
|
||||
|
||||
div.heading a {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
div.footing, div.navfooter {
|
||||
border: none;
|
||||
color: #ddd;
|
||||
font-size: 80%;
|
||||
text-align:right;
|
||||
|
||||
width: 100%;
|
||||
padding-top: 10px;
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
left: 0px;
|
||||
|
||||
background: url('/gfx/footing_bg.png') transparent;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/****************** /
|
||||
/ nasty ie tweaks /
|
||||
/ ******************/
|
||||
|
||||
/*
|
||||
div.heading, div.navheader {
|
||||
width:expression(document.body.clientWidth + "px");
|
||||
}
|
||||
|
||||
div.footing, div.navfooter {
|
||||
width:expression(document.body.clientWidth + "px");
|
||||
margin-left:expression("-5em");
|
||||
}
|
||||
body {
|
||||
padding:expression("4em 5em 0em 5em");
|
||||
}
|
||||
*/
|
||||
|
||||
/**************************************** /
|
||||
/ mozilla vendor specific css extensions /
|
||||
/ ****************************************/
|
||||
/*
|
||||
div.navfooter, div.footing{
|
||||
-moz-opacity: 0.8em;
|
||||
}
|
||||
|
||||
div.figure,
|
||||
div.table,
|
||||
div.informalfigure,
|
||||
div.informaltable,
|
||||
div.informalexample,
|
||||
div.example,
|
||||
.tip,
|
||||
.warning,
|
||||
.caution,
|
||||
.note {
|
||||
-moz-border-radius: 0.5em;
|
||||
}
|
||||
|
||||
b.keycap,
|
||||
.keycap {
|
||||
-moz-border-radius: 0.3em;
|
||||
}
|
||||
*/
|
||||
|
||||
table tr td table tr td {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
hr {
|
||||
display: none;
|
||||
}
|
||||
|
||||
table {
|
||||
border: 0em;
|
||||
}
|
||||
|
||||
.photo {
|
||||
float: right;
|
||||
margin-left: 1.5em;
|
||||
margin-bottom: 1.5em;
|
||||
margin-top: 0em;
|
||||
max-width: 17em;
|
||||
border: 1px solid gray;
|
||||
padding: 3px;
|
||||
background: white;
|
||||
}
|
||||
.seperator {
|
||||
padding-top: 2em;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#validators {
|
||||
margin-top: 5em;
|
||||
text-align: right;
|
||||
color: #777;
|
||||
}
|
||||
@media print {
|
||||
body {
|
||||
font-size: 8pt;
|
||||
}
|
||||
.noprint {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.tip,
|
||||
.note {
|
||||
background: #f0f0f2;
|
||||
color: #333;
|
||||
padding: 20px;
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.tip h3,
|
||||
.note h3 {
|
||||
padding: 0em;
|
||||
margin: 0em;
|
||||
font-size: 2em;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.tip a,
|
||||
.note a {
|
||||
color: #333;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.footnote {
|
||||
font-size: small;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
/* Changes the announcement text */
|
||||
.tip h3,
|
||||
.warning h3,
|
||||
.caution h3,
|
||||
.note h3 {
|
||||
font-size:large;
|
||||
color: #00557D;
|
||||
}
|
||||
1331
documentation/getting-started/getting-started-yp-intro.xml
Normal file
94
documentation/getting-started/getting-started.xml
Normal file
@@ -0,0 +1,94 @@
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
|
||||
|
||||
<book id='getting-started-manual' lang='en'
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude"
|
||||
xmlns="http://docbook.org/ns/docbook"
|
||||
>
|
||||
<bookinfo>
|
||||
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref='figures/getting-started-title.png'
|
||||
format='SVG'
|
||||
align='left' scalefit='1' width='100%'/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
|
||||
<title>
|
||||
Getting Started With Yocto Project
|
||||
</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Scott</firstname> <surname>Rifenbark</surname>
|
||||
<affiliation>
|
||||
<orgname>Scotty's Documentation Services, INC</orgname>
|
||||
</affiliation>
|
||||
<email>srifenbark@gmail.com</email>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<revhistory>
|
||||
<revision>
|
||||
<revnumber>2.5</revnumber>
|
||||
<date>April 2018</date>
|
||||
<revremark>The initial document released with the Yocto Project 2.5 Release.</revremark>
|
||||
</revision>
|
||||
</revhistory>
|
||||
|
||||
<copyright>
|
||||
<year>©RIGHT_YEAR;</year>
|
||||
<holder>Linux Foundation</holder>
|
||||
</copyright>
|
||||
|
||||
<legalnotice>
|
||||
<para>
|
||||
Permission is granted to copy, distribute and/or modify this document under
|
||||
the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">
|
||||
Creative Commons Attribution-Share Alike 2.0 UK: England & Wales</ulink> as published by
|
||||
Creative Commons.
|
||||
</para>
|
||||
<note><title>Manual Notes</title>
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
This version of the
|
||||
<emphasis>Getting Started With Yocto Project Manual</emphasis>
|
||||
is for the &YOCTO_DOC_VERSION; release of the
|
||||
Yocto Project.
|
||||
To be sure you have the latest version of the manual
|
||||
for this release, use the manual from the
|
||||
<ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project documentation page</ulink>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
For manuals associated with other releases of the Yocto
|
||||
Project, go to the
|
||||
<ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project documentation page</ulink>
|
||||
and use the drop-down "Active Releases" button
|
||||
and choose the manual associated with the desired
|
||||
Yocto Project.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
To report any inaccuracies or problems with this
|
||||
manual, send an email to the Yocto Project
|
||||
discussion group at
|
||||
<filename>yocto@yoctoproject.com</filename> or log into
|
||||
the freenode <filename>#yocto</filename> channel.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
</legalnotice>
|
||||
|
||||
</bookinfo>
|
||||
|
||||
<xi:include href="getting-started-intro.xml"/>
|
||||
|
||||
<xi:include href="getting-started-yp-intro.xml"/>
|
||||
|
||||
<xi:include href="getting-started-development-environment.xml"/>
|
||||
|
||||
</book>
|
||||
<!--
|
||||
vim: expandtab tw=80 ts=4
|
||||
-->
|
||||
@@ -21,7 +21,7 @@
|
||||
<para>
|
||||
Kernel Metadata exists in many places.
|
||||
One area in the Yocto Project
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#source-repositories'>Source Repositories</ulink>
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#source-repositories'>Source Repositories</ulink>
|
||||
is the <filename>yocto-kernel-cache</filename> Git repository.
|
||||
You can find this repository grouped under the "Yocto Linux Kernel"
|
||||
heading in the
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
</literallayout>
|
||||
<note>
|
||||
The previous commands assume the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#source-repositories'>Source Repositories</ulink>
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#source-repositories'>Source Repositories</ulink>
|
||||
(i.e. <filename>poky</filename>) have been cloned
|
||||
using Git and the local repository is named
|
||||
"poky".
|
||||
@@ -303,7 +303,7 @@
|
||||
</literallayout>
|
||||
<note>
|
||||
The previous commands assume the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#source-repositories'>Source Repositories</ulink>
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#source-repositories'>Source Repositories</ulink>
|
||||
(i.e. <filename>poky</filename>) have been cloned
|
||||
using Git and the local repository is named
|
||||
"poky".
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
<para>
|
||||
You can find a web interface to the Yocto Linux kernels in the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#source-repositories'>Source Repositories</ulink>
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#source-repositories'>Source Repositories</ulink>
|
||||
at
|
||||
<ulink url='&YOCTO_GIT_URL;'></ulink>.
|
||||
If you look at the interface, you will see to the left a
|
||||
@@ -239,8 +239,9 @@
|
||||
<ulink url='http://git-scm.com/documentation'></ulink>.
|
||||
You can also get an introduction to Git as it
|
||||
applies to the Yocto Project in the
|
||||
"<ulink url='&YOCTO_DOCS_REF_URL;#git'>Git</ulink>"
|
||||
section in the Yocto Project Reference Manual.
|
||||
"<ulink url='&YOCTO_DOCS_GS_URL;#git'>Git</ulink>"
|
||||
section in the Getting Started With Yocto Project
|
||||
Manual.
|
||||
The latter reference provides an overview of
|
||||
Git and presents a minimal set of Git commands
|
||||
that allows you to be functional using Git.
|
||||
@@ -381,7 +382,7 @@
|
||||
generic kernel just for conceptual purposes.
|
||||
Also keep in mind that this structure represents the Yocto
|
||||
Project
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#source-repositories'>Source Repositories</ulink>
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#source-repositories'>Source Repositories</ulink>
|
||||
that are either pulled from during the build or established
|
||||
on the host development system prior to the build by either
|
||||
cloning a particular kernel's Git repository or by
|
||||
|
||||
BIN
documentation/mega-manual/figures/concepts-manual-title.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 81 KiB |
BIN
documentation/mega-manual/figures/getting-started-title.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
documentation/mega-manual/figures/key-dev-elements.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 30 KiB |
@@ -129,6 +129,33 @@
|
||||
<xi:include
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude" href="../yocto-project-qs/qs.xml"/>
|
||||
|
||||
<!-- Includes getting-started title image and then getting-started chapters -->
|
||||
|
||||
<para>
|
||||
<imagedata fileref="figures/getting-started-title.png" width="100%" align="left" scalefit="1" />
|
||||
</para>
|
||||
|
||||
<xi:include
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude" href="../getting-started/getting-started-intro.xml"/>
|
||||
|
||||
<xi:include
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude" href="../getting-started/getting-started-yp-intro.xml"/>
|
||||
|
||||
<xi:include
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude" href="../getting-started/getting-started-development-environment.xml"/>
|
||||
|
||||
<!-- Includes concepts-manual title image and then concepts-manual chapters -->
|
||||
|
||||
<para>
|
||||
<imagedata fileref="figures/concepts-manual-title.png" width="100%" align="left" scalefit="1" />
|
||||
</para>
|
||||
|
||||
<xi:include
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude" href="../concepts-manual/concepts-manual-intro.xml"/>
|
||||
|
||||
<xi:include
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude" href="../concepts-manual/concepts-manual-concepts.xml"/>
|
||||
|
||||
<!-- Includes dev-manual title image and then dev-manual chapters -->
|
||||
|
||||
<para>
|
||||
@@ -219,16 +246,10 @@
|
||||
</para>
|
||||
|
||||
<xi:include
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude" href="../ref-manual/introduction.xml"/>
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude" href="../ref-manual/ref-system-requirements.xml"/>
|
||||
|
||||
<xi:include
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude" href="../ref-manual/usingpoky.xml"/>
|
||||
|
||||
<xi:include
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude" href="../ref-manual/ref-development-environment.xml"/>
|
||||
|
||||
<xi:include
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude" href="../ref-manual/technical-details.xml"/>
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude" href="../ref-manual/ref-terms.xml"/>
|
||||
|
||||
<xi:include
|
||||
xmlns:xi="http://www.w3.org/2003/XInclude" href="../ref-manual/ref-release-process.xml"/>
|
||||
|
||||
@@ -59,6 +59,10 @@
|
||||
<!ENTITY YOCTO_DOCS_BB_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/bitbake-user-manual/bitbake-user-manual.html">
|
||||
<!ENTITY YOCTO_DOCS_TOAST_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/toaster-manual/toaster-manual.html">
|
||||
<!ENTITY YOCTO_DOCS_SDK_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/sdk-manual/sdk-manual.html">
|
||||
<!ENTITY YOCTO_DOCS_OVERVIEW_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/overview-manual/overview-manual.html">
|
||||
<!ENTITY YOCTO_DOCS_GS_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/getting-started/getting-started.html">
|
||||
<!ENTITY YOCTO_DOCS_CM_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/concepts-manual/concepts-manual.html">
|
||||
<!ENTITY YOCTO_DOCS_BRIEF_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/brief-yoctoprojectqs/brief-yoctoprojectqs.html">
|
||||
<!ENTITY YOCTO_ADTPATH_DIR "/opt/poky/&DISTRO;">
|
||||
<!ENTITY YOCTO_POKY_TARBALL "&YOCTO_POKY;.tar.bz2">
|
||||
<!ENTITY OE_INIT_PATH "&YOCTO_POKY;/oe-init-build-env">
|
||||
@@ -77,5 +81,5 @@
|
||||
$ sudo yum makecache
|
||||
$ sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \
|
||||
diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath socat \
|
||||
perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python3-pip xz \
|
||||
perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python34-pip xz \
|
||||
which">
|
||||
|
||||
@@ -417,10 +417,11 @@
|
||||
|
||||
<para>
|
||||
You can find more information on licensing in the
|
||||
"<link linkend='licensing'>Licensing</link>" section and in the
|
||||
"<ulink url='&YOCTO_DOCS_GS_URL;#licensing'>Licensing</ulink>"
|
||||
section in the Getting Started With Yocto Project Manual
|
||||
and also in the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-open-source-license-compliance-during-your-products-lifecycle'>Maintaining Open Source License Compliance During Your Product's Lifecycle</ulink>"
|
||||
section, which is in the Yocto Project Development Tasks
|
||||
Manual.
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 163 KiB |
@@ -293,7 +293,7 @@
|
||||
For the remainder, you can now find them in the
|
||||
<filename>meta-extras</filename> repository, which is in the
|
||||
Yocto Project
|
||||
<link linkend='source-repositories'>Source Repositories</link>.
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#source-repositories'>Source Repositories</ulink>.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
@@ -1022,8 +1022,8 @@
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
For more information on Build History, see the
|
||||
"<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
|
||||
section.
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -1748,8 +1748,8 @@
|
||||
|
||||
<para>
|
||||
The minimum
|
||||
<link linkend='git'>Git</link> version required
|
||||
on the build host is now 1.7.8 because the
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#git'>Git</ulink> version
|
||||
required on the build host is now 1.7.8 because the
|
||||
<filename>--list</filename> option is now required by
|
||||
BitBake's Git fetcher.
|
||||
As always, if your host distribution does not provide a version of
|
||||
@@ -2026,8 +2026,8 @@
|
||||
You should manually remove old "build-id" files from your
|
||||
existing build history repositories to avoid confusion.
|
||||
For information on the build history feature, see the
|
||||
"<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
|
||||
section.
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
@@ -4038,7 +4038,7 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
|
||||
<para>For an example, see the
|
||||
<filename>pixbufcache</filename> class in
|
||||
<filename>meta/classes/</filename> in the Yocto Project
|
||||
<link linkend='source-repositories'>Source Repositories</link>.
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#source-repositories'>Source Repositories</ulink>.
|
||||
<note>
|
||||
The <filename>SSTATEPOSTINSTFUNCS</filename> variable
|
||||
itself is now deprecated in favor of the
|
||||
|
||||
@@ -348,8 +348,10 @@
|
||||
If doing so results in unnecessary rebuilds of tasks, you can whitelist the
|
||||
variable so that the shared state code ignores the dependency when it creates
|
||||
checksums.
|
||||
For information on this process, see the <filename>BB_HASHBASE_WHITELIST</filename>
|
||||
example in the "<link linkend='checksums'>Checksums (Signatures)</link>" section.
|
||||
For information on this process, see the
|
||||
<filename>BB_HASHBASE_WHITELIST</filename> example in the
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#overview-checksums'>Checksums (Signatures)</ulink>"
|
||||
section in the Yocto Project Concepts Manual.
|
||||
</note>
|
||||
</section>
|
||||
|
||||
|
||||
@@ -357,8 +357,8 @@
|
||||
history of build output metadata, which can be used to detect possible
|
||||
regressions as well as used for analysis of the build output.
|
||||
For more information on using Build History, see the
|
||||
"<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
|
||||
section.
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -568,8 +568,9 @@
|
||||
provides support for the recipes that build the Canadian
|
||||
Cross-compilation tools for SDKs.
|
||||
See the
|
||||
"<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
|
||||
section for more discussion on these cross-compilation tools.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#cross-development-toolchain-generation'>Cross-Development Toolchain Generation</ulink>"
|
||||
section in the Yocto Project Concepts Manual for more discussion on
|
||||
these cross-compilation tools.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -581,8 +582,9 @@
|
||||
provides support for the recipes that build the cross-compilation
|
||||
tools used for building SDKs.
|
||||
See the
|
||||
"<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
|
||||
section for more discussion on these cross-compilation tools.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#cross-development-toolchain-generation'>Cross-Development Toolchain Generation</ulink>"
|
||||
section in the Yocto Project Concepts Manual for more discussion on
|
||||
these cross-compilation tools.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -1249,8 +1251,8 @@
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#usingpoky-extend-customimage'>Customizing Images</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
For information on how images are created, see the
|
||||
"<link linkend='images-dev-environment'>Images</link>" section elsewhere
|
||||
in this manual.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#images-dev-environment'>Images</ulink>"
|
||||
section in the Yocto Project Concpets Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -2720,8 +2722,8 @@ This check was removed for YP 2.3 release
|
||||
<para>
|
||||
For more information on the cross-development toolchain
|
||||
generation, see the
|
||||
"<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
|
||||
section.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#cross-development-toolchain-generation'>Cross-Development Toolchain Generation</ulink>"
|
||||
section in the Yocto Project Concepts Manual.
|
||||
For information on advantages gained when building a
|
||||
cross-development toolchain using the
|
||||
<link linkend='ref-tasks-populate_sdk'><filename>do_populate_sdk</filename></link>
|
||||
@@ -3018,8 +3020,8 @@ This check was removed for YP 2.3 release
|
||||
|
||||
<para>
|
||||
For information on how root filesystem images are created, see the
|
||||
"<link linkend='image-generation-dev-environment'>Image Generation</link>"
|
||||
section.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#image-generation-dev-environment'>Image Generation</ulink>"
|
||||
section in the Yocto Project Concepts Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -3180,8 +3182,8 @@ This check was removed for YP 2.3 release
|
||||
|
||||
<para>
|
||||
For more information on sstate, see the
|
||||
"<link linkend='shared-state-cache'>Shared State Cache</link>"
|
||||
section.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#shared-state-cache'>Shared State Cache</ulink>"
|
||||
section in the Yocto Project Concepts Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
|
||||
@@ -356,7 +356,7 @@
|
||||
<filename>perf</filename>, <filename>systemtap</filename>,
|
||||
and <filename>LTTng</filename>.
|
||||
For general information on user-space tools, see the
|
||||
<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-manual'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
|
||||
<ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
|
||||
manual.
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis>ssh-server-dropbear:</emphasis>
|
||||
|
||||
@@ -151,7 +151,8 @@
|
||||
This image provides the Wayland protocol libraries and the
|
||||
reference Weston compositor.
|
||||
For more information, see the
|
||||
"<link linkend='wayland'>Wayland</link>" section.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#wayland'>Wayland</ulink>"
|
||||
section in the Yocto Project Concepts Manual.
|
||||
</para></listitem>
|
||||
<listitem><para><filename>core-image-x11</filename>:
|
||||
A very basic X11 image with a terminal.
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<title>Command: part or partition</title>
|
||||
|
||||
<para>
|
||||
Either of these commands create a partition on the system and use
|
||||
Either of these commands creates a partition on the system and uses
|
||||
the following syntax:
|
||||
<literallayout class='monospaced'>
|
||||
part [<replaceable>mntpoint</replaceable>]
|
||||
@@ -55,7 +55,7 @@
|
||||
|
||||
<para>
|
||||
The <filename><replaceable>mntpoint</replaceable></filename> is
|
||||
where the partition will be mounted and must be of one of the
|
||||
where the partition is mounted and must be in one of the
|
||||
following forms:
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
@@ -64,7 +64,7 @@
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<filename>swap</filename>:
|
||||
The created partition is used as swap space.
|
||||
The created partition is used as swap space
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
@@ -74,13 +74,22 @@
|
||||
partition to automatically be mounted.
|
||||
Wic achieves this by adding entries to the filesystem table (fstab)
|
||||
during image generation.
|
||||
In order for wic to generate a valid fstab, you must also provide
|
||||
In order for Wic to generate a valid fstab, you must also provide
|
||||
one of the <filename>--ondrive</filename>,
|
||||
<filename>--ondisk</filename>, or
|
||||
<filename>--use-uuid</filename> partition options as part of the
|
||||
command.
|
||||
Here is an example using "/" as the mountpoint.
|
||||
The command uses "--ondisk" to force the partition onto the
|
||||
<note>
|
||||
The mount program must understand the PARTUUID syntax you use
|
||||
with <filename>--use-uuid</filename> and non-root
|
||||
<replaceable>mountpoint</replaceable>, including swap.
|
||||
The busybox versions of these application are currently
|
||||
excluded.
|
||||
</note>
|
||||
Here is an example that uses "/" as the
|
||||
<replaceable>mountpoint</replaceable>.
|
||||
The command uses <filename>--ondisk</filename> to force the
|
||||
partition onto the
|
||||
<filename>sdb</filename> disk:
|
||||
<literallayout class='monospaced'>
|
||||
part / --source rootfs --ondisk sdb --fstype=ext3 --label platform --align 1024
|
||||
@@ -100,6 +109,14 @@
|
||||
You do not need this option if you use
|
||||
<filename>--source</filename>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>--fixed-size</filename>:</emphasis>
|
||||
The exact partition size in MBytes.
|
||||
You cannot specify with <filename>--size</filename>.
|
||||
An error occurs when assembling the disk image if the
|
||||
partition data is larger than
|
||||
<filename>--fixed-size</filename>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>--source</filename>:</emphasis>
|
||||
This option is a Wic-specific option that names the source
|
||||
@@ -107,11 +124,12 @@
|
||||
The most common value for this option is "rootfs", but you
|
||||
can use any value that maps to a valid source plug-in.
|
||||
For information on the source plug-ins, see the
|
||||
"<link linkend='wic-plug-ins-interface'>Wic Plug-Ins Interface</link>"
|
||||
section.</para>
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#wic-using-the-wic-plug-ins-interface'>Using the Wic Plug-Ins Interface</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para>
|
||||
|
||||
<para>If you use <filename>--source rootfs</filename>, Wic
|
||||
creates a partition as large as needed and to fill it with
|
||||
creates a partition as large as needed and fills it with
|
||||
the contents of the root filesystem pointed to by the
|
||||
<filename>-r</filename> command-line option or the
|
||||
equivalent rootfs derived from the <filename>-e</filename>
|
||||
@@ -130,8 +148,8 @@
|
||||
<filename>-r</filename> command-line option or the
|
||||
equivalent rootfs derived from the <filename>-e</filename>
|
||||
command-line option.
|
||||
Exactly what those contents and filesystem type end up
|
||||
being are dependent on the given plug-in implementation.
|
||||
Exactly what those contents are and filesystem type used are
|
||||
dependent on the given plug-in implementation.
|
||||
</para>
|
||||
|
||||
<para>If you do not use the <filename>--source</filename>
|
||||
@@ -173,7 +191,7 @@
|
||||
<emphasis><filename>--fsoptions</filename>:</emphasis>
|
||||
Specifies a free-form string of options to be used when
|
||||
mounting the filesystem.
|
||||
This string will be copied into the
|
||||
This string is copied into the
|
||||
<filename>/etc/fstab</filename> file of the installed
|
||||
system and should be enclosed in quotes.
|
||||
If not specified, the default string is "defaults".
|
||||
@@ -191,9 +209,9 @@
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>--align (in KBytes)</filename>:</emphasis>
|
||||
This option is a Wic-specific option that says to start a
|
||||
partition on an <replaceable>x</replaceable> KBytes
|
||||
boundary.
|
||||
This option is a Wic-specific option that says to start
|
||||
partitions on boundaries given
|
||||
<replaceable>x</replaceable> KBytes.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>--no-table</filename>:</emphasis>
|
||||
@@ -202,11 +220,18 @@
|
||||
causes it to become populated.
|
||||
However, the partition is not added to the partition table.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>--exclude-path</filename>:</emphasis>
|
||||
This option is a Wic-specific option that excludes the given
|
||||
relative path from the resulting image.
|
||||
This option is only effective with the rootfs source
|
||||
plug-in.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>--extra-space</filename>:</emphasis>
|
||||
This option is a Wic-specific option that adds extra space
|
||||
after the space filled by the content of the partition.
|
||||
The final size can go beyond the size specified by the
|
||||
The final size can exceed the size specified by the
|
||||
<filename>--size</filename> option.
|
||||
The default value is 10 Mbytes.
|
||||
</para></listitem>
|
||||
@@ -217,6 +242,11 @@
|
||||
You must supply a value greater than or equal to "1".
|
||||
The default value is "1.3".
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>--part-name</filename>:</emphasis>
|
||||
This option is a Wic-specific option that specifies a name
|
||||
for GPT partitions.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>--part-type</filename>:</emphasis>
|
||||
This option is a Wic-specific option that specifies the
|
||||
@@ -237,6 +267,31 @@
|
||||
This option is a Wic-specific option that specifies the
|
||||
partition UUID.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>--fsuuid</filename>:</emphasis>
|
||||
This option is a Wic-specific option that specifies the
|
||||
filesystem UUID.
|
||||
You can generate or modify
|
||||
<link linkend='var-WKS_FILE'><filename>WKS_FILE</filename></link>
|
||||
with this option if a preconfigured filesystem UUID is
|
||||
added to the kernel command line in the bootloader
|
||||
configuration before you run Wic.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>--system-id</filename>:</emphasis>
|
||||
This option is a Wic-specific option that specifies the
|
||||
partition system ID, which is a one byte long, hexadecimal
|
||||
parameter with or without the 0x prefix.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis><filename>--mkfs-extraopts</filename>:</emphasis>
|
||||
This option specifies additional options to pass to the
|
||||
<filename>mkfs</filename> utility.
|
||||
Some default options for certain filesystems do not take
|
||||
effect.
|
||||
See Wic's help on kickstart
|
||||
(i.e. <filename>wic help kickstart</filename>).
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -166,13 +166,9 @@
|
||||
|
||||
</bookinfo>
|
||||
|
||||
<xi:include href="introduction.xml"/>
|
||||
<xi:include href="ref-system-requirements.xml"/>
|
||||
|
||||
<xi:include href="usingpoky.xml"/>
|
||||
|
||||
<xi:include href="ref-development-environment.xml"/>
|
||||
|
||||
<xi:include href="technical-details.xml"/>
|
||||
<xi:include href="ref-terms.xml"/>
|
||||
|
||||
<xi:include href="ref-release-process.xml"/>
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
<para>
|
||||
Each major release receives a codename that identifies the release in
|
||||
the
|
||||
<link linkend='yocto-project-repositories'>Yocto Project Source Repositories</link>.
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#yocto-project-repositories'>Yocto Project Source Repositories</ulink>.
|
||||
The concept is that branches of
|
||||
<link linkend='metadata'>Metadata</link>
|
||||
with the same codename are likely to be compatible and thus
|
||||
@@ -217,7 +217,7 @@
|
||||
in the <filename>poky</filename> repository.
|
||||
<note>
|
||||
You can find all these branches in the Yocto Project
|
||||
<link linkend='source-repositories'>Source Repositories</link>.
|
||||
<ulink url='&YOCTO_DOCS_GS_URL;#source-repositories'>Source Repositories</ulink>.
|
||||
</note>
|
||||
Testing within these public branches ensures in a publicly visible way
|
||||
that all of the main supposed architectures and recipes in OE-Core
|
||||
|
||||
@@ -306,8 +306,8 @@
|
||||
The directory tracks build information into image, packages, and
|
||||
SDK subdirectories.
|
||||
For information on the build history feature, see the
|
||||
"<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
|
||||
section.
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -520,9 +520,10 @@
|
||||
variable points to this directory.
|
||||
For more detail on the contents of the <filename>deploy</filename>
|
||||
directory, see the
|
||||
"<link linkend='images-dev-environment'>Images</link>" and
|
||||
"<link linkend='sdk-dev-environment'>Application Development SDK</link>"
|
||||
sections.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#images-dev-environment'>Images</ulink>"
|
||||
and
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#sdk-dev-environment'>Application Development SDK</ulink>"
|
||||
sections in the Yocto Project Concepts Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -695,8 +696,8 @@
|
||||
<para>
|
||||
For information on how BitBake uses stamp files to determine if
|
||||
a task should be rerun, see the
|
||||
"<link linkend='stamp-files-and-the-rerunning-of-tasks'>Stamp Files and the Rerunning of Tasks</link>"
|
||||
section.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#stamp-files-and-the-rerunning-of-tasks'>Stamp Files and the Rerunning of Tasks</ulink>"
|
||||
section in the Yocto Project Concepts Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
|
||||
487
documentation/ref-manual/ref-system-requirements.xml
Normal file
@@ -0,0 +1,487 @@
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
|
||||
|
||||
<chapter id='ref-manual-system-requirements'>
|
||||
<title>System Requirements</title>
|
||||
|
||||
<para>
|
||||
Welcome to the Yocto Project Reference Manual!
|
||||
This manual provides reference information for the current release
|
||||
of the Yocto Project.
|
||||
The manual is best used after you have an understanding
|
||||
of the basics of the Yocto Project.
|
||||
The manual is neither meant to be read as a starting point to the
|
||||
Yocto Project nor read from start to finish.
|
||||
Use this manual to find variable definitions, class
|
||||
descriptions, and so forth as needed during the course of using
|
||||
the Yocto Project.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For introductory information on the Yocto Project, see the
|
||||
<ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink> and the
|
||||
"<ulink url='&YOCTO_DOCS_GS_URL;#overview-development-environment'>Yocto Project Development Environment</ulink>"
|
||||
chapter in the Getting Started With Yocto Project Manual.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you want to use the Yocto Project to test run building an image
|
||||
without having to understand concepts, work through the
|
||||
<ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>.
|
||||
You can find "how-to" information in the
|
||||
<ulink url='&YOCTO_DOCS_DEV_URL;'>Yocto Project Development Tasks Manual</ulink>.
|
||||
<note><title>Tip</title>
|
||||
For more information about the Yocto Project Documentation set,
|
||||
see the
|
||||
"<link linkend='resources-links-and-related-documentation'>Links and Related Documentation</link>"
|
||||
section.
|
||||
</note>
|
||||
</para>
|
||||
|
||||
<section id='detailed-supported-distros'>
|
||||
<title>Supported Linux Distributions</title>
|
||||
|
||||
<para>
|
||||
Currently, the Yocto Project is supported on the following
|
||||
distributions:
|
||||
<note><title>Notes</title>
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
Yocto Project releases are tested against the stable
|
||||
Linux distributions in the following list.
|
||||
The Yocto Project should work on other distributions but
|
||||
validation is not performed against them.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
In particular, the Yocto Project does not support
|
||||
and currently has no plans to support
|
||||
rolling-releases or development distributions due to
|
||||
their constantly changing nature.
|
||||
We welcome patches and bug reports, but keep in mind
|
||||
that our priority is on the supported platforms listed
|
||||
below.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
If you encounter problems, please go to
|
||||
<ulink url='&YOCTO_BUGZILLA_URL;'>Yocto Project Bugzilla</ulink>
|
||||
and submit a bug.
|
||||
We are interested in hearing about your experience.
|
||||
For information on how to submit a bug, see the
|
||||
Yocto Project
|
||||
<ulink url='&YOCTO_WIKI_URL;/wiki/Bugzilla_Configuration_and_Bug_Tracking'>Bugzilla wiki page</ulink>
|
||||
and the
|
||||
"<ulink url='&YOCTO_DOCS_DEV_URL;#submitting-a-defect-against-the-yocto-project'>Submitting a Defect Against the Yocto Project</ulink>"
|
||||
section in the Yocto Project Development Tasks Manual.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
<itemizedlist>
|
||||
<!--
|
||||
<listitem><para>Ubuntu 10.04</para></listitem>
|
||||
<listitem><para>Ubuntu 11.10</para></listitem>
|
||||
<listitem><para>Ubuntu 12.04 (LTS)</para></listitem>
|
||||
<listitem><para>Ubuntu 13.10</para></listitem>
|
||||
<listitem><para>Ubuntu 14.04 (LTS)</para></listitem> -->
|
||||
<listitem><para>Ubuntu 14.10</para></listitem>
|
||||
<listitem><para>Ubuntu 15.04</para></listitem>
|
||||
<listitem><para>Ubuntu 15.10</para></listitem>
|
||||
<listitem><para>Ubuntu 16.04 (LTS)</para></listitem>
|
||||
<!-- <listitem><para>Fedora 16 (Verne)</para></listitem>
|
||||
<listitem><para>Fedora 17 (Spherical)</para></listitem>
|
||||
<listitem><para>Fedora release 19 (Schrödinger's Cat)</para></listitem>
|
||||
<listitem><para>Fedora release 20 (Heisenbug)</para></listitem> -->
|
||||
<listitem><para>Fedora release 22</para></listitem>
|
||||
<listitem><para>Fedora release 23</para></listitem>
|
||||
<!-- <listitem><para>Fedora release 24</para></listitem>
|
||||
<listitem><para>CentOS release 5.6 (Final)</para></listitem>
|
||||
<listitem><para>CentOS release 5.7 (Final)</para></listitem>
|
||||
<listitem><para>CentOS release 5.8 (Final)</para></listitem>
|
||||
<listitem><para>CentOS release 6.3 (Final)</para></listitem>
|
||||
<listitem><para>CentOS release 6.x</para></listitem> -->
|
||||
<listitem><para>CentOS release 7.x</para></listitem>
|
||||
<!-- <listitem><para>Debian GNU/Linux 6.0 (Squeeze)</para></listitem>
|
||||
<listitem><para>Debian GNU/Linux 7.x (Wheezy)</para></listitem> -->
|
||||
<listitem><para>Debian GNU/Linux 8.x (Jessie)</para></listitem>
|
||||
<listitem><para>Debian GNU/Linux 9.x (Stretch)</para></listitem>
|
||||
<!-- <listitem><para>Debian GNU/Linux 7.1 (Wheezy)</para></listitem>
|
||||
<listitem><para>Debian GNU/Linux 7.2 (Wheezy)</para></listitem>
|
||||
<listitem><para>Debian GNU/Linux 7.3 (Wheezy)</para></listitem>
|
||||
<listitem><para>Debian GNU/Linux 7.4 (Wheezy)</para></listitem>
|
||||
<listitem><para>Debian GNU/Linux 7.5 (Wheezy)</para></listitem>
|
||||
<listitem><para>Debian GNU/Linux 7.6 (Wheezy)</para></listitem> -->
|
||||
<!-- <listitem><para>openSUSE 11.4</para></listitem>
|
||||
<listitem><para>openSUSE 12.1</para></listitem>
|
||||
<listitem><para>openSUSE 12.2</para></listitem>
|
||||
<listitem><para>openSUSE 12.3</para></listitem>
|
||||
<listitem><para>openSUSE 13.1</para></listitem> -->
|
||||
<listitem><para>openSUSE 13.2</para></listitem>
|
||||
<listitem><para>openSUSE 42.1</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<note>
|
||||
While the Yocto Project Team attempts to ensure all Yocto Project
|
||||
releases are one hundred percent compatible with each officially
|
||||
supported Linux distribution, instances might exist where you
|
||||
encounter a problem while using the Yocto Project on a specific
|
||||
distribution.
|
||||
</note>
|
||||
</section>
|
||||
|
||||
<section id='required-packages-for-the-host-development-system'>
|
||||
<title>Required Packages for the Host Development System</title>
|
||||
|
||||
<para>
|
||||
The list of packages you need on the host development system can
|
||||
be large when covering all build scenarios using the Yocto Project.
|
||||
This section provides required packages according to
|
||||
Linux distribution and function.
|
||||
</para>
|
||||
|
||||
<section id='ubuntu-packages'>
|
||||
<title>Ubuntu and Debian</title>
|
||||
|
||||
<para>
|
||||
The following list shows the required packages by function
|
||||
given a supported Ubuntu or Debian Linux distribution:
|
||||
<note>
|
||||
If your build system has the
|
||||
<filename>oss4-dev</filename> package installed, you
|
||||
might experience QEMU build failures due to the package
|
||||
installing its own custom
|
||||
<filename>/usr/include/linux/soundcard.h</filename> on
|
||||
the Debian system.
|
||||
If you run into this situation, either of the following
|
||||
solutions exist:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo apt-get build-dep qemu
|
||||
$ sudo apt-get remove oss4-dev
|
||||
</literallayout>
|
||||
</note>
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis>Essentials:</emphasis>
|
||||
Packages needed to build an image on a headless
|
||||
system:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL;
|
||||
</literallayout></para></listitem>
|
||||
<listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
|
||||
Packages recommended if the host system has graphics
|
||||
support or if you are going to use the Eclipse
|
||||
IDE:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo apt-get install libsdl1.2-dev xterm
|
||||
</literallayout></para></listitem>
|
||||
<listitem><para><emphasis>Documentation:</emphasis>
|
||||
Packages needed if you are going to build out the
|
||||
Yocto Project documentation manuals:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
|
||||
</literallayout></para></listitem>
|
||||
<listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
|
||||
Packages needed if you are going to run
|
||||
<filename>oe-selftest</filename>:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo apt-get install python-git
|
||||
</literallayout>
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='fedora-packages'>
|
||||
<title>Fedora Packages</title>
|
||||
|
||||
<para>
|
||||
The following list shows the required packages by function
|
||||
given a supported Fedora Linux distribution:
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis>Essentials:</emphasis>
|
||||
Packages needed to build an image for a headless
|
||||
system:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL;
|
||||
</literallayout></para></listitem>
|
||||
<listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
|
||||
Packages recommended if the host system has graphics
|
||||
support or if you are going to use the Eclipse
|
||||
IDE:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo dnf install SDL-devel xterm
|
||||
</literallayout></para></listitem>
|
||||
<listitem><para><emphasis>Documentation:</emphasis>
|
||||
Packages needed if you are going to build out the
|
||||
Yocto Project documentation manuals:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo dnf install make docbook-style-dsssl docbook-style-xsl \
|
||||
docbook-dtds docbook-utils fop libxslt dblatex xmlto
|
||||
</literallayout></para></listitem>
|
||||
<listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
|
||||
Packages needed if you are going to run
|
||||
<filename>oe-selftest</filename>:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo dnf install python3-GitPython
|
||||
</literallayout>
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='opensuse-packages'>
|
||||
<title>openSUSE Packages</title>
|
||||
|
||||
<para>
|
||||
The following list shows the required packages by function
|
||||
given a supported openSUSE Linux distribution:
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis>Essentials:</emphasis>
|
||||
Packages needed to build an image for a headless
|
||||
system:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL;
|
||||
</literallayout></para></listitem>
|
||||
<listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
|
||||
Packages recommended if the host system has graphics
|
||||
support or if you are going to use the Eclipse
|
||||
IDE:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo zypper install libSDL-devel xterm
|
||||
</literallayout></para></listitem>
|
||||
<listitem><para><emphasis>Documentation:</emphasis>
|
||||
Packages needed if you are going to build out the
|
||||
Yocto Project documentation manuals:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo zypper install make dblatex xmlto
|
||||
</literallayout></para></listitem>
|
||||
<listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
|
||||
Packages needed if you are going to run
|
||||
<filename>oe-selftest</filename>:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo zypper install python-GitPython
|
||||
</literallayout></para></listitem>
|
||||
</itemizedlist>
|
||||
<note>
|
||||
Sanity testing, through the
|
||||
<link linkend='ref-classes-testimage*'>testimage</link>
|
||||
classes, does not work on systems using the
|
||||
<ulink url='https://en.opensuse.org/Portal:Wicked'>Wicked</ulink>
|
||||
network manager.
|
||||
</note>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='centos-packages'>
|
||||
<title>CentOS Packages</title>
|
||||
|
||||
<para>
|
||||
The following list shows the required packages by function
|
||||
given a supported CentOS Linux distribution:
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis>Essentials:</emphasis>
|
||||
Packages needed to build an image for a headless
|
||||
system:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
|
||||
</literallayout>
|
||||
<note><title>Notes</title>
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
Extra Packages for Enterprise Linux
|
||||
(i.e. <filename>epel-release</filename>)
|
||||
is a collection of packages from Fedora
|
||||
built on RHEL/CentOS for easy installation
|
||||
of packages not included in enterprise
|
||||
Linux by default.
|
||||
You need to install these packages
|
||||
separately.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
The <filename>makecache</filename> command
|
||||
consumes additional Metadata from
|
||||
<filename>epel-release</filename>.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
</para></listitem>
|
||||
<listitem><para><emphasis>Graphical and Eclipse Plug-In Extras:</emphasis>
|
||||
Packages recommended if the host system has graphics
|
||||
support or if you are going to use the Eclipse
|
||||
IDE:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo yum install SDL-devel xterm
|
||||
</literallayout></para></listitem>
|
||||
<listitem><para><emphasis>Documentation:</emphasis>
|
||||
Packages needed if you are going to build out the
|
||||
Yocto Project documentation manuals:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo yum install make docbook-style-dsssl docbook-style-xsl \
|
||||
docbook-dtds docbook-utils fop libxslt dblatex xmlto
|
||||
</literallayout></para></listitem>
|
||||
<listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
|
||||
Packages needed if you are going to run
|
||||
<filename>oe-selftest</filename>:
|
||||
<literallayout class='monospaced'>
|
||||
$ sudo yum install GitPython
|
||||
</literallayout>
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id='required-git-tar-and-python-versions'>
|
||||
<title>Required Git, tar, and Python Versions</title>
|
||||
|
||||
<para>
|
||||
In order to use the build system, your host development system
|
||||
must meet the following version requirements for Git, tar, and
|
||||
Python:
|
||||
<itemizedlist>
|
||||
<listitem><para>Git 1.8.3.1 or greater</para></listitem>
|
||||
<listitem><para>tar 1.27 or greater</para></listitem>
|
||||
<listitem><para>Python 3.4.0 or greater</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If your host development system does not meet all these requirements,
|
||||
you can resolve this by installing a <filename>buildtools</filename>
|
||||
tarball that contains these tools.
|
||||
You can get the tarball one of two ways: download a pre-built
|
||||
tarball or use BitBake to build the tarball.
|
||||
</para>
|
||||
|
||||
<section id='downloading-a-pre-built-buildtools-tarball'>
|
||||
<title>Downloading a Pre-Built <filename>buildtools</filename> Tarball</title>
|
||||
|
||||
<para>
|
||||
Downloading and running a pre-built buildtools installer is
|
||||
the easiest of the two methods by which you can get these tools:
|
||||
<orderedlist>
|
||||
<listitem><para>
|
||||
Locate and download the <filename>*.sh</filename> at
|
||||
<ulink url='&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;/buildtools/'></ulink>.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Execute the installation script.
|
||||
Here is an example:
|
||||
<literallayout class='monospaced'>
|
||||
$ sh poky-glibc-x86_64-buildtools-tarball-x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
|
||||
</literallayout>
|
||||
During execution, a prompt appears that allows you to
|
||||
choose the installation directory.
|
||||
For example, you could choose the following:
|
||||
<literallayout class='monospaced'>
|
||||
/home/<replaceable>your-username</replaceable>/buildtools
|
||||
</literallayout>
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Source the tools environment setup script by using a
|
||||
command like the following:
|
||||
<literallayout class='monospaced'>
|
||||
$ source /home/<replaceable>your_username</replaceable>/buildtools/environment-setup-i586-poky-linux
|
||||
</literallayout>
|
||||
Of course, you need to supply your installation directory and be
|
||||
sure to use the right file (i.e. i585 or x86-64).
|
||||
</para>
|
||||
<para>
|
||||
After you have sourced the setup script,
|
||||
the tools are added to <filename>PATH</filename>
|
||||
and any other environment variables required to run the
|
||||
tools are initialized.
|
||||
The results are working versions versions of Git, tar,
|
||||
Python and <filename>chrpath</filename>.
|
||||
</para></listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='building-your-own-buildtools-tarball'>
|
||||
<title>Building Your Own <filename>buildtools</filename> Tarball</title>
|
||||
|
||||
<para>
|
||||
Building and running your own buildtools installer applies
|
||||
only when you have a build host that can already run BitBake.
|
||||
In this case, you use that machine to build the
|
||||
<filename>.sh</filename> file and then
|
||||
take steps to transfer and run it on a
|
||||
machine that does not meet the minimal Git, tar, and Python
|
||||
requirements.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Here are the steps to take to build and run your own
|
||||
buildtools installer:
|
||||
<orderedlist>
|
||||
<listitem><para>
|
||||
On the machine that is able to run BitBake,
|
||||
be sure you have set up your build environment with
|
||||
the setup script
|
||||
(<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>).
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Run the BitBake command to build the tarball:
|
||||
<literallayout class='monospaced'>
|
||||
$ bitbake buildtools-tarball
|
||||
</literallayout>
|
||||
<note>
|
||||
The
|
||||
<link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>
|
||||
variable in your <filename>local.conf</filename> file
|
||||
determines whether you build tools for a 32-bit
|
||||
or 64-bit system.
|
||||
</note>
|
||||
Once the build completes, you can find the
|
||||
<filename>.sh</filename> file that installs
|
||||
the tools in the <filename>tmp/deploy/sdk</filename>
|
||||
subdirectory of the
|
||||
<link linkend='build-directory'>Build Directory</link>.
|
||||
The installer file has the string "buildtools"
|
||||
in the name.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Transfer the <filename>.sh</filename> file from the
|
||||
build host to the machine that does not meet the
|
||||
Git, tar, or Python requirements.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
On the machine that does not meet the requirements,
|
||||
run the <filename>.sh</filename> file
|
||||
to install the tools.
|
||||
Here is an example:
|
||||
<literallayout class='monospaced'>
|
||||
$ sh poky-glibc-x86_64-buildtools-tarball-x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
|
||||
</literallayout>
|
||||
During execution, a prompt appears that allows you to
|
||||
choose the installation directory.
|
||||
For example, you could choose the following:
|
||||
<literallayout class='monospaced'>
|
||||
/home/<replaceable>your_username</replaceable>/buildtools
|
||||
</literallayout>
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Source the tools environment setup script by using a
|
||||
command like the following:
|
||||
<literallayout class='monospaced'>
|
||||
$ source /home/<replaceable>your_username</replaceable>/buildtools/environment-setup-i586-poky-linux
|
||||
</literallayout>
|
||||
Of course, you need to supply your installation directory and be
|
||||
sure to use the right file (i.e. i585 or x86-64).
|
||||
</para>
|
||||
<para>
|
||||
After you have sourced the setup script,
|
||||
the tools are added to <filename>PATH</filename>
|
||||
and any other environment variables required to run the
|
||||
tools are initialized.
|
||||
The results are working versions versions of Git, tar,
|
||||
Python and <filename>chrpath</filename>.
|
||||
</para></listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
</chapter>
|
||||
<!--
|
||||
vim: expandtab tw=80 ts=4
|
||||
-->
|
||||
@@ -220,8 +220,8 @@
|
||||
|
||||
<para>
|
||||
For more information on image creation, see the
|
||||
"<link linkend='image-generation-dev-environment'>Image Generation</link>"
|
||||
section.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#image-generation-dev-environment'>Image Generation</ulink>"
|
||||
section in the Yocto Project Concepts Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -246,8 +246,8 @@
|
||||
|
||||
<para>
|
||||
For more information on image creation, see the
|
||||
"<link linkend='image-generation-dev-environment'>Image Generation</link>"
|
||||
section.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#image-generation-dev-environment'>Image Generation</ulink>"
|
||||
section in the Yocto Project Concepts Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -268,7 +268,7 @@
|
||||
and
|
||||
<link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>),
|
||||
run under
|
||||
<link linkend='fakeroot-and-pseudo'>fakeroot</link>.
|
||||
<ulink url='&YOCTO_DOCS_CM_URL;#fakeroot-and-pseudo'>fakeroot</ulink>.
|
||||
<note>
|
||||
<title>Caution</title>
|
||||
|
||||
@@ -342,8 +342,8 @@
|
||||
For additional information, see the
|
||||
<link linkend='var-PKGDESTWORK'><filename>PKGDESTWORK</filename></link>
|
||||
variable and the
|
||||
"<link linkend='automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</link>"
|
||||
section.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
|
||||
section in the Yocto Project Concepts Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -367,8 +367,8 @@
|
||||
<filename>${</filename><link linkend='var-DEPLOY_DIR_DEB'><filename>DEPLOY_DIR_DEB</filename></link><filename>}</filename>
|
||||
directory in the package feeds area.
|
||||
For more information, see the
|
||||
"<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
|
||||
section.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
|
||||
section in the Yocto Project Concepts Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -381,8 +381,8 @@
|
||||
<filename>${</filename><link linkend='var-DEPLOY_DIR_IPK'><filename>DEPLOY_DIR_IPK</filename></link><filename>}</filename>
|
||||
directory in the package feeds area.
|
||||
For more information, see the
|
||||
"<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
|
||||
section.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
|
||||
section in the Yocto Project Concepts Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -395,8 +395,8 @@
|
||||
<filename>${</filename><link linkend='var-DEPLOY_DIR_RPM'><filename>DEPLOY_DIR_RPM</filename></link><filename>}</filename>
|
||||
directory in the package feeds area.
|
||||
For more information, see the
|
||||
"<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
|
||||
section.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
|
||||
section in the Yocto Project Concepts Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -408,8 +408,8 @@
|
||||
<filename>${</filename><link linkend='var-DEPLOY_DIR_TAR'><filename>DEPLOY_DIR_TAR</filename></link><filename>}</filename>
|
||||
directory in the package feeds area.
|
||||
For more information, see the
|
||||
"<link linkend='package-feeds-dev-environment'>Package Feeds</link>"
|
||||
section.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>"
|
||||
section Yocto Project Concepts Manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -431,8 +431,9 @@
|
||||
<para>
|
||||
Locates patch files and applies them to the source code.
|
||||
See the
|
||||
"<link linkend='patching-dev-environment'>Patching</link>"
|
||||
section for more information.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#patching-dev-environment'>Patching</ulink>"
|
||||
section in the Yocto Project Concepts Manual for more
|
||||
information.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -451,8 +452,9 @@
|
||||
<para>
|
||||
Creates the file and directory structure for an installable SDK.
|
||||
See the
|
||||
"<link linkend='sdk-generation-dev-environment'>SDK Generation</link>"
|
||||
section for more information.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#sdk-generation-dev-environment'>SDK Generation</ulink>"
|
||||
section in the Yocto Project Concepts Manual for more
|
||||
information.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -538,8 +540,9 @@
|
||||
<link linkend='var-S'><filename>S</filename></link> variable also
|
||||
plays a role in where unpacked source files ultimately reside.
|
||||
For more information on how source files are unpacked, see the
|
||||
"<link linkend='source-fetching-dev-environment'>Source Fetching</link>"
|
||||
section and the <filename>WORKDIR</filename> and
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#source-fetching-dev-environment'>Source Fetching</ulink>"
|
||||
section in the Yocto Project Concepts Manual and also
|
||||
see the <filename>WORKDIR</filename> and
|
||||
<filename>S</filename> variable descriptions.
|
||||
</para>
|
||||
</section>
|
||||
@@ -593,16 +596,6 @@
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='ref-tasks-checkuriall'>
|
||||
<title><filename>do_checkuriall</filename></title>
|
||||
|
||||
<para>
|
||||
Validates the
|
||||
<link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
|
||||
value for all recipes required to build a target.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='ref-tasks-clean'>
|
||||
<title><filename>do_clean</filename></title>
|
||||
|
||||
@@ -627,8 +620,8 @@
|
||||
|
||||
<para>
|
||||
Running this task does not remove the
|
||||
<link linkend='shared-state-cache'>sstate</link>) cache
|
||||
files.
|
||||
<ulink url='&YOCTO_DOCS_CM_URL;#shared-state-cache'>sstate</ulink>
|
||||
cache files.
|
||||
Consequently, if no changes have been made and the recipe is
|
||||
rebuilt after cleaning, output files are simply restored from the
|
||||
sstate cache.
|
||||
@@ -644,8 +637,9 @@
|
||||
|
||||
<para>
|
||||
Removes all output files, shared state
|
||||
(<link linkend='shared-state-cache'>sstate</link>) cache, and
|
||||
downloaded source files for a target (i.e. the contents of
|
||||
(<ulink url='&YOCTO_DOCS_CM_URL;#shared-state-cache'>sstate</ulink>)
|
||||
cache, and downloaded source files for a target (i.e. the contents
|
||||
of
|
||||
<link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>).
|
||||
Essentially, the <filename>do_cleanall</filename> task is
|
||||
identical to the
|
||||
@@ -674,13 +668,14 @@
|
||||
|
||||
<para>
|
||||
Removes all output files and shared state
|
||||
(<link linkend='shared-state-cache'>sstate</link>)
|
||||
(<ulink url='&YOCTO_DOCS_CM_URL;#shared-state-cache'>sstate</ulink>)
|
||||
cache for a target.
|
||||
Essentially, the <filename>do_cleansstate</filename> task is
|
||||
identical to the
|
||||
<link linkend='ref-tasks-clean'><filename>do_clean</filename></link>
|
||||
task with the added removal of shared state
|
||||
(<link linkend='shared-state-cache'>sstate</link>) cache.
|
||||
(<ulink url='&YOCTO_DOCS_CM_URL;#shared-state-cache'>sstate</ulink>)
|
||||
cache.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -736,14 +731,6 @@
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='ref-tasks-fetchall'>
|
||||
<title><filename>do_fetchall</filename></title>
|
||||
|
||||
<para>
|
||||
Fetches all remote sources required to build a target.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='ref-tasks-listtasks'>
|
||||
<title><filename>do_listtasks</filename></title>
|
||||
|
||||
@@ -757,7 +744,7 @@
|
||||
|
||||
<para>
|
||||
Creates or updates the index in the
|
||||
<link linkend='package-feeds-dev-environment'>Package Feeds</link>
|
||||
<ulink url='&YOCTO_DOCS_CM_URL;#package-feeds-dev-environment'>Package Feeds</ulink>
|
||||
area.
|
||||
<note>
|
||||
This task is not triggered with the
|
||||
@@ -809,8 +796,9 @@
|
||||
Creates the root filesystem (file and directory structure) for an
|
||||
image.
|
||||
See the
|
||||
"<link linkend='image-generation-dev-environment'>Image Generation</link>"
|
||||
section for more information on how the root filesystem is created.
|
||||
"<ulink url='&YOCTO_DOCS_CM_URL;#image-generation-dev-environment'>Image Generation</ulink>"
|
||||
section in the Yocto Project Concepts Manual for more
|
||||
information on how the root filesystem is created.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
|
||||