main index Le mie pagine sulla Beagleboard cominciano qui e contengono gli altri appunti che ho preso mentre familiarizzavo con la Beagleboard.

Le ultime notizie sono invece contenute nel blog.


Compilazione di un kernel Linux adatto all'OMAP3530

Compilare un kernel Linux per la Beagleboard è necessario per crearsi un'installazione Linux completa e "su misura".

Sulla Beagleboard abbiamo a disposizione 256Mb NAND-flash, che possiamo pensare come una sorta di mini-hard-disk lasciando libero lo slot SD/SDIO/MMC.

Per avere un'idea di quanto siano "larghi" quei 256Mb, basta ricordare che alla gran parte dei router in circolazione (con Linux e tutto lo stack TCP-IP) bastano 8Mb (come alla Fonera o al DD-WRT) o 16Mb (come agli skypefonini con il loro ambientino grafico). Le distribuzioni Linux "da desktop" solitamente richiedono più spazio perché includono le pagine di documentazione, le librerie in versione "normale" e "development", dozzine di linguaggetti e librerie utilizzate da utility secondarie di cui talvolta non si sa neppure l'esistenza...

Al momento (aprile 2009) l'OMAP3530 non è ancora nella "mainline" del kernel Linux ufficiale. Le istruzioni per compilarsi il kernel sono sulla pagina di ELinux alla voce "Linux kernel". Occorre lavorare su un PC con Linux, su cui siano installati i tool per la cross-compilazione descritti qui e l'utility mkimage (che purtroppo fa parte del pacchetto u-boot: compilando u-boot, come da indicazioni su quella stessa pagina, troveremo l'eseguibile mkimage compilato nella directory tools dell'u-boot - dovremo porlo in una directory raggiungibile dalla PATH).

Durante la compilazione del kernel Linux è possibile che vengano fuori diversi "warning", come ad esempio:
<stdin>:1097:2: warning: #warning syscall fadvise64 not implemented
Questo non dovrebbe essere un problema, perché vuol dire che ancora non sono state fatte tutte le correzioni.

Una volta compilato, provo a metterlo sulla memory card (attenzione: la versione compilata si chiama uImage, ma sulla memory card per la Beagleboard va rinominata in uImage.bin): rinomino la uImage.bin originale e poi ci metto quella appena compilata.


Importante: le ferie sono appena finite e il kernel non parte (in effetti il kernel di prova era 2,6 mega compressi, questo è 1,8 - cioè manca qualcosa). Nei prossimi giorni riprenderò a smanettare...