Construindo utilizando Toradex Build Reference Image
Note
Arquivo localizado em: ~/treinamento/yp
Referência: Build a Reference Image With Yocto Project
Criando uma nova instância do Container para Toradex BSP
docker run -it --rm --privileged --cap-add=NET_ADMIN --name treinamento-build-tdx --hostname build-tdx -e DISPLAY=$DISPLAY -v ${HOME}/treinamento-b2open:/home/b2open/treinamento -v /tmp:/tmp -v /dev:/dev -v /var/run/dbus:/var/run/dbus -v /run/udev:/run/udev:ro -v /etc/localtime:/etc/localtime:ro b2open/treinamento-linux-embarcado /bin/bash
Baixando e Configurando via Google Repo
Utilizando o guia oficial da Toradex para preparar e configurar o ambiente para Yocto Project, resumidamente com os seguintes passos:
Branch scarthgap
mkdir -p ~/treinamento/yp/oe-core
cd ~/treinamento/yp/oe-core
repo init -u git://git.toradex.com/toradex-manifest.git -b refs/tags/7.5.0 -m tdxref/default.xml
repo sync
Warning
Caso aparecer a mensagem de erro: subprocess.CalledProcessError: Command '['gpg', '--homedir', '.', '--import']' returned non-zero exit status 2.
Apenas repita o comando repo init
Em seguida, executar . export para criar a estrutura do build:
Configurando o local.conf
Com isso temos todo ambiente pronto e um novo diretório chamado build/ com a configuração inicial, que vamos editar o conf/local.conf e adicionar/alterar as configurações a seguir:
Configurando MACHINE colibri-imx8x
NO final do conf/local.conf adicionar:
Clonar o repositório meta-b2open-treinamento para ~/treinamento/yp/oe-core/layers:
Branch scarthgap
cd ~/treinamento/yp/oe-core/layers
git clone -b scarthgap https://github.com/b2open/meta-b2open-treinamento.git
Adicionar a camada meta-b2open-treinamento com o comando abaixo:
cd ~/treinamento/yp/oe-core/build/
bitbake-layers add-layer ../layers/meta-b2open-treinamento/
Gerando a primeira imagem
Toda geração de imagem ou compilação de aplicação deve ser realizada com bitbake.
Antes de executar o comando bitbake é uma boa prática configurar limites no hardware de build para não ocorrer travamentos, Configurando Limites para Build com Bitbake
Receita de imagem referência fornecida pela Toradex:
O arquivo TEZI será gerado em build/deploy/images/
Gerando Toolchain
Utilizando a receita meta-toolchain para gerar um toolchain padrão:
Utilizando a tarefa populate_sdk para um toolchain baseado na receita da image:
Instalando o Toolchain
Utilizando a receita meta-toolchain ou a tarefa populate_sdk o instalador do toolchain é gerado no diretorio de BUILD em deploy/sdk, o instalador é um arquivo shell script .sh:
Saída esperada:
total 138116
-rw-r--r-- 1 b2open b2open 23424 Mar 28 22:10 tdx-xwayland-glibc-x86_64-meta-toolchain-cortexa35-colibri-imx8x-toolchain-6.8.1.host.manifest
-rwxr-xr-x 1 b2open b2open 140424208 Mar 28 22:12 tdx-xwayland-glibc-x86_64-meta-toolchain-cortexa35-colibri-imx8x-toolchain-6.8.1.sh
-rw-r--r-- 1 b2open b2open 1901 Mar 28 22:10 tdx-xwayland-glibc-x86_64-meta-toolchain-cortexa35-colibri-imx8x-toolchain-6.8.1.target.manifest
-rw-r--r-- 1 b2open b2open 969601 Mar 28 22:10 tdx-xwayland-glibc-x86_64-meta-toolchain-cortexa35-colibri-imx8x-toolchain-6.8.1.testdata.json
Instalando Toolchain/SDK no HOST:
./tdx-xwayland-glibc-x86_64-meta-toolchain-cortexa35-colibri-imx8x-toolchain-6.8.1.sh
Saída esperada:
TDX Wayland with XWayland SDK installer version 6.8.1
=====================================================
Enter target directory for SDK (default: /opt/tdx-xwayland/6.8.1): ~/treinamento/sdk/tdx-6.8.1
You are about to install the SDK to "/home/b2open/treinamento/sdk/tdx-6.8.1". Proceed [Y/n]? Y
Extracting SDK..........................................................done
Setting it up...done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
$ . /home/b2open/treinamento/sdk/tdx-6.8.1/environment-setup-cortexa35-tdx-linux
Para configurar o Container ou Terminal utilizar o toolchain gerado e configurar as variaveis ambiente é necessario executar o script instalado como abaixo:
Testando:
source /home/b2open/treinamento/sdk/tdx-6.8.1/environment-setup-cortexa35-tdx-linux
echo $CC
Resultado esperado: