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 。 b193f8fd193
  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卡中進行分發。