Почему я не могу скопировать файлы в rootFS из рецепта Yocto - PullRequest
0 голосов
/ 09 января 2019

Я поднимаю более новую версию Linux (мы работали с версией 3.14 в системе buildroot, которая является старой) и пытаюсь добавить более старую версию mplayer в качестве обходного пути, пока наше приложение не будет обновлено для работы с более новой версией. / альтернативный видеоплеер. Я добавил новый рецепт и добавил этот рецепт в свою сборку, но я не могу получить do_install, который работает.

Просто для справочной информации, я запускаю Pyro-релиз Poky. Цель - i.MX6.

Вот оригинальный рецепт, который я написал.


    DESCRIPTION = "Load an older version of mplayer as a workaround until a new media player can be used."
    PRIORITY = "optional"
    LICENSE = "CLOSED"

    FILES_${PN} += "/usr/bin/mplayer \
        /usr/lib/libbz2.so.1.0.6 \
        /usr/lib/libfribidi.so.0.3.5"

    SRC_URI = "file://mplayer \
        file://libbz2.so.1.0.6 \
        file://libfribidi.so.0.3.5"

    do_install() {
        ln -s /usr/lib/libbz2.so.1.0.6 ${D}/usr/lib/libbz2.so
        ln -s /usr/lib/libfribidi.so.0.3.5 ${D}/usr/lib/libfribidi.so
    }

Я также пробовал урезанную версию, которая копировалась только на старый исполняемый файл mplayer. Обратите внимание, что я не использовал установку, так как это вызвало ошибку «QA Issue: уже удалено», что даже добавление «INSANE_SKIP_qwt_append =« уже удаленного »в мой local.conf не разрешило это.


    DESCRIPTION = "Load an older version of mplayer as a workaround until a new media player can be used."
    PRIORITY = "optional"
    LICENSE = "CLOSED"

    FILES_${PN} += "/usr/bin/mplayer"

    SRC_URI = "file://mplayer"

    do_install() {
        cp ${WORKDIR}/mplayer ${D}${base_bindir}/mplayer
    }

В оригинальном рецепте я вижу, что он не может создать ссылку. Изменение его на относительный путь (добавление -r) не имеет значения.


    | ln: failed to create symbolic link '/home/gen-ccm-root/workdir/tools/poky/build-dev/tmp/work/armv7ahf-neon-poky-linux-gnueabi/temp-mplayer/1.0-r0/image/usr/lib/libbz2.so': No such file or directory
    | WARNING: exit code 1 from a shell command.
    | ERROR: Function failed: do_install (log file is located at /home/gen-ccm-root/workdir/tools/poky/build-dev/tmp/work/armv7ahf-neon-poky-linux-gnueabi/temp-mplayer/1.0-r0/temp/log.do_install.31008)
    ERROR: Task (/home/gen-ccm-root/workdir/tools/poky/meta-markem-imaje-private-bsp/recipes-core/temp-mplayer/temp-mplayer_1.0.bb:do_install) failed with exit code '1'

В урезанной версии я вижу следующее:


    | DEBUG: Executing shell function do_install
    | cp: cannot create regular file '/home/gen-ccm-root/workdir/tools/poky/build-dev/tmp/work/armv7ahf-neon-poky-linux-gnueabi/temp-mplayer/1.0-r0/image/bin/mplayer': No such file or directory
    | WARNING: exit code 1 from a shell command.
    | ERROR: Function failed: do_install (log file is located at /home/gen-ccm-root/workdir/tools/poky/build-dev/tmp/work/armv7ahf-neon-poky-linux-gnueabi/temp-mplayer/1.0-r0/temp/log.do_install.30663)
    ERROR: Task (/home/gen-ccm-root/workdir/tools/poky/meta-markem-imaje-private-bsp/recipes-core/temp-mplayer/temp-mplayer_1.0.bb:do_install) failed with exit code '1'
    NOTE: Tasks Summary: Attempted 2721 tasks of which 2718 didn't need to be rerun and 1 failed.

Я не слишком беспокоюсь о добавлении вызова ldconfig (еще одна проблема на другой день), но по крайней мере хотел бы, чтобы файлы появлялись в RootFS, или, по крайней мере, успешно создавал образ. Если я удаляю этот рецепт, я могу создать пригодный для использования образ, который я могу записать на SD-карту, поэтому я уверен, что проблема заключается в этом рецепте.

Я видел этот вопрос: Bitbake не устанавливал мой файл в образе rootfs и использовал его в качестве основы для создания этого рецепта, но я явно что-то пропустил.

1 Ответ

0 голосов
/ 09 января 2019

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

Второй рецепт копирует файл в несуществующий каталог. Сначала создайте его.

...