Qual distribuição é melhor usar no seu sistema embarcado?

Qual distribuição é melhor usar para sistemas embarcados. Esta questão é relevante hoje.

Existem três abordagens relevantes para resolver esse problema:

  1. Use uma distribuição pronta para o seu computador de placa única (Armbian, Openwrt, etc.)
  2. Crie e configure sua distribuição usando sistemas de criação (Buildroot / Yocto, etc.).
  3. Use seu carregador de inicialização do pacote (u-boot) + kernel (kernel) + rootfs (busybox).

Se alguém mais souber, escreva nos comentários.
ATUALIZAÇÃO
Um projeto OpenWRT é um sistema de construção (não é uma construção) e um projeto que fornece imagens montadas prontas para o seu quadro de destino.


Distribuições prontas


Acredito que usar uma distribuição pronta seja a maneira mais fácil. Você pode fazer o download da imagem final ou criar sua própria. A montagem da sua imagem do Braçadeira nem sempre é flexível, porque você não pode selecionar nenhuma versão do kernel do Linux, mas usa apenas as fornecidas.

A principal vantagem das distribuições prontas também deve ser respondida - sua estabilidade.
Para iniciantes, eu recomendaria essas distribuições.


O Armbian é uma distribuição Linux popular disponível para uma ampla variedade de dispositivos ARM: Orange Pi, Banana Pi, Odroid, etc ... É baseada no Ubuntu e / ou Debian.
www.armbian.com



O OpenWrt é um sistema operacional incorporado baseado no kernel do Linux e projetado principalmente para roteadores domésticos. Os principais componentes incluem o kernel do Linux, util-linux, uClibc ou musl e BusyBox. O tamanho de todos os componentes é otimizado devido ao fato de que a maioria dos roteadores domésticos possui uma quantidade muito limitada de memória.

Eu adicionaria por conta própria, adequado para placas com wi-fi a bordo (por exemplo, Orange Pi Zero).
openwrt.org

Sistemas de montagem


A principal vantagem dos sistemas de montagem é que você pode criar Linux mínimo e flexível para sistemas embarcados.

Buildroot



Buildroot é um sistema de construção de distribuição para sistemas embarcados. Ele suporta várias placas e o resultado de seu trabalho é o gerenciador de inicialização, o kernel e a imagem montados.
sistema de arquivos.

O que permite criar buildroot para o seu sistema:

  • imagem do sistema;
  • Este sistema permite que você selecione a versão do kernel - qualquer.
  • Você pode adicionar qualquer correção e instalar qualquer programa.
  • configuração flexível de utilitários (por exemplo, busyBox, bash etc.)

Observe que todas as fontes adicionais são extraídas da rede.

Distinguindo essa montagem, por exemplo, da montagem Armbian:

  • a distribuição não é construída com base no (Debian ou Ubuntu), mas em um Linux flexível personalizado.
  • tamanho mínimo de montagem.
  • seleção de qualquer versão do kernel.

buildroot.org

3. Usando seu pacote configurável:

Para isso, precisamos:

  • Compilador cruzado (por exemplo, Linaro);
  • Carregador de inicialização (por exemplo, inicialização em U);
  • Kernel;
  • RootFs (por exemplo, Busybox).

Então vamos lá.
Para coletarmos localmente em nossa máquina, precisamos de um compilador cruzado, por exemplo, linaro. O compilador cruzado ajudará na arquitetura x86 a montar nossa distribuição para a plataforma ARM de destino.
www.linaro.org

Em seguida, você precisa criar um gerenciador de inicialização.

Carregador de inicialização (U-Boot) - O carregador de inicialização mais popular para ARM, é o U-boot. A principal tarefa do gerenciador de inicialização é inicializar o kernel do Linux. Você também pode usar, por exemplo, barebox ou outro.
www.denx.de/wiki/U-Boot


Próximo. Precisamos construir o kernel, na saída precisamos obter a imagem do kernel e a árvore de dispositivos para nossa plataforma de destino.
www.kernel.org

RootFs é o sistema de arquivos raiz que o Kernel montará após a inicialização. Eu recomendo usar o Busybox.


busybox.net

Conclusão


Não estou dizendo que existem abordagens ruins ou boas. Cada um tem suas próprias vantagens e desvantagens. Depende da sua tarefa e de qual resultado você precisa obter.

Source: https://habr.com/ru/post/pt465435/


All Articles