Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

BeagleBone Black

OpenThread Border Router (OTBR) fornisce supporto per la piattaforma BeagleBone Black (BBB).

Requisiti hardware:

  • Adattatore CA esterno da 5 V per l'alimentazione
  • Una scheda microSD da 8 GB o più grande ("scheda SD" in questa guida)
  • Una piattaforma OpenThread supportata (come TI CC2652 ) per la connettività di rete Thread in un progetto RCP

Per utilizzare BBB con OTBR:

  1. Scarica il firmware e scrivi l'immagine sulla scheda SD.
  2. Avvia BBB dalla scheda SD .
  3. Espandi l'immagine della scheda SD per creare spazio sufficiente per creare e installare OTBR.
  4. Crea e installa OTBR .

Scarica il firmware

  1. Il firmware consigliato è Stretch per BeagleBone tramite scheda microSD :
    • Debian 9.1 2017-08-31 SD LXQT da 4 GB
    • Nome file: bone-debian-9.1-lxqt-armhf-2017-08-31-4gb.img.xz
  2. Scrivi l'immagine su una scheda SD da 8 GB o più grande utilizzando uno strumento come Etcher o Win32 Disk Imager .

Avvia dalla scheda SD

BeagleBone Black

BBB può essere avviato dalla memoria flash integrata o dalla scheda SD. Per utilizzare BBB con OTBR, è necessario eseguire l'avvio dalla scheda SD, poiché la memoria flash integrata non è abbastanza grande per creare e installare OTBR.

Per avviare BBB dalla scheda SD:

  1. Inserisci la scheda SD.
  2. Scollegare l'alimentazione.
  3. Tieni premuto il pulsante BOOT.
  4. Collega l'alimentazione.
  5. Quando i LED iniziano a lampeggiare, rilasciare il pulsante BOOT.

Espandi l'immagine della scheda SD

Le immagini Linux per Beagle Bone Black (BBB) ​​sono appositamente create in piccolo in modo che l'immagine possa essere collocata su qualsiasi scheda SD da 4 GB (o la memoria flash da 4 GB integrata), quindi espansa secondo necessità. In totale ci sono circa 300 MB di spazio libero. Potrebbe non essere sufficiente spazio per installare e costruire OpenThread Border Router utilizzando BBB.

Risolvere questo problema:

  1. Scrivi l'immagine Linux su una scheda SD più grande (almeno 8 GB).
  2. Espandi la partizione Linux da ~ 4 GB dell'immagine a una dimensione leggermente inferiore alla dimensione dell'intera scheda SD. Ad esempio, se si utilizza una scheda SD da 8 GB, espanderla a ~ 7 GB. Per una scheda da 16 GB, espanderla a ~ 15 GB.
  3. Avvia il BBB dalla scheda SD.

Partizioni della scheda SD

I dati su una scheda SD sono effettivamente una serie continua di settori di dati. I settori sono numerati a partire da 0 e terminano nel settore N da qualche parte intorno a XX GB, l'ultimo numero esatto dipende dalla scheda SD effettiva.

Il settore 0 contiene sempre una tabella delle partizioni MS-DOS. Una tabella delle partizioni MS-DOS può contenere da 1 a 4 voci di partizione. Ogni partizione è una serie continua di settori da X a Y da qualche parte entro i limiti della scheda SD. Ciò si ripete per ciascuna delle 4 possibili partizioni. In genere, le partizioni sono posizionate in ordine, con un certo numero (da 0 a N ) di settori inutilizzati alla fine. Questo "un certo numero di settori inutilizzati" ( SOME_N ) può essere utilizzato a tuo vantaggio in seguito.

Quando si scrive un'immagine su una scheda SD, la scrittura inizia dal Settore 0 e procede a SOME_N , a seconda delle dimensioni dell'immagine. Quello che non puoi fare è allungare la partizione attorno all'immagine: non è possibile. Invece, pensa a una cornice intorno a una tela. La cornice è la partizione e l'immagine sono i dati. Quello che puoi fare è sostituire la cornice dell'immagine esistente con una più grande ed espandere la tela all'interno:

  1. Elimina la partizione Linux esistente senza eliminare i dati. Hai rimosso la cornice del quadro, ma l'immagine è ancora presente sulla tela.
  2. Crea una nuova partizione Linux che inizi esattamente dove è iniziata quella vecchia, ma finisca vicino alla fine della scheda SD. Hai creato una cornice più grande. L'immagine - i dati - è ancora lì sulla tela. Non si è spostato e non è stato danneggiato da questa operazione.
  3. Utilizzare uno strumento specifico per il file system per espandere il file system entro i limiti della nuova partizione. La tela viene allungata per riempire la nuova cornice più grande.

Passaggio 1: identificare la partizione dati corrente

  1. Avvia il BBB dalla scheda SD.
  2. Accedi come root :
    sudo bash
    
  3. Identificare la partizione dati della scheda SD:
    root@beaglebone:/home/debian# df -hT /
    Filesystem     Type  Size  Used Avail Use% Mounted on
    /dev/mmcblk0p1 ext4  3.3G  2.8G  295M  91% /
    
    Il suffisso p1 nel campo Filesystem è la convenzione di denominazione per la partizione 1. Il dispositivo stesso è /dev/mmcblk0 . In questo esempio, solo 295 MB sono liberi. Questo spazio non è sufficiente per creare e installare OTBR.

Passaggio 2: crea la nuova partizione più grande

  1. Esegui fdisk sul dispositivo (scheda 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. Stampa la tabella delle partizioni corrente per trovare il settore iniziale:
    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
    
    Il valore del campo Start è il settore iniziale per la partizione di destinazione. Dovrebbe essere elencato con lo stesso nome di partizione del passaggio 1, con un Type di Linux . Nell'output sopra, il settore di partenza è 8192 .
  3. Elimina la partizione esistente:
    Command (m for help): d
    Selected partition 1
    Partition 1 has been deleted.
    
  4. Crea la nuova partizione, utilizzando un numero di partizione 1, lo stesso settore iniziale della partizione precedente ( 8192 in questo esempio) e una dimensione inferiore di 1 GB rispetto alla dimensione della scheda SD. Ad esempio, se si utilizza una scheda SD da 8 GB, specificare una dimensione di +7G . Per una scheda SD da 16 GB, specificare una dimensione di +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. Le versioni più recenti di fdisk richiedono di cancellare la vecchia firma ext4 disco. Non cancellare questa firma. In caso contrario, i dati vengono danneggiati e l'intera immagine diventa inutile.
    Partition #1 contains a ext4 signature.
    
    Do you want to remove the signature [Y]/No: n
    
  6. Scrivi la nuova tabella delle partizioni su disco ed esci da 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).
    

Passaggio 3: ridimensiona il file system

Usa resize2fs per ridimensionare il file system dell'immagine alla dimensione della partizione appena espansa. Questo strumento espande o riduce un file system.

  1. Riavvia il BBB.

    1. Alcune immagini potrebbero generare un errore fsck al riavvio. fsck viene eseguito automaticamente all'avvio e verifica la coerenza del file system.

      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. Se ricevi questo errore, ignoralo e attendi circa 20 secondi affinché venga visualizzato il prompt di accesso.

  2. Accedi come root :

    sudo bash
    
  3. Ridimensionare il file system per la partizione di destinazione:

    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. Riavvia il BBB.

  5. Se hai riscontrato il problema di fsck , ricostruisci initramfs , che è il file system RAM iniziale utilizzato all'avvio di Linux.

    sudo update-initramfs -u
    update-initramfs: Generating /boot/initrd.img-4.4.54-ti-r93
    
  6. Riavvia il BBB. Dovrebbe avviarsi senza l'errore fsck .

Crea e installa OTBR

Vedere Build and Configuration per istruzioni sulla creazione e l'installazione di OTBR.

Clona una scheda SD riconfigurata (opzionale)

Una scheda SD riconfigurata con la partizione Linux ridimensionata per BBB può essere clonata per una distribuzione più semplice.

Il problema: molti strumenti GUI leggono l'intera scheda SD, inclusa l'area libera dopo la fine della partizione e fino all'ultimo settore, e non offrono un modo per leggere solo una parte dell'immagine. Ogni scheda SD ha un numero diverso di settori buoni e danneggiati e la dimensione totale in byte della nuova scheda SD potrebbe essere inferiore (7,999 GB) rispetto all'immagine ridimensionata (8,0 GB). In questo caso, l'immagine ridimensionata non può adattarsi alla nuova scheda SD.

La soluzione: utilizzare una dimensione della partizione leggermente inferiore alla dimensione totale della scheda SD. La procedura di espansione dell'immagine della scheda SD utilizza +7G come nuova dimensione della partizione per una scheda SD da 8 GB. Ciò produce un'immagine abbastanza piccola da adattarsi in modo sicuro a qualsiasi scheda SD da 8 GB comparabile (indipendentemente dai settori danneggiati) pur essendo abbastanza grande per costruire e installare OTBR.

Utilizzare il settore finale della partizione dati per calcolare l'intera dimensione in byte dell '"immagine dati" e troncare il file IMG in corrispondenza di tale offset di byte. Il metodo più semplice è utilizzare il comando truncate . Il comando truncate è uno strumento da riga di comando Unix standard ed è anche presente nella distribuzione Git Bash di MSYS per MS-Windows.

  1. Come root , esegui fdisk sul dispositivo (scheda 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. Stampa la tabella delle partizioni corrente per trovare il settore finale:

    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 questo esempio, il settore finale è 14688255 .

  3. Esci da fdisk e calcola la dimensione totale dell'immagine:

    1. L'ultima partizione termina al settore 14688255 .
    2. Ogni settore è di 512 byte.
    3. Il settore iniziale di una scheda SD è sempre 0 . Aggiungi 1 byte per tenere conto di questo settore.
    4. La dimensione totale è: (14688255 + 1) * 512 = 7520387072
  4. Leggi l'immagine della scheda SD in un file .img , utilizzando uno strumento come Etcher o Win32 Disk Imager .

  5. Troncare il file immagine alla dimensione totale calcolata:

    root@beaglebone:/home/debian# truncate -s 7520387072  myimage.img
    
  6. Copia il file immagine troncato su altre schede SD per la distribuzione.