Собственно, зачем нужно собирать самому дистрибутив, когда есть готовый 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
Собирается это дело в первый раз, порядка пары часов, особенно долго скачивается файл bcm2835.
По итогу в папке
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
и радуемся новой системе.
Добавить комментарий