Google is committed to advancing racial equity for Black communities. See how.
このページは Cloud Translation API によって翻訳されました。
Switch to English

ビーグルボーンブラック

OpenThread Border Router(OTBR)は、 BeagleBone Black (BBB)プラットフォームのサポートを提供します。

ハードウェア要件:

  • 電源用の外部5VACアダプター
  • 8 GB以上のmicroSDカード(このガイドでは「SDカード」)
  • RCP設計でのスレッドネットワーク接続用にサポートされているOpenThreadプラットフォーム( TI CC2652など

OTBRでBBBを使用するには:

  1. ファームウェアダウンロードし、SDカードにイメージを書き込みます
  2. SDカードからBBBを起動します
  3. SDカードイメージを展開して、OTBRを構築およびインストールするのに十分なスペースを作成します。
  4. OTBRをビルドしてインストールします

ファームウェアをダウンロードする

  1. 推奨されるファームウェアは、microSDカードを介したBeagleBoneのストレッチです
    • Debian 9.1 2017-08-31 4GB SD LXQT
    • ファイル名: bone-debian-9.1-lxqt-armhf-2017-08-31-4gb.img.xz
  2. EtcherWin32Disk Imagerなどのツールを使用して、8GB以上のSDカードにイメージを書き込みます。

SDカードから起動する

ビーグルボーンブラック

BBBは、オンボードフラッシュメモリまたはSDカードのいずれかから起動できます。オンボードフラッシュメモリはOTBRを構築およびインストールするのに十分な大きさではないため、OTBRでBBBを使用するには、SDカードから起動する必要があります。

SDカードからBBBを起動するには:

  1. SDカードを挿入します。
  2. 電源を切ります。
  3. BOOTボタンを押し続けます。
  4. 電源を接続します。
  5. LEDが点滅し始めたら、BOOTボタンを放します。

SDカードの画像を展開する

Beagle Bone Black(BBB)用のLinuxイメージは、イメージを任意の4 GB SDカード(またはオンボードの4 GBフラッシュメモリ)に配置し、必要に応じて拡張できるように、意図的に小さく作成されています。合計で約300MBの空き容量があります。 BBBを使用してOpenThreadBorderRouterをインストールおよび構築するには十分なスペースがない可能性があります。

この問題を解決するために:

  1. Linuxイメージをより大きなSDカード(少なくとも8 GB)に書き込みます。
  2. イメージの最大4GBのLinuxパーティションを、SDカード全体のサイズよりわずかに小さいサイズに拡張します。たとえば、8 GBのSDカードを使用している場合は、最大7GBに拡張します。 16 GBカードの場合は、最大15GBに拡張します。
  3. SDカードからBBBを起動します。

SDカードパーティション

SDカード上のデータは、事実上、データセクターの連続配列です。セクターには0から始まり、XX GB前後のセクターN終わる番号が付けられます。正確な最後の番号は、実際のSDカードによって異なります。

セクター0には、常にMS-DOSパーティションテーブルが含まれています。 MS-DOSパーティションテーブルは、1〜4個のパーティションエントリを保持できます。各パーティションは、SDカードの境界内のどこかにあるXからYまでの連続した一連のセクターです。これは、4つの可能なパーティションのそれぞれに対して繰り返されます。通常、パーティションは順番に配置され、最後にいくつか( 0からN )の未使用セクターがあります。この「いくつかの未使用セクター」( SOME_N )は、後で有利に使用できます。

SDカードに画像を書き込む場合、画像のサイズに応じて、書き込みはセクター0から始まり、 SOME_Nに進みます。あなたができないことは、画像の周りのパーティションを伸ばすことです-それは不可能です。代わりに、キャンバスの周りの額縁を考えてみてください。額縁はパーティションであり、額縁はデータです。できることは、既存の額縁をより大きな額縁に置き換え、次の範囲内でキャンバスを展開することです。

  1. データを削除せずに、既存のLinuxパーティションを削除します。額縁を削除しましたが、画像はまだキャンバスに表示されています。
  2. 古いものが始まった場所から始まり、SDカードの終わり近くで終わる新しいLinuxパーティションを作成します。より大きな額縁を作成しました。画像(データ)はまだキャンバス上にあります。移動しておらず、この操作によって破損していません。
  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です。この例では、295MBのみが空きです。これは、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
    
    The値Startフィールドは、ターゲット・パーティションの開始セクタです。 Linux Typeで、ステップ1と同じパーティション名でリストされている必要があります。上記の出力では、開始セクターは8192です。
  3. 既存のパーティションを削除します:
    Command (m for help): d
    Selected partition 1
    Partition 1 has been deleted.
    
  4. 前のパーティションと同じ開始セクター(この例では8192 )であるパー​​ティション番号1を使用し、SDカードのサイズより1GB小さいサイズで新しいパーティションを作成します。たとえば、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問題が発生した場合は、Linuxの起動時に使用される初期RAMファイルシステムであるinitramfs再構築します。

    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カードの合計バイトサイズは、サイズ変更されたイメージ(8.0 GB)よりも小さい(7.999 GB)場合があります。この場合、サイズ変更された画像は新しいSDカードに収まりません。

解決策: SDカードのフルサイズよりもわずかに小さいパーティションサイズを使用します。 SDカードイメージ拡張手順では、8 GBSDカードの新しいパーティションサイズとして+7Gを使用します。これにより、OTBRを構築およびインストールするのに十分な大きさでありながら、同等の8 GB SDカード(不良セクタに関係なく)に安全に収まるほど小さいイメージが生成されます。

データパーティションの終了セクターを使用して、「データイメージ」のバイトサイズ全体を計算し、そのバイトオフセットでIMGファイルを切り捨てます。最も簡単な方法は、 truncateコマンドを使用することです。 truncateコマンドは標準のUnixコマンドラインツールであり、MSYSのMS-Windows GitBashディストリビューションにも含まれています。

  1. rootとして、デバイス(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. EtcherWin32Disk Imagerなどのツールを使用して、SDカードイメージを.imgファイルに読み込みます。

  5. 計算された合計サイズに画像ファイルを切り捨てます。

    root@beaglebone:/home/debian# truncate -s 7520387072  myimage.img
    
  6. 切り捨てられた画像ファイルを他のSDカードにコピーして配布します。