Posts com Tag ‘SBC’

Caro(a) Colega,

o artigo BeagleBone Black + Yocto foi publicado originalmente no site Embarcados e é de autoria de Henrique Persico Rossi. É um ótimo artigo introdutório sobre esse assunto. Aproveite!

Abraço,

Henrique

consulte sempre um engenheiro eletrônico

==========================================

 

beaglebone_black

Muito tem sido comentado sobre plataformas de desenvolvimento suportadas por grandes comunidades, tal como a BeagleBone Black e a Raspberry Pi. Ambas têm atingido um grande público em específico, aquele ávido por conhecimento em Linux embarcado. Muito bem! Aqui começa um tutorial de como criar imagens personalizadas para a placa BeagleBone Black usando o Yocto Project.

 .

O que é a BeagleBone Black?

A BeagleBone Black é o mais novo membro da família BeagleBoard e suas características estão listadas no seu Wiki oficial. Algumas das grandes melhorias dessa placa com relação à sua versão anterior, “white”, são:

  • Processador: Sitara AM3359 de 1GHz;
  • Memória DRAM: DDR3L 400MHz de 512 MB;
  • Memória Flash: eMMC de 2GB e conector para microSD card.

E onde podemos gravar o nosso querido Linux na placa? Tanto a memória Flash eMMC quanto um microSD card podem receber todas as imagens necessárias para compor o sistema Linux, as quais, basicamente, são:

  • Bootloader;
  • Kernel Linux;
  • Sistema de arquivos.

Agora que é conhecido o que gravar na placa e os dispositivos de armazenamento oferecidos por ela, como é possível gerar tais imagens? Pode-se utilizar tanto imagens pré-compiladas disponibilizadas no site oficial, ou criar imagens customizadas a partir das técnicas apresentadas no artigo Embedded Linux Build Systems, de Diego Sueiro.

Neste artigo será utilizado um microSD card como dispositivo de armazenamento e o Yocto como build system.

 .

O que é Yocto?

O Projeto Yocto é um projeto open-source colaborativo que oferece templates, ferramentas e métodos para auxiliar na criação de sistemas baseados em Linux para sistemas embarcados, independente da arquitetura de hardware utilizada. O Yocto inclui em sua arquitetura o build system Poky, que, por sua vez, é derivado do build system OpenEmbedded.

O OpenEmbedded é composto de dois elementos principais, como mostrado abaixo: BitBake e Metadata. BitBake é uma ferramenta de build muito flexível mantida pelos projetos Yocto e OpenEmbedded, comandada pelas instruções presentes no Metadata e com a finalidade de gerar, entre outros, as imagens finais do sistema de arquivos, kernel, bootloader e SDKs.

yocto

.

Gerando as imagens

Como sistema host foi utilizado um PC com a distribuição Ubuntu 12.10 64-bits instalada. Algumas dependências devem ser resolvidas no sistema antes de prosseguir. Para isso, execute o seguinte comando:

Precisa-se, agora, realizar o download de todos esses itens. Neste artigo é utilizada a última versão estável do Yocto, na versão 1.5 e nomeada Dora. Para isso, siga os seguintes comandos:

.

 .

local.conf

A linha onde a variável MACHINE é configurada precisa ser comentada e substituída pelo seguinte conteúdo:

.

As linha que contêm as configurações das variáveis BBLAYERS e BBLAYERS_NON_REMOVABLE devem ser substituídas pelos seguintes valores:

  • core-image-minimal-beaglebone.tar.gz (rootfs – sistema de arquivos);
  • MLO (bootloader de primeiro estágio);
  • u-boot.img (bootloader de segundo estágio – U-Boot);
  • zImage (kernel) e;
  • zImage-am335x-boneblack.dtb (Device Tree Binary).

.

Gravação das imagens no microSD Card

Para a gravação dessas imagens no microSD card, o mesmo deve ser particionado e formatado de acordo o padrão aceito pelo placa. Para isso foi criado um script, que pode ser obtido com os seguintes comandos:

  • boot (FAT32);
  • rootfs (ext4).

.

Execute a “montagem” dessas duas partições no sistema de arquivos do sistema host. Caso esse faça uso da distribuição Ubuntu, basta remover e inserir novamente o dispositivo no seu conector. Dado que, por exemplo, os pontos de montagem criados sejam /media/boot e /media/rootfs, as imagens geradas anteriormente são copiadas da seguinte forma:

.

Para aprender mais

Bibliografia

Caro Colega,

na próxima semana o destaque é para o mini curso sobre Desenvolvimento de Software Embarcado com Phyton e Raspberry Pi. Confira também os demais treinamentos programados para a próxima semana.

Abraço,

Henrique

consulte sempre um engenheiro eletrônico

===============================================

DESTAQUES:

  • 18 a 22/08/2014 – Mini Curso: Embedded Software Development With Python & the Raspberry Pi
    • August 18 – Day 1: Introduction to Python – This session will introduce the Python programming language. It will provide an overview of where to get it, how to install it, and why an embedded engineer should learn Python. Since most embedded engineers are familiar with C, an in-depth comparison between language syntax will be covered to help attendees quickly leap into this powerful language.
    • August 19 – Day 2: Python Fundamentals – This session will present basic concepts on how to design embedded software using Python. Concepts such as lists, dictionaries, string, and file system manipulations are a few examples of what will be covered. How to develop object-oriented code and even how to import C code will also be presented. Example scripts will be provided so that attendees can follow along and take the language for a spin.
    • August 20 – Day 3: An Overview of the Raspberry Pi (& Single-Board Computers) : This session will dig into the details of single-board computers and how they are revolutionizing how we do things. The famous Raspberry Pi hardware will be discussed in addition to how to set up the hardware for experiments in future sessions. This will include a look at available operating systems, tools, and expansion boards that can be used to quickly get a prototype system up and running.
    • August 21 – Day 4: Controlling Raspberry Pi Peripherals With Python: Writing software can be fun, but when the software controls hardware and starts interfacing with the external world is when things really get going! The Raspberry Pi has a number of common interfaces that can be used to communicate with the external world and this session will cover how to use Python to access each of those interfaces. By the end of this session attendees will be ready to connect just about anything!
    • August 22 – Day 5: An Internet of Things Weather Station Example: Sensor networks and moving data through the internet and web are becoming absolutely critical with concepts such as the Internet of Things on the near horizon. Each of the previous sessions have covered critical building blocks to create a system using a single-board computer. This session pulls it all together by providing an example weather station that interfaces to sensors such as humidity and temperature. The data is streamed through the Internet and accessible via a website.

======================================================================================

  • 20/08/2014 – Protect Your Device Against Power-Related Damage During Test
  • 20/08/2014 – Meeting Today’s IoT Device Challenges with Virtualization and Consolidation
  • 21/08/2014 – How to Leverage Open Architectures for Existing Systems
  • 21/08/2014 – Finding Victims Trapped in Rubble with NASA Radar Device
  • 21/08/2014 – One Size Doesn’t Fit All: Which connectivity technology is right for your IoT design and how to easily get started

“Clicke” na figura abaixo para abrir a agenda detalhada:

 

Calendário Agosto 2014