#node.js #yocto #bitbake
#node.js #yocto #bitbake
Вопрос:
Я пытаюсь создать настроенный образ Yocto для моего устройства RaspberryPi3. На самом деле, мне нужно установить NodeJS версии 6.10.3 (мне нужна именно эта версия), но рецепты, которые я нашел в репозитории «meta-nodejs», похоже, не работают. (не удается установить напрямую из meta-nodejs, это выдает мне ошибки типа «env python: команда env не найдена»). Итак, после того, как я протестировал непосредственно на Yocto os, я решил использовать предварительно скомпилированную версию для ARMV7L ( https://nodejs.org/dist/v6.10.3/node-v6.10.3-linux-armv7l.tar.gz ). Я создал свой собственный рецепт и «битбейкнул» прямо на своем изображении без каких-либо ошибок, но в двоичном файле, похоже, есть некоторые проблемы.
root@yocto:~# node --version
Segmentation fault
Я сравнил этот файл с исходным и вижу, что тот, который находится в корневых файлах yocto, был «удален»
root@yocto:~# file /usr/bin/node
/usr/bin/node: ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.26, BuildID[sha1]=cbdb85ab56e5b0f7c31aeb0671fd9b6ae5984f81, stripped
root@yocto:~# file /opt/node-v6.10.3-linux-armv7l/bin/node
/opt/node-v6.10.3-linux-armv7l/bin/node: ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.26, BuildID[sha1]=cbdb85ab56e5b0f7c31aeb0671fd9b6ae5984f81, with debug_info, not stripped
Итак, я попытался «поиграть» с добавлением моего рецепта:
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INHIBIT_PACKAGE_STRIP = "1"
но я продолжаю получать ту же ошибку.
мой рецепт:
DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
HOMEPAGE = "http://nodejs.org"
LICENSE = "MIT amp; BSD-2-Clause amp; BSD-3-Clause amp; ISC amp; AFL-2.0 amp; Apache-2.0 amp; OpenSSL amp; Zlib amp; Artistic-2.0 amp; (BSD-3-Clause | GPLv2)"
LIC_FILES_CHKSUM = "file://LICENSE;md5=41a3a0ccf7f515cac3377389dd8faac8"
RDEPENDS_${PN} = "bash"
SRC_URI = " https://nodejs.org/dist/v6.10.3/node-v6.10.3-linux-armv7l.tar.gz"
SRC_URI[sha256sum] = "c36f0713fcf397a6b278b61f4c1511938f7ad1e5385c31e530d074ce83163426"
S = "${WORKDIR}/node-v${PV}-linux-armv7l"
do_install_append() {
install -d ${D}/usr/
cp -rf ${S}/* ${D}/usr/
}
FILES_${PN} = "/usr/*"
INSANE_SKIP_${PN} = "already-stripped"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INHIBIT_PACKAGE_STRIP = "1"
Ответ №1:
благодаря пользователю «RP» из IRC-канала #Yocto: двоичный файл в созданном изображении был изменен с помощью опции «предварительная ссылка» в моем conf / local.conf:
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
после удаления «image-prelink» и повторной загрузки изображения все работает нормально.