Vai al contenuto

Embedded Linux

Cos’è lo Yocto Project?

Lo Yocto Project è un sistema di build open source per distribuzioni Linux su misura per dispositivi embedded e IoT, su qualsiasi architettura. È uno dei sistemi più usati al mondo per Linux embedded nell’industria.

Un sistema di build, non una distribuzione

Lo Yocto Project non è un Linux pronto da scaricare e scrivere su scheda. Compila un’immagine per hardware e prodotto specifici: kernel, bootloader, libreria C e pacchetti scelti. È un progetto collaborativo della Linux Foundation, sostenuto da numerose aziende, per Arm, x86, RISC-V, PowerPC, MIPS e altre architetture.

  • Immagine riproducibile dai sorgenti per la tua scheda, non generica
  • Ogni architettura: Arm, x86-64, RISC-V, PowerPC, MIPS
  • Open source, indipendente dai fornitori, ospitato dalla Linux Foundation
recipe + bitbake
# recipes-example/hello/hello_1.0.bb — a BitBake recipe
SUMMARY = "A tiny example program"
LICENSE = "MIT"
SRC_URI = "git://example.com/hello.git;branch=main"
inherit cmake
$ bitbake core-image-minimal
… parsing recipes, fetching sources, cross-compiling
✓ core-image-minimal-qemux86-64.rootfs.wic.bz2
Una ricetta descrive un componente; BitBake crea l’intera immagine dai layer combinati.

Come funziona: BitBake, ricette e layer

Yocto usa il sistema OpenEmbedded. BitBake legge ricette (.bb) che descrivono come scaricare, configurare, compilare e impacchettare software. Le ricette sono raggruppate in layer: BSP per la scheda, distribuzione per le politiche, layer proprio per l’applicazione. Poky è la distribuzione di riferimento.

  • Ricetta (.bb): sorgenti, licenza, compilazione e pacchettizzazione
  • Layer: insieme di ricette e configurazioni (meta-*)
  • BitBake: dipendenze, compilazione incrociata e cache sstate
  • Poky: distribuzione di riferimento e punto di partenza

Perché i team scelgono Yocto

Un prodotto con dieci o quindici anni di vita richiede pieno controllo su Linux: pacchetti, licenze, aggiornamenti e riproducibilità dai sorgenti. Yocto offre questo controllo ed è diventato uno standard di fatto per Linux embedded professionale.

  • Pieno controllo di dimensioni, pacchetti e configurazione del kernel
  • Build riproducibili anche anni dopo
  • Conformità delle licenze e distinta software (SBOM)
  • Manutenzione a lungo termine e aggiornamenti (tracciamento CVE)

Dove si usa Yocto

Indipendente dall’architettura e pronto per la produzione, Yocto è usato in quasi ogni settore nel mondo: dai router ai dispositivi medici ai sistemi di infotainment per auto.

  • Automotive e mobilità elettrica
  • Automazione industriale e gateway IoT
  • Reti e telecomunicazioni (router, 5G)
  • Dispositivi medici
  • Aerospazio e difesa
  • Elettronica di consumo e casa intelligente
  • Energia, misurazione e servizi pubblici
  • Robotica e droni

Il compromesso: potenza e complessità

Questo controllo ha un costo: curva di apprendimento ripida, build di ore ed errori BitBake criptici con log lunghi. La diagnosi richiede di conoscere log dei task, layer, configurazione e bitbake -e.

Dove interviene Yocman

Yocman è un agente IA e una cassetta degli attrezzi nel terminale per le tue build Yocto Project reali. Oltre alle correzioni, aiuta a comprendere, verificare e distribuire immagini. Ogni analisi legge file già prodotti da BitBake: i fatti vengono dalla build.

audit
Distribuire o no? Un report con punteggi su CVE, segreti, account, servizi, hardening del kernel, licenze e SBOM SPDX: evidenze di build per il CRA.
cve · secrets
CVE ancora non corrette nell’immagine distribuita e chiavi private o token nel rootfs: si segnala la posizione, mai il contenuto.
why · size
Perché questo pacchetto è nell’immagine? Cosa occupa spazio? size diff confronta due build pacchetto per pacchetto.
buildtime · sstate
Tempi di build, parallelismo effettivo e ricette ricompilate da zero ogni volta.
init · build · flash
Avvia un progetto kas per una scheda verificata, compila con avanzamento in tempo reale e scrivi la scheda con controllo obbligatorio.
fix · explain
Diagnostica un task fallito e ottieni una patch per il tuo layer o solo la diagnosi; applicazione dopo conferma.
  • Lavora sulla directory di build, non sull’albero dei sorgenti: --build-dir accetta anche output copiati o archiviati fuori dal checkout.
  • Un’installazione per tutte le build e gli alberi Yocto: cambia destinazione con --build-dir e confronta con size diff o cve diff.
  • La build resta locale; solo estratti mascherati raggiungono l’IA. Le patch vanno nei tuoi layer, mai upstream.

Domande frequenti

Lo Yocto Project è una distribuzione Linux?
No. È un sistema di build che produce una distribuzione Linux per il tuo hardware. Poky è la distribuzione di riferimento da adattare.
Qual è la differenza tra Yocto e OpenEmbedded?
OpenEmbedded fornisce il sistema di build e le ricette condivise. Lo Yocto Project è il progetto ombrello della Linux Foundation: usa OpenEmbedded, aggiunge Poky, release, strumenti e test e coordina l’ecosistema.
Cos’è BitBake?
BitBake esegue i task della build: legge ricette, risolve dipendenze, scarica, configura, compila e impacchetta componenti per la destinazione.
Cos’è un layer in Yocto?
Un layer (directory meta-*) raccoglie ricette e configurazione. Separa supporto scheda, politiche della distribuzione e applicazione, rendendoli riutilizzabili.
Yocto o Buildroot?
Entrambi compilano Linux embedded dai sorgenti. Buildroot è più semplice e veloce per immagini piccole e fisse; Yocto è più complesso ma più scalabile per prodotti longevi con gestione pacchetti e requisiti rigorosi su licenze e aggiornamenti.
Lo Yocto Project è gratuito?
Sì. È open source e gratuito. Yocto Project è un marchio della Linux Foundation.

Risorse ufficiali

Yocto Project® e il logo sono marchi registrati della Linux Foundation. Yocman è indipendente e non è affiliato, sponsorizzato o approvato dallo Yocto Project o dalla Linux Foundation.