Google is committed to advancing racial equity for Black communities. See how.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

BeagleHueso Negro

OpenThread Border Router (OTBR) proporciona soporte para la plataforma BeagleBone Black (BBB).

Requisitos de hardware:

  • Adaptador de CA externo de 5 V para alimentación
  • Una tarjeta microSD de 8 GB o más ("tarjeta SD" en esta guía)
  • Una plataforma OpenThread compatible (como la TI CC2652 ) para la conectividad de red Thread en un diseño RCP

Para usar BBB con OTBR:

  1. Descargue el firmware y escriba la imagen en la tarjeta SD.
  2. Arranque BBB desde la tarjeta SD .
  3. Expanda la imagen de la tarjeta SD para crear suficiente espacio para construir e instalar OTBR.
  4. Construye e instala OTBR .

Descargar firmware

  1. El firmware recomendado es Stretch para BeagleBone mediante tarjeta microSD :
    • Debian 9.1 2017-08-31 4GB SD LXQT
    • Nombre de archivo: bone-debian-9.1-lxqt-armhf-2017-08-31-4gb.img.xz
  2. Escriba la imagen en una tarjeta SD de 8 GB o más grande usando una herramienta como Etcher o Win32 Disk Imager .

Arrancar desde la tarjeta SD

BeagleHueso Negro

BBB puede arrancar desde la memoria flash integrada o desde la tarjeta SD. Para usar BBB con OTBR, debe arrancar desde la tarjeta SD, ya que la memoria flash integrada no es lo suficientemente grande como para construir e instalar OTBR.

Para iniciar BBB desde la tarjeta SD:

  1. Inserta la tarjeta SD.
  2. Desconecta la corriente.
  3. Mantenga presionado el botón BOOT.
  4. Conecta el poder.
  5. Cuando los LED comiencen a parpadear, suelte el botón BOOT.

Expande la imagen de la tarjeta SD

Las imágenes de Linux para Beagle Bone Black (BBB) ​​se crean a propósito pequeñas para que la imagen se pueda colocar en cualquier tarjeta SD de 4 GB (o en la Memoria Flash de 4 GB integrada), y luego se expande según sea necesario. En total hay unos 300 MB de espacio libre. Es posible que no haya suficiente espacio para instalar y construir OpenThread Border Router con BBB.

Para resolver este problema:

  1. Escriba la imagen de Linux en una tarjeta SD más grande (al menos 8 GB).
  2. Expanda la partición de ~ 4 GB de Linux de la imagen a un poco menos que el tamaño de toda la tarjeta SD. Por ejemplo, si usa una tarjeta SD de 8 GB, amplíela a ~ 7 GB. Para una tarjeta de 16 GB, amplíela a ~ 15 GB.
  3. Arranque el BBB desde la tarjeta SD.

Particiones de la tarjeta SD

Los datos en una tarjeta SD son efectivamente una matriz continua de sectores de datos. Los sectores están numerados comenzando con 0 y terminando en el Sector N algún lugar alrededor de XX GB, el último número exacto depende de la tarjeta SD real.

El sector 0 siempre contiene una tabla de particiones de MS-DOS. Una tabla de partición de MS-DOS puede contener entre 1 y 4 entradas de partición. Cada partición es una serie continua de sectores de X a Y algún lugar dentro de los límites de la tarjeta SD. Esto se repite para cada una de las 4 particiones posibles. Normalmente, las particiones se ubican en orden, con un número ( 0 a N ) de sectores no utilizados al final. Este "cierto número de sectores no utilizados" ( SOME_N ) se puede utilizar para su ventaja más adelante.

Al escribir una imagen en una tarjeta SD, la escritura comienza en el Sector 0 y progresa a SOME_N , dependiendo del tamaño de la imagen. Lo que no puede hacer es estirar la partición alrededor de la imagen, eso no es posible. En cambio, piense en un marco de imagen alrededor de un lienzo. El marco de la imagen es la partición y la imagen son los datos. Lo que puede hacer es reemplazar el marco de imagen existente por uno más grande y expandir el lienzo dentro de:

  1. Elimine la partición de Linux existente sin eliminar los datos. Ha eliminado el marco de la imagen, pero la imagen todavía está presente en el lienzo.
  2. Cree una nueva partición de Linux que comience exactamente donde comenzó la anterior, pero termina cerca del final de la tarjeta SD. Ha creado un marco de imagen más grande. La imagen, los datos, todavía está allí en el lienzo. No se ha movido y no fue dañado por esta operación.
  3. Use una herramienta específica del sistema de archivos para hacer crecer el sistema de archivos dentro de los límites de la nueva partición. El lienzo se estira para llenar el nuevo marco de imagen más grande.

Paso 1: identifique la partición de datos actual

  1. Arranque el BBB desde la tarjeta SD.
  2. Inicie sesión como root :
    sudo bash
    
  3. Identifique la partición de datos de la tarjeta SD:
    root@beaglebone:/home/debian# df -hT /
    Filesystem     Type  Size  Used Avail Use% Mounted on
    /dev/mmcblk0p1 ext4  3.3G  2.8G  295M  91% /
    
    El sufijo p1 en el campo Filesystem es la convención de nomenclatura para la Partición 1. El dispositivo en sí es /dev/mmcblk0 . En este ejemplo, solo 295 MB son gratuitos. Esto no es suficiente espacio para construir e instalar OTBR.

Paso 2: crea la nueva partición más grande

  1. Ejecute fdisk en el dispositivo (tarjeta 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 la tabla de partición actual para encontrar el sector 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
    
    El valor del campo Start es el sector inicial para la partición de destino. Debe aparecer con el mismo nombre de partición que en el Paso 1, con un Type de Linux . En el resultado anterior, el sector inicial es 8192 .
  3. Eliminar la partición existente:
    Command (m for help): d
    Selected partition 1
    Partition 1 has been deleted.
    
  4. Cree la nueva partición, utilizando un número de partición de 1, el mismo sector inicial de la partición anterior ( 8192 en este ejemplo) y un tamaño que sea 1 GB menos que el tamaño de la tarjeta SD. Por ejemplo, si usa una tarjeta SD de 8 GB, especifique un tamaño de +7G . Para una tarjeta SD de 16 GB, especifique un tamaño 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. Las versiones más recientes de fdisk solicitan que borre la antigua firma ext4 disco. No borre esta firma. De lo contrario, los datos se corrompen y toda la imagen se vuelve inútil.
    Partition #1 contains a ext4 signature.
    
    Do you want to remove the signature [Y]/No: n
    
  6. Escriba la nueva tabla de particiones en el disco y salga de 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).
    

Paso 3: cambie el tamaño del sistema de archivos

Use resize2fs para cambiar el tamaño del sistema de archivos de imagen al tamaño de partición recién expandido. Esta herramienta expande o reduce un sistema de archivos.

  1. Reinicia el BBB.

    1. Algunas imágenes pueden arrojar un error fsck al reiniciar. fsck ejecuta automáticamente en el arranque y comprueba la coherencia del sistema de archivos

       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. Si obtiene este error, ignórelo y espere unos 20 segundos para que aparezca el mensaje de inicio de sesión.

  2. Inicie sesión como root :

    sudo bash
    
  3. Cambie el tamaño del sistema de archivos para la partición 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. Reinicia el BBB.

  5. Si se encontró con el problema de fsck , reconstruya initramfs , que es el sistema de archivos RAM inicial utilizado cuando arranca Linux.

    sudo update-initramfs -u
    update-initramfs: Generating /boot/initrd.img-4.4.54-ti-r93
    
  6. Reinicia el BBB. Debería arrancar sin el error fsck .

Construir e instalar OTBR

Consulte Construcción y configuración para obtener instrucciones sobre cómo construir e instalar OTBR.

Clonar una tarjeta SD reconfigurada (opcional)

Una tarjeta SD reconfigurada con la partición de Linux redimensionada para BBB se puede clonar para una distribución más fácil.

El problema: muchas herramientas GUI leen toda la tarjeta SD, incluida el área libre después del final de la partición y hasta el último sector, y no ofrecen una forma de leer solo una parte de la imagen. Cada tarjeta SD tiene un número diferente de sectores buenos y malos, y el tamaño total de bytes de la nueva tarjeta SD puede ser menor (7.999 GB) que la imagen redimensionada (8.0 GB). En este caso, la imagen redimensionada no puede caber en la nueva tarjeta SD.

La solución: use un tamaño de partición que sea un poco más pequeño que el tamaño completo de la tarjeta SD. El procedimiento para ampliar la imagen de la tarjeta SD utiliza +7G como el nuevo tamaño de partición para una tarjeta SD de 8 GB. Esto produce una imagen que es lo suficientemente pequeña como para caber de manera segura en cualquier tarjeta SD de 8 GB comparable (independientemente de los sectores defectuosos) y al mismo tiempo es lo suficientemente grande como para construir e instalar OTBR.

Utilice el sector final de la partición de datos para calcular el tamaño de bytes completo de la "imagen de datos" y truncar el archivo IMG en ese desplazamiento de bytes. El método más simple es usar el comando truncate . El comando truncate es una herramienta de línea de comandos estándar de Unix, y también está presente en la distribución MS-Windows Git Bash de MSYS.

  1. Como root , ejecute fdisk en el dispositivo (tarjeta 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 la tabla de partición actual para encontrar el sector 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
     

    En este ejemplo, el sector final es 14688255 .

  3. Salga de fdisk y calcule el tamaño total de la imagen:

    1. La última partición termina en el sector 14688255 .
    2. Cada sector es de 512 bytes.
    3. El sector inicial de una tarjeta SD es siempre 0 . Agregue 1 byte para dar cuenta de este sector.
    4. El tamaño total es: (14688255 + 1) * 512 = 7520387072
  4. Lea la imagen de la tarjeta SD en un archivo .img , utilizando una herramienta como Etcher o Win32 Disk Imager .

  5. Truncar el archivo de imagen al tamaño total calculado:

     root@beaglebone:/home/debian# truncate -s 7520387072  myimage.img
     
  6. Copie el archivo de imagen truncado a otras tarjetas SD para su distribución.