Tarbal 4 29 марта Опубликовано 29 марта · Жалоба Я хочу построить fw_printenw и поместить ее в /usr/bin Для этого надо скомпилировать инструменты из пакета u-boot. Вот из этой директории: https://github.com/u-boot/u-boot/tree/master/tools/env Никак не могу уговорить Yocto это сделать. С рецептом никак не получается. Нашел много разных рецептов, но ни один не работает. Yocto же строит u-boot может есть какой-нибудь рецепт в стандартном наборе? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ericN 3 29 марта Опубликовано 29 марта · Жалоба В Yocto вы можете использовать класс recipe-util для компиляции инструментов из исходных кодов таких как fw_printenv и помещения их в /usr/bin. Вот пример рецепта, который вы можете использовать: SUMMARY = "U-Boot Environment Tools" LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=94d55d512a9ba36caa9b7df079bae19f" SRC_URI = "git://git.denx.de/u-boot.git;protocol=https;tag=v2021.07 \ file://Makefile \ file://fw_printenv.c \ file://fw_env_private.h" SRCREV = "${AUTOREV}" S = "${WORKDIR}/git/tools/env" inherit recipe-util do_install() { install -m 0755 ${B}/fw_printenv ${D}/usr/bin/ } Этот рецепт загружает исходный код утилиты fw_printenv из репозитория U-Boot, компилирует ее и устанавливает в /usr/bin. Вы можете сохранить этот рецепт в каталоге meta-mylayer/recipes-extended вашего Yocto-проекта. Затем добавьте ваш рецепт в IMAGE_INSTALL_append в вашем local.conf: IMAGE_INSTALL_append = " fw_printenv" После этого перезапустите сборку вашего образа Yocto, и утилита fw_printenv будет доступна в /usr/bin после развертывания образа на целевом устройстве. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 4 29 марта Опубликовано 29 марта · Жалоба Спасибо! А рецепт вы сами написали или следовали какой-то инструкции? Может есть скрипт какой? Поищу что ракое recipe-util IMAGE_INSTALL_append = " fw_printenv" Эту строку я вставил, но рецепта нету рабочего. Последую вашей рекомендации. А не лучше сделать пробел и перед последней кавычкой? Для надежности. Вдруг в следующей IMAGE_INSTALL_append забудете поставить пробел. Здесь от практики конечно зависит, о которой я не знаю из-за неопытности в Yocto. Потому и предлпочитаю все предусмотреть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dron_Gus 2 29 марта Опубликовано 29 марта · Жалоба Вроде все готовое уже есть https://git.openembedded.org/openembedded-core/tree/meta/recipes-bsp/u-boot/u-boot-fw-utils_2015.01.bb?h=fido Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 4 30 марта Опубликовано 30 марта · Жалоба On 3/29/2024 at 1:45 PM, Dron_Gus said: Вроде все готовое уже есть https://git.openembedded.org/openembedded-core/tree/meta/recipes-bsp/u-boot/u-boot-fw-utils_2015.01.bb?h=fido Это за 2015. Я и за 2018 находил. Только не работало как я и написал. Вот то что посоветовал erikN сработало. Правда, немного пришлось подрихтовть. К тому же синтаксис поменялся. IMAGE_INSTALL_append = " fw_printenv" Теперь надо с ':' писать IMAGE_INSTALL:append = " fw_printenv" Да и fw_printenv неправильно, а вот так работает. IMAGE_INSTALL:append = " u-boot-fw-utils" Но есть другая проблема. Почему-то результат становится меньше размером, busybox отсутствует и криво стартует. Разбираюсь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться