Acest curs explorează Yocto Project și Buildroot, două instrumente populare pentru construirea unui sistem de operare embedded personalizat.
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.
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
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.
Construirea unei imagini pentru o placă embedded (ex: QEMU sau Raspberry Pi):
bitbake core-image-minimal
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
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.
Descărcarea și configurarea Buildroot:
git clone https://git.buildroot.net/buildroot
cd buildroot
make menuconfig
Compilarea sistemului minim:
make
- Yocto este mai complex, modular și scalabil, utilizat în produse comerciale.
- Buildroot este mai simplu și rapid, potrivit pentru proiecte cu cerințe minime.
Construiește o imagine Yocto pentru Raspberry Pi și personalizeaz-o pentru a include serverul SSH și un editor de text.