Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

@TheBB подскажите пожалуйста, куда копать. Собираю из сорсов bird2 2.0.10, все собирается корректно, при запуске ошибка bird: Cannot get random bytes: Function not implemented

При этом версия 2.0.8 собирается и работает корректно.

Я вижу что вы бампнули бирд до 2.0.10 тут https://github.com/Entware/entware-routing/tree/master/bird2 поэтому обращаюсь к вам.

Подозреваю что сбой связан с коммитом https://gitlab.nic.cz/labs/bird/-/commit/c48ebde5ce6db3da8cd571d213d1a1f265de8983 и последующим https://gitlab.nic.cz/labs/bird/-/commit/e5724f71d2c054bc51d66092beb6af4da21e0c62 которые усложняют random.c и, видимо, используют какие-то функции, которые не имплементированы в кинетике. Но какие это функции и как решить проблему - не знаю.

 

Опубликовано
4 минуты назад, zyxmon сказал:

@hondaspb- нужно смотреть, как configure определяет конфиг. На правах гадалки - добавьте `CONFIGURE_VARS += ac_cv_func_getentropy=no`

@zyxmon спасибо, но я ненастоящий сварщик, куда добавлять?

в configure.ac есть строки

AC_CHECK_FUNCS(getrandom)
AC_CHECK_FUNCS(getentropy)
Опубликовано
### git diff
diff --git a/bird2/Makefile b/bird2/Makefile
index 891f372..99ade6f 100644
--- a/bird2/Makefile
+++ b/bird2/Makefile
@@ -97,7 +97,13 @@ protocols, telling BIRD to show various information, telling it to show
 a routing table filtered by a filter, or asking BIRD to reconfigure.
 endef
 
-CONFIGURE_ARGS += --disable-libssh
+CONFIGURE_ARGS += \
+       --disable-libssh \
+       --with-iproutedir=/opt/etc/iproute2
+
+CONFIGURE_VARS += \
+       ac_cv_func_getentropy=no \
+       ac_cv_func_getrandom=no
 
 define Package/bird2/conffiles
 /opt/etc/bird.conf
@@ -110,8 +116,8 @@ define Package/bird2/install
        $(INSTALL_BIN)  $(PKG_BUILD_DIR)/bird $(1)/opt/sbin/
        $(INSTALL_DIR)  $(1)/opt/etc
        $(INSTALL_DATA) ./files/bird.conf $(1)/opt/etc/
-#      $(INSTALL_DIR)  $(1)/etc/init.d
-#      $(INSTALL_BIN)  ./files/bird.init $(1)/etc/init.d/bird
+       $(INSTALL_DIR)  $(1)/opt/etc/init.d
+       $(INSTALL_BIN)  ./files/S70bird $(1)/opt/etc/init.d/
 endef
 
 define Package/bird2c/install

ZKU2:

~ # 
~ # cat /opt/etc/init.d/S70bird 
#!/bin/sh

ENABLED=yes
PROCS=bird
ARGS="-f -c /opt/etc/bird.conf -P /opt/var/run/bird.pid"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func
~ # 
~ # /opt/etc/init.d/S70bird start
 Starting bird...              done. 
~ # 
~ # /opt/etc/init.d/S70bird status
 Checking bird...              alive. 
~ # 
~ # /opt/etc/init.d/S70bird restart
 Shutting down bird...              done. 
 Starting bird...              done. 
~ # 
~ # /opt/etc/init.d/S70bird status
 Checking bird...              alive. 
~ #

 

Опубликовано

https://man7.org/linux/man-pages/man3/getentropy.3.html

Цитата
The getentropy() function first appeared in glibc 2.25.

https://man7.org/linux/man-pages/man2/getrandom.2.html

Цитата
getrandom() was introduced in version 3.17 of the Linux kernel.
Support was added to glibc in version 2.25.

 

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.