Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
ru:docs:guide-user:additional-software:imagebuilder [2020/06/13 21:56] – Ubuntu instruction update, new method for Windows 10, update link alexandrlastfmru:docs:guide-user:additional-software:imagebuilder [2021/10/15 08:27] – ↷ Links adapted because of a move operation bobafetthotmail
Line 1: Line 1:
-====== Image Builder ====== +====== Сборка образов с помощью Image Builder ====== 
-Это предварительно скомпилированная среда, используемая для создания пользовательских образов прошивок без необходимости компиляции ядра и пакетов.\\+Это предварительно скомпилированная среда, используемая для создания пользовательских образов прошивок без необходимости компиляции ядра и пакетов.
  
 Преимущества использования: Преимущества использования:
Line 6: Line 6:
   * Встраивание пакетов непосредственно в файловую систему SquashFS для экономии места во флэш-памяти устроиства   * Встраивание пакетов непосредственно в файловую систему SquashFS для экономии места во флэш-памяти устроиства
   * Пользовательская конфигурация, добавление и удаление пакетов и файлов конфигурации непосредственно в файловой системе SquashFS   * Пользовательская конфигурация, добавление и удаление пакетов и файлов конфигурации непосредственно в файловой системе SquashFS
-  * Быстрая сборка по сравнению с методом компиляции [[docs:guide-developer:quickstart-build-images|Buildroot]]+  * Быстрая сборка по сравнению с методом компиляции [[docs:guide-developer:toolchain:beginners-build-guide|Buildroot]]
  
 ===== Подготовка ===== ===== Подготовка =====
-<WRAP center round important 80%>Image Builder работает только в 64-битном Linux. Тем не менее вы можете использовать 64-битный Linux развернутый на виртуальной машине которая установлена на 32-битной операционной системе. Так же можно использовать "Подсистему Windows для Linux" (WSL1 и WSL2) в Windows 10 (сборка 19041 или выше).</WRAP> +<WRAP center round important 80%>Image Builder работает только в 64-битном Linux. Тем не менее вы можете использовать 64-битный Linux развернутый на виртуальной машине которая установлена на 32-битной операционной системе. Так же можно использовать "Подсистему Windows для Linux" в Windows 10 (сборка 19041 или выше).</WRAP> 
-<WRAP>Требуемые пакеты в наиболее распространенных дистрибутивах:+<WRAP>
  
-<WRAP>//Debian/Ubuntu//<code>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</code></WRAP>+
  
-<WRAP>//CentOS/RHEL//<code>yum install subversion git gawk gettext ncurses-devel zlib-devel openssl-devel libxslt wget +//Debian/Ubuntu//<code>sudo apt-get update 
-yum group install "Development Tools"</code></WRAP>+sudo apt-get install build-essential libncurses5-dev libncursesw5-dev zlib1g-dev gawk git gettext libssl-dev xsltproc wget unzip python</code>
  
-<WRAP>//Fedora 27+//<code>dnf install @c-development @development-tools @development-libs zlib-static which</code></WRAP>+//CentOS/RHEL//<code>yum install subversion git gawk gettext ncurses-devel zlib-devel openssl-devel libxslt wget 
 +yum group install "Development Tools"</code> 
 + 
 +//Fedora 27+//<code>dnf install @c-development @development-tools @development-libs zlib-static which</code>
  
----- 
  
 ===== Загрузка Image Builder ===== ===== Загрузка Image Builder =====
 Загрузите и распакуйте архив, содержащий Image Builder, который находится на той же странице, где и прошивка для вашего устройства.\\ Загрузите и распакуйте архив, содержащий Image Builder, который находится на той же странице, где и прошивка для вашего устройства.\\
 В виде примера приведена страница, для устройства с архитектурой ar71xx/generic: В виде примера приведена страница, для устройства с архитектурой ar71xx/generic:
 +
 <code>wget https://downloads.openwrt.org/releases/18.06.8/targets/ar71xx/generic/openwrt-imagebuilder-18.06.8-ar71xx-generic.Linux-x86_64.tar.xz <code>wget https://downloads.openwrt.org/releases/18.06.8/targets/ar71xx/generic/openwrt-imagebuilder-18.06.8-ar71xx-generic.Linux-x86_64.tar.xz
 tar -xf openwrt-imagebuilder-18.06.8-ar71xx-generic.Linux-x86_64.tar.xz</code> tar -xf openwrt-imagebuilder-18.06.8-ar71xx-generic.Linux-x86_64.tar.xz</code>
  
-OpenWrt RC1 18.06.8\\ +OpenWrt 18.06.8\\ 
-https://downloads.openwrt.org/releases/18.06.8/targets/ar71xx/generic/\\+[[https://downloads.openwrt.org/releases/18.06.8/targets/ar71xx/generic/]]\\
 На странице вы найдете архив openwrt-imagebuilder-18.06.8-ar71xx-generic.Linux-x86_64.tar.xz На странице вы найдете архив openwrt-imagebuilder-18.06.8-ar71xx-generic.Linux-x86_64.tar.xz
  
 LEDE  17.01.7\\ LEDE  17.01.7\\
-https://downloads.openwrt.org/releases/17.01.7/targets/ar71xx/generic/\\+[[https://downloads.openwrt.org/releases/17.01.7/targets/ar71xx/generic/]]\\
 На странице вы найдете архив lede-imagebuilder-17.01.7-ar71xx-generic.Linux-x86_64.tar.xz На странице вы найдете архив lede-imagebuilder-17.01.7-ar71xx-generic.Linux-x86_64.tar.xz
  
 OpenWrt Chaos Calmer 15.05.1\\ OpenWrt Chaos Calmer 15.05.1\\
-http://archive.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/\\+[[http://archive.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/]]\\
 На странице вы найдете архив OpenWrt-ImageBuilder-15.05.1-ar71xx-generic.Linux-x86_64.tar.bz2 На странице вы найдете архив OpenWrt-ImageBuilder-15.05.1-ar71xx-generic.Linux-x86_64.tar.bz2
  
 OpenWrt Attitude Adjustment 12.09\\ OpenWrt Attitude Adjustment 12.09\\
-http://archive.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/\\+[[http://archive.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/]]\\
 На странице вы найдете архив OpenWrt-ImageBuilder-ar71xx_generic-for-linux-i486.tar.bz2 На странице вы найдете архив OpenWrt-ImageBuilder-ar71xx_generic-for-linux-i486.tar.bz2
  
----- 
  
 ===== Настройка репозиториев пакетов ===== ===== Настройка репозиториев пакетов =====
-Image Builder, который вы загружаете со страниц LEDE или OpenWrt, уже настроен для загрузки любых пакетов из официальных репозиториев. Источники пакетов настраиваются в файле ''repositories.conf'' в корневом каталоге. Источники указаны в исходном конфигурационном формате opkg . Это могут быть либо официальные репозитории пакетов, либо созданные пользователем репозитории.+Image Builder, который вы загружаете уже настроен для загрузки любых пакетов из официальных репозиториев. Источники пакетов настраиваются в файле ''repositories.conf'' в корневом каталоге. Источники указаны в исходном конфигурационном формате opkg . Это могут быть либо официальные репозитории пакетов, либо созданные пользователем репозитории.
  
 Пример содержимого ''repositories.conf'' из openwrt-imagebuilder-18.06.0-rc1-ar71xx-generic.Linux-x86_64.tar.xz: Пример содержимого ''repositories.conf'' из openwrt-imagebuilder-18.06.0-rc1-ar71xx-generic.Linux-x86_64.tar.xz:
Line 69: Line 70:
 Если вы хотите добавить пользовательский локальный репозиторий, скопируйте: <code>src custom file:///usr/src/lede/bin/ramips/packages</code> Если у вас есть пользовательские репозитории в Интернете, скопируйте и измените: <code>src/gz reboot http://downloads.lede-project.org/snapshots</code> Если вы хотите добавить пользовательский локальный репозиторий, скопируйте: <code>src custom file:///usr/src/lede/bin/ramips/packages</code> Если у вас есть пользовательские репозитории в Интернете, скопируйте и измените: <code>src/gz reboot http://downloads.lede-project.org/snapshots</code>
  
----- 
  
 ===== Использование ===== ===== Использование =====
Line 76: Line 76:
 **make image** команда создаст образ для устройства по умолчанию со стандартными (необходимыми) пакетами. В большинстве случаев созданный образ не подойдет для вашего устроиства! **make image** команда создаст образ для устройства по умолчанию со стандартными (необходимыми) пакетами. В большинстве случаев созданный образ не подойдет для вашего устроиства!
  
-Чтобы настроить создаваемый образ, воспользуйтесь тремя переменными, передаваемых в качестве аргументов:+Чтобы настроить создаваемый образ, воспользуйтесь переменными по вашему усмотрению, передаваемых в качестве аргументов:
  
   * //''PROFILE''// - определяет целевой профиль для сборки   * //''PROFILE''// - определяет целевой профиль для сборки
Line 108: Line 108:
         make image EXTRA_IMAGE_NAME="<string>" # Add this to the output image filename (sanitized)         make image EXTRA_IMAGE_NAME="<string>" # Add this to the output image filename (sanitized)
  
----- 
  
 ==== Выбор профиля ===== ==== Выбор профиля =====
Line 147: Line 146:
 Это создаст образ прошивки для устроиства TLMR3020 с минимумом необходимых для работы пакетов, поскольку переменная PACKAGES не была определена. Это создаст образ прошивки для устроиства TLMR3020 с минимумом необходимых для работы пакетов, поскольку переменная PACKAGES не была определена.
  
----- 
  
 ==== Добавление/удаление пакетов из образа ==== ==== Добавление/удаление пакетов из образа ====
-Переменная ''PACKAGES'' определяет список пакетов, включаемых и/или исключаемых ищ образа прошивки. По умолчанию пустая переменная PACKAGES создает минимальный образ с ядром и драйверами для устройств, uci, ssh, switch, firewall, ppp и ipv6.+Переменная ''PACKAGES'' определяет список пакетов, включаемых и/или исключаемых из образа прошивки. Пустая переменная PACKAGES создает минимальный образ с ядром и драйверами для устройств, uci, ssh, switch, firewall, ppp и ipv6.
  
 Пример использования:<code>make image PROFILE=XXX PACKAGES="pkg1 pkg2 -pkg3 -pkg4"</code> Пример использования:<code>make image PROFILE=XXX PACKAGES="pkg1 pkg2 -pkg3 -pkg4"</code>
Line 160: Line 158:
 <code>make image PROFILE=XXX PACKAGES="-ip6tables -kmod-ip6tables -kmod-nf-conntrack6 -kmod-nf-ipt6 -odhcp6c -odhcpd -kmod-ipv6"</code> <code>make image PROFILE=XXX PACKAGES="-ip6tables -kmod-ip6tables -kmod-nf-conntrack6 -kmod-nf-ipt6 -odhcp6c -odhcpd -kmod-ipv6"</code>
  
----- 
  
 ==== Добавление файлов в образ ==== ==== Добавление файлов в образ ====
Line 166: Line 163:
  
 Порядок действий: Порядок действий:
-  -Создайте папку files/ в коревом каталоге +  - Создайте папку files/ в корневом каталоге 
-  -Добавьте конфигурационные файлы +  - Добавьте свои файлы 
-  -Выполните ''make image'' с выбранными переменными+  - Сделайте файлы исполняемыми ''chmod -R 777 files'' 
 +  - Выполните ''make image'' с выбранными переменными
  
 == Примерное содержание папки files/ == == Примерное содержание папки files/ ==
Line 178: Line 176:
 <code>make image PROFILE=XXX PACKAGES="pkg1 pkg2 -pkg3 -pkg4" FILES=files/</code> <code>make image PROFILE=XXX PACKAGES="pkg1 pkg2 -pkg3 -pkg4" FILES=files/</code>
  
----- 
  
 ==== Очистка ==== ==== Очистка ====
Line 184: Line 181:
 <code>make clean</code> <code>make clean</code>
  
-----+ 
 +==== Возможные проблемы ==== 
 +  При запуске команды make использование root не требуется. 
 +  Проверьте вывод журнала на наличие проблем с пакетами (конфликты, неправильные имена). 
 +  Убедитесь, что у вас есть поддерживаемая ОС, необходимые компоненты, файловая система и имя пути. 
 +  При выходе новой версии подождите несколько дней, исходные пакеты могут находиться в несогласованном состоянии. 
 + 
 +Вот как выглядит пример несогласованного состояния зависимостей для пакета libubus20191227:  
 +<code> 
 +Collected errors: 
 + * satisfy_dependencies_for: Cannot satisfy the following dependencies for luci: 
 +      libubus20191227 
 + * opkg_install_cmd: Cannot install package luci. 
 +Makefile:154: recipe for target 'package_install' failed 
 +make[2]: *** [package_install] Error 255 
 +Makefile:112: recipe for target '_call_image' failed 
 +make[1]: *** [_call_image] Error 2 
 +Makefile:207: recipe for target 'image' failed 
 +make: *** [image] Error 2 
 +</code> 
  
 ==== Удаление файлов из образа ==== ==== Удаление файлов из образа ====
Line 220: Line 237:
 <code>make image PROFILE=XXX PACKAGES="pkg1 pkg2 -pkg3 -pkg4" FILES_REMOVE="files_remove"</code> <code>make image PROFILE=XXX PACKAGES="pkg1 pkg2 -pkg3 -pkg4" FILES_REMOVE="files_remove"</code>
  
----- 
  
 ==== Добавление пользовательских профилей ==== ==== Добавление пользовательских профилей ====
Line 228: Line 244:
 Для примера расположение профилей архитектуры ar71xx находится в директории target /linux/ar71xx/generic/profiles/ Для примера расположение профилей архитектуры ar71xx находится в директории target /linux/ar71xx/generic/profiles/
  
-Примечательно, что все, что нужно сделать для добавления нового профиля, - это добавить новый файл в каталог профилей . Хотя это, возможно, имело место в предыдущих выпусках, на 17.01, но похоже, также требуется ручное редактирование файла .targetinfo.//+Примечательно, что все, что нужно сделать для добавления нового профиля, - это добавить новый файл в каталог профилей . Хотя это, возможно, имело место в предыдущих выпусках, на 17.01, но похоже, также требуется ручное редактирование файла .targetinfo.
  
 Вот как выглядит файл профиля profiles/100-Broadcom-b43.mk:   Вот как выглядит файл профиля profiles/100-Broadcom-b43.mk:  
  
-<WRAP> 
 <code> <code>
 define Profile/Broadcom-b43 define Profile/Broadcom-b43
Line 244: Line 259:
 $(eval $(call Profile,Broadcom-b43)) $(eval $(call Profile,Broadcom-b43))
 </code> </code>
-</WRAP> 
  • Last modified: 2022/11/05 16:30
  • by alexandrlastfm