Google is committed to advancing racial equity for Black communities. See how.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

BeagleBone Black

OpenThread Border Router (OTBR) zapewnia obsługę platformy BeagleBone Black (BBB).

Wymagania sprzętowe:

  • Zewnętrzny zasilacz sieciowy 5 V do zasilania
  • Karta microSD o pojemności 8 GB lub większej („karta SD” w tym podręczniku)
  • Obsługiwana platforma OpenThread (taka jak TI CC2652 ) dla połączeń sieciowych Thread w projekcie RCP

Aby użyć BBB z OTBR:

  1. Pobierz oprogramowanie i zapisz obraz na karcie SD.
  2. Uruchom BBB z karty SD .
  3. Rozwiń obraz karty SD, aby uzyskać wystarczającą ilość miejsca do zbudowania i zainstalowania OTBR.
  4. Zbuduj i zainstaluj OTBR .

Pobierz oprogramowanie układowe

  1. Zalecane oprogramowanie układowe to Stretch dla BeagleBone za pośrednictwem karty microSD :
    • Debian 9.1 2017-08-31 4 GB SD LXQT
    • Nazwa bone-debian-9.1-lxqt-armhf-2017-08-31-4gb.img.xz : bone-debian-9.1-lxqt-armhf-2017-08-31-4gb.img.xz
  2. Zapisz obraz na karcie SD o pojemności 8 GB lub większej za pomocą narzędzia takiego jak Etcher lub Win32 Disk Imager .

Uruchom z karty SD

BeagleBone Black

BBB można uruchomić z wbudowanej pamięci flash lub karty SD. Aby używać BBB z OTBR, musisz uruchomić komputer z karty SD, ponieważ wbudowana pamięć flash nie jest wystarczająco duża, aby zbudować i zainstalować OTBR.

Aby uruchomić BBB z karty SD:

  1. Włóż kartę SD.
  2. Odłącz zasilanie.
  3. Naciśnij i przytrzymaj przycisk BOOT.
  4. Podłącz zasilanie.
  5. Gdy diody LED zaczną migać, zwolnij przycisk BOOT.

Rozwiń obraz karty SD

Obrazy Linuksa dla Beagle Bone Black (BBB) ​​są celowo tworzone jako małe, aby obraz można było umieścić na dowolnej karcie SD o pojemności 4 GB (lub wbudowanej pamięci Flash 4 GB), a następnie w razie potrzeby rozszerzyć. W sumie jest około 300 MB wolnego miejsca. To może nie wystarczyć do zainstalowania i zbudowania routera OpenThread Border Router przy użyciu BBB.

By rozwiązać ten problem:

  1. Zapisz obraz Linuksa na większej karcie SD (co najmniej 8 GB).
  2. Rozwiń partycję systemu Linux o wielkości ~ 4 GB do rozmiaru nieco mniejszego niż rozmiar całej karty SD. Na przykład, jeśli używasz karty SD o pojemności 8 GB, rozszerz ją do ~ 7 GB. W przypadku karty 16 GB rozwiń ją do ~ 15 GB.
  3. Uruchom BBB z karty SD.

Partycje kart SD

Dane na karcie SD to w rzeczywistości ciągła tablica sektorów danych. Sektory są ponumerowane zaczynając od 0 i kończąc na Sektorze N gdzieś około XX GB, dokładna ostatnia liczba zależy od faktycznej karty SD.

Sektor 0 zawsze zawiera tablicę partycji MS-DOS. Tablica partycji MS-DOS może zawierać od 1 do 4 pozycji partycji. Każda partycja to ciągła seria sektorów od X do Y gdzieś w granicach karty SD. Powtarza się to dla każdej z 4 możliwych partycji. Zazwyczaj partycje są rozmieszczone w kolejności, z pewną liczbą (od 0 do N ) nieużywanych sektorów na końcu. Tę „pewną liczbę nieużywanych sektorów” ( SOME_N ) można później wykorzystać na swoją korzyść.

Podczas zapisywania obrazu na karcie SD zapis rozpoczyna się w sektorze 0 i postępuje do SOME_N , w zależności od rozmiaru obrazu. Nie możesz rozciągnąć partycji wokół obrazu - to niemożliwe. Zamiast tego pomyśl o ramie obrazu wokół płótna. Ramka obrazu to partycja, a obraz to dane. Możesz zastąpić istniejącą ramkę obrazu większą i rozszerzyć obszar roboczy w:

  1. Usuń istniejącą partycję Linuksa bez usuwania danych. Usunąłeś ramkę obrazu, ale obraz jest nadal obecny na płótnie.
  2. Utwórz nową partycję Linuksa, która zaczyna się dokładnie w miejscu, w którym zaczęła się stara, ale kończy się blisko końca karty SD. Utworzyłeś większą ramkę obrazu. Obraz - dane - wciąż jest na płótnie. Nie został przeniesiony i nie został uszkodzony przez tę operację.
  3. Użyj narzędzia specyficznego dla systemu plików, aby rozszerzyć system plików w granicach nowej partycji. Płótno jest rozciągnięte, aby wypełnić nową, większą ramkę obrazu.

Krok 1: Zidentyfikuj bieżącą partycję danych

  1. Uruchom BBB z karty SD.
  2. Zaloguj się jako root :
    sudo bash
    
  3. Zidentyfikuj partycję danych karty SD:
    root@beaglebone:/home/debian# df -hT /
    Filesystem     Type  Size  Used Avail Use% Mounted on
    /dev/mmcblk0p1 ext4  3.3G  2.8G  295M  91% /
    
    Przyrostek p1 w polu Filesystem jest konwencją nazewnictwa partycji 1. Samo urządzenie to /dev/mmcblk0 . W tym przykładzie wolne jest tylko 295 MB. To za mało miejsca na zbudowanie i zainstalowanie OTBR.

Krok 2: Utwórz nową, większą partycję

  1. Uruchom fdisk na urządzeniu (karta 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. Wydrukuj bieżącą tablicę partycji, aby znaleźć sektor początkowy:
    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
    
    Wartość pola Start to sektor początkowy partycji docelowej. Powinien być wymieniony z taką samą nazwą partycji, jak w kroku 1, z Type systemu Linux . Na powyższym wyjściu sektor początkowy to 8192 .
  3. Usuń istniejącą partycję:
    Command (m for help): d
    Selected partition 1
    Partition 1 has been deleted.
    
  4. Utwórz nową partycję, używając numeru partycji 1, tego samego sektora początkowego poprzedniej partycji (w tym przykładzie 8192 ) i rozmiaru o 1 GB mniejszego niż rozmiar karty SD. Na przykład, jeśli używasz karty SD o pojemności 8 GB, określ rozmiar +7G . W przypadku karty SD o pojemności 16 GB określ rozmiar +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. Nowsze wersje fdisk monit o wymazanie starego podpisu ext4 dysku. Nie usuwaj tego podpisu. W przeciwnym razie dane zostaną uszkodzone, a cały obraz stanie się bezużyteczny.
    Partition #1 contains a ext4 signature.
    
    Do you want to remove the signature [Y]/No: n
    
  6. Zapisz nową tablicę partycji na dysk i zamknij 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).
    

Krok 3: Zmień rozmiar systemu plików

Użyj resize2fs aby zmienić rozmiar systemu plików obrazu do rozmiaru nowo rozszerzonej partycji. To narzędzie rozszerza lub zmniejsza system plików.

  1. Zrestartuj BBB.

    1. Niektóre obrazy mogą generować błąd fsck po ponownym uruchomieniu. fsck uruchamia się automatycznie podczas rozruchu i sprawdza spójność systemu plików.

       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. Jeśli pojawi się ten błąd, zignoruj ​​go i poczekaj około 20 sekund, aż pojawi się monit logowania.

  2. Zaloguj się jako root :

    sudo bash
    
  3. Zmień rozmiar systemu plików dla partycji docelowej:

     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. Zrestartuj BBB.

  5. Jeśli napotkałeś problem z fsck , initramfs , który jest początkowym systemem plików RAM używanym podczas uruchamiania Linuksa.

    sudo update-initramfs -u
    update-initramfs: Generating /boot/initrd.img-4.4.54-ti-r93
    
  6. Zrestartuj BBB. Powinien uruchomić się bez błędu fsck .

Zbuduj i zainstaluj OTBR

Zobacz Kompilacja i konfiguracja, aby uzyskać instrukcje dotyczące tworzenia i instalowania OTBR.

Sklonuj ponownie skonfigurowaną kartę SD (opcjonalnie)

Kartę SD ponownie skonfigurowaną z partycją Linuksa o zmienionym rozmiarze dla BBB można sklonować w celu łatwiejszej dystrybucji.

Problem: wiele narzędzi GUI odczytuje całą kartę SD - łącznie z wolnym obszarem po zakończeniu partycji i aż do ostatniego sektora - i nie oferuje możliwości odczytu tylko części obrazu. Każda karta SD ma inną liczbę dobrych i złych sektorów, a całkowity rozmiar bajtów nowej karty SD może być mniejszy (7,999 GB) niż obraz o zmienionym rozmiarze (8,0 GB). W takim przypadku obraz o zmienionym rozmiarze nie zmieści się na nowej karcie SD.

Rozwiązanie: użyj rozmiaru partycji, który jest nieco mniejszy niż pełny rozmiar karty SD. Procedura Rozszerz obraz karty SD używa +7G jako nowego rozmiaru partycji dla karty SD o pojemności 8 GB. Daje to obraz, który jest wystarczająco mały, aby bezpiecznie zmieścić się na dowolnej porównywalnej karcie SD o pojemności 8 GB (niezależnie od uszkodzonych sektorów), a jednocześnie jest wystarczająco duży, aby zbudować i zainstalować OTBR.

Użyj końcowego sektora partycji danych, aby obliczyć całkowity rozmiar bajtów „obrazu danych” i obetnij plik IMG z tym przesunięciem bajtów. Najprostszą metodą jest użycie polecenia truncate . Polecenie truncate jest standardowym narzędziem wiersza poleceń systemu Unix i jest również obecne w dystrybucji MSYS MS-Windows Git Bash.

  1. Jako root uruchom fdisk na urządzeniu (karcie 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. Wydrukuj bieżącą tablicę partycji, aby znaleźć końcowy sektor:

     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
     

    W tym przykładzie końcowym sektorem jest 14688255 .

  3. Zamknij fdisk i oblicz całkowity rozmiar obrazu:

    1. Ostatnia partycja kończy się w sektorze 14688255 .
    2. Każdy sektor ma 512 bajtów.
    3. Początkowy sektor karty SD to zawsze 0 . Dodaj 1 bajt, aby uwzględnić ten sektor.
    4. Całkowity rozmiar to: (14688255 + 1) * 512 = 7520387072
  4. Wczytaj obraz karty SD do pliku .img , używając narzędzia takiego jak Etcher lub Win32 Disk Imager .

  5. Skróć plik obrazu do obliczonego całkowitego rozmiaru:

     root@beaglebone:/home/debian# truncate -s 7520387072  myimage.img
     
  6. Skopiuj obcięty plik obrazu na inne karty SD w celu dystrybucji.