Yocto Project
Este Makefile, por exemplo, foi utilizado para compilar um módulo do Kernel para o Overo, utilizando um PC de desenvolvimento (x86 ou x86_64). Supoe-se que tenha o Yocto Project instalado. Modifique o Makefile de acordo com as suas necessidades.
OpenEmbedded
OpenEmbedded não é mais suportado. No lugar dele o Yocto Project deve ser usado. Como instalar o Yocto Project.
É possível compilar um programa para o Overo utilizando uma máquina x86/x86_64, através de compilação cruzada. Para isso você deve ter o ambiente OpenEmbedded instalado. A forma mais direta é utilizando o compilador para ARM que se encontra na árvore do OpenEmbedded. No caso de uma máquina de 64 bits, o diretório é:
$OVEROTOP/tmp/sysroots/x86_64-linux/usr/armv7a/bin/arm-angstrom-linux-gnueabi-gcc-4.3.3
Alternativamente pode-se criar um arquivo com o conteúdo
if [[ -z "${KERNEL_CROSS_BUILD_ENVIRONMENT_SOURCED}" ]]; then MACHINE=overo # normally OETMP will be ${OVEROTOP}/tmp, but really it is whatever TMPDIR # in ${OVEROTOP}/build/conf/site.conf points to. OETMP=${OVEROTOP}/tmp # OETMP=/oe5 SYSROOTSDIR=${OETMP}/sysroots STAGEDIR=${SYSROOTSDIR}/`uname -m`-linux/usr export KERNELDIR=${SYSROOTSDIR}/${MACHINE}-angstrom-linux-gnueabi/kernel PATH=${PATH}:${STAGEDIR}/bin:${STAGEDIR}/armv7a/bin unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE export ARCH="arm" export CROSS_COMPILE="arm-angstrom-linux-gnueabi-" export CC="arm-angstrom-linux-gnueabi-gcc" export LD="arm-angstrom-linux-gnueabi-ld" export STRIP="arm-angstrom-linux-gnueabi-strip" export KERNEL_CROSS_BUILD_ENVIRONMENT_SOURCED="true" echo "Altered environment for cross building a kernel module with OE tools." else echo "Cross build environment already configured." fi
Salve-o, por exemplo com o nome overo-source-me.txt. Sempre que quiser mudar as configurações de compilação normal para compilação cruzada digite:
source overo-source-me.txt
Essa configuração vai ficar ativa até o fim da sessão.