#yocto
#yocto
Вопрос:
У меня есть самописный рецепт для nodejs, потому что мне нужна конкретная версия. В рецепте я генерирую символическую ссылку из /lib64 в /lib. Когда символическая ссылка не существует, я получаю сообщение об ошибке при попытке запустить узел на своем устройстве.
do_install () {
# Create a symbolic link for the lib64 lib path
install -d ${D}/lib
ln -s /lib ${D}/lib64
}
FILES_${PN} = "/lib64"
Я вижу в истории сборки, что ссылка существует, но когда я создаю образ, я всегда получаю следующий сбой.
| /home/rail/yocto/build/tmp/work/odobox_e3900-poky-linux/odobox-developer-image/1.0-r0/recipe-sysroot-native/usr/sbin/prelink: Could not record directory /lib/modules-load.d: No such file or directory
| WARNING: exit code 1 from a shell command.
| DEBUG: Python function do_image finished
| ERROR: Function failed: prelink_image (log file is located at /home/rail/yocto/build/tmp/work/odobox_e3900-poky-linux/odobox-developer-image/1.0-r0/temp/log.do_image.3534)
Есть ли другое решение проблемы ?!
с наилучшими пожеланиями, Харальд
Комментарии:
1.
ln -s ${D}/lib ${D}/lib64
Ответ №1:
Yocto представила новый инструмент связи «ЛНР»
Я создал пример рецепта (lnr-example) в среде сборки sumo:
LICENSE = "CLOSED"
SRC_URI = "file://lnr.bin"
FILES_${PN} = "/lib64"
FILES_${PN} = "/lib"
S = "${WORKDIR}"
do_install() {
install -d ${D}/lib/
install ${S}/lnr.bin ${D}/lib
lnr ${D}/lib/ ${D}/lib64
}
После построения примера, вот последняя папка «image»:
$ ls -l tmp/work/aarch64-poky-linux/lnr-example/1.0-r0/image
drwxr-xr-x 2 talel talel 4.0K مارس 30 10:44 lib/
lrwxrwxrwx 1 talel talel 3 مارس 30 10:44 lib64 -> lib/
Помните, что вам также нужно упаковать /lib, потому что он завершится неудачей, если он содержит некоторый контент, проблема в том, что родительская задача, которая является /lib, не упакована, вот ошибка:
Файл ‘./lib64/lnr.bin’ не может быть упакован в ‘lnr-example’, поскольку его родительская структура каталогов не существует. Один из его родительских каталогов — это символическая ссылка, целевой каталог которой не включен в пакет.
И добавление (IMAGE_INSTALL_append = «lnr-example») выполнено без проблем.