On Tue, Sep 18, 2012 at 10:10 PM, Pritam Bankar <pritambankar1988@gmail.com>wrote:
On Tue, Sep 18, 2012 at 7:27 PM, Pritam Bankar <pritambankar1988@gmail.com> wrote:
Any idea what causes __versions section to get added in *.ko module. A simple hello.ko on ubuntu 12.04 i386 machine gets loaded successfully. Other module just doesn't get loaded giving error " Invalid module ". When I compared both modules with objdump -h I found __versions section was missing from second module and that can be the reason its not getting loaded. How can I add this section to other .ko ? What causes __versions to get added in ko ?
I have compiled both modules with modpost and Module.symvers.
The real reason why kernel prevent the module outside to insmod is ABI, Application binary interface, which is referred in http://en.wikipedia.org/wiki/Application_binary_interface. If you do want to bypass it without rebuilding kernel ,you can do like this. http://hi.baidu.com/wzt85/item/dcea082c90c9ed0942634ad2 :)