Jump to content

bird2 2.0.10 собранный из сорсов не работает в отличие от 2.0.8


Recommended Posts

@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 и, видимо, используют какие-то функции, которые не имплементированы в кинетике. Но какие это функции и как решить проблему - не знаю.

 

Link to comment
Share on other sites

4 минуты назад, zyxmon сказал:

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

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

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

AC_CHECK_FUNCS(getrandom)
AC_CHECK_FUNCS(getentropy)
Link to comment
Share on other sites

### 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. 
~ #

 

  • Upvote 1
Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...