Как включить файлы в рецепт Cstom для сборки yocto - PullRequest
0 голосов
/ 30 ноября 2018

Привет всем, я новичок в Yocto и пытаюсь создать свой первый рецепт, у меня есть специальный слой, который отображается и корректно устанавливается в моей системе "colibri-imx6ull", но я не вижу результатов работы моих рецептов.Кажется, что Bitbake их создает, но, возможно, я что-то неправильно понял в процессе сборки.У меня давняя цель установить Golang и несколько пользовательских сценариев, но в настоящее время я даже не могу скопировать простой текстовый файл.

Доступна версия Toradex (2.8) v2017.12 rocko (2.4)

Я добавил свой слой в oe-core / build / conf / bblayers.conf

${TOPDIR}/../layers/meta-hydroware \

У меня есть файл конфигурации слоя, доступный по адресу

/layers/meta-hydroware/recipes-golang/conf/layer.conf

, содержащийследующий

BBPATH := "${BBPATH}:${LAYERDIR}"
BBFILES := "${BBFILES} ${LAYERDIR}/recipes-*/*/*.bb \ 
       ${LAYERDIR}/recipes-*/*/*.bbappend"

BBFILE_COLLECTIONS += "golang"
BBFILE_PATTERN_golang := "^${LAYERDIR}/" 
BBFILE_PRIORITY_golang := "105"

Он включен в список слоев при построении, так что, надеюсь, он будет работать.Во-первых, я просто пытаюсь получить что-нибудь для копирования в мою сборку, и я пытался использовать этот рецепт для копирования простого текстового файла, но он не отображается.

Мой файл рецепта "golang.bb"находится в

/layers/meta-hydroware/recipes-golang/golang/golang.bb

, а текстовый файл находится в

/layers/meta-hydroware/recipes-golang/golang/files

Это содержимое моего golang.bb

SUMMARY = "Provides GO"
DESCRIPTION = "Tools for runnings and compiling GO"

SRC_URI =   "file://readme.txt"

LICENSE = "CLOSED"

S = "${WORKDIR}"
FILES_${PN} = ""
ALLOW_EMPTY_${PN} = "1"

do_install() {
    install -m 0755 -d ${D}${bindir} ${D}${bindir}/go
    mkdir ~/usr/bin/go
    cp -a --no-preserve=ownership ${WORKDIR}/* ${D}${bindir}/go/
}

Моя цельустановить golang, который находится в той же папке, что и текстовый файл

 /layers/meta-hydroware/recipes-golang/golang/files/go1.11.2.linux-armv6l.tar.gz

Моя первая цель - найти текстовый файл где-нибудь на моем установленном компьютере, вторая цель - установить go.Что-то не так с моим рецептом, который мешает разместить файл?

Есть ли какие-то дополнительные вещи, которые мне нужно сделать, чтобы справиться с установкой файла .tar.gz?или do_install () понимает, что делать?

Спасибо за ваши ответы // Смущенный новичок, который уже тратит слишком много дней на это ^^

1 Ответ

0 голосов
/ 30 ноября 2018

В рецепте есть несколько улучшений,

SUMMARY = "Provides GO"
DESCRIPTION = "Tools for runnings and compiling GO"

SRC_URI =   "file://readme.txt"

LICENSE = "CLOSED"
S = "${WORKDIR}"

do_install() {
    install -d ${D}${bindir}/go
    install -Dm 0755 ${WORKDIR}/readme.txt ${D}${bindir}/go
}

FILES_${PN} = "${bindir}/*"

Приведенный выше рецепт должен работать, если он включен непосредственно в изображение, используя IMAGE_INSTALL_append в local.conf или в рецепте изображения, или в другой пакет RDEPENDS вэтот пакет.

Выполнено исправлений:

  1. Вам не нужно разрешать пустой пакет
  2. FILES_${PN} должен содержать файлы списка, которые вы хотите установить
  3. install -d создает каталог и install -Dm для его копирования.Вам не нужно использовать cp или mkdir внутри рецепта.
...