Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

Builds de contêiner para arm em x86

Desafio

Para um desenvolvimento mais rápido, queremos criar contêineres baseados em ARM para o AXCF2152 ou AXCF1152 em hardware x86. Para isso, é utilizada uma máquina virtual baseada em Debian ou Ubuntu, que roda em nosso PC normal.
Precisamos de um emulador

Para executar o código binário ARM em um sistema x86, precisamos de um emulador que nos permita fazer isso.

O Qemu é um dos poucos hipervisores que podem emular código binário ARM e compilá-lo para x86. Tudo o que precisamos fazer é instalar o Qemu em nosso sistema host e ativar o emulador. Instale o Qemu para Ubuntu ou Debian:
apt-get update && apt-get install -y --no-install-recommends qemu-user-static binfmt-support
update-binfmts --enable qemu-arm
update-binfmts --display qemu-arm
Exemplo de uso

Para usar o Qemu agora precisamos de uma extensão no container, ou seja, o binário /usr/bin/qemu-arm-static . Existem várias maneiras de usá-lo no recipiente.

Se a extensão for necessária apenas temporariamente e se existir localmente, ela pode simplesmente ser passada para o contêiner. Para fazer isso, o binário necessário é montado no contêiner.
docker run -it --restart always \
    -v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static \
    arm32v7/debian /bin/sh

Isso inicia o contêiner e salta para um shell no contêiner. Agora todas as alterações necessárias podem ser feitas. As alterações podem ser transferidas para as imagens posteriormente com um commit.
docker commit ...

Para uma compilação de contêiner, o binário deve estar presente no contêiner, existem duas maneiras de fazer isso.

1. O binário já está disponível, existem imagens pré-fabricadas no Dockerhub para este fim. https://hub.docker.com/u/multiarch/

2. O binário é adicionado às imagens do contêiner.Exemplo dockerfile:
From debian:armhf
COPY qemu-arm-static /usr/bin/qemu-arm-static
RUN .....

A linha COPY deve aparecer diretamente como segundo comando após FROM . A coisa toda funciona com todas as ferramentas de construção.
Um contêiner para todos

Se você instalar a extensão Qemu em um AXCF3152, poderá usar o mesmo contêiner para ambos os sistemas (x86 e ARM). Em relação ao desempenho, isso deve ser testado extensivamente.

Tecnologia industrial

  1. Numeração decimal versus binária
  2. Adição binária
  3. Números binários negativos
  4. Subtração binária
  5. Estouro binário
  6. Regras booleanas para simplificação
  7. Arm permite instruções personalizadas para núcleos Cortex-M
  8. PCBs para ambientes agressivos
  9. Fabricação de PCB para 5G
  10. Builds de vários estágios com contêiner