Curs 5 - Sisteme de Operare Embedded: Yocto Project și Buildroot

Acest curs explorează Yocto Project și Buildroot, două instrumente populare pentru construirea unui sistem de operare embedded personalizat.

1. Ce este Yocto Project?

Yocto Project este o suită de instrumente open-source care permite crearea unui sistem de operare personalizat pentru dispozitive embedded. Utilizează o abordare bazată pe rețete (recipes) pentru a compila kernel-ul, root filesystem-ul și aplicațiile.

2. Instalarea și Configurarea Yocto

Yocto necesită un mediu Linux pentru compilare. Instalarea dependențelor se face astfel:

sudo apt update && sudo apt install gawk wget git-core diffstat unzip texinfo gcc-multilib 
sudo apt install build-essential chrpath socat cpio python3 python3-pip python3-pexpect

Clonarea Yocto Project:

git clone git://git.yoctoproject.org/poky.git -b dunfell
cd poky
source oe-init-build-env

3. Structura unui Build Yocto

Yocto folosește trei componente principale:

- BitBake: Motorul care gestionează build-ul și dependențele.

- Layer-uri (Meta-layers): Definiții modulare pentru kernel, aplicații și drivere.

- Rețete (Recipes): Fișiere care descriu cum să fie construite pachetele.

4. Construirea unei Imagini Yocto

Construirea unei imagini pentru o placă embedded (ex: QEMU sau Raspberry Pi):

bitbake core-image-minimal

5. Personalizarea unui Build Yocto

Modificarea imaginii pentru a adăuga pachete personalizate:

echo 'IMAGE_INSTALL += "nano htop"' >> conf/local.conf

Adăugarea unui layer custom:

bitbake-layers create-layer meta-custom
bitbake-layers add-layer meta-custom

6. Ce este Buildroot?

Buildroot este o alternativă mai simplă la Yocto, utilizată pentru a genera imagini embedded minimaliste. Se concentrează pe rapiditate și simplitate, fiind ideal pentru sisteme embedded cu resurse limitate.

7. Instalarea și Utilizarea Buildroot

Descărcarea și configurarea Buildroot:

git clone https://git.buildroot.net/buildroot
cd buildroot
make menuconfig

8. Construirea unei Imagini cu Buildroot

Compilarea sistemului minim:

make

9. Diferențe între Yocto și Buildroot

- Yocto este mai complex, modular și scalabil, utilizat în produse comerciale.

- Buildroot este mai simplu și rapid, potrivit pentru proiecte cu cerințe minime.

10. Exercițiu Practic - Crearea unei Imagini Personalizate

Construiește o imagine Yocto pentru Raspberry Pi și personalizeaz-o pentru a include serverul SSH și un editor de text.

Resurse suplimentare: