Construindo distribuição GNU / Linux para Raspberry Pi usando o projeto Yocto: 6 etapas
Construindo distribuição GNU / Linux para Raspberry Pi usando o projeto Yocto: 6 etapas

Vídeo: Construindo distribuição GNU / Linux para Raspberry Pi usando o projeto Yocto: 6 etapas

Vídeo: Construindo distribuição GNU / Linux para Raspberry Pi usando o projeto Yocto: 6 etapas
Vídeo: Fisl 15 - Construindo a sua própria distribuição Linux para RaspBerry PI e BeableBone 2025, Janeiro
Anonim
Image
Image

O Raspberry Pi é provavelmente o computador de placa única de baixo custo mais popular do mercado. É frequentemente usado para Internet das Coisas e outros projetos embarcados. Várias distribuições GNU / Linux têm excelente suporte para Raspberry Pi e existe até o Microsoft Windows para Raspberry Pi 2.

Se você deseja criar Internet das Coisas (IoT) baseada no Raspberry Pi e se deseja fazê-lo profissionalmente, é recomendável construir uma distribuição Linux embarcada que se adapte às necessidades exatas do seu dispositivo. Para inicializar uma distribuição Linux no Raspberry Pi, você precisa de um bootloader, kernel Linux e vários aplicativos no espaço do usuário.

Uma das maneiras mais populares de construir uma distribuição Linux embarcada customizada é usando o Projeto Yocto. Yocto é um projeto colaborativo da fundação Linux que usa a estrutura Openembedded e o mecanismo de compilação bitbake. Poky é o sistema de referência do Projeto Yocto com um ciclo de lançamento de seis meses. Ele fornece metadados divididos em camadas e receitas para a construção de vários pacotes e imagens.

Este tutorial fornece as etapas exatas para construir uma imagem com distribuição GNU / Linux mínima para Raspberry Pi, que inclui systemd e connman.

Etapa 1: se preparando

Obtenha o código-fonte
Obtenha o código-fonte

Para este tutorial, você precisará de:

  • Computador pessoal com distribuição GNU / Linux, por exemplo Ubuntu, no qual você construirá a distribuição GNU / Linux para Raspberry Pi.
  • Raspberry Pi
  • cartão microSD ou SD dependendo da versão do seu Raspberry Pi
  • Cabo HDMI e um monitor
  • Teclado USB
  • Fonte de energia

Instale os pacotes necessários em seu computador pessoal dependendo de sua distribuição GNU / Linux: https://www.yoctoproject.org/docs/2.0/yocto-projec…Notes (por Yunus EmreI):

  • Você não pode preparar uma imagem se o seu diretório pessoal estiver criptografado porque não permite nomes de arquivos longos
  • A construção inicial demora muito se você tiver uma conexão lenta
  • Ao enviar a imagem para o cartão SD, certifique-se de selecionar o / dev / sdX principal, não o / dev / sdXp1 ou outra variação da parte interna

Etapa 2: Obtenha o código-fonte

Execute as ações abaixo em seu computador pessoal:

  • Clone Poky usando Git (neste caso, estou baixando a versão Jethro (2.0) do Projeto Yocto):

    git clone -b jethro git: //git.yoctoproject.org/poky

  • Vá para o diretório poky:

    cd poky

  • Clone meta-raspberrypi:

    git clone -b jethro git: //git.yoctoproject.org/meta-raspberrypi

Etapa 3: configurar

Configurar
Configurar
  • Inicialize o ambiente de construção

    fonte oe-init-build-env

  • Adicione meta-raspberrypi ao BBLAYERS em conf / bblayers.conf, depois disso deve ser semelhante (mas no seu caso com caminhos diferentes) a:

    BBLAYERS? =

    / home / leon / poky / meta / / home / leon / poky / meta-yocto / / home / leon / poky / meta-yocto-bsp / / home / leon / poky / meta-raspberrypi \"

  • Abra conf / local.conf e altere MACHINE para raspberrypi, raspberrypi0, raspberrypi2 ou raspberrypi3 dependendo do seu modelo Raspberry Pi, por exemplo:

    MACHINE ?? = "raspberrypi2"

  • Anexe a seguinte linha a conf / local.conf para definir a memória GPU em megabytes:

    GPU_MEM = "16"

  • Opcionalmente, acrescente a seguinte linha a conf / local.conf para substituir System V por systemd:

    DISTRO_FEATURES_append = "systemd"

    VIRTUAL-RUNTIME_init_manager = "systemd" DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit" VIRTUAL-RUNTIME_initscripts = ""

  • Opcionalmente, anexe a seguinte linha a conf / local.conf para incluir o gerenciador de rede da linha de comando connman na imagem:

    IMAGE_INSTALL_append = "connman connman-client"

Etapa 4: construir uma imagem

Construir uma imagem
Construir uma imagem
  • Execute o seguinte comando para construir uma imagem mínima de uma distribuição GNU / Linux para o seu Raspberry Pi:

    bitbake rpi-basic-image

Observe que a construção pode levar várias horas, dependendo do hardware do seu computador pessoal e da velocidade da conexão com a Internet.

Etapa 5: Cartão Flash SD

Quando a compilação for concluída, a imagem estará localizada no seguinte caminho em seu diretório de compilação: tmp / deploy / images / raspberrypi2 / rpi-basic-image-raspberrypi2.rpi-sdimg.

Conecte um cartão microSD ao seu computador, substitua X pelo seu ID correspondente (que pode ser encontrado por meio de comandos como lsblk ou fdisk -l) e execute os seguintes comandos para fazer o flash da imagem nele:

sudo umount / dev / sdX

sudo dd if = tmp / deploy / images / raspberrypi2 / core-image-weston-raspberrypi2.rpi-sdimg de = / dev / sdX sync sudo umount / dev / sdX

Alternativamente, se você preferir, pode usar bmaptool em vez de dd.

Tenha muito cuidado ao atualizar o cartão SD e certifique-se de usar a letra correta para o caminho para o dispositivo. Faça isso por sua própria conta e risco e lembre-se de que um erro pode danificar uma unidade de seu computador pessoal!

Etapa 6: inicialização e teste

Inicialize o Raspberry Pi e execute as seguintes etapas para verificar se a imagem está funcionando corretamente:

  • Faça login como root sem nenhuma senha
  • Se o connman estiver instalado, verifique se os serviços do systemd foram carregados:

    systemctl status -l connman