[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    Re: insmod not working by module name in Linux 2.4.30 / MIPS
From:       Denys Vlasenko <vda.linux () googlemail ! com>
Date:       2010-09-30 21:56:21
Message-ID: 201009302356.21216.vda.linux () googlemail ! com
[Download RAW message or body]

On Wednesday 29 September 2010 21:49, RiCH Busybox wrote:
> On Tue, 2010-09-28 at 16:21 -0500, Rob Landley wrote:
> > On Tuesday 28 September 2010 16:15:28 RiCH Busybox wrote:
> > > On Tue, 2010-09-28 at 09:23 +1000, Stuart Longland wrote:
> > > > On Mon, Sep 27, 2010 at 09:40:05PM +0100, RiCH Busybox wrote:
> > > > > On Mon, 2010-09-27 at 07:49 +1000, Stuart Longland wrote:
> > > > > > Have you perhaps tried 'modprobe'?  My understanding is that insmod
> > > > > > always did require the full path (from memory this has been the case
> > > > > > since modutils days in kernel 2.0), and that 'modprobe' was the tool
> > > > > > if you just wanted to recall a module by name rather than by file.
> > > > >
> > > > > Hi Stuart, thanks for your reply
> > > > >
> > > > > modprobe works fine loading/unloading, using just the module name
> > > > > modinfo works fine just using module name
> > > > > rmmod works fine just using module name
> > > > > insmod doesn't work using the module name (however it does in busybox
> > > > > <= 1.0.1)
> > > > >
> > > > > I admit to knowing very little about it, but seems if rmmod can cope
> > > > > with module name then insmod should also be able to?
> > > > >
> > > > > Unfortunately as it did work, this firmware has been built assuming it
> > > > > does and as I said its hard coded into a binary (sysinit)  ...
> > > > > Even if technically insmod shouldnt work is there a way it can be
> > > > > easily patched to be backwards compatible?
> > > >
> > > > It did work in official busybox-1.0.1, or it worked in the busybox-1.0.1
> > > > sources as supplied with the firmware?
> > > >
> > > > In any case, a bit of shell voodoo will probably do what you want:
> > > >
> > > > #!/bin/ash
> > > >
> > > > if [ -f "$1" ]; then
> > > > 	exec busybox insmod "$@"
> > > > else
> > > > 	exec busybox modprobe "$@"
> > > > fi
> > > >
> > > > Call that /sbin/insmod, and set permissions as appropriate.  Unless of
> > > > course the binary expects to call 'busybox insmod' directly instead of
> > > > via the symlink, that should work.
> > >
> > > Hi Stuart,
> > > Thanks for your reply,
> > > It worked in busybox-1.1.0.5VT that is bundled with buildable firmware,
> > > I also tried v1.01 copying config file over (which is presumably v1.0.1,
> > > the naming convention changed for some reason on this release) and works
> > > fine also.
> > > (Some others like 1.1.1 dont seem to function, the router gets stuck
> > > booting when its handed over from uboot)
> > > I just tried 1.11.2 (again just copying config file, doing a make
> > > menuconfig ,save and exit without altering anything, and everything to
> > > my amazement works!
> > >
> > > I can only assume this along with the fact the insmod.c actually
> > > mentions it should work on 2.4 kernels by using just the module name
> > > that 1.17.2 does have a bug.
> > >
> > > When I get more time I will try newer and newer builds to see where it
> > > broke.
> > 
> > The modprobe support for 2.4 kernels is a legacy feature that isn't really 
> > very well tested.
> > 
> > Considering that the 2.4 kernel maintainer has essentially declared the 2.4 
> > kernel series dead, busybox is unlikely to suddenly start putting more effort 
> > into regression testing it.
> > 
> >   http://lwn.net/Articles/403649/
> > 
> > Rob
> 
> 
> Hi Rob,
> 
> Appreciate 2.4 is ancient but unfortunately that is what Belkin went for
> and its far beyond my abilities to change it.
> 
> I have narrowed it down in so much as <= final 1.12.3 [final] build
> works and >= 1.13.1 doesn't [i didnt try 1.13.0]
> 
> It looks like insmod.c got altered at this point and something got
> broken -  simple fix for someone in the know?? It is definitely intended
> to work from comments in new file.
> 
> 
> 
> 
> BusyBox v1.12.4 (2010-09-29 20:36:18 BST) hush - the humble shell v0.9
> Enter 'help' for a list of built-in commands.
> 
> / # insmod rtl
> rtl_major = 253
> 0 smi_init check[0x0105]=0x8366
> Gemtek Link status init.
> 
> 
>  
> BusyBox v1.13.1 (2010-09-29 19:39:37 BST) hush - the humble shell v0.91
> Enter 'help' for a list of built-in commands.
> 
> / # insmod rtl
> insmod: cannot insert 'rtl': Operation not permitted

Can you strace both runs?

strace -oLOG -tt -s99 <command> <args>

and post the logs.

-- 
vda
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic