Как добавить готовый пакет к изображению в Yocto? - PullRequest
1 голос
/ 22 апреля 2020

Я хотел бы добавить готовый пакет ipk к окончательному изображению, используя Yocto во время сборки. Какой должен быть правильный рабочий процесс для этого?

Что я пробовал:

1) Как предложено здесь Я использовал класс bin_package и добавил пакет ipk в SRC_URI

inherit bin_package
...
SRC_URI = "file://test.ipk;subdir=test-1.0"

Это распаковывает пакет и упаковывает его снова. К сожалению, некоторые управляющие сценарии были опущены, например, c. при распаковке в рабочий каталог. Не знаю почему? С небольшими дополнительными модификациями у меня появилось какое-то удобное решение, но я сомневаюсь, что это правильный подход.

2) Используйте пакет в оригинальном виде и установите его непосредственно в rootfs. Я пробовал что-то подобное

inherit deploy

SRC_URI = "file://test.ipk;unpack=0"

do_deploy() {
  install -D ${WORKDIR}/test.ipk ${DEPLOY_DIR_IPK}/test.ipk
}

addtask deploy after do_compile

Я не знаю, могу ли я просто скопировать пакет, например, в "$ {DEPLOY_DIR_IPK}" и как сообщить Yocto, что пакет доступен и что я могу использовать "IMAGE_INSTALL_append + =" test "", чтобы установить его

Спасибо за ввод!

1 Ответ

0 голосов
/ 23 апреля 2020

Если честно, я не понимаю первое решение, во-вторых, согласно документации о задаче do_deploy: https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#ref -tasks-deploy Почему вы не используете do_install?

Я не эксперт, но, думаю, вам стоит попробовать что-то подобное:

SUMMARY = "sample recipe"
LICENSE = "CLOSED"

SRC_URI = "file://test.ipk;unpack=0"

do_install () {
    install -d ${D}${foobar}
    install -m 0755 ${WORKDIR}/test.ipk ${D}${foobar}
}
...