Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

BeagleBone Schwarz

OpenThread Border Router (OTBR) bietet Unterstützung für die BeagleBone Black (BBB) ​​-Plattform.

Hardware-Anforderungen:

  • Externes 5V Netzteil für die Stromversorgung
  • Eine microSD-Karte mit 8 GB oder mehr ("SD-Karte" in diesem Handbuch)
  • Eine unterstützte OpenThread-Plattform (wie der TI CC2652 ) für die Thread-Netzwerkkonnektivität in einem RCP-Design

So verwenden Sie BBB mit OTBR:

  1. Laden Sie die Firmware herunter und schreiben Sie das Image auf die SD-Karte.
  2. Booten Sie BBB von der SD-Karte .
  3. Erweitern Sie das SD-Karten-Image , um genügend Speicherplatz zum Erstellen und Installieren von OTBR zu schaffen.
  4. Erstellen und installieren Sie OTBR .

Firmware herunterladen

  1. Empfohlene Firmware ist Stretch für BeagleBone über eine microSD-Karte :
    • Debian 9.1 2017-08-31 4 GB SD LXQT
    • Dateiname: bone-debian-9.1-lxqt-armhf-2017-08-31-4gb.img.xz
  2. Schreiben Sie das Image mit einem Tool wie Etcher oder Win32 Disk Imager auf eine SD-Karte mit 8 GB oder mehr.

Booten Sie von der SD-Karte

BeagleBone Schwarz

BBB kann entweder vom integrierten Flash-Speicher oder von der SD-Karte booten. Um BBB mit OTBR verwenden zu können, müssen Sie von der SD-Karte booten, da der integrierte Flash-Speicher nicht groß genug ist, um OTBR zu erstellen und zu installieren.

So booten Sie BBB von der SD-Karte:

  1. Legen Sie die SD-Karte ein.
  2. Trennen Sie die Stromversorgung.
  3. Halten Sie die BOOT-Taste gedrückt.
  4. Schließen Sie die Stromversorgung an.
  5. Wenn die LEDs zu blinken beginnen, lassen Sie die BOOT-Taste los.

Erweitern Sie das SD-Karten-Image

Linux-Images für Beagle Bone Black (BBB) ​​werden absichtlich klein erstellt, sodass das Image auf einer beliebigen 4-GB-SD-Karte (oder dem integrierten 4-GB-Flash-Speicher) abgelegt und bei Bedarf erweitert werden kann. Insgesamt stehen ca. 300 MB freier Speicherplatz zur Verfügung. Dies ist möglicherweise nicht genügend Speicherplatz, um den OpenThread Border Router mithilfe der BBB zu installieren und zu erstellen.

Um dieses Problem zu lösen:

  1. Schreiben Sie das Linux-Image auf eine größere SD-Karte (mindestens 8 GB).
  2. Erweitern Sie die ~ 4 GB Linux-Partition des Images auf etwas weniger als die Größe der gesamten SD-Karte. Wenn Sie beispielsweise eine 8-GB-SD-Karte verwenden, erweitern Sie diese auf ~ 7 GB. Erweitern Sie eine 16-GB-Karte auf ~ 15 GB.
  3. Booten Sie die BBB von der SD-Karte.

SD-Kartenpartitionen

Daten auf einer SD-Karte sind effektiv eine kontinuierliche Anordnung von Datensektoren. Die Sektoren sind beginnend mit 0 nummeriert und enden bei Sektor N irgendwo um XX GB. Die genaue letzte Nummer hängt von der tatsächlichen SD-Karte ab.

Sektor 0 enthält immer eine MS-DOS-Partitionstabelle. Eine MS-DOS-Partitionstabelle kann zwischen 1 und 4 Partitionseinträge enthalten. Jede Partition ist eine fortlaufende Reihe von Sektoren von X bis Y irgendwo innerhalb der Grenzen der SD-Karte. Dies wird für jede der 4 möglichen Partitionen wiederholt. In der Regel befinden sich Partitionen in der richtigen Reihenfolge, wobei am Ende eine bestimmte Anzahl ( 0 bis N ) nicht verwendeter Sektoren vorhanden ist. Diese "einige nicht verwendete Sektoren" ( SOME_N ) können später zu Ihrem Vorteil verwendet werden.

Wenn Sie ein Bild auf eine SD-Karte schreiben, beginnt das Schreiben bei Sektor 0 und SOME_N je nach Größe des Bildes zu SOME_N über. Was Sie nicht tun können, ist die Partition um das Image herum zu strecken - das ist nicht möglich. Stellen Sie sich stattdessen einen Bilderrahmen um eine Leinwand vor. Der Bilderrahmen ist die Partition und das Bild sind die Daten. Sie können den vorhandenen Bilderrahmen durch einen größeren ersetzen und die Leinwand in folgenden Bereichen erweitern:

  1. Löschen Sie die vorhandene Linux-Partition, ohne die Daten zu löschen. Sie haben den Bilderrahmen entfernt, aber das Bild ist immer noch auf der Leinwand vorhanden.
  2. Erstellen Sie eine neue Linux-Partition, die genau dort beginnt, wo die alte begonnen hat, aber kurz vor dem Ende der SD-Karte endet. Sie haben einen größeren Bilderrahmen erstellt. Das Bild - die Daten - befindet sich immer noch auf der Leinwand. Es hat sich nicht bewegt und wurde durch diesen Vorgang nicht beschädigt.
  3. Verwenden Sie ein dateisystemspezifisches Tool, um das Dateisystem innerhalb der Grenzen der neuen Partition zu vergrößern. Die Leinwand wird gedehnt, um den neuen, größeren Bilderrahmen zu füllen.

Schritt 1: Identifizieren Sie die aktuelle Datenpartition

  1. Booten Sie die BBB von der SD-Karte.
  2. Melden Sie sich als root :
    sudo bash
    
  3. Identifizieren Sie die SD-Kartendatenpartition:
    root@beaglebone:/home/debian# df -hT /
    Filesystem     Type  Size  Used Avail Use% Mounted on
    /dev/mmcblk0p1 ext4  3.3G  2.8G  295M  91% /
    
    Das Suffix p1 im Feld Filesystem ist die Namenskonvention für Partition 1. Das Gerät selbst ist /dev/mmcblk0 . In diesem Beispiel sind nur 295 MB frei. Dies ist nicht genug Platz, um OTBR zu erstellen und zu installieren.

Schritt 2: Erstellen Sie die neue, größere Partition

  1. Führen Sie fdisk auf dem Gerät (SD-Karte) aus:
    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. Drucken Sie die aktuelle Partitionstabelle, um den Startsektor zu finden:
    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
    
    Der Wert des Felds Start ist der Startsektor für die Zielpartition. Es sollte mit demselben Partitionsnamen wie in Schritt 1 mit einem Linux Type . In der obigen Ausgabe ist der 8192 .
  3. Löschen Sie die vorhandene Partition:
    Command (m for help): d
    Selected partition 1
    Partition 1 has been deleted.
    
  4. Erstellen Sie die neue Partition mit einer Partitionsnummer von 1, demselben Startsektor wie die vorherige Partition (in diesem Beispiel 8192 ) und einer Größe, die 1 GB unter der SD-Kartengröße liegt. Wenn Sie beispielsweise eine 8-GB-SD-Karte verwenden, geben Sie eine Größe von +7G GB an. Geben Sie für eine 16-GB-SD-Karte eine Größe von +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. Neuere Versionen von fdisk fordern Sie auf, die alte ext4 Signatur der Festplatte zu löschen. Löschen Sie diese Signatur nicht. Andernfalls werden Daten beschädigt und das gesamte Bild wird unbrauchbar.
    Partition #1 contains a ext4 signature.
    
    Do you want to remove the signature [Y]/No: n
    
  6. Schreiben Sie die neue Partitionstabelle auf die Festplatte und beenden Sie 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).
    

Schritt 3: Ändern Sie die Größe des Dateisystems

Verwenden Sie resize2fs um die Größe des Image-Dateisystems auf die neu erweiterte Partitionsgröße zu ändern. Dieses Tool erweitert oder verkleinert ein Dateisystem.

  1. Starten Sie die BBB neu.

    1. Einige Images können beim Neustart einen fsck Fehler auslösen. fsck wird beim Booten automatisch ausgeführt und überprüft die Konsistenz des Dateisystems.

       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. Wenn Sie diesen Fehler erhalten, ignorieren Sie ihn und warten Sie ca. 20 Sekunden, bis die Anmeldeaufforderung angezeigt wird.

  2. Melden Sie sich als root :

    sudo bash
    
  3. Ändern Sie die Größe des Dateisystems für die Zielpartition:

     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. Starten Sie die BBB neu.

  5. Wenn Sie auf das Problem mit fsck gestoßen sind, erstellen Sie das initramfs neu. initramfs ist das anfängliche RAM-Dateisystem, das beim Booten von Linux verwendet wird.

    sudo update-initramfs -u
    update-initramfs: Generating /boot/initrd.img-4.4.54-ti-r93
    
  6. Starten Sie die BBB neu. Es sollte ohne den Fehler fsck booten.

Erstellen und installieren Sie OTBR

Anweisungen zum Erstellen und Installieren von OTBR finden Sie unter Erstellen und Konfigurieren .

Klonen Sie eine neu konfigurierte SD-Karte (optional).

Eine SD-Karte, die mit der veränderten Linux-Partition für BBB neu konfiguriert wurde, kann zur einfacheren Verteilung geklont werden.

Das Problem: Viele GUI-Tools lesen die gesamte SD-Karte - einschließlich des freien Bereichs nach dem Ende der Partition und bis zum letzten Sektor - und bieten keine Möglichkeit, nur einen Teil des Bildes zu lesen. Jede SD-Karte hat eine unterschiedliche Anzahl von guten und schlechten Sektoren, und die Gesamtbyte-Größe der neuen SD-Karte ist möglicherweise kleiner (7,999 GB) als die Größe des Images (8,0 GB). In diesem Fall passt das Bild mit geänderter Größe nicht auf die neue SD-Karte.

Die Lösung: Verwenden Sie eine Partitionsgröße, die etwas kleiner als die volle Größe der SD-Karte ist. Das Image- Verfahren zum Erweitern der SD-Karte verwendet +7G als neue Partitionsgröße für eine 8-GB-SD-Karte. Dies erzeugt ein Image, das klein genug ist, um sicher auf eine vergleichbare 8-GB-SD-Karte zu passen (unabhängig von fehlerhaften Sektoren), während es dennoch groß genug ist, um OTBR zu erstellen und zu installieren.

Verwenden Sie den Endsektor der Datenpartition, um die gesamte Bytegröße des "Datenbilds" zu berechnen und die IMG-Datei bei diesem Byte-Offset abzuschneiden. Die einfachste Methode ist die Verwendung des Befehls " truncate . Der Befehl zum truncate ist ein Standard-Unix-Befehlszeilentool und auch in der MS-Windows Git Bash-Distribution von MSYS enthalten.

  1. Führen Sie als root fdisk auf dem Gerät (SD-Karte) aus:

     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. Drucken Sie die aktuelle Partitionstabelle, um den Endsektor zu finden:

     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
     

    In diesem Beispiel lautet der 14688255 .

  3. Beenden Sie fdisk und berechnen Sie die Gesamtgröße des Bildes:

    1. Die letzte Partition endet im Sektor 14688255 .
    2. Jeder Sektor ist 512 Bytes.
    3. Der Startsektor einer SD-Karte ist immer 0 . Fügen Sie 1 Byte hinzu, um diesen Sektor zu berücksichtigen.
    4. Die Gesamtgröße beträgt: (14688255 + 1) * 512 = 7520387072
  4. Lesen Sie das SD-Karten-Image mit einem Tool wie Etcher oder Win32 Disk Imager in eine .img Datei.

  5. Schneiden Sie die Bilddatei auf die berechnete Gesamtgröße ab:

     root@beaglebone:/home/debian# truncate -s 7520387072  myimage.img
     
  6. Kopieren Sie die abgeschnittene Bilddatei zur Verteilung auf andere SD-Karten.