Temat: libnetfilter-queue kompilacja

Hi mam parę zagwozdek nigdy tego nie robiłem na open-wrt.
Napisałem sobie program w C wykorzystujący biblioteke libnetfilter-queue.
Nie skompiluje na urządzeniu bo nie znajduje 

#include <libnetfilter_queue1/libnetfilter_queue.h>

paczki libnetfilter-queue-dev nie ma na opena. Ktoś jest w stanie mi pomóc ?

2

Odp: libnetfilter-queue kompilacja

Kompiluje się w sdk na komputerze a nie na openwrt. Na openwrt sie nie kompiluje.

Po prostu sobie skompiluj gotową paczkę.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: libnetfilter-queue kompilacja

Siedziałem długo nad tym ale nie mogę tego ogarnąć smile, mam cross-compiler i bez problemu kompilacja standardowego 'hello world' w c działa na routerze. Ale z kompilacją bibliotek już mam problem libnetfilter_queue wymaga libmnl i tak jak jest w poradniku na openwrt robie najpierw

./configure --build=x86_64-unknown-linux-gnu –host=mips-openwrt-linux-uclibc
make
make install

Tworzy libke ale dodaje do /usr/local/lib dla maszyny X86-64 a chciałbym żeby dodało do SDK.
A drugie to nie za bardzo wiem z kąd te magiczne nazwy sie wzieły x86_64-unknown-linux-gnu, mips-openwrt-linux-uclibc w /staging_dir mam foldery target-mipsel_24kc_musl, toolchain-mips_24kc_gcc-7.5.0_musl, toolchain-mipsel_24kc_gcc-7.5.0_musl

4

Odp: libnetfilter-queue kompilacja

Nie. W poradniku niczego takiego nie ma. Nie robi się ./configure i innych takich rzeczy.

Jeżeli czytałeś mój poradnik to powinieneś wiedzieć że albo kompilujesz ręcznie albo robisz sobie odpowiedni plik makefile który zrobi paczkę. Więc zrób własny plik makefile, przekładów masz setki w pakietach w źródłach openwrt.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: libnetfilter-queue kompilacja

Zrobiłem sobie przykładowy pliczek makefile

include $(TOPDIR)/rules.mk

PKG_NAME:=example1
PKG_VERSION:=0.1
PKG_RELEASE:=1

include $(INCLUDE_DIR)/package.mk

define Package/example1
        SECTION:=utils
        CATEGORY:=Utilities
        TITLE:=Example
endef

define Package/example1/description
        Test Description
endef

$(eval $(call BuildPackage,example1))

Zawartość pakitu libnetfilter_queue wrzuciłem do folderu obok makefilea src
Następnie robie    make ./package/test/compile V=s
i dostaje coś tekiego

make[1]: Entering directory '/home/openwrt'
make[2]: Entering directory '/home/openwrt/package/libs/toolchain'
echo "libc" >> /home/openwrt/staging_dir/target-mipsel_24kc_musl/pkginfo/toolchain.default.install
echo "libgcc" >> /home/openwrt/staging_dir/target-mipsel_24kc_musl/pkginfo/toolchain.default.install
echo "libpthread" >> /home/openwrt/staging_dir/target-mipsel_24kc_musl/pkginfo/toolchain.default.install
make[2]: Leaving directory '/home/openwrt/package/libs/toolchain'
time: package/libs/toolchain/compile#0.12#0.00#0.12
make[2]: Entering directory '/home/openwrt/package/test'
make[2]: Nothing to be done for 'compile'.
make[2]: Leaving directory '/home/openwrt/package/test'
time: package/test/compile#0.06#0.03#0.09
make[1]: Leaving directory '/home/openwrt'

Chyba robię coś nie tak bo nie widzę tej libki

6

Odp: libnetfilter-queue kompilacja

Po co  libnetfilter_queue wrzucasz do src? Ta biblioteka jest przeciez w 19.07. Tylko w depends swojego pakietu masz ją podać. I żeby skompilować pakiet wcześniej musisz go zaznaczyć w konfigu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: libnetfilter-queue kompilacja

hmm, ale tak chyba nie ma sensu budować całego pakietu dla jednego programu, wolałbym skompilować go cross-compiler tylko w
STAGING_DIR/toolchain-mipsel_24kc_gcc-7.5.0_musll/usr/include i /lib nie mam tej biblioteki.
Jak można to zrobić ?

8

Odp: libnetfilter-queue kompilacja

Zaznacz i skompiluj sam pakiet libnetfilter_queue żeby bibliteki i nagłówki znalazły się w odpowiednich miejscach.

Pisałem a ty to zignorowałeś - gdybyś umieścił libnetfilter_queue  jako zależność w makefile swojego pakiety to by to się "samo" skompilowało.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: libnetfilter-queue kompilacja

Nie wiedziałem Cezary dopiero zaczynam to ogarniać. Zaznaczyłem, zapisałem odpaliłem make ale dalej nie widzę biblioteki 

 <M> libnetfilter-queue 

10

Odp: libnetfilter-queue kompilacja

W staging_dir/target-*/usr/include i staging_dir/target-*/usr/lib. Nie toolchain-*

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: libnetfilter-queue kompilacja

faktycznie, nie zauważyłem smile, przy kompilacja wywala mi błędami, jakiś pomysł ja to rozwiązać? sprawdzałem libki i libnfnetlink.so.0 jak i libmnl.so.0 są w folderze /lib

/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: warning: libnfnetlink.so.0, needed by /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so, not found (try using -rpath or -rpath-link)
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: warning: libmnl.so.0, needed by /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so, not found (try using -rpath or -rpath-link)
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `nfnl_unset_sequence_tracking'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `nfnl_close'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `nlif_index2name'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `nfnl_addattr_l'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `mnl_attr_put@LIBMNL_1.0'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `nfnl_callback_register'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `nfnl_subsys_open'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `nfnl_build_nfa_iovec'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `mnl_attr_validate2@LIBMNL_1.0'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `nfnl_fd'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `nfnl_query'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `nfnl_open'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `nfnl_sendiov'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `mnl_attr_validate@LIBMNL_1.0'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `mnl_attr_type_valid@LIBMNL_1.0'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `nfnl_fill_hdr'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `nfnl_addattr32'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `mnl_attr_get_type@LIBMNL_1.0'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `mnl_attr_parse@LIBMNL_1.0'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `nfnl_handle_packet'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `mnl_attr_put_u32@LIBMNL_1.0'
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/lib/gcc/mipsel-openwrt-linux-musl/7.5.0/../../../../mipsel-openwrt-linux-musl/bin/ld: /home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.5.0_musl/../target-mipsel_24kc_musl/usr/lib/libnetfilter_queue.so: undefined reference to `nfnl_subsys_close'
collect2: error: ld returned 1 exit status
make: *** [Makefile:5: net-filter] Error 1 

12

Odp: libnetfilter-queue kompilacja

Napisał ci w 2 pierwszych liniach. rpath-link użyj, jako przykład: https://stackoverflow.com/questions/857 … -link?rq=1

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13

Odp: libnetfilter-queue kompilacja

Dzięki za pomoc Cezary smile