Para criar um kernel customizado da distribuição Angstrom, é preciso ter o ambiente OpenEmbedded instalado numa máquina de desenvolvimento. Para customizar um kernel sem corromper as recipes originais é necessário criar, na raiz do OE ($OVEROTOP) o diretório user.collection. Ele é uma cópia do diretório org.openembbeded.dev. O bitbake procura primeiro em user.collection e se não achar procura em org.openembbeded.dev.
$ cd $OVEROTOP $ cp -r org.openembbed.dev/recipes/linux user.collection/recipes
Também deve-se copiar org.openembbed.dev/conf/machine/overo.conf.
$ mkdir user.collection/conf/ $ mkdir user.collection/conf/machine $ cp org.openembedded/conf/machine/overo.conf user.collection/conf/machine
${OVEROTOP}/user.collection/recipes/linux/linux-omap3/overo/defconfig
As configurações de recursos do kernel são feitas nesse arquivo. Ocasionalmente deve-se alterar alguma coisa em:
${OVEROTOP}/tmp/work/overo-angstrom-linux-gnueabi/linux-omap3-(versao utilizada)/git/arch/arm/mach-omap2/board-overo.c
Note que as alterações nesse arquivo são válidas apenas para aquela imagem em específico, e além disso elas só serão aplicadas se feitas por meio de patches (ver documentação sobre spidev). Para que estas definições sejam definitivas basta alterar ao invés desse o seguinte arquivo:
${OVEROTOP}/tmp/sysroots/overo-angstrom-linux-gnueabi/kernel/arch/arm/mach-omap2/board-overo.c
No aquivo ${OVEROTOP}/org.openembbed.dev/conf/machine/overo.conf pode-se alterar o PREFERRED_PROVIDER_virtual/kernel, que define qual branch de kernel será compilado, por exemplo 'linux-omap' ou 'linux-omap-pm'.