EmbeddedRelated.com
Forums

Force to load the module

Started by karthikbalaguru April 3, 2008
Hi,
I understand from the man page of insmod that it is not possible to
force insmod if the symbol names in the module do not match the
kernel.
But, Is it possible to force the loading of the modules, even if the
symbol names in the module do not match the kernel through some other
methods ?

Thx in advans,
Karthik Balaguru
karthikbalaguru wrote:
> Hi, > I understand from the man page of insmod that it is not possible to > force insmod if the symbol names in the module do not match the > kernel. > But, Is it possible to force the loading of the modules, even if the > symbol names in the module do not match the kernel through some other > methods ? > > Thx in advans, > Karthik Balaguru
You did not say it, but let's guess that you're asking a Linux module question. A kernel module is a piece or relocatable kernel code which is linked to the resident kernel when it is inserted. The base level tool to insert a module is insmod. Even if you could insert modules with mismatching symbols, there is no way to sensibly build the links between the module and the resident code. This translates to: Forcibly inserted modules would occupy kernel memory, but they cannot work due to lacking linkages. -- Tauno Voipio tauno voipio (at) iki fi
karthikbalaguru wrote:

> Hi, > I understand from the man page of insmod that it is not possible to > force insmod if the symbol names in the module do not match the > kernel. > But, Is it possible to force the loading of the modules, even if the > symbol names in the module do not match the kernel through some other > methods ?
If you use busybox on your target hardware, there is an 'insmod -f <mod>' which will force the module into the wrong kernel version. HTH, John McCallum
On Apr 4, 8:40=A0pm, John McCallum <john.mccal...@skipthisemerson.com>
wrote:
> karthikbalaguru wrote: > > Hi, > > I understand from the man page of insmod that it is not possible to > > force insmod if the symbol names in the module do not match the > > kernel. > > But, Is it possible to force the loading of the modules, even if the > > symbol names in the module do not match the kernel through some other > > methods ? > > If you use busybox on your target hardware, there is an 'insmod -f <mod>' > which will force the module into the wrong kernel version. >
But, will busybox work perfectly ? I understand that Insmod tries to link a module into the running kernel by resolving all symbols from the kernel's exported symbol table. But, how does insmod handle this incase of symbols with the same address and name that differ in the functionality alone ? Thx in advans, Karthik Balaguru
On May 24, 5:27=A0pm, karthikbalaguru <karthikbalagur...@gmail.com>
wrote:

> But, how does insmod handle this incase of symbols > with the same address and name that differ in the > functionality alone ?
Let's just try to short-circuit all the bullshit, eh? Rebuild the module. If you cannot (e.g. closed-source binary-only) then downgrade your kernel to the version against which the module was built. If you cannot do this, then get rid of the hardware in question and replace it with equivalent hardware for which a usable, preferably open- source, driver exists.
karthikbalaguru wrote:

> But, will busybox work perfectly ?
What busybox does is irrelevant here. Loading a module takes place between that module and the kernel.
> But, how does insmod handle this incase of symbols > with the same address and name that differ in the > functionality alone ?
If you have to ask, you shouldn't even be thinking about forcing an insmod.