summaryrefslogtreecommitdiff
path: root/distribution/yocto-advanced/pres_yocto-advanced.tex
blob: ae229efb1b1c749b8ad7d25a27f5436f7a60ed24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
\input{configpres}

\title{YOCTO - Advanced}
\maketitle

\begin{frame}
\frametitle{define a distribution}
bla
\end{frame}

DISTRO\_FEATURES

\begin{frame}
\frametitle{SDK generation}
bla
\end{frame}

\begin{frame}
\frametitle{SDK usage}
bla
\end{frame}

\begin{frame}
\frametitle{creating a layer}
bla
\end{frame}

\begin{frame}
\frametitle{adding a kernel}
bla
\end{frame}

\begin{frame}
\frametitle{adding own applications}
already available? check http://layers.openembedded.org
bla
\end{frame}

use PR Service

\begin{frame}
\frametitle{create bootable images for x86}
t.b.d.

The boot-directdisk class creates an image that can be placed directly onto a
hard disk using dd and then booted. The image uses SYSLINUX.

The end result is a 512 boot sector populated with a Master Boot Record (MBR)
and partition table followed by an MSDOS FAT16 partition containing SYSLINUX
and a Linux kernel completed by the ext2 and ext3 root filesystems.
\end{frame}

\begin{frame}[fragile]
\frametitle {bootable image for embedded device}
t.b.d. use IMAGE\_FEATURES
% http://www.yoctoproject.org/docs/1.6/ref-manual/ref-manual.html#ref-features-image

% http://www.yoctoproject.org/docs/1.6/dev-manual/dev-manual.html#usingpoky-extend-customimage-imagefeatures
\end{frame}

\begin{frame}[fragile]
\frametitle{user and group configuration}
use this in an image recipe:
\begin{verbatim}
inherit extrausers
EXTRA_USERS_PARAMS = "\
    useradd -p '' tester; \
    groupadd developers; \
    userdel nobody; \
    groupdel -g video; \
    groupmod -g 1020 developers; \
    usermod -s /bin/sh tester; \
    "
\end{verbatim}
or the useradd class, for an example see useradd-example.bb
\end{frame}

\begin{frame}[fragile]
\frametitle{external sources}
e.g. for a heavily customized kernel
\begin{itemize}
\item kernel source directory on the development machine
\item inherit externalsrc class
\item set EXTERNALSRC variable to point to your external source code
\end{itemize}

this local.conf extension:
\begin{verbatim}
INHERIT += "externalsrc"
EXTERNALSRC_pn-myrecipe = "/some/path/to/your/source/tree"
\end{verbatim}
overrides the SOURCE\_URI of pn-myrecipe.bb
\end{frame}

\begin{frame}[fragile]
\frametitle{blacklist packages}
To blacklist a package, inherit the blacklist.bbclass globally and set
PNBLACKLIST for each recipe you wish to blacklist.


Specify the PN value as a variable flag (varflag) and provide a reason,
which is reported, if the package is requested to be built as the value:
\begin{verbatim}
INHERIT += "blacklist"
PNBLACKLIST[exoticware] = "Not supported by our organization."
\end{verbatim}
\end{frame}

\begin{frame}[fragile]
\frametitle{Providers}
\begin{verbatim}
--8<- -my-kernel\_3.16.bb --
PROVIDES += "virtual/kernel"
--8<------------------------
\end{verbatim}

PREFEREED\_PROVIDER\_virtual/kernel = "linux-yocto"
\end{frame}

\begin{frame}
\frametitle{Preferences}
\begin{itemize}
\item PREFERRED\_VERSION is used to specify a particular version
\item by default, files have a preference of "0"
\item setting DEFAULT\_PREFERENCE to "-1" makes the recipe unlikely to be used
	unless it is explicitly referenced.
\item setting DEFAULT\_PREFERENCE to "1" makes it likely the recipe is used
\item PREFERRED\_VERSION overrides any DEFAULT\_PREFERENCE setting
\end{itemize}
\end{frame}

\input{tailpres}