2004-04-20 18:59:10

by Pekka Pietikäinen

[permalink] [raw]
Subject: Support for building individual .ko's would be nice :-)

I was told you're the man to bug about this :-)

Having a slow box, a vendor kernel (+ kernel-source package with config
for it) and a need to modify one line of a module, recompile it,
replace existing module with it and continue business as usual
made me notice kbuild doesn't seem to have a facility for this.

What would be nice is (say)

cp configs/xxx-i686.config .config
emacs drivers/media/dvb/frontends/ves1820.c
make drivers/media/dvb/frontends/ves1820.ko
cp ves1820.ko /lib/modules/...
rmmod ves1820; modprobe ves1820

Or am I missing something obvious that let me get just that one .ko
without recompiling just about everything? (.o is easy, but that's
not very useful :-) )

--
Pekka Pietikainen


2004-04-20 19:16:11

by Marc Singer

[permalink] [raw]
Subject: Re: Support for building individual .ko's would be nice :-)

On Tue, Apr 20, 2004 at 09:59:04PM +0300, Pekka Pietikainen wrote:
> I was told you're the man to bug about this :-)
>
> Having a slow box, a vendor kernel (+ kernel-source package with config
> for it) and a need to modify one line of a module, recompile it,
> replace existing module with it and continue business as usual
> made me notice kbuild doesn't seem to have a facility for this.
>
> What would be nice is (say)
>
> cp configs/xxx-i686.config .config
> emacs drivers/media/dvb/frontends/ves1820.c
> make drivers/media/dvb/frontends/ves1820.ko
> cp ves1820.ko /lib/modules/...
> rmmod ves1820; modprobe ves1820
>
> Or am I missing something obvious that let me get just that one .ko
> without recompiling just about everything? (.o is easy, but that's
> not very useful :-) )

If you leave the compiled tree intact, all you need to do is modify
the one source file and then "make modules". You'll wait a while the
first time, but successive builds will be minimal.

2004-04-20 22:27:50

by Axel Weiß

[permalink] [raw]
Subject: Re: Support for building individual .ko's would be nice :-)

On Tuesday 20 April 2004 20:59, Pekka Pietikainen wrote:
> I was told you're the man to bug about this :-)
>
> Having a slow box, a vendor kernel (+ kernel-source package with config
> for it) and a need to modify one line of a module, recompile it,
> replace existing module with it and continue business as usual
> made me notice kbuild doesn't seem to have a facility for this.
>
> What would be nice is (say)
>
> cp configs/xxx-i686.config .config
> emacs drivers/media/dvb/frontends/ves1820.c
> make drivers/media/dvb/frontends/ves1820.ko

Never tried before, but I would suggest to run
make M=drivers/media/dvb/frontends
at this place.

> cp ves1820.ko /lib/modules/...
save your old module first!

> rmmod ves1820; modprobe ves1820
rmmod ves1820
lsmod # module unloaded?
modprobe ves1820

>
> Or am I missing something obvious that let me get just that one .ko
> without recompiling just about everything? (.o is easy, but that's
> not very useful :-) )

BTW: (asking the experts here) is it legal to hack a module like this??

I'd prefer to compile the whole thing (over night)!

Axel

2004-04-20 22:10:02

by Sam Ravnborg

[permalink] [raw]
Subject: Re: Support for building individual .ko's would be nice :-)

On Tue, Apr 20, 2004 at 09:59:04PM +0300, Pekka Pietikainen wrote:
> I was told you're the man to bug about this :-)
>
> Having a slow box, a vendor kernel (+ kernel-source package with config
> for it) and a need to modify one line of a module, recompile it,
> replace existing module with it and continue business as usual
> made me notice kbuild doesn't seem to have a facility for this.
>
> What would be nice is (say)
>
> cp configs/xxx-i686.config .config
> emacs drivers/media/dvb/frontends/ves1820.c
> make drivers/media/dvb/frontends/ves1820.ko

Use
make drivers/media/dvb/frontends/

to just compile the module.

But then you need to do an:
make modules

which will build all modules. Here you need to tweak the .config to only
specify one module, the one you want.
Sorry, no better way today.

Keep a pre-built kernel is always a good choice.

Sam