Construindo uma Imagem Linux com Profilling para Wandboard Usando Yocto

On 23 de agosto de 2015 by Saul

Neste tutorial vamos mostrar como fazer para configurar uma imagem usando Yocto e com pacotes de profiling para BSP wandboard. Para execução dos procedimentos utilizamos um computador com Linux Ubuntu 14.04 instalado. Outras versões podem ser usadas, desde que tenham os pacotes necessários instalados. (Configuração da máquina de trabalho com diferentes sistemas operacionais pode ser consultada em http://www2.decom.ufop.br/imobilis/?p=3783). A placa que usamos nesse tutorial foi uma wandboard quad (http://www.wandboard.org/).

O primeiro passo é baixar o código fonte do repositório da freescale. A versão mais recente no momento e usada nesse tutorial foi a fido. Algumas versões mais antigas não funcionaram bem. Recomendamos que execute com fido ou superior.

[sourcecode]

mkdir $HOME/bin

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

chmod a+x $HOME/bin/repo

echo "PATH=$PATH:$HOME/bin" >> $HOME/.bashrc

source .bashrc

mkdir -p $HOME/src/fsl-community-bsp

cd $HOME/src/fsl-community-bsp

repo init -u https://github.com/Freescale/fsl-community-bsp-platform \
-b fido

repo sync

[/sourcecode]

Os diretórios usados podem ser modificados conforme interesse do usuário. Se você não tem muita experiência com Yocto recomendo que não altere as configurações.

Configure a variável de ambiente de acordo com o BSP que está usando. No caso, como estamos usando Wandboard quad executamos o seguinte comando:

[sourcecode]

export MACHINE = wandboard-quad

[/sourcecode]

Agora vamos configurar o ambiente de construção da imagem. Você terá que aceitar os termos de compromisso apresentados.

[sourcecode]

. ./setup-environment build

[/sourcecode]

Uma vez criado o diretório build, agora vamos custormizar os linux com pacotes necessários. Nessa versão optamos por inserir alguns pacotes adicionais para compilação e execução de programas em C/C++. Edite seu arquivo local.conf presente em build/conf da seguinte forma:

[sourcecode]

MACHINE ??= ‘wandboard-quad’
DISTRO ?= ‘poky’
PACKAGE_CLASSES ?= "package_deb"
EXTRA_IMAGE_FEATURES = "debug-tweaks dev-pkgs tools-profile package-management"
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS = "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K"
PACKAGECONFIG_append_pn-qemu-native = " sdl"
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
ASSUME_PROVIDED += "libsdl-native"
CONF_VERSION = "1"

BB_NUMBER_THREADS = ‘4’
PARALLEL_MAKE = ‘-j 4’

CORE_IMAGE_EXTRA_INSTALL += "packagegroup-core-buildessential \
packagegroup-core-full-cmdline \
packagegroup-core-boot \
kernel-modules \
"
INHIBIT_PACKAGE_STRIP = "1"
LICENSE_FLAGS_WHITELIST = "commercial"
DL_DIR ?= "${BSPDIR}/downloads/"

ACCEPT_FSL_EULA = ""

[/sourcecode]

Por fim, execute o bitbake para construção da imagem. (Neste ponto alguns tutoriais recomendam que . ./setup-environment seja executado novamente. Realizei esse passo sem isso, por via das dúvidas não executar novamente 🙂 )

[sourcecode]

time bitbake core-image-full-cmdline

[/sourcecode]

Esse procedimento vai demorar. Aproveite para ler sobre o perf no link https://wiki.yoctoproject.org/wiki/Tracing_and_Profiling

Terminada a execução, agora é hora de copiar a imagem gerada no cartão. Insira um cartão com adaptador na unidade USB do computador. Em geral o device usado para montagem do cartão é /dev/sdb, mas isso pode variar de computador para computador. Nos comandos a seguir troque o “X” pela letra correta.

Antes de executar a cópia desmonte o cartão. (Em alguns casos pode ser necessário apagar as unidades existentes para o funcionamento correto. Para apagar as unidades utilize um dos programas fdisk ou gparted).

[sourcecode]

cd $HOME/src/fsl-community-bsp/build/tmp/deploy/images/wandboard-quad

sudo umount /dev/sdX

sudo dd if=core-image-full-cmdline-wandboard-quad.sdcard of=/dev/sdX bs=1M

[/sourcecode]

Feito isso basta inserir o sdcard na board e realizar o acesso ssh. O usuário é root e a senha em branco.

[sourcecode]

ssh root@ipdaboard

[/sourcecode]

Para testar o perf execute a seguinte linha de código no dispositivo remoto:

[sourcecode]

perf stat wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2

[/sourcecode]

Perf

Se o resultado for semelhante a esse, parabéns! Agora você pode explorar o potencial dessa ferramenta.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *