Содержание
Урок 1. Первый проект
Урок 2. Управление кнопками
Урок 3. Подключение LCD
Урок 4. Использование ШИМ
Урок 5. Таймеры
Урок 6.1. Статическая индикация
Урок 6.2. Динамическая индикация
Урок 7.1. Генерация звука
Урок 7.2. Генерация звука. Продолжение
Урок 8.1. Передача данных через UART
Урок 8.2. Передача данных через UART. Продолжение»
Урок 9. Передача данных через SPI
Урок 10. Изучение АЦП. Простой вольтметр
Урок 11. Получение синуса при помощи ШИМ
Урок 12. Измерение температуры
Урок 13. Внешние прерывания.
Урок 14. Использование отладчика
Урок 15.1. Управление инкрементальным энкодером
Урок 15.2. Управление громкостью, при помощи энкодера
Урок 16. Управление RGB светодиодом
Урок 17. Использование ИК
Урок 18.1. Знакомство с графическим дисплеем
Урок 18.2 Вывод изображения на графический дисплей
Урок 18.3 Вывод русскоязычного текста
Урок 19. Формирование сигнала, при помощи ЦАП (R2R)
Урок 20. Опрос матричной клавиатуры
Урок 21. Сторожевой таймер
Урок 22.1 Воспроизведение wav. Введение.
Урок 22.2 Воспроизведение wav. Продолжение.
Урок 23.1 Работа с внешней памятью
Урок 23.2 Работа с файловой системой Fat

Собственно, зачем нужно собирать самому дистрибутив, когда есть готовый Raspbian? Попытаемся ответить на этот вопрос.

Основная причина, конечно же в том, что в последнее время, я более плотно занялся драйверами. Само собой нужны исходники ядра, ибо периодически приходится пересобирать его, дабы включить какую нибудь фичу. Пример уже приводил, поддержка i2c port expanderа.

Кроме того, для некоторых задач, нужно собрать минимальную систему, т.к. чем меньше лишних программ тем надежнее считается сборка. Пока у меня нет статистики на этот счет. Однако, если сборка будет занимать меньше дискового пространства, а также меньше жрать системных ресурсов, то это может повлиять на цену железа.

Так же полезная фича, что вместе с рабочим образом вы сразу можете получить тулчейн. Ну и главное, чтобы при минимальных усилиях, сборка работала на разных платах. Для меня это оказалось очень актуально, так как на данный момент доводится работать с разными процами.

И пример того, как можно получить готовую систему. Сразу предупреждаю, что под сборку нужно выделить не менее 50Гб, если не больше. В данном примере собирается минимальный базовый образ, без гуя. Качаем исходники yocto.

git clone -b pyro git://git.yoctoproject.org/poky

Затем переходим в каталог исходников

cd poky

Далее качаем слои, которые специфичны именно для raspberry.

git clone -b pyro git://git.yoctoproject.org/meta-raspberrypi

Настраиваем переменные окружения (запускать в папке poky)

source oe-init-build-env

после этого появится папка build, где будет лежать все что относится к нашей сборке. В файл conf/bblayers.conf, нужно добавить путь для малины, ваш путь будет естественно свой.

/home/user/poky/meta-raspberrypi \

Полность мой файл conf/bblayers.conf выглядит так(у вас может отличаться в зависимости от версии):

# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
LCONF_VERSION = "6"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= " \
  /media/andy/dtools/rpi_yocto/poky/meta \
  /media/andy/dtools/rpi_yocto/poky/meta-yocto \
  /media/andy/dtools/rpi_yocto/poky/meta-yocto-bsp \
  /media/andy/dtools/rpi_yocto/poky/meta-raspberrypi \
  "
BBLAYERS_NON_REMOVABLE ?= " \
  /media/andy/dtools/rpi_yocto/poky/meta \
  /media/andy/dtools/rpi_yocto/poky/meta-yocto \
  "

В файле conf/local.conf нужно указать модель вашей платы, у меня это вторая малина.

MACHINE ??= "raspberrypi2"

Внутри папки build запускаем сборку

bitbake rpi-basic-image

Если не хватает каких то пакетов доустанавливаем.

sudo apt-get install texinfo gawk chrpath

poky_build

Собирается это дело в первый раз, порядка пары часов, особенно долго скачивается файл bcm2835.
yocto_ready

По итогу в папке
poky/build/tmp/deploy/images/raspberrypi2 появится файл rpi-basic-image-raspberrypi2.rpi-sdimg, размером 130Мб, который закатываем на карту памяти

sudo dd if=rpi-basic-image-raspberrypi2.rpi-sdimg | pv | sudo dd of=/dev/sdb bs=16M

и радуемся новой системе.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Счетчик
Яндекс.Метрика