wdoekes / asterisk-chan-dongle

chan_dongle channel driver for Huawei UMTS cards, works with Asterisk 14+
Other
300 stars 105 forks source link

Help needed compiling last trunk openwrt chaos calmer 15.05.1 #51

Closed openwr closed 6 years ago

openwr commented 6 years ago

I compiled openwrt chaos calmer 15.05.1 from scratch using asterisk13. If I try to install the ipk I have

root@OpenWrt:/tmp# opkg install asterisk13-chan-dongle_1.1-20170913-2_brcm63xx.ipk Installing asterisk13-chan-dongle (1.1-20170913-2) to root... Collected errors:

but I compiled openwrt all by scratch with linux version 3.18.92. Why it requests .18.23-1-df7efb22d5e24c34e407197985d2f684 kernel, if I compiled openwrt from scratch with 3.18.92 linux version?

If I try to force with

root@OpenWrt:/tmp# opkg install asterisk13-chan-dongle_1.1-20170913-2_brcm63xx.ipk --nodeps Installing asterisk13-chan-dongle (1.1-20170913-2) to root... Configuring asterisk13-chan-dongle.

it can be installed but when I launch asterisk I have:

[Mar 2 11:51:02] NOTICE[3620] loader.c: 57 modules will be loaded. [Mar 2 11:51:03] ERROR[3620] loader.c: Module 'chan_dongle.so' did not register itself during load [Mar 2 11:51:03] ERROR[3620] loader.c: Module 'chan_dongle.so' did not register itself during load [Mar 2 11:51:03] ERROR[3620] loader.c: Module 'chan_dongle.so' did not register itself during load [Mar 2 11:51:03] ERROR[3620] loader.c: Module 'chan_dongle.so' did not register itself during load

Any fix for compiling it with asterisk13 with last linux kernel for openwrt chaos calmer?

wdoekes commented 6 years ago

Dear @openwr,

I don't have anything to do with openwrt. You'll need to look elsewhere for support with issues with kernel dependencies. Chan_dongle does not limit itself to specific kernels explicitly. Any limits you see are in the openwrt build system.

Module 'chan_dongle.so' did not register itself during load

That looks like chan_dongle may have been built for the wrong Asterisk version, but I'm not sure.

The Asterisk module loader in Asterisk 13 calls dlopen on the module, which should run this sharedlib constructor:

        static void  __attribute__((constructor)) __reg_module(void) \
        { \
                ast_module_register(&__mod_info); \
        } \

It looks like that constructor is not run. It could be that the compilation used the wrong Asterisk header files (for the wrong Asterisk version?), or something else is awry. It could be that it never reaches the constructor because of some symbol resolve failure (again compiled for the wrong version?).

I'm sorry, but I cannot help you with the openwrt stuff. And as for the dlopen issue: you'll have to compile things like the README instructs if I'm to say anything useful about it.