[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: kernel compile and modules



On Tue, Nov 16, 1999 at 01:27:10AM +0100, J Horacio MG wrote:
> here I have a doubt about the options which can be configured as
> loadable modules instead of compiling into the kernel.  Say I use a
> device too often, eg. cdrom.  If I configure it as a loadable module,
> would this imply the performance would be any different than if compiled
> it in the kernel?  Or, ppp, or other services which can be used oftenly.

If there is a performance impact to using modules, I suspect it must
be negligable.  The only things that *need* to be compiled into the
kernel are the drivers that are needed to get the root filesystem
mounted.  Everything else can and IMO should be done with modules.
The only exception I can think of is the fbdev driver--which *has*
to be in the kernel so you can see the cool penguin graphic right
away on bootup. ;)  Still, check with the help messages during
"make config" to see what they suggest for any given driver.

I think that the main benefit to using modules is that when you're
playing around with different parameters for drivers which need
them, they can be given on the commandline to insmod instead of
having to reboot and pass them via lilo.

>[...] 
> # rm -rf /lib/modules/2.0.36/
> well, if I removed the old modules and had problems with the new kernel,
> I wouldn't be able to use the old kernel, so this step should probably
> (definately) be avoided.

Right--as aphro mentioned, you only want to revove these if you
really need the space.

>[...] 
> # mv /path/to/System.map /boot/System.map-2.2.10

Yep, and after rebooting successfully into the new kernel, you
might want to:

  # ln -sf /boot/System.map-2.2.10 /boot/System.map 
  
but I'm not sure if that's actually necessary.

> # cd /
> # rm vmlinuz
> # ln -s /boot/vmlinuz-2.2.10 vmlinuz

Assuming the existing vmlinuz is just a symlink, then sure.  You'll
still definately want the old kernel around, though, in case the new
one doesn't work.

> next, reflect the changes in /etc/lilo.conf
> 
> # lilo

Right--make sure to put a section for the old kernel in lilo.conf.
Here's a snippet from mine just as an example:

  boot = /dev/sda

  # New kernel
  image = /vmlinuz
  root = /dev/sda1
  label = Linux
  vga = 5
  append="video=matrox:xres:1024,yres:768,depth:16,nopan,pixclock:13334,left:144,right:24,upper:29,lower:3,hslen:136,vslen:6,dpms"
  read-only
  
  # Old kernel
  image = /vmlinuz-2.2.12
  root = /dev/sda1
  label = OldLinux
  vga = 5
  read-only
  
> Anything missing?

I don't think so.  Just make sure you have a working boot floppy
just in case anything goes wrong.

Once you're comfortable making kernels this way, you might want to
consider doing it the "Debian way" with make-kpkg etc.  I just
started that recently and it's really a nice system.

-Kevin


Reply to: