Я создаю корневую файловую систему с помощью buildroot (работает на Ubuntu 22.04.4 LTS) для цели ARM Cortex-A7. Я включаю Node.js, выбрав «[*] nodejs» в Целевые пакеты ---> Языки интерпретатора и сценарии --->.
После успешной прошивки и загрузки таргета я запускаю node
в /usr/bin/
и получаю:
/usr/bin # ./node
./node: /lib/libm.so.6: version `GLIBC_2.38' not found (required by ./node)
./node: /lib/libm.so.6: version `GLIBC_2.29' not found (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libstdc++.so.6: no version information available (required by ./node)
./node: /lib/libc.so.6: version `GLIBC_2.33' not found (required by ./node)
./node: /lib/libc.so.6: version `GLIBC_2.34' not found (required by ./node)
./node: /lib/libc.so.6: version `GLIBC_2.32' not found (required by ./node)
./node: /lib/libc.so.6: version `GLIBC_2.38' not found (required by ./node)
./node: /lib/libc.so.6: version `GLIBC_2.32' not found (required by /usr/lib/libuv.so.1)
./node: /lib/libc.so.6: version `GLIBC_2.38' not found (required by /usr/lib/libuv.so.1)
./node: /lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/libuv.so.1)
./node: /lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/libuv.so.1)
./node: /lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/libcares.so.2)
./node: /lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/libcares.so.2)
./node: /lib/libc.so.6: version `GLIBC_2.36' not found (required by /usr/lib/libcares.so.2)
./node: /lib/libc.so.6: version `GLIBC_2.38' not found (required by /usr/lib/libcares.so.2)
./node: /lib/libc.so.6: version `GLIBC_2.38' not found (required by /usr/lib/libcrypto.so.3)
./node: /lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/libcrypto.so.3)
./node: /lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/libcrypto.so.3)
./node: /lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/libssl.so.3)
./node: /lib/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/libssl.so.3)
Я не понимаю, как изменить конфигурацию buildroot, чтобы включить необходимые версии GLIBC.
Единственный параметр конфигурации, связанный с glibc, который я вижу (в make nconfig
), — это «Включить прокладки совместимости для запуска на старых ядрах» в Toolchain --->, который я проверил.
🤔 А знаете ли вы, что...
Node.js позволяет создавать масштабируемые приложения с использованием механизмов кластеризации.
Какую версию Buildroot вы используете? Не могли бы вы предоставить свой Buildroot .config?
Я полагаю, что вы используете предварительно скомпилированный NodeJS (nodejs-bin), и возможно, он предварительно скомпилирован для слишком последней версии glibc. Но это всего лишь гипотеза, нам нужно больше подробностей о вашей настройке.
Вы начали сборку какой-то конфигурации, затем изменили настройки инструментальной цепочки, а затем снова собрали с новыми настройками, не запуская make clean
. Вам нужна явная очистка при изменении настроек цепочки инструментов.