Рубрики
openwrt

openwrt / imagebuilder

Ссылка:

Image Builder:
Это предварительно скомпилированная среда, используемая для создания пользовательских образов прошивок без необходимости компиляции ядра и пакетов.

https://openwrt.org/docs/guide-user/additional-software/imagebuilder
https://openwrt.org/ru/docs/guide-user/additional-software/imagebuilder

https://openwrt.org/toh/start - поиск устройства

https://downloads.openwrt.org/releases/ - релиз

Готовим систему:

Debian/Ubuntu
sudo apt-get update
sudo apt-get install build-essential libncurses5-dev libncursesw5-dev zlib1g-dev gawk git gettext libssl-dev xsltproc wget unzip python

CentOS/RHEL
yum install subversion git gawk gettext ncurses-devel zlib-devel openssl-devel libxslt wget
yum group install "Development Tools"

Fedora 27+
dnf install @c-development @development-tools @development-libs zlib-static which

Готовим образ openwrt:

0. Скачиваем openwrt-imagebuilder под наше устройство:
cd /opt
wget https://downloads.openwrt.org/releases/21.02.3/targets/ipq40xx/mikrotik/openwrt-imagebuilder-21.02.3-ipq40xx-mikrotik.Linux-x86_64.tar.xz
1. Распакуйте архив с Image Builder и перейдите в его директорию.
tar -pxf openwrt-imagebuilder-21.02.3-ipq40xx-mikrotik.Linux-x86_64.tar.xz
cd openwrt-imagebuilder-21.02.3-ipq40xx-mikrotik.Linux-x86_64

Настраиваем образ openwrt:

!!! make image команда создаст образ для устройства по умолчанию со стандартными (необходимыми) пакетами. 
!!! PROFILE - определяет целевой профиль для сборки
!!! PACKAGES - список пакетов, добавляемых (исключаемых) в образ
!!! FILES - каталог с пользовательскими файлами для добавления
!!! BIN_DIR - Пользовательская директория для создаваемого образа
!!! EXTRA_IMAGE_NAME - Пользовательское имя для создаваемого образа
!!! DISABLED_SERVICES - Какие службы в /etc/init.d/ будут отключены по умолчанию
!!! make image PROFILE=XXX PACKAGES="pkg1 pkg2 -pkg3 -pkg4" FILES=files/
!!! make clean - Для удаления всех временных файлов сборки и сгенерированных образов воспользуйтесь командой:

0.  Смотрим список целевых профилей.
make info

1. если требуется перенастроить файлы то создаем директорию files
!!! В этот каталог добавляем свои файлы
!!! По умолчанию фалы будут помещены в корень на целевой системе
!!! Требуется создавать структуру каталогов.
mkdir files
mkdir files/etc

2. Определившись с профилем, пакетами, файлами, выполняем сборку
!!! (-) - минус перед пакетом предполагает его удаление в конечной сборке
make image PROFILE=XXX PACKAGES="pkg1 pkg2 -pkg3 -pkg4" FILES=files/

Где же файлы:

После завершения команды make сгенерированные образы сохраняются в каталоге bin /device-architecture , как если бы вы их компилировали.
Созданный образ можно найти в подкаталоге ./bin/targets//genericили загляните внутрь. 
/build_dir/для файлов *-squashfs-sysupgrade.bin и *-squashfs-factory.bin
(например /build_dir/target-mips_24kc_musl/linux-ar71xx_tiny/tmp/openwrt-18.06.2-ar71xx-tiny-tl-wr740n-v6-squashfs-factory.bin)

Пример:

make info
make image PROFILE=fsl_ls1046a-frwy-sdboot PACKAGES="block-mount kmod-fs-ext4 kmod-usb-storage e2fsprogs kmod-usb-ohci kmod-usb-uhci fdisk -layerscape-fman -tfa-ls1046a-frwy-sdboot"