Gravando imagem customizada Linux na Toradex Colibri i.MX7

Linux na Toradex Colibri i.MX7
Este post faz parte da série Toradex Colibri i.MX7. Leia também os outros posts da série:

Introdução

 

No artigo Criando uma Distribuição Linux com Yocto Project para Toradex Colibri i.MX7 preparamos o ambiente Host e, utilizando Yocto Project, geramos uma Distribuição Linux customizada. Desta vez iremos abordar uma das formas de gravar a image gerada no SoM Toradex Colibri i.MX7.

 

 

Ferramentas

 

No site da Toradex são fornecidas algumas ferramentas para realizar esta gravação do SO:

 

Utilizaremos o procedimento descrito em Flashing Embedded Linux to iMX7 Modules, onde é utilizado um microSD ou pendrive formatado no sistema de arquivos FAT32 e, utilizando um script fornecido pela Toradex, update.sh, irá preparar e exibir os detalhes para a migração.

 

Oficialmente pode-se fazer download de uma das imagens disponibilizadas no site, descompactar e executar o script "update.sh" em uma das imagens a seguir:

 

 

Customizando a estrutura

 

Será utilizado o "update.sh" com algumas alterações, o restante da estrutura Bootloader, Kernel, Device-Tree e RootFS iremos trocar pelo gerado no artigo de customização da distribuição.

 

Através deste link pode-se fazer download da estrutura alterada e pronta para realizar a gravação, abaixo é o detalhe de como foi criada e alterada.

 

Acessando o diretório build-trdx-imx7/tmp-glibc/deploy/images/colibri-imx7 serão copiados os seguintes arquivos:

 

 

Será criado o diretório Colibri-iMX7_Angstrom_Console-Image e os respectivos diretórios colibri-imx7_bin e imx_flash.

 

 

Serão copiados para o diretório colibri-imx7_bin como utilizado pela Toradex e criados os devidos links simbólicos, utilizando informações da imagem Colibri iMX7 LXDE Image 2.8b3 27/06/2018 será copiado o conteúdo do imx_flash para ~/Colibri-iMX7_Angstrom_Console-Image/imx_flash e os arquivos flash_blk.img, flash_blk.scr, flash_eth.img, flash_eth.scr, fwd_blk.img, fwd_blk.scr, fwd_eth.img e fwd_eth.scr de colibri-imx7_bin para ~/Colibri-iMX7_Angstrom_Console-Image/colibri-imx7_bin, ficando com a nossa estrutura como a seguir:

 

 

Ao gerar a Distribuição Linux configuramos o IMAGE_FSTYPE para agregar o ubifs, e foi gerado o Angstrom-console-image-glibc-ipk-v2018.06-colibri-imx7.rootfs.ubifs, que renomeamos para ubifs.img conforme está no diretório Colibri-iMX7_Angstrom_Console-Image/colibri-imx7_bin/. Desta forma não será necessário o "update.sh" gerar o ubifs baseado no conteúdo do diretório rootfs que foi omitido. Foi esta alteração realizada no "update.sh", removemos a geração do ubifs.img.

 

O script "update.sh" apenas ignora a geração do ubifs.img e utiliza um pronto, e pode ser baixado aqui.

 

 

Gravando a image

 

Nesta etapa será preparado um cartão microSD que será formato em FAT32 e criada a estrutura para a correta atualização.

 

Ao conectar o microSD pode-se utilizar o comando "lsblk" para identificar o nome do dispositivo de block:

 

 

Pronto! Podemos identificar o dispositivo /dev/mmcblk0 como sendo nosso microSD, e a próxima etapa desmontar e formatar a unidade:

 

 

Removendo o microSD e conectando novamente temos a nova unidade:

 

 

Com a estrutura alterada e preparada, ou após download da imagem e descompactar, acesse o diretório e execute o script "update.sh" conforme o caminho de montagem do dispositivo microSD, neste caso /media/cbueno/TDX_UPGRADE.

 

 

Uma mensagem com "Successfully copied data to target folder" será exibida no terminal e na sequência as possibilidades e opções de atualização. Neste caso queremos atualizar todos componentes, então será conectado um cabo serial para acesso ao console do Bootloader U-boot e executar os comandos run setupdate e run update.

 

Conecte o microSD na Toradex BaseBoard suportada, energize a placa, interrompa o bootloader e execute os comandos run setupdate e na sequencia run update.

 

 

Foram omitidas algumas mensagens, mas após o "resetting…" é para ter ocorrido com sucesso o upgrade, e um boot completo será realizado.

 

 

Pronto! A partir deste momento para qualquer pacote, biblioteca, ferramenta adicionada no Yocto Project troque apenas o ubifs.img e repita o processo. Caso alterações no kernel ou device-tree aconteçam, delete o arquivo e substitua e certifique-se de refazer os link simbólicos corretamente.

 

Boa diversão e até a próxima!

 

 

Saiba mais

 

Acelerando o Build de Yocto com ajuda da Nuvem

Embarcando ScadaBR com Yocto na Toradex Colibri i.MX6

Yocto Project: Quick Start

 

 

Referências

 

https://developer.toradex.com/software/linux/linux-software#Binary_Images

https://developer.toradex.com/software/toradex-easy-installer#colibri-imx7

https://developer.toradex.com/knowledge-base/flashing-embedded-linux-to-imx7-modules

 

Outros artigos da série

<< Criando uma distribuição Linux com Yocto Project para Toradex Colibri i.MX7Conectando Toradex Colibri i.MX7 com WiFi >>
Este post faz da série Toradex Colibri i.MX7. Leia também os outros posts da série:
NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Cleiton Bueno
Proprietário da B2Open onde oferecemos consultoria, treinamentos e desenvolvimento em Sistemas Embarcados. Entusiasta a filosofia open-source, mais de 10 anos de experiências em Linux e FOSS. Em sistemas embarcado do firmware baremetal ao Linux Embedded, e há aproximadamente 8 anos desenvolvendo em (C, Python, Qt e muito Shell Script), além de profiling, hardening e tuning para targets com Linux Embarcado. Graduado em Engenharia da Computação pela UNICEP com ênfase em robótica e sistemas embarcados.

8
Deixe um comentário

avatar
 
3 Comment threads
5 Thread replies
4 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
Jonathan SperbAnderson Ferreira RodriguezCleiton BuenoRafael Dias Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Jonathan Sperb
Visitante
Jonathan Sperb

Olá. Os arquivos para download do artigo estão com link quebrado. Poderia verificar? Obrigado.

Anderson Ferreira Rodriguez
Membro
Anderson Ferreira Rodriguez

Olá
estou tendo dificuldades na hora de executar o comando "run setupdate". segue mensagens que apareceram no console:

Colibri iMX7 # run setupdate
reading colibri_imx7/flash_blk.img
** Unable to read file colibri_imx7/flash_blk.img **
** Bad device usb 0 **

me parece que o SD card não está sendo reconhecido pelo Uboot, porque esta mensagem apareceu preparando o SD card tanto com a imagem que gerei como com a imagem do link que foi disponibilizado no artigo.

Rafael Dias
Visitante
Rafael Dias

pergunta: tem que realizar o download da imagem Colibri-iMX7_LXDE-Image_2.8b3.111-20180627?

é o que dá a impressão aqui: "utilizando informações da imagem Colibri iMX7 LXDE Image 2.8b3 27/06/2018"

Rafael Dias
Visitante
Rafael Dias

eu estou seguindo os passos desde o artigo de como construir a imagem com o yocto e reproduzindo aqui no meu ambiente.

Estava imginando que o processo de build era auto-contido, não precisando baixar nada de fora.