Motivazione
Confermo quello che si dice su Reddit. Yocto è il tool più difficile che abbia mai cercato di imparare. È vastissimo e la documentazione è sparsa per tutto il web e tutto il globo. Ho seguito tutorial di svariate ore, consigli, la documentazione ufficiale, comprato libri appositi, ma anche dopo tutto questo, ancora non riuscivo bene a gestirlo. Lo odiavo. Come fanno molti arrivati a questo punto, ho provato a slegarmi dall’ambiente Yocto e compilare i sorgenti di quello che mi interessava “a mano”. Quindi elementi come Uboot, il kernel di Linux e molti altri. Più andavo avanti, piano piano, e più sentivo che stavo perdendo tempo. Qualche eseguibile sono riuscito ad ottenerlo e sono riuscito a flashare almeno il bootloader della scheda su cui stavo lavorando (devboard stm32mp257-dk). Ho creato manualmente le partizioni su una scheda sd, seguendo il reference manual di stm, e quindi tutto bene. Ero tentato di continuare su questa strada, ma sentivo che abbandonando Yocto stavo lasciando molte cose utili da parte, e soprattutto, avendo capito meglio il processo manuale, ho capito meglio anche il ruolo di Yocto. L’ho ripreso in mano e ci ho sbattuto la testa. Fast-forward di qualche mese, e ora mi sentivo a mio agio ed estremamente contento di averlo fatto. Ho sviluppato una mappa mentale abbastanza chiara di come muovermi tra le ricette e le configurazioni e un workflow abbastanza pulito per i miei gusti. Quindi ho deciso di creare questo sito per poter raccontare il mio modo di usare Yocto e creare una risorsa importante per tutta la community. Vedendo come si sta evolvendo il mercato coi suoi prodotti high-tech e il panorama geopolitico con la questione data-sovereignity, credo che la conoscenza di un tool come questo possa aiutare molte persone e aiutarle molto.
L’obiettivo è di fare una panoramica generale di Yocto, fornire degli esempi dalla A alla Z di come si usa prendendo in esame delle schede specifiche e realizzandone un layer di hardware-abstraction partendo da zero, poi creare un layer distro che possa essere generico e slegato dall’hardware, poi un layer di applicativi custom, usando vari ambienti e runtime, ed infine fornire delle appendici in cui trattare più in dettaglio alcuni argomenti specifici, ad esempio come lavorare con determinati bootloader, concetti generali del mondo embbeded, e molto altro.
Quest’ultima fase probabilmente vedrà molte bozze in corso.
Il sito sarà disponibile in varie lingue, ma la principale che utilizzerò per mandare avanti i lavori sarà l’italiano. Gli articoli verranno hostati in formato markdown su GitHub, per poter permettere a chiunque di suggerire delle modifiche.
Prevedo di fornire una sezione dedicata al training su Yocto, in cui aziende e privati possono contattarmi per organizzare delle sessioni di formazione in presenza e/o da remoto.
Bene, fatta questa premesse possiamo iniziare. Allacciati la cintura per favore, quella dei pantaloni, perchè qua ne vedremo delle belle.