Рубрики
Raspberry Pi

yocto raspberry4

Подготовка ПК:


0. Подготовка системы  debian/ubuntu:
apt update
apt install lz4 vim sudo gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pyelftools python3-pexpect xz-utils debianutils iputils-ping libsdl1.2-dev xterm
 
1. Опционально, команда python выполняет python3
update-alternatives --install /usr/bin/python python /usr/bin/python3 1
 
 
2. Настраиваем локаль:
vim /etc/locale.gen
-------------------
en_US.UTF-8           <---------- найти и раскоментить
------------------
 
Перечитать local:
locale-gen
На этом все, теперь у вас должна появится local en_US.UTF-8

Подготовка yocto:

0. Качаем репу:
git clone git://git.yoctoproject.org/poky
cd poky

1. Меняем репу на dunfell
git checkout dunfell

2. Преступаем к сборке
source oe-init-build-env

3. Настраиваем конфигурацию
vim conf/local.conf
-------------------
MACHINE = "raspberrypi4"
-------------------

Еще варианты:
MACHINE = "qemux86-64"
MACHINE = "qemux86"

Начинаем сборку:

Теперь можно приступить к сборке образа. 
Например, для создания минимального образа:
bitbake core-image-minimal

Если вам нужен образ с графическим интерфейсом:
bitbake core-image-sato


Создание образа SD-карты:

После завершения сборки, образ будет находиться в директории tmp/deploy/images//
cd tmp/deploy/images/raspberrypi4/
dd if=core-image-minimal-raspberrypi4.rpi-sdimg of=/dev/sdX bs=4M status=progress

wic

Создайте файл, например, my-image.wic, с таким содержимым:
cat >  my-image.wic << "EOF"
part /boot --source bootimg-partition --ondisk mmcblk0 --fstype=vfat --label boot --active --align 4
part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --label root --align 4
EOF

Этот файл описывает образ с двумя разделами:
/boot — загрузочный раздел с файловой системой FAT32.
/ — корневой раздел с файловой системой ext4.

После того как вы собрали образ с помощью Yocto (например, bitbake core-image-minimal), 
вы можете использовать wic для создания образа SD-карты.
wic create my-image.wic -e <имя_образа>
Здесь:
my-image.wic — это ваш конфигурационный файл.
-e <имя_образа> — указывает, какой образ использовать (например, core-image-minimal).

Пример:
wic create my-image.wic -e core-image-minimal

Если вам нужно добавить дополнительные разделы или изменить структуру образа, вы можете редактировать .wic файл. 
Например:
part /data --source empty --ondisk mmcblk0 --fstype=ext4 --label data --size 1G
part /home --source rootfs --ondisk mmcblk0 --fstype=ext4 --label home --rootfs-dir=home


Использование готовых wic-шаблонов
wic list images
wic create sdimage-bootpart -e core-image-minimal


Если вам нужно добавить кастомные файлы или скрипты в образ, вы можете использовать директиву --source в .wic файле. 
Например:
part /scripts --source script --ondisk mmcblk0 --fstype=ext4 --label scripts --script myscript.sh



Создайте файл x86-image.wic:
# x86-image.wic
part /boot --source bootimg-pc --ondisk sda --fstype=vfat --label boot --active --align 4
part / --source rootfs --ondisk sda --fstype=ext4 --label root --align 4

wic create x86-image.wic -e core-image-minimal