Raspberry pi + Qt5 + Yocto – parte 2

rpi-yocto-qt5

Na primeira parte da série vimos como configurar o ambiente e gerar uma distribuição Linux Embarcado com Qt5 para Raspberry pi usando aceleração gráfica por hardware com o Yocto Project.

 

Agora vamos aprender como gerar e configurar as ferramentas necessárias para o desenvolvimento de aplicações Qt que serão executadas no nosso target, a Raspberry Pi. Basicamente precisaremos de uma toolchain contendo os utilitários e bibliotecas para podermos "cross-compilar" as aplicações desenvolvidas através da IDE Qt Creator.

 

Aprenda mais sobre Linux Embarcado e Yocto Project com os vídeos das palestras do "Seminário Linux Embarcado 2015"

 

 

 

Gerando a Toolchain para Qt5

 

É importante que você tenha realizado todos passos descritos no primeiro artigo da série.

 

Para gerarmos a toolchain devemos carregar as variáveis de ambiente do Yocto e instruí-lo a construir a toolchain para o Qt5.

 

O instalador da toolchain gerado está disponível em: ~/yocto/build-daisy/tmp/deploy/sdk/ e serve tanto para construção de aplicações Qt5 quanto para aplicações Linux que não utilizam o Qt.

 

 

Instalando a Toolchain

 

Vamos executar o script com a opção de instalação no caminho padrão sugerido.

 

Após a instalação nossa toolchain estará disponível em: /opt/poky/1.6.2/ .

 

 

Instalando o Qt Creator

 

Vamos baixar a versão 3.2.2 e instala-lá utilizando as opções padrão sugeridas:

 

 

Configurando o Qt Creator

 

Vamos realizar as configurações necessárias para que o Qt Creator utilize a toolchain que geramos. Feche o programa caso ele esteja aberto.

 

A primeira coisa a ser feita é adicionar as variáveis de ambiente da toolchain no script de inicialização do Qt Creator. Para isso adicione o conteúdo abaixo na primeira linha do arquivo ~/qtcreator-3.2.2/bin/qtcreator.sh.

 

O resultado final do arquivo ~/qtcreator-3.2.2/bin/qtcreator.sh. deve ser:

 

Agora vamos executar o Qt Creator. É importante dizer que SEMPRE que formos abrir o programa utilizaremos o comando abaixo, caso contrário o Qt Creator não funcionará corretamente com a toolchain gerada:

 

A figura abaixo mostra a tela inicial do aplicativo:

 

Raspberry Pi Qt5: QtCreator
Figura 1: Tela do Qt

 

Agora vamos criar um Kit contendo as informações do nosso target (Raspberry pi) e da nossa toolchain. Siga os passos descritos abaixo:

 

Ao final desses procedimentos devemos ter a tela de configuração das opções "Build & Run" semelhante a essa:

 

Raspberry Pi Qt5: Adicionando kit no QtCreator
Figura 2: Build and Run

 

 

Compilando uma aplicação

 

Como não poderia deixar de ser, vamos criar uma aplicação "Hello World". Execute os seguintes comandos no shell:

 

Teremos um arquivo de projeto ~/qt5-helloworld/helloworld.pro:

 

E um código fonte da aplicação ~/qt5-helloworld/hello.cpp:

 

Vamos importar nosso projeto para dentro do Qt Creator. Para isso, vá em "File" -> "Open File or Project", e selecione o arquivo ~/qt5-helloworld/helloworld.pro.

 

Na próxima tela aparecerá qual Kit deverá ser utilizado, se você marcou o Kit Rpi como default ("Make Default") na seção anterior ele já estará selecionado. Para finalizar clique em "Configure Project".

 

 Agora vamos construir a aplicação em "Build" -> "Build Project helloworld"

 

 

Testando a aplicação 

 

Copie o binário gerado pelo Qt Creator em ~/qt5-helloworld/build-qt5-helloworld-Rpi-Debug/hello para a raíz de um pendrive.

 

Insira o pendrive na Raspberry Pi, plugue um cabo conversor USB Serial e abra uma conexão serial.

 

Insira o microSD card gerado na primeira parte dessa série, conecte a Rpi a uma TV através de uma cabo HDMI, conecte o pendrive com o binário gerado e energize a placa, logue como root e execute os seguintes comandos:

 

Note que rodamos a aplicação com os parâmetros "-platform eglfs", isso indica ao Qt que ele deve rodar utilizando o plugin de plataforma EGLFS.

 

A TV ficará com a seguinte imagem:

 

Raspberry Pi Qt5: Hello Qt!
Figura 3 - Saida de video - Hello Qt!

 

Notem que está escrito no canto esquerdo da tela a frase: "Hello Qt!"

 

 

Conclusão

 

Com as partes 1 e 2 desse tutorial é possível gerar uma distribuição Linux embarcado customizado usando o Qt5 com aceleração gráfica por hardware para a Raspberry pi e desenvolver aplicações sem muitas complicações.

 

Se você é novato no mundo de programação Qt, sugiro que dê uma lida no material Qt for beginners .

 

 

Para saber mais

 

Embedded Linux Build Systems

Cozinhando com o Yocto Project

Desvendando Yocto Project – Primeiros passos

BeagleBone Black + Yocto

Beaglebone Black + Yocto Daisy (Versão 1.6)

Lançada Nova Versão 1.7 (dizzy) do Yocto Project

Raspberrypi + Yocto

Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 1

Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 2

Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 3

Beaglebone Black + Qt Embedded + Yocto – parte 1

Beaglebone Black + Qt Embedded + Yocto – parte 2

Beaglebone Black + Qt5 + Yocto - parte 1

Beaglebone Black + Qt5 + Yocto - parte 2

Raspberry pi + Qt5 + Yocto - parte 1

Raspberry pi + Qt5 + Yocto - parte 2