Google is committed to advancing racial equity for Black communities. See how.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

BeagleBone Black

O OpenThread Border Router (OTBR) fornece suporte para a plataforma BeagleBone Black (BBB).

Requisitos de hardware:

  • Adaptador CA externo de 5V para alimentação
  • Um cartão microSD de 8 GB ou maior ("cartão SD" neste guia)
  • Uma plataforma OpenThread suportada (como a TI CC2652 ) para conectividade de rede Thread em um design RCP

Para usar BBB com OTBR:

  1. Faça o download do firmware e grave a imagem no cartão SD.
  2. Inicialize BBB a partir do cartão SD .
  3. Expanda a imagem do cartão SD para criar espaço suficiente para criar e instalar o OTBR.
  4. Crie e instale o OTBR .

Download do firmware

  1. O firmware recomendado é o Stretch for BeagleBone via cartão microSD :
    • Debian 9.1 2017-08-31 4GB SD LXQT
    • Nome do arquivo: bone-debian-9.1-lxqt-armhf-2017-08-31-4gb.img.xz
  2. Grave a imagem em um cartão SD de 8 GB ou mais usando uma ferramenta como Etcher ou Win32 Disk Imager .

Inicialize a partir do cartão SD

BeagleBone Black

O BBB pode inicializar a partir da memória flash integrada ou do cartão SD. Para usar BBB com OTBR, você deve inicializar a partir do cartão SD, pois a memória flash interna não é grande o suficiente para criar e instalar o OTBR.

Para inicializar BBB a partir do cartão SD:

  1. Insira o cartão SD.
  2. Desconecte a energia.
  3. Pressione e segure o botão BOOT.
  4. Conecte a energia.
  5. Quando os LEDs começarem a piscar, solte o botão BOOT.

Expanda a imagem do cartão SD

As imagens do Linux para Beagle Bone Black (BBB) ​​são criadas propositadamente de forma pequena para que a imagem possa ser colocada em qualquer cartão SD de 4 GB (ou na memória Flash de 4 GB integrada) e expandida conforme necessário. No total, existem cerca de 300 MB de espaço livre. Pode não haver espaço suficiente para instalar e construir o OpenThread Border Router usando o BBB.

Para resolver este problema:

  1. Grave a imagem do Linux em um cartão SD maior (pelo menos 8 GB).
  2. Expanda a partição Linux de ~ 4 GB da imagem para um pouco menos do que o tamanho de todo o cartão SD. Por exemplo, se estiver usando um cartão SD de 8 GB, expanda-o para ~ 7 GB. Para um cartão de 16 GB, expanda-o para ~ 15 GB.
  3. Inicialize o BBB a partir do cartão SD.

Partições de cartão SD

Os dados em um cartão SD são efetivamente uma matriz contínua de setores de dados. Os setores são numerados começando com 0 e terminando no setor N algum lugar em torno de XX GB, o último número exato depende do cartão SD real.

O setor 0 sempre contém uma tabela de partição do MS-DOS. Uma tabela de partição do MS-DOS pode conter entre 1 e 4 entradas de partição. Cada partição é uma série contínua de setores de X a Y algum lugar dentro dos limites do cartão SD. Isso se repete para cada uma das 4 partições possíveis. Normalmente, as partições estão localizadas em ordem, com algum número ( 0 a N ) de setores não utilizados no final. Este "algum número de setores não utilizados" ( SOME_N ) pode ser usado para sua vantagem posteriormente.

Ao gravar uma imagem em um cartão SD, a gravação começa no Setor 0 e avança para SOME_N , dependendo do tamanho da imagem. O que você não pode fazer é esticar a partição ao redor da imagem - isso não é possível. Em vez disso, pense em uma moldura em torno de uma tela. A moldura da imagem é a partição e a imagem são os dados. O que você pode fazer é substituir o quadro de imagem existente por um maior e expandir a tela dentro de:

  1. Exclua a partição Linux existente sem excluir os dados. Você removeu o porta-retrato, mas a imagem ainda está presente na tela.
  2. Crie uma nova partição Linux que comece exatamente onde a antiga foi iniciada, mas que termina perto do final do cartão SD. Você criou uma moldura maior. A imagem - os dados - ainda está lá na tela. Não foi movido e não foi corrompido por esta operação.
  3. Use uma ferramenta específica do sistema de arquivos para aumentar o sistema de arquivos dentro dos limites da nova partição. A tela é esticada para preencher o novo quadro de imagem maior.

Etapa 1: identificar a partição de dados atual

  1. Inicialize o BBB a partir do cartão SD.
  2. Efetue login como root :
    sudo bash
    
  3. Identifique a partição de dados do cartão SD:
    root@beaglebone:/home/debian# df -hT /
    Filesystem     Type  Size  Used Avail Use% Mounted on
    /dev/mmcblk0p1 ext4  3.3G  2.8G  295M  91% /
    
    O sufixo p1 no campo Filesystem é a convenção de nomenclatura para a Partição 1. O dispositivo em si é /dev/mmcblk0 . Neste exemplo, apenas 295 MB são gratuitos. Não há espaço suficiente para criar e instalar o OTBR.

Etapa 2: criar a nova partição maior

  1. Execute o fdisk no dispositivo (cartão SD):
    root@beaglebone:/home/debian# fdisk /dev/mmcblk0
    
    Welcome to fdisk (util-linux 2.25.2).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
  2. Imprima a tabela de partição atual para encontrar o setor inicial:
    Command (m for help): p
    Disk /dev/mmcblk0: 7.2 GiB, 7744782336 bytes, 15126528 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0xca52207f
    
    Device         Boot Start     End Sectors  Size Id Type
    /dev/mmcblk0p1 *     8192 6963199 6955008  3.3G 83 Linux
    
    O valor do campo Start é o setor inicial da partição de destino. Ele deve estar listado com o mesmo nome de partição da Etapa 1, com um Type de Linux . Na saída acima, o setor inicial é 8192 .
  3. Exclua a partição existente:
    Command (m for help): d
    Selected partition 1
    Partition 1 has been deleted.
    
  4. Crie a nova partição, usando um número de partição 1, o mesmo setor inicial da partição anterior ( 8192 neste exemplo) e um tamanho 1 GB menor que o tamanho do cartão SD. Por exemplo, se estiver usando um cartão SD de 8 GB, especifique um tamanho de +7G . Para um cartão SD de 16 GB, especifique um tamanho de +15GB .
    Command (m for help): n
    Partition type
    p   primary (0 primary, 0 extended, 4 free)
    e   extended (container for logical partitions)
    Select (default p): p
    Partition number (1-4, default 1): 1
    First sector (2048-15126527, default 2048): 8192
    Last sector, +sectors or +size{K,M,G,T,P} (8192-15126527, default 15126527): +7G
    
    Created a new partition 1 of type 'Linux' and of size 7 GiB.
    
  5. As versões mais recentes do fdisk solicitam que você apague a assinatura ext4 disco antigo. Não apague esta assinatura. Caso contrário, os dados são corrompidos e a imagem inteira se torna inútil.
    Partition #1 contains a ext4 signature.
    
    Do you want to remove the signature [Y]/No: n
    
  6. Escreva a nova tabela de partição no disco e feche o fdisk :
    Command (m for help): w
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Re-reading the partition table failed.: Device or resource busy
    
    The kernel still uses the old table. The new table will be used at the next
    reboot or after you run partprobe(8) or kpartx(8).
    

Etapa 3: redimensionar o sistema de arquivos

Use resize2fs para redimensionar o sistema de arquivos de imagem para o tamanho da partição recém-expandida. Essa ferramenta expande ou reduz um sistema de arquivos.

  1. Reinicie o BBB.

    1. Algumas imagens podem gerar um erro fsck após a reinicialização. fsck é executado automaticamente na inicialização e verifica a consistência do sistema de arquivos.

       Loading, please wait...
      [    4.873285]  remoteproc1: failed to load am335x-pru0-fw
      [    4.918852]  remoteproc1: request_firmware failed: -2
      [    4.924046] pru-rproc 4a334000.pru0: rproc_boot failed
      [    5.052414]  remoteproc1: failed to load am335x-pru1-fw
      [    5.069652]  remoteproc1: request_firmware failed: -2
      [    5.074889] pru-rproc 4a338000.pru1: rproc_boot failed
      fsck: error 2 (No such file or directory) while executing fsck.ext4 for /dev/mmcblk0p1
      fsck exited with status code 8
       
    2. Se você receber esse erro, ignore-o e aguarde cerca de 20 segundos para que o prompt de login apareça.

  2. Efetue login como root :

    sudo bash
    
  3. Redimensione o sistema de arquivos para a partição de destino:

     root@beaglebone:/home/debian# resize2fs /dev/mmcblk0p1
    resize2fs 1.43 (17-May-2016)
    Filesystem at /dev/mmcblk0p1 is mounted on /; on-line resizing required
    old_desc_blocks = 1, new_desc_blocks = 1
    The filesystem on /dev/mmcblk0p1 is now 1835008 (4k) blocks long.
     
  4. Reinicie o BBB.

  5. Se você encontrou o problema fsck , recrie o initramfs , que é o sistema de arquivos RAM inicial usado quando o Linux é inicializado.

    sudo update-initramfs -u
    update-initramfs: Generating /boot/initrd.img-4.4.54-ti-r93
    
  6. Reinicie o BBB. Ele deve inicializar sem o erro fsck .

Construa e instale o OTBR

Consulte Build and Configuration para obter instruções sobre como construir e instalar o OTBR.

Clonar um cartão SD reconfigurado (opcional)

Um cartão SD reconfigurado com a partição redimensionada do Linux para BBB pode ser clonado para facilitar a distribuição.

O problema: muitas ferramentas da GUI leem todo o cartão SD - incluindo a área livre após o final da partição e até o último setor - e não oferecem uma maneira de ler apenas uma parte da imagem. Cada cartão SD possui um número diferente de setores bons e ruins, e o tamanho total de bytes do novo cartão SD pode ser menor (7,9999 GB) do que a imagem redimensionada (8,0 GB). Nesse caso, a imagem redimensionada não pode caber no novo cartão SD.

A solução: use um tamanho de partição um pouco menor que o tamanho total do cartão SD. O procedimento Expandir imagem do cartão SD usa +7G como o novo tamanho da partição para um cartão SD de 8 GB. Isso produz uma imagem pequena o suficiente para caber com segurança em qualquer cartão SD de 8 GB comparável (independentemente de setores defeituosos) e ainda ser grande o suficiente para criar e instalar o OTBR.

Use o setor final da partição de dados para calcular o tamanho inteiro de bytes da "imagem de dados" e truncar o arquivo IMG nesse deslocamento de bytes. O método mais simples é usar o comando truncate . O comando truncate é uma ferramenta de linha de comando padrão do Unix e também está presente na distribuição do MSYS para Windows-Git Bash.

  1. Como root , execute o fdisk no dispositivo (cartão SD):

     root@beaglebone:/home/debian# fdisk /dev/mmcblk0
    
    Welcome to fdisk (util-linux 2.25.2).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
     
  2. Imprima a tabela de partição atual para encontrar o setor final:

     Command (m for help): p
    Disk /dev/mmcblk0: 7.2 GiB, 7744782336 bytes, 15126528 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0xca52207f
    
    Device         Boot Start      End  Sectors Size Id Type
    /dev/mmcblk0p1       8192 14688255 14680064   7G 83 Linux
     

    Neste exemplo, o setor final é 14688255 .

  3. Saia do fdisk e calcule o tamanho total da imagem:

    1. A última partição termina no setor 14688255 .
    2. Cada setor tem 512 bytes.
    3. O setor inicial de um cartão SD é sempre 0 . Adicione 1 byte para contabilizar este setor.
    4. O tamanho total é: (14688255 + 1) * 512 = 7520387072
  4. Leia a imagem do cartão SD em um arquivo .img , usando uma ferramenta como Etcher ou Win32 Disk Imager .

  5. Trunque o arquivo de imagem para o tamanho total calculado:

     root@beaglebone:/home/debian# truncate -s 7520387072  myimage.img
     
  6. Copie o arquivo de imagem truncado para outros cartões SD para distribuição.