Ссылки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
https://autobuilder.yoctoproject.org/typhoon/#/ - имиджи, билды https://docs.yoctoproject.org/2.5/mega-manual/mega-manual.html - хороший мануал от разработчиков yocto https://www.yoctoproject.org/ https://layers.openembedded.org/layerindex/branch/master/layers/ https://git.yoctoproject.org/ https://youtu.be/EVQ47PvlORE - не плохое видео на тему установки и настройки yocto https://www.embeddedts.com/blog/building-a-yocto-image-for-nxp-i-mx6-products/ https://docs.yoctoproject.org/brief-yoctoprojectqs/index.html https://wiki.yoctoproject.org/wiki/Main_Page https://www.youtube.com/watch?v=yuE7my3KOpo&ab_channel=YoctoProject https://www.youtube.com/watch?v=iZ05TTyzGHk&ab_channel=YoctoProject https://docs.yoctoproject.org/2.1/ref-manual/ref-manual.html#ref-images https://docs.yoctoproject.org/2.1/bitbake-user-manual/bitbake-user-manual.html#bitbake-user-manual-command https://docs.yoctoproject.org/2.1/ref-manual/ref-manual.html#var-PACKAGE_CLASSES https://docs.yoctoproject.org/2.1/dev-manual/dev-manual.html#dev-manual-newbie https://docs.yoctoproject.org/2.1/dev-manual/dev-manual.html#dev-manual-model https://docs.yoctoproject.org/2.1/dev-manual/dev-manual.html#dev-manual-intro |
Требования:
1 2 3 4 5 |
50 свободное место под yocto (на самом деле 150+ желательно, зависит от проекта) Рекомендованные дистрибутивы linux: Fedora, openSUSE, CentOS, Debian, Ubuntu Git 1.8.3.1 или выше tar 1.27 или выше Python 3.4.0 или выше |
Добавляем родные репы в /etc/apt/source.list:
1 2 3 4 5 6 7 8 9 10 11 |
deb http://deb.debian.org/debian bullseye main contrib non-free deb-src http://deb.debian.org/debian bullseye main contrib non-free deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free deb http://deb.debian.org/debian bullseye-updates main contrib non-free deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free deb http://deb.debian.org/debian bullseye-backports main contrib non-free deb-src http://deb.debian.org/debian bullseye-backports main contrib non-free |
отключаем ipv6 / мне он там не нужен (:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
0. Добавляем в конец vim /etc/sysctl.conf --------------------- #disable ipv6 settins net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 net.ipv6.conf.enp1s0.disable_ipv6 = 1 -------------------- Сохраняем файл. 1. Применяем: sysctl -p |
Для удобства доступа к серверу yocto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
0. что бы не водить пароли на своем ПК можно сгенерировать ключ и отправить публичный ключ на будущий сервер yocto ssh-keygen - генерируем ключи ssh-copy-id user@ip - копирование публичного ключа 1. что бы каждый раз не вводить пароли при sudo можно разрешить visudo ----------------- ... <-- какой то текст выше # User privilege specification root ALL=(ALL:ALL) ALL user ALL=(ALL) NOPASSWD: ALL <--- пишем примерно следующие, где user, ваш пользователь ... <-- какой то текст ниже ----------------- 2. Добавление пользователя в группу root usermod -aG sudo user 4. Настройки для vim cat > ~/.vimrc << "EOF" "color blue "color evening color morning set mouse=v syntax on EOF 5. Добавление swap / я создаю виртуалки без раздела подкачки fallocate -l 1G /.swap chmod 600 /.swap mkswap /.swap echo '/.swap none swap defaults 0 0' >> /etc/fstab swapon /.swap |
Установка необходимых пакетов для yocto на debian 11:
1 |
apt install vim sudo gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 python3-pip python3-pyelftools python3-pexpect xz-utils debianutils iputils-ping libsdl1.2-dev xterm |
Версия python 3+ по умолчанию:
1 2 |
update-alternatives --list python - проверяем update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1 |
Для любителей поставить русскую local нужно добавить еще local en_US.UTF-8:
1 2 3 4 5 6 7 8 9 |
0. vim /etc/locale.gen ------------------- en_US.UTF-8 <---------- найти и раскоментить ------------------ 1. Перечитать local: locale-gen На этом все, теперь у вас должна появится local en_US.UTF-8 |
Установка yocto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
0. В домашнем каталоге создаем каталог yocto и входим в него mkdir yocto cd yocto 1. Создаем каталог и начинаем скачивать пакеты для сборки yocto mkdir sources cd sources git clone git://git.yoctoproject.org/poky -b dunfell git clone git://git.yoctoproject.org/meta-raspberrypi -b dunfell git clone https://git.openembedded.org/meta-openembedded -b dunfell 2. Выполняем инициализацию окружения !!! после применения команд ниже будет создан каталог build !!! если мы хотим использовать свое имя для каталога build то вводим ". sources/poky/oe-init-build-env YOU_NAME" cd ~/yocto . sources/poky/oe-init-build-env 3. настраиваем слои: !!! Внимание вот тут может быть косяк с путями до файлов !!! сама yocta в этом файле генерирует прямые пути до файлов vim conf/bblayers.conf ---------------------- # POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf # changes incompatibly POKY_BBLAYERS_CONF_VERSION = "2" BBPATH = "${TOPDIR}" BBFILES ?= "" BBLAYERS ?= " \ ${TOPDIR}/../yocto/sources/poky/meta \ ${TOPDIR}/../yocto/sources/poky/meta-poky \ ${TOPDIR}/../yocto/sources/poky/meta-yocto-bsp \ ${TOPDIR}/../yocto/sources/meta-raspberrypi \ ${TOPDIR}/../yocto/sources/meta-openembedded/meta-oe \ ${TOPDIR}/../yocto/sources/meta-openembedded/meta-networking \ ${TOPDIR}/../yocto/sources/meta-openembedded/meta-python \ " ---------------------- 4. Устройство для которого мы собираем сборку yocto Редактируем файл: vim conf/local.conf ------------------- #MACHINE ??= "qemux86-64" - эту строку мы комментируем MACHINE ?= "raspberrypi0-wifi" - добавляем рядом \ само имя мы нашли на сайте yocto DISTRO ?= "poky" - используемый дистрибутив, пока не трогаем ------------------- 5. Преступая к сборке инфа core-image-sato - будет собран дистрибутив с GUI core-image-base - базовая версия core-image-minimal - что то там минимальное 6. Сборка cd ~/yocto bitbake core-image-base 7. После сборки: файлы .bz2 (.wic) sdimg Собранное искать в каталоге yocto/build/tmp/deploy/images/raspberrypi0-wifi 8. Пример записи на sd карту: dd if=tmp/deploy/images/raspberrypi3-64/core-image-base-raspberrypi3-64.rpi-sdimg of=/dev/sdX dd if=core-image-minimal-raspberrypi0-wifi.wic of=/dev/sdh bs=1M |
Добавить слой:
1 2 |
Чтобы добавить слой в файл конфигурации: bitbake-layers add-layer |