Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision Next revisionBoth sides next revision | ||
| ru:docs:guide-user:additional-software:imagebuilder [2018/03/20 09:01] – created alexandrlastfm | ru:docs:guide-user:additional-software:imagebuilder [2021/10/15 08:27] – ↷ Links adapted because of a move operation bobafetthotmail | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| - | Это предварительно скомпилированная среда, используемая для создания пользовательских прошивок без необходимости компиляции ядра и пакетов.\\ | + | Это предварительно скомпилированная среда, используемая для создания пользовательских |
| Преимущества использования: | Преимущества использования: | ||
| - | * Использование модулей расширения ядра из репозитория LEDE и OpenWrt | + | * Возможность загрузки модулей расширения ядра из репозитория LEDE и OpenWrt |
| * Встраивание пакетов непосредственно в файловую систему SquashFS для экономии места во флэш-памяти устроиства | * Встраивание пакетов непосредственно в файловую систему SquashFS для экономии места во флэш-памяти устроиства | ||
| * Пользовательская конфигурация, | * Пользовательская конфигурация, | ||
| - | * Быстрая сборка по сравнению с методом компиляции Buildroot | + | * Быстрая сборка по сравнению с методом компиляции |
| ===== Подготовка ===== | ===== Подготовка ===== | ||
| - | :!: Image Builder работает только в 64-битном Linux. Тем не менее вы можете использовать 64-битный Linux на виртуальной машине установленой на 32-битном Windows.\\ | + | <WRAP center round important 80%>Image Builder работает только в 64-битном Linux. Тем не менее вы можете использовать 64-битный Linux развернутый |
| - | :!: Image Builder требуются те же пакеты, что нужны для сборки | + | < |
| Требуемые пакеты в наиболее распространенных дистрибутивах: | Требуемые пакеты в наиболее распространенных дистрибутивах: | ||
| - | < | ||
| - | <WRAP> | + | // |
| - | yum group install " | + | sudo apt-get install build-essential libncurses5-dev libncursesw5-dev zlib1g-dev gawk git gettext libssl-dev xsltproc wget unzip python</ |
| + | |||
| + | //CentOS/RHEL//< | ||
| + | yum group install " | ||
| + | |||
| + | //Fedora 27+//< | ||
| ===== Загрузка Image Builder ===== | ===== Загрузка Image Builder ===== | ||
| - | Загрузите архив, содержащий Image Builder, который находится на той же странице, | + | Загрузите и распакуйте архив, содержащий Image Builder, который находится на той же странице, |
| - | LEDE 17.01.4\\ | + | В виде примера приведена страница, |
| - | https:// | + | |
| - | На странице вы найдете архив lede-imagebuilder-17.01.4-ar71xx-generic.Linux-x86_64.tar.xz | + | < |
| + | tar -xf openwrt-imagebuilder-18.06.8-ar71xx-generic.Linux-x86_64.tar.xz</ | ||
| + | |||
| + | OpenWrt 18.06.8\\ | ||
| + | [[https:// | ||
| + | На странице вы найдете архив openwrt-imagebuilder-18.06.8-ar71xx-generic.Linux-x86_64.tar.xz | ||
| + | |||
| + | LEDE 17.01.7\\ | ||
| + | [[https:// | ||
| + | На странице вы найдете архив 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:// | + | [[http:// |
| На странице вы найдете архив 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:// | + | [[http:// |
| На странице вы найдете архив OpenWrt-ImageBuilder-ar71xx_generic-for-linux-i486.tar.bz2 | На странице вы найдете архив OpenWrt-ImageBuilder-ar71xx_generic-for-linux-i486.tar.bz2 | ||
| - | Кроме того, Image Builder создается для каждой сборки методом Buildroot, потому что он необходим для создания файла прошивки. Если при компиляции включена опция “Build the LEDE Image Builder”, то Image Builder будет сохранен в той же папке, где будет ваша прошивка ( source/ | ||
| - | |||
| - | ---- | ||
| ===== Настройка репозиториев пакетов ===== | ===== Настройка репозиториев пакетов ===== | ||
| - | Image Generator, который вы загружаете | + | Image Builder, который вы загружаете уже настроен для загрузки любых пакетов из официальных репозиториев. Источники пакетов настраиваются в файле |
| - | Пример содержимого '' | + | Пример содержимого '' |
| < | < | ||
| - | # src/ | + | # src/ |
| - | # src custom file:/// | + | # src custom file:/// |
| ## Remote package repositories | ## Remote package repositories | ||
| - | src/ | + | src/ |
| - | src/ | + | src/ |
| - | src/ | + | src/ |
| - | src/ | + | src/ |
| - | src/ | + | src/ |
| - | src/ | + | src/ |
| ## This is the local package repository, do not remove! | ## This is the local package repository, do not remove! | ||
| Line 54: | Line 68: | ||
| </ | </ | ||
| - | В файле '' | + | Если вы хотите добавить пользовательский локальный репозиторий, скопируйте: < |
| - | Если вы хотите добавить пользовательский локальный репозиторий, | ||
| - | Если у вас есть пользовательские репозитории в Интернете, | ||
| + | ===== Использование ===== | ||
| + | Распакуйте архив с Image Builder и перейдите в его директорию. | ||
| - | ===== Usage ===== | + | **make image** |
| - | **make image** | + | |
| - | To change this not-so-useful default behavior you can use three variables passed as arguments: | + | Чтобы настроить создаваемый образ, воспользуйтесь переменными по вашему усмотрению, |
| - | * //'' | + | * //'' |
| - | * //'' | + | * //'' |
| - | * //'' | + | * //'' |
| + | * //'' | ||
| + | * //'' | ||
| + | * //'' | ||
| - | Example syntax: | + | Пример использования: |
| - | < | + | < |
| - | See the sections below for a more in-depth explanation. After the make command is finished, the generated images are stored in the bin///device-architecture// directory, just like if you were compiling them. | + | Готовые образы сохраняются в каталоге '' |
| - | here the output of **make help**:\\ | + | **make help** |
| Available Commands: | Available Commands: | ||
| help: This help text | help: This help text | ||
| Line 92: | Line 108: | ||
| make image EXTRA_IMAGE_NAME="< | make image EXTRA_IMAGE_NAME="< | ||
| - | The built image will be found under the subdirectory '' | ||
| - | ==== PROFILE Variable ===== | ||
| - | Syntax:< | ||
| - | === Pre-defined Profiles | + | ==== Выбор профиля ===== |
| - | Run '' | + | Переменная |
| - | Example output from '' | + | |
| + | **make info** команда отобразит список целевых профилей.\\ | ||
| + | Пример вывода команды | ||
| - | == ar71xx-generic Profiles == | ||
| < | < | ||
| Available Profiles: | Available Profiles: | ||
| Line 125: | Line 139: | ||
| </ | </ | ||
| - | After you find the appropriate profile pass it to the '' | + | После того как вы найдете соответствующий профиль, |
| - | For example, if we wanted to generate a default image for for Asus RT-N14u | + | Пример использования: |
| - | < | + | < |
| - | $ make image PROFILE=rt-n14u | + | Это создаст образ прошивки для устроиства TLMR3020 с минимумом необходимых для работы пакетов, |
| - | </ | + | |
| - | ==== PACKAGES Variable ==== | ||
| - | The '' | ||
| - | Syntax:< | + | ==== Добавление/удаление пакетов из образа ==== |
| - | The example above will include pkg1, pkg2, pkg3, and exclude pkg4, pkg5, pkg6, note the " | + | Переменная '' |
| - | You don't need to list all dependencies of the packages you need in this list, the Image Generator uses '' | + | Пример использования:< |
| + | В этом примере в образ будут добавлены пакеты pkg1, pkg2, и исключены - pkg3, pkg4. | ||
| - | **Tip:** The list of currently installed packages on your device can be obtained with the command below: | + | Вам не нужно перечислять все зависимости устанавливаемых пакетов, |
| - | < | + | |
| - | ==== FILES Variable ==== | + | Пример использования: |
| - | The '' | + | < |
| - | Syntax: | ||
| - | < | ||
| - | **Note:** The '' | + | ==== Добавление файлов в образ ==== |
| + | Переменная | ||
| + | Порядок действий: | ||
| + | - Создайте папку files/ в корневом каталоге | ||
| + | - Добавьте свои файлы | ||
| + | - Сделайте файлы исполняемыми '' | ||
| + | - Выполните '' | ||
| - | ==== Examples ==== | + | == Примерное содержание папки files/ |
| - | The following example shows: | + | < |
| + | etc/ | ||
| + | lib/ | ||
| - | -Creating the directory for the configuration files | + | Пример использования: |
| - | -Using '' | + | < |
| - | -Generating an image for WL500GP with custom packages and '' | + | |
| - | < | ||
| - | scp root@192.168.1.1:/ | ||
| - | scp root@192.168.1.1:/ | ||
| - | scp root@192.168.1.1:/ | ||
| - | make image PROFILE=wl500gp PACKAGES=" | ||
| - | </ | ||
| - | ===== Cleanup | + | ==== Очистка |
| - | To clean up temporary build files and generated images, use the **make | + | Для удаления всех временных файлов сборки и сгенерированных образов воспользуйтесь командой: |
| + | < | ||
| + | |||
| + | |||
| + | ==== Возможные проблемы | ||
| + | - При запуске команды make использование root не требуется. | ||
| + | - Проверьте вывод журнала на наличие проблем с пакетами (конфликты, неправильные имена). | ||
| + | - Убедитесь, | ||
| + | - При выходе новой версии подождите несколько дней, исходные пакеты могут находиться в несогласованном состоянии. | ||
| + | |||
| + | Вот как выглядит пример несогласованного состояния зависимостей для пакета libubus20191227: | ||
| + | < | ||
| + | Collected errors: | ||
| + | * satisfy_dependencies_for: | ||
| + | * | ||
| + | * opkg_install_cmd: | ||
| + | Makefile: | ||
| + | make[2]: *** [package_install] Error 255 | ||
| + | Makefile: | ||
| + | make[1]: *** [_call_image] Error 2 | ||
| + | Makefile: | ||
| + | make: *** [image] Error 2 | ||
| + | </ | ||
| - | ===== Remove useless files from firmware ===== | ||
| - | <WRAP center round important 60%> | ||
| - | This is not a standard feature of the Image Builder. | ||
| - | Note that it requires patching of the '' | + | ==== Удаление файлов из образа ==== |
| - | </ | + | <WRAP center round important 80%> |
| + | Это не стандартная функция Image Builder. Обратите внимание, | ||
| - | 1. Create file ' | + | 1. Создайте файл |
| < | < | ||
| / | / | ||
| Line 185: | Line 215: | ||
| </ | </ | ||
| - | 2. Patch Makefile | + | 2. Отредактируйте файл |
| <code bash> | <code bash> | ||
| ifneq ($(USER_FILES), | ifneq ($(USER_FILES), | ||
| Line 204: | Line 234: | ||
| </ | </ | ||
| - | 3. Rebuild firmware | + | 3. Пересоберите образ с добавлением переменной '' |
| - | < | + | < |
| - | # make image \ | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | </ | + | |
| - | ===== Building the Image Generator with all packages inside ===== | + | ==== Добавление пользовательских профилей |
| - | It is possible to build the Image Generator and integrate in it all packages so it will be able to generate images without downloading packages: | + | Image Builder привязан к именам профилей. Если вы добавите новый профиль, |
| + | :!: Обязательно удалите каталог /tmp, чтобы получить правильный выбор пакетов из нового профиля. | ||
| - | In the graphical configuration, | + | Для примера расположение профилей архитектуры ar71xx находится в директории target / |
| - | Then build the image, including '' | + | |
| - | Enabling '' | + | Примечательно, |
| - | < | + | Вот как выглядит файл профиля profiles/100-Broadcom-b43.mk: |
| - | </code> | + | |
| - | **Note:** Don't call '' | ||
| - | |||
| - | |||
| - | ===== Adding/ | ||
| - | The image generation is tied to the profile names. If you add a new profile without also adding an appropriate macro to the image-generation Makefile, no suitable firmware file will get generated when using the custom profile. | ||
| - | :!: Make sure to remove the /tmp directory to get modified package selection from profiles to work. | ||
| - | |||
| - | The location of the profiles for the pre-compiled package for // | ||
| - | |||
| - | Remarkably, all that needs to be done to add a new profile, is to add a new file to the // | ||
| - | |||
| - | Here is what the // | ||
| - | |||
| - | < | ||
| < | < | ||
| define Profile/ | define Profile/ | ||
| Line 249: | Line 259: | ||
| $(eval $(call Profile, | $(eval $(call Profile, | ||
| </ | </ | ||
| - | </ | ||