[ILUG] Building a new kernel
Conor.Wynne at compaq.com
Tue Feb 27 11:50:43 GMT 2001
> Here's the background - I have installed SUSE 7.0 and now want to set up
> BRU to do some tape backups. When I run install.sh I am told that I
> need SCSI tape support in the kernel - fair enough. However, when I add
> it and compile the new kernel the size is something like 500k instead of
> the 800k of the existing kernel.
Are you doing.....
make xconfig / menuconfig / config
make dep clean bzImage modules modules_install
cp usr/src/linux/System.map /boot
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-newkernel
During kernel compilation, are you selecting the correct chipset? - very
stupid question I know, and if so modular or static?
For scsi controllers / all devices that are constantly accessed I prefer to
make them static, other devices that are rarely / seldomly accessed I prefer
to do modular (like my TVTUNER)
The advantage of modular is that you can specify resources for the devices,
although some devices that are compiled statically are intellegent and only
use resources when in use...
A typical example of such a device would be some sort of NIC. The NIC
drivers normally reserve a pool of DMA'able RAM.
An example of an intellegent device : The eepro100 driver won't request any
irq's until being configured with ifconfig...
Make sure that you're gcc's are up to date blah blah blah
I don't bother with initrd - but there is some info on modular scsi that I
got from a buddy ---
Having your main SCSI driver as a module, means that the driver is
not built into the kernel. So, the SCSI driver module exists on
the SCSI drive in the /lib/modules directory. See any problems with
this one? -- How about this: How can the kernel open the SCSI hard
drive so it can load the SCSI driver -- you wind up with an impossible
situation. You need the driver, it's on the drive, but you need the
driver before you can open the drive. The answer is the initrd
(initial ram disk). You build an initrd by running mkinitrd, mkinitrd
looks in /etc/conf.modules (or /etc/modules.conf) and reads the line
"alias scsi_hostadapter ncr53c8xx". It then takes the listed driver
and puts it into the initrd. At boot time you have the kernel and the
initrd, the initrd helps the kernel, then the rest of the boot process
takes place on the hard drive.
I hope this helps,
More information about the ILUG