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.