Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

BeagleBone Черный

Граничный маршрутизатор OpenThread (OTBR) обеспечивает поддержку платформы BeagleBone Black (BBB).

Требования к оборудованию:

  • Внешний адаптер переменного тока 5 В для питания
  • Карта microSD объемом 8 ГБ или больше (в данном руководстве «SD-карта»)
  • Поддерживаемая платформа OpenThread (например, TI CC2652 ) для сетевого подключения Thread в проекте RCP

Чтобы использовать BBB с OTBR:

  1. Скачайте прошивку и запишите образ на SD-карту.
  2. Загрузите BBB с SD-карты .
  3. Разверните образ SD-карты, чтобы освободить место для сборки и установки OTBR.
  4. Скомпилируйте и установите OTBR .

Скачать прошивку

  1. Рекомендуемая прошивка - Stretch для BeagleBone через карту microSD :
    • Debian 9.1 31.08.2017 4 ГБ SD LXQT
    • Имя файла: bone-debian-9.1-lxqt-armhf-2017-08-31-4gb.img.xz
  2. Запишите образ на SD-карту объемом 8 ГБ или больше с помощью такого инструмента, как Etcher или Win32 Disk Imager .

Загрузиться с SD-карты

BeagleBone Черный

BBB может загружаться как со встроенной флэш-памяти, так и с SD-карты. Чтобы использовать BBB с OTBR, вы должны загрузиться с SD-карты, так как встроенная флеш-память недостаточно велика для сборки и установки OTBR.

Чтобы загрузить BBB с SD-карты:

  1. Вставьте SD-карту.
  2. Отключите питание.
  3. Нажмите и удерживайте кнопку BOOT.
  4. Подключите питание.
  5. Когда светодиоды начнут мигать, отпустите кнопку BOOT.

Разверните образ SD-карты

Образы Linux для Beagle Bone Black (BBB) ​​специально созданы небольшими, чтобы их можно было разместить на любой SD-карте объемом 4 ГБ (или во встроенной флеш-памяти на 4 ГБ), а затем при необходимости расширить. Всего свободного места около 300 МБ. Этого места может не хватить для установки и сборки граничного маршрутизатора OpenThread с использованием BBB.

Чтобы решить эту проблему:

  1. Запишите образ Linux на SD-карту большего размера (не менее 8 ГБ).
  2. Расширьте раздел образа Linux размером ~ 4 ГБ до размера чуть меньше размера всей SD-карты. Например, если вы используете SD-карту на 8 ГБ, увеличьте ее до ~ 7 ГБ. Для карты на 16 ГБ увеличьте ее до ~ 15 ГБ.
  3. Загрузите BBB с SD-карты.

Разделы SD-карты

Данные на SD-карте представляют собой непрерывный массив секторов данных. Секторы пронумерованы, начиная с 0 и заканчивая сектором N где-то около XX ГБ, точное последнее число зависит от фактической SD-карты.

Сектор 0 всегда содержит таблицу разделов MS-DOS. Таблица разделов MS-DOS может содержать от 1 до 4 записей о разделах. Каждый раздел представляет собой непрерывную серию секторов от X до Y где-то в пределах SD-карты. Это повторяется для каждого из 4 возможных разделов. Обычно разделы располагаются по порядку с некоторым количеством (от 0 до N ) неиспользуемых секторов в конце. Это «некоторое количество неиспользуемых секторов» ( SOME_N ) может быть использовано в ваших интересах позже.

При записи изображения на SD-карту запись начинается с сектора 0 и прогрессирует до SOME_N , в зависимости от размера изображения. Что вы не можете сделать, так это растянуть раздел вокруг изображения - это невозможно. Вместо этого представьте себе рамку для картины вокруг холста. Рамка изображения - это раздел, а изображение - это данные. Что вы можете сделать, так это заменить существующую рамку изображения на более крупную и расширить холст внутри:

  1. Удалите существующий раздел Linux, не удаляя данные. Вы удалили рамку рисунка, но изображение все еще присутствует на холсте.
  2. Создайте новый раздел Linux, который начинается именно там, где начинался старый, но заканчивается ближе к концу SD-карты. Вы создали рамку для изображения большего размера. Картинка - данные - все еще на холсте. Он не перемещался и не был поврежден этой операцией.
  3. Используйте специальный инструмент для файловой системы, чтобы расширить файловую систему в пределах нового раздела. Холст растягивается, чтобы заполнить новую, более крупную рамку изображения.

Шаг 1. Определите текущий раздел данных

  1. Загрузите BBB с SD-карты.
  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% /
    
    Суффикс p1 в поле Filesystem - это соглашение об именах для Раздела 1. Само устройство - /dev/mmcblk0 . В этом примере свободно только 295 МБ. Недостаточно места для сборки и установки OTBR.

Шаг 2. Создайте новый раздел большего размера

  1. Запустите fdisk на устройстве (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. Распечатайте текущую таблицу разделов, чтобы найти начальный сектор:
    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, с Type Linux . В выходных данных выше начальный сектор - 8192 .
  3. Удалите существующий раздел:
    Command (m for help): d
    Selected partition 1
    Partition 1 has been deleted.
    
  4. Создайте новый раздел, используя номер раздела 1, тот же начальный сектор предыдущего раздела ( 8192 в этом примере) и размер, который на 1 ГБ меньше размера SD-карты. Например, при использовании SD-карты на 8 ГБ укажите размер +7G 7 ГБ. Для SD-карты на 16 ГБ укажите размер +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 при перезагрузке. 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 , которая является исходной файловой системой RAM, используемой при загрузке Linux.

    sudo update-initramfs -u
    update-initramfs: Generating /boot/initrd.img-4.4.54-ti-r93
    
  6. Перезагрузите BBB. Он должен загрузиться без ошибки fsck .

Сборка и установка OTBR

Инструкции по созданию и установке OTBR см. В разделе « Сборка и настройка» .

Клонировать перенастроенную SD-карту (необязательно)

SD-карту, перенастроенную с измененным размером раздела Linux для BBB, можно клонировать для упрощения распространения.

Проблема: многие инструменты с графическим интерфейсом читают всю SD-карту, включая свободную область после конца раздела и вплоть до последнего сектора, и не предлагают способ чтения только части изображения. Каждая SD-карта имеет разное количество хороших и плохих секторов, и общий размер байта новой SD-карты может быть меньше (7,999 ГБ), чем размер изображения с измененным размером (8,0 ГБ). В этом случае изображение с измененным размером не помещается на новой SD-карте.

Решение: используйте размер раздела немного меньше, чем полный размер SD-карты. В процедуре « Развернуть образ SD-карты» в качестве нового размера раздела для SD-карты 8 ГБ используется +7G . Это создает образ, который достаточно мал, чтобы безопасно поместиться на любой сопоставимой SD-карте на 8 ГБ (независимо от поврежденных секторов), но при этом остается достаточно большим для сборки и установки OTBR.

Используйте конечный сектор раздела данных, чтобы вычислить полный размер байта «образа данных» и усечь файл IMG с этим байтовым смещением. Самый простой способ - использовать команду truncate . Команда truncate - это стандартный инструмент командной строки Unix, который также присутствует в дистрибутиве MS-Windows Git Bash MSYS.

  1. От имени пользователя root запустите fdisk на устройстве (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. Распечатайте текущую таблицу разделов, чтобы найти конечный сектор:

    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. Считайте образ SD-карты в файл .img с помощью такого инструмента, как Etcher или Win32 Disk Imager .

  5. Обрежьте файл изображения до рассчитанного общего размера:

    root@beaglebone:/home/debian# truncate -s 7520387072  myimage.img
    
  6. Скопируйте файл усеченного изображения на другие SD-карты для распространения.