There is an asterisk with version 1.6.2.6. It is working on an ARM board. I don’t have its source etc. I wanted to add a module to it. I have downloaded asterisk 1.6.2.6 and cross compile it in my computer. Then I have tried to load my module but it has given the following error:
CLI> module load cdr_csv.so
Unable to load module cdr_csv.so
Command 'module load cdr_csv.so ’ failed.
[2016-05-12 10:28:40] WARNING[2552]: loader.c:748 inspect_module: Module ‘cdr_csv.so’ was not compiled with the same compile-time options as this version of Asterisk.
[2016-05-12 10:28:40] WARNING[2552]: loader.c:749 inspect_module: Module ‘cdr_csv.so’ will not be initialized as it may cause instability.
[2016-05-12 10:28:40] WARNING[2552]: loader.c:832 load_resource: Module ‘cdr_csv.so’ could not be loaded.
What can I do in this case? I cannot change the system on the board. I want only to add new modules.
As the warning says you’d have to figure out what precise environment Asterisk was compiled in and compile the module against it. This includes compiler flags and options when building Asterisk.
When did you obtain the original modules? If less than three years ago, you should insist on your legal right to have the actual source code used. It is fairly clear that that the spirit of the GPL is that that should include the settings of any configuration options needed to exactly reproduce the binary.
Note that Linux package systems generally try to make complying with this easy by generating a source package, in parallel with the binary package, and which contains the precise configuration settings used.