Embedded Linux на BeagleBone Black

BeagleBone Black — отличный выбор для embedded проектов, где сочетается высокая производительность и большие возможности для подключения внешней периферии, построена отличная работа с сетью, и хороший инструментарий Linux.

Характеристики устройства:

  • Главный процессор AM335X 1GHz ARM Cortex-A8 (Sitara AM3359AZCZ100)
  • Графический процессор SGX530
  • 2x PRU 32-bit RISC CPUs
  • 512 MB оперативной памяти DDR3L 800MHz
  • флеш-память 2GB, (eMMC)
  • 2х High Speed USB 2.0 порта: Host и Device
  • Последовательный порт UART(RS-232) TTL, 3.3В
  • MicroSD
  • HDMI
  • Ethernet
  • 2 колодки по 46 пинов для подключения электронных модулей и компонентов

Первоначально на плате установлен Ångström Linux. Данный дистрибутив стартует за 10 секунд после подачи питания, имеет настроенный демон Avahi, благодаря которому вы можете подключиться к плате по адресу «beaglebone.local», предоставляет облачную среду разработки Cloud9 IDE.

Установка Embedded Linux на BeagleBone Black.

  • ARM кросс компилятор: GCC (Linaro GCC). Необходимо скачать и распаковать архив.

~/

Проверяем правильность установки и работоспособность дистрибутива.
~/

  • Загрузчик : U-Boot.

Скачиваем дистрибутив
~/

Патчим дистрибутив
~/u-boot

Настраиваем и собираем загрузчик 2-го уровня.

  • Ядро Linux.

Для сборки ядра, модулей ядра и дерева устройств будем использовать скрипт build_kernel.sh.
Скачиваем дистрибутив от RobertCNelson.
~/

Для am33x-v4.4 (Longterm 4.4.x):
~/bb-kernel

Для am33x-rt-v4.4 (Longterm 4.4.x + Real-Time Linux):
~/bb-kernel

Для am33x-v4.8 (стабильная версия):
~/bb-kernel

Для am33x-v4.9 (Пропатченная версия):
~/bb-kernel

Собираем проект:
~/bb-kernel/

  • TI BSP.

~/

Для TI v4.4.x:
~/ti-linux-kernel-dev

Для TI v4.4.x: Real-Time
~/ti-linux-kernel-dev

Для TI v4.9.x:
~/ti-linux-kernel-dev

Собираем проект:
~/ti-linux-kernel-dev/

  • RootFS (Root File System).

Debian 8
Пользователь/Пароль
root/root
debian/temppwd
Скачиваем rootfs:
~/

Проверяем скаченный дистрибутив:
~/

Распаковываем скаченный дистрибутив:
~/

  • RootFS (Root File System) небольшого размера .

Debian 8 (небольшого объема около 100 MB для пользовательских приложений).
Пользователь/Пароль
root/root
debian/temppwd
Скачиваем rootfs:
~/

Проверяем скаченный дистрибутив:
~/

Распаковываем скаченный дистрибутив:
~/

  • Ubuntu 16.04 LTS.

Пользователь/Пароль
ubuntu/temppwd
Скачиваем rootfs:
~/

Проверяем скаченный дистрибутив:
~/

Распаковываем скаченный дистрибутив:
~/

  • Установка и подготовка microSD карты для Embedded Linux на BeagleBone Black
  • Необходимо принять во внимание, что карта памяти в системе использует DISK=/dev/mmcblk0

  • Отчищаем область таблицы и меток на карте памяти

Установка загрузчика:
~/

Формирования разделов флеш памяти:

Форматируем раздела памяти.

Монтируем разделы памяти.

Резервная копия для загрузчика.
~/

Если у Вас нет желания изменять загрузчик необходимо создать текстовый файл со следующей спецификацией.
~/uEnv.txt

~/

Установка ядра и корневой файловой системы.
Перед установкой необходимо посмотреть имя созданного образа для переменной kernel_version.

Копируем корневую файловую систему
~/

Устанавливаем uname_r в /boot/uEnv.txt

Копируем образ ядра.
~/

Копируем дерево устройств.
~/

Копируем модули ядра.
~/

Systems Table (/etc/fstab)
Настраиваем fstab.
fstab (file systems table) — один из конфигурационных файлов в UNIX-подобных системах, который содержит информацию о различных файловых системах и устройствах хранения информации компьютера; описывает, как диск (раздел) будет использоваться или как будет интегрирован в систему.

Полный путь к файлу — /etc/fstab.
/etc/fstab

Сеть.

Редактируем файл сети.
/etc/network/interfaces

Сеть: Использование общей SD карты для работы с использованием нескольких BeagleBone.

/etc/udev/rules.d/70-persistent-net.rules

Отсоединяем карту памяти.

Распиновка BBB.

Распиновка UART/Debug BBB.

Проверим работоспособность, для этого будем включать светодиоды.
GPIO в Linux поддерживаются через sysfs.