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
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.