@ -85,7 +85,7 @@
BBLAYERS,MACHINE,DISTRO,LAYERDEPENDS_ meta-python,DISTRO_ FEATURES_ remove,%
BBLAYERS,MACHINE,DISTRO,LAYERDEPENDS_ meta-python,DISTRO_ FEATURES_ remove,%
DISTRO_ FEATURES_ append,VIRTUAL-RUNTIME_ init_ manager,require,DISTRO_ NAME,%
DISTRO_ FEATURES_ append,VIRTUAL-RUNTIME_ init_ manager,require,DISTRO_ NAME,%
DISTRO_ VERSION,DISTRO_ FEATURES_ DEFAULT,DISTRO_ FEATURES_ LIBC,PACKAGE_ CLASSES,%
DISTRO_ VERSION,DISTRO_ FEATURES_ DEFAULT,DISTRO_ FEATURES_ LIBC,PACKAGE_ CLASSES,%
POKY_ DEFAULT_ DISTRO_ FEATURES,DISTRO_ FEATURES,IMAGE_ FEATURES,IMAGE_ INSTALL} ,
POKY_ DEFAULT_ DISTRO_ FEATURES,DISTRO_ FEATURES,IMAGE_ FEATURES,IMAGE_ INSTALL,BBPATH } ,
keywordstyle=\bfseries \color [RGB] { 152,251,152} ,
keywordstyle=\bfseries \color [RGB] { 152,251,152} ,
}
}
@ -426,7 +426,7 @@ Les cartes associés
\item Beaglebone
\item Beaglebone
\item intel-core2-32
\item intel-core2-32
\end { itemize}
\end { itemize}
\textcolor { gray} { \tiny { Les différents BSP sont répertoriés sur le site de yoctoproject : https://www.yoctoproject.org/downloads/bsps} }
\textcolor { gray} { \tiny { Les différents BSP sont répertoriés sur le site de yoctoproject : \url { https://www.yoctoproject.org/downloads/bsps} } }
\end { frame}
\end { frame}
\begin { frame} [fragile]
\begin { frame} [fragile]
@ -461,19 +461,20 @@ DISTRO = "distromeetup"
\end { center}
\end { center}
\end { frame}
\end { frame}
\subsection { installer l'invironnement yocto}
\subsection { installer l'environnement Yocto}
\begin { frame} { TP Raspberry Pi}
\begin { frame}
\begin { itemize}
Les étapes:
\item installer l'environnement
\begin { enumerate}
\item construire une distribution générique
\item Installer l'environnement
\item créer sa propre distribution
\item Construire une distribution générique
\item tester son image
\item Créer sa propre distribution
\end { itemize}
\item Tester son image
\end { enumerate}
\end { frame}
\end { frame}
\subsection { installer l'environnement y octo}
\subsection { installer l'environnement Y octo}
\begin { frame} [fragile]
\begin { frame} [fragile]
On se base sur la dernière version de yocto stable disponible, c'est à dire rocko qui est sortie en octobre 2017. (la prochaine est en avril 2018)
On se base sur la dernière version de Yocto stable disponible, c'est à dire \texttt { rocko} qui est sortie en octobre 2017. \textcolor { gray} { \tiny { (la prochaine est en avril 2018)} }
\begin { lstlisting} [style=shell]
\begin { lstlisting} [style=shell]
$ git clone git: / / git.yoctoproject.org / poky - b rocko
$ git clone git: / / git.yoctoproject.org / poky - b rocko
$ cd poky
$ cd poky
@ -482,7 +483,7 @@ $ git clone git://git.openembedded.org/meta-openembedded -b rocko
\end { lstlisting}
\end { lstlisting}
\end { frame}
\end { frame}
\subsection { c onstruire une distribution générique}
\subsection { C onstruire une distribution générique}
\begin { frame} [fragile]
\begin { frame} [fragile]
Il faut maintenant paramétré la \texttt { MACHINE} et la \texttt { DISTRO} que l'on souhaite.\newline
Il faut maintenant paramétré la \texttt { MACHINE} et la \texttt { DISTRO} que l'on souhaite.\newline
Il faut tout d'abord sourcer son environnement afin que bitbake ait connaissance des variable de paramétrage.\newline
Il faut tout d'abord sourcer son environnement afin que bitbake ait connaissance des variable de paramétrage.\newline
@ -496,12 +497,12 @@ Cela nous créer un dossier \texttt{build} dans lequel tout va se passer.
\end { frame}
\end { frame}
\begin { frame} [fragile]
\begin { frame} [fragile]
Il reste plus qu'à modifier \texttt { \$ POKY/build/conf/local.conf}
Il reste plus qu'à modifier \texttt { \$ POKY/build/conf/local.conf}
\begin { lstlisting} [style=bitbake]
\begin { lstlisting} [style=bitbake]
# Mes parametres
# Mes parametres
MACHINE = "raspberrypi3-64"
MACHINE = "raspberrypi3-64"
\end { lstlisting}
\end { lstlisting}
et \texttt { \$ POKY/build/conf/bblayers.conf}
et ajouter le layer manquant dans \texttt { \$ POKY/build/conf/bblayers.conf}
\begin { lstlisting} [style=bitbake]
\begin { lstlisting} [style=bitbake]
BBLAYERS += " \
BBLAYERS += " \
$ { TOPDIR } / .. / meta - raspberrypi \
$ { TOPDIR } / .. / meta - raspberrypi \
@ -545,6 +546,9 @@ LAYERDEPENDS_meta-python = "core openembedded-layer"
% https://www.yoctoproject.org/docs/2.5/mega-manual/mega-manual.html#enabling-wayland-in-an-image
% https://www.yoctoproject.org/docs/2.5/mega-manual/mega-manual.html#enabling-wayland-in-an-image
\begin { frame}
\begin { frame}
\begin { center}
\begin { center}
\textcolor { smileOrange} { \huge { Étape suivante:} }
\end { center}
\begin { center}
\textcolor { smileOrange} { \huge { Créer sa propre distribution} }
\textcolor { smileOrange} { \huge { Créer sa propre distribution} }
\end { center}
\end { center}
\end { frame}
\end { frame}
@ -578,7 +582,7 @@ BBLAYERS += " \
$ { TOPDIR } / .. / meta - raspberrypi \
$ { TOPDIR } / .. / meta - raspberrypi \
$ { TOPDIR } / .. / meta - openembedded / meta - python \
$ { TOPDIR } / .. / meta - openembedded / meta - python \
$ { TOPDIR } / .. / meta - openembedded / meta - oe \
$ { TOPDIR } / .. / meta - openembedded / meta - oe \
<@\textit { \texttt { \textcolor { red } { \$ \{ TOPDIR\} /../meta-meetup} } } @> \
<@\textit { \texttt { \textcolor { green!80!black } { \$ \{ TOPDIR\} /../meta-meetup} } } @> \
"
"
\end { lstlisting}
\end { lstlisting}
\end { frame}
\end { frame}
@ -653,7 +657,7 @@ IMAGE_INSTALL += " \
% *******************************
% *******************************
% **** OUTILS DEVTOOL ****
% **** OUTILS DEVTOOL ****
% *******************************
% *******************************
\section { Outils \texttt { devtool} }
\section { \texttt { devtool} }
\begin { frame} { \texttt { devtool} }
\begin { frame} { \texttt { devtool} }
\tableofcontents [currentsection,hideallsubsections]
\tableofcontents [currentsection,hideallsubsections]
@ -669,10 +673,11 @@ IMAGE_INSTALL += " \
\begin { frame}
\begin { frame}
\texttt { devtool} est un outils très utiles lorsque l'on souhaite créer, développer ou modifier un recette et ses sources.\newline
\texttt { devtool} est un outils très utiles lorsque l'on souhaite créer, développer ou modifier un recette et ses sources.\newline
\newline
Les commandes de base:
Les commandes de base:
\begin { description}
\begin { description}
\item [\texttt{devtool add}] Ajoute un nouveau software à construir
\item [\texttt{devtool add}] Ajoute un nouveau software à construire
\item [\texttt{devtool modify}] Génère un environnement pour modifier les sources d'une composant
\item [\texttt{devtool modify}] Génère un environnement pour modifier les sources d'un composant
\item [\texttt{devtool upgrade}] Met à jour une recette existante
\item [\texttt{devtool upgrade}] Met à jour une recette existante
\end { description}
\end { description}
\end { frame}
\end { frame}
@ -694,7 +699,7 @@ De même pour modifier une recette
\subsection { Le comportement de \texttt { devtool} }
\subsection { Le comportement de \texttt { devtool} }
\begin { frame} [fragile]
\begin { frame} [fragile]
Dès lors devtool créer une layers spéciale (\texttt { workspace} ) qui prend la priorité maximal sur les autres layers
Dès lors \texttt { devtool} créer une layer spéciale (\texttt { workspace} ) qui prend la priorité maximal sur les autres layers.
\begin { lstlisting} [style=shell,breaklines=false,xleftmargin=-18px,xrightmargin=-18px]
\begin { lstlisting} [style=shell,breaklines=false,xleftmargin=-18px,xrightmargin=-18px]
$ bitbake - layers show - layers
$ bitbake - layers show - layers
NOTE: Starting bitbake server...
NOTE: Starting bitbake server...
@ -762,7 +767,7 @@ Ajout du patch "Fix an uninitialized variable"
\end { frame}
\end { frame}
\begin { frame} [fragile]
\begin { frame} [fragile]
Les étapes
Les étapes:
\begin { enumerate}
\begin { enumerate}
\item Faire la modification
\item Faire la modification
\item Tester
\item Tester
@ -789,7 +794,7 @@ $ devtool reset weston
% *******************************
% *******************************
% **** OUTILS ANSIBLE ****
% **** OUTILS ANSIBLE ****
% *******************************
% *******************************
\section { Outils Ansible}
\section { Ansible}
\begin { frame} { Ansible}
\begin { frame} { Ansible}
\tableofcontents [currentsection,hideallsubsections]
\tableofcontents [currentsection,hideallsubsections]
@ -813,20 +818,20 @@ Il permet de :
\item gérer des configurations
\item gérer des configurations
\item lancer des tâches
\item lancer des tâches
\end { itemize}
\end { itemize}
Pour:
\begin { itemize}
\begin { itemize}
\item [] Sur
\item une machine donnée
\begin { itemize}
\item une machine
\item plusieurs machines
\item plusieurs machines
\end { itemize}
\end { itemize}
\end { itemize}
\end { frame}
\end { frame}
\begin { frame}
\begin { frame}
Un des avantage est qu'il utilise des fichiers de configuration au format YAML.
Un des avantage est qu'il utilise des fichiers de configuration au format YAML.\newline
\newline
Le format YAML est:
\begin { itemize}
\begin { itemize}
\item YAML est humainement lisibles
\item humainement lisibles
\item et plus facile à géré que certain autres formats
\item plus facile à géré que certain autres formats % comme XML
\end { itemize}
\end { itemize}
\end { frame}
\end { frame}
@ -853,8 +858,7 @@ $ ansible linuxembedded.exemple.fr -a "/bin/ping 8.8.8.8 -c1"
\end { frame}
\end { frame}
\begin { frame} [fragile]
\begin { frame} [fragile]
Ansible fournit un ensemble de modules\newline
Ansible fournit un ensemble de modules qui permettent de lancer des actions spécifiques à distance.
Qui permettent de lancer de action spécifique à distance
\begin { lstlisting} [style=shell]
\begin { lstlisting} [style=shell]
$ ansible all - m ping
$ ansible all - m ping
<address_ ip> | SUCCESS => {
<address_ ip> | SUCCESS => {
@ -890,10 +894,10 @@ $ ansible-playbook mon-fichier.yml
\begin { exampleblock} { Buildroot}
\begin { exampleblock} { Buildroot}
Le standard YAML a été créé en 2001 et est utilisé dans divers projets.
Le standard YAML a été créé en 2001 et est utilisé dans divers projets.
\end { exampleblock}
\end { exampleblock}
Un fichier YAML est formé de
Un fichier YAML est formé de:
\begin { itemize}
\begin { itemize}
\item variables
\item variables
\item dictionnaires (clé/valeur)
\item dictionnaires \textcolor { gray} { (clé/valeur)}
\item listes
\item listes
\end { itemize}
\end { itemize}
\end { frame}
\end { frame}
@ -930,7 +934,7 @@ Les dictionnaires sont définis sous la forme \textit{\texttt{clé: valeur}}.
\end { frame}
\end { frame}
\begin { frame} [fragile]{ Les listes}
\begin { frame} [fragile]{ Les listes}
Les listes sont définies avec \textit { \texttt { -␣} } , un tiret suivi d’ un espace.
Les listes sont définies avec \textit { \texttt { -\textcolor { gray} { ␣} } } , un tiret suivi d’ un espace.
\begin { lstlisting} [style=bitbake]
\begin { lstlisting} [style=bitbake]
# Une liste de fruits
# Une liste de fruits
- Pomme
- Pomme
@ -940,7 +944,7 @@ Les listes sont définies avec \textit{\texttt{-␣}}, un tiret suivi d’ un esp
\end { lstlisting}
\end { lstlisting}
\end { frame}
\end { frame}
\begin { frame} [fragile]{ Mélangeant des différent es syntaxes}
\begin { frame} [fragile]{ Mélanger l es syntaxes}
D’ autres choses plus complexes sont possibles en mélangeant les différentes syntaxes:
D’ autres choses plus complexes sont possibles en mélangeant les différentes syntaxes:
\begin { lstlisting} [style=bitbake]
\begin { lstlisting} [style=bitbake]
# Liste de plusieurs employes
# Liste de plusieurs employes
@ -1000,7 +1004,7 @@ D'autres sous-options:
\begin { frame} [fragile]{ Module particulier: hosts}
\begin { frame} [fragile]{ Module particulier: hosts}
Ce module est obligatoire.\newline
Ce module est obligatoire.\newline
i l fait référence aux hôtes dans \texttt { /etc/ansible/hosts} .
I l fait référence aux hôtes dans \texttt { /etc/ansible/hosts} .
\begin { lstlisting} [style=bitbake]
\begin { lstlisting} [style=bitbake]
- hosts: all
- hosts: all
remote_ user: root
remote_ user: root
@ -1025,11 +1029,11 @@ On utilise le \texttt{hosts} local
\begin { frame} [fragile]{ Répertoire de travail}
\begin { frame} [fragile]{ Répertoire de travail}
Pour centraliser les sources on utilise un variable \texttt { TOP\_ SRCDIR} .\newline
Pour centraliser les sources on utilise un variable \texttt { TOP\_ SRCDIR} .\newline
Elle sera passé en paramètre de la commande Ansible
Elle sera passé en paramètre de la commande Ansible.
\begin { lstlisting} [style=shell]
\begin { lstlisting} [style=shell]
--extra-vars "TOP_ SRCDIR=<path_ to_ top_ srcdir>"
--extra-vars "TOP_ SRCDIR=<path_ to_ top_ srcdir>"
\end { lstlisting}
\end { lstlisting}
Ce qui donnera
Ce qui donnera:
\begin { lstlisting} [style=bitbake]
\begin { lstlisting} [style=bitbake]
- name: "Get poky"
- name: "Get poky"
git:
git:
@ -1078,7 +1082,7 @@ Ce qui donnera
\end { frame}
\end { frame}
\begin { frame} [fragile]{ Lancer}
\begin { frame} [fragile]{ Lancer}
Pour lancer le projet
Pour lancer le projet:
\begin { lstlisting} [style=shell]
\begin { lstlisting} [style=shell]
$ ansible - playbook mon - fichier.yml - - extra - vars "TOP _ SRCDIR = / home / user / mon - projet / "
$ ansible - playbook mon - fichier.yml - - extra - vars "TOP _ SRCDIR = / home / user / mon - projet / "
\end { lstlisting}
\end { lstlisting}