Google is committed to advancing racial equity for Black communities. See how.
此页面由 Cloud Translation API 翻译。
Switch to English

BeagleBone黑色

OpenThread边界路由器(OTBR)支持BeagleBone Black (BBB)平台。

硬件要求:

  • 外部5V AC适配器供电
  • 8 GB或更大的microSD卡(本指南中为“ SD卡”)
  • RCP设计中用于线程网络连接的受支持的OpenThread平台(例如TI CC2652

要将BBB与OTBR一起使用:

  1. 下载固件并将映像写入SD卡。
  2. 从SD卡引导BBB
  3. 展开SD卡映像,以创建足够的空间来构建和安装OTBR。
  4. 编译并安装OTBR

下载固件

  1. 推荐的固件是通过microSD卡用于BeagleBone的Stretch
    • Debian 9.1 2017年8月31日4GB SD LXQT
    • 文件名: bone-debian-9.1-lxqt-armhf-2017-08-31-4gb.img.xz
  2. 使用EtcherWin32 Disk Imager等工具将映像写入8 GB或更大的SD卡。

从SD卡启动

BeagleBone黑色

BBB可以从板载闪存或SD卡启动。要将BBB与OTBR一起使用,您必须从SD卡启动,因为板载闪存不够大,无法构建和安装OTBR。

要从SD卡引导BBB:

  1. 插入SD卡。
  2. 断开电源。
  3. 按住BOOT按钮。
  4. 连接电源。
  5. 当LED开始闪烁时,松开BOOT按钮。

展开SD卡映像

Beagle Bone Black(BBB)的Linux映像特意创建得很小,因此可以将映像放置在任何4 GB SD卡(或板载4 GB闪存)上,然后根据需要进行扩展。总共大约有300 MB的可用空间。这可能是没有足够的空间来使用BBB安装和构建OpenThread Border Router。

解决此问题的方法:

  1. 将Linux映像写入更大的SD卡(至少8 GB)。
  2. 将映像的〜4 GB Linux分区扩展到略小于整个SD卡的大小。例如,如果使用8 GB SD卡,请将其扩展到〜7 GB。对于16 GB的卡,请将其扩展到〜15 GB。
  3. 从SD卡引导BBB。

SD卡分区

SD卡上的数据实际上是连续的数据扇区阵列。扇区编号从0开始,在扇区N大约XX GB处结束,确切的最后一个数字取决于实际的SD卡。

扇区0始终包含一个MS-DOS分区表。一个MS-DOS分区表可以保存1到4个分区条目。每个分区是SD卡范围内某个从XY的连续扇区序列。对4个可能的分区中的每个分区重复此操作。通常,分区是按顺序放置的,最后有一些( 0N )个未使用的扇区。此“一定数量的未使用扇区”( SOME_N )可以在以后为您使用。

将图像写入SD卡时,写入操作从扇区0开始,并进行到SOME_N ,具体取决于图像的大小。您无法做的是在图像周围拉伸分区,这是不可能的。相反,请考虑一下画布周围的相框。图片框是分区,图片是数据。您可以做的是将现有的相框替换为较大的相框,然后在以下位置展开画布:

  1. 删除现有的Linux分区而不删除数据。您已卸下相框,但是该图片仍存在于画布上。
  2. 创建一个新的Linux分区,该分区从旧分区的确切位置开始,但在SD卡末尾附近终止。您创建了更大的相框。图片(数据)仍然在画布上。它没有移动,也没有被此操作破坏。
  3. 使用特定于文件系统的工具在新分区的范围内扩展文件系统。画布被拉伸以填充新的更大的相框。

步骤1:确定当前数据分区

  1. 从SD卡引导BBB。
  2. root身份登录:
    sudo bash
    
  3. 标识SD卡数据分区:
    root@beaglebone:/home/debian# df -hT /
    Filesystem     Type  Size  Used Avail Use% Mounted on
    /dev/mmcblk0p1 ext4  3.3G  2.8G  295M  91% /
    
    Filesystem字段上的p1后缀是分区1的命名约定。设备本身是/dev/mmcblk0 。在此示例中,只有295 MB可用空间。这是没有足够的空间来构建和安装OTBR。

步骤2:创建新的更大的分区

  1. 在设备(SD卡)上运行fdisk
    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. 打印当前分区表以查找起始扇区:
    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
    
    Start字段的值是目标分区的开始扇区。列出的分区名称应与步骤1中的分区名称相同,并且使用Linux Type 。在上面的输出中,起始扇区是8192
  3. 删除现有分区:
    Command (m for help): d
    Selected partition 1
    Partition 1 has been deleted.
    
  4. 使用分区号1,与上一个分区相同的起始扇区(在此示例中为8192 )以及小于SD卡大小1 GB的大小来创建新分区。例如,如果使用8 GB SD卡,则将大小指定为+7G 。对于16 GB SD卡,请将大小指定为+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. 较新版本的fdisk提示您删除旧磁盘ext4签名。 不要删除此签名。否则,数据将被破坏,整个图像将变得无用。
    Partition #1 contains a ext4 signature.
    
    Do you want to remove the signature [Y]/No: n
    
  6. 将新的分区表写入磁盘并退出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).
    

步骤3:调整文件系统的大小

使用resize2fs将映像文件系统调整为新扩展的分区大小。该工具可扩展或收缩文件系统。

  1. 重新启动BBB。

    1. 重新启动后,某些映像可能会引发fsck错误。 fsck在启动时自动运行,并检查文件系统的一致性。

       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. 如果收到此错误,请忽略它并等待大约20秒钟,以便出现登录提示。

  2. root身份登录:

    sudo bash
    
  3. 调整目标分区的文件系统大小:

     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. 重新启动BBB。

  5. 如果遇到fsck问题,请重建initramfs ,它是Linux引导时使用的初始RAM文件系统。

    sudo update-initramfs -u
    update-initramfs: Generating /boot/initrd.img-4.4.54-ti-r93
    
  6. 重新启动BBB。它应该启动而没有fsck错误。

构建并安装OTBR

有关构建和安装OTBR的说明,请参阅“ 构建和配置 ”。

克隆重新配置的SD卡(可选)

可以克隆为BBB调整大小的Linux分区重新配置的SD卡,以便于分发。

问题:许多GUI工具读取整个SD卡(包括分区结束后到最后一个扇区之前的可用区域),而无法提供仅读取一部分图像的方法。每个SD卡都有不同数量的好坏扇区,新SD卡的总字节大小(7.999 GB)可能比调整大小的映像(8.0 GB)小。在这种情况下,调整大小后的图像无法容纳在新的SD卡上。

解决方案:使用的分区大小略小于SD卡的完整大小。 扩展SD卡映像过程使用+7G作为8 GB SD卡的新分区大小。这样产生的图像足够小,可以安全地安装在任何可比较的8 GB SD卡上(无论坏扇区如何),而仍然足够大,可以构建和安装OTBR。

使用数据分区的结尾扇区来计算“数据映像”的整个字节大小,并在该字节偏移处截断IMG文件。最简单的方法是使用truncate命令。 truncate命令是标准的Unix命令行工具,它也存在于MSYS的MS-Windows Git Bash发行版中。

  1. root fdisk在设备(SD卡)上运行fdisk

     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. 打印当前分区表以查找结束扇区:

     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
     

    在此的示例结束扇区是14688255

  3. 退出fdisk并计算映像的总大小:

    1. 最后一个分区在扇区14688255处结束。
    2. 每个扇区为512字节。
    3. SD卡的起始扇区始终为0 。添加1个字节以说明该扇区。
    4. 总大小为: (14688255 + 1) * 512 = 7520387072
  4. 使用EtcherWin32 Disk Imager之类的工具将SD卡映像读取为.img文件。

  5. 将图像文件截断为计算出的总大小:

     root@beaglebone:/home/debian# truncate -s 7520387072  myimage.img
     
  6. 将截断的图像文件复制到其他SD卡中进行分发。