From: strnbrg on
If I want to compile (and then boot into) a new kernel, is it
necessary that I make a new initrd too? Or can I stick with the
(working) initrd that came with my Linux distribution (SuSE 10.3),
which has been working just fine? (SuSE 10.3 installed a 2.6.22.5
kernel, and I want to compile a 2.6.25.6.

I ask this question because I've tried going with the old initrd and
my system hangs almost immediately after I select the new kernel from
the grub menu.
From: Bill Marcum on
On 2008-06-30, strnbrg <strnbrg59(a)gmail.com> wrote:
>
>
> If I want to compile (and then boot into) a new kernel, is it
> necessary that I make a new initrd too? Or can I stick with the
> (working) initrd that came with my Linux distribution (SuSE 10.3),
> which has been working just fine? (SuSE 10.3 installed a 2.6.22.5
> kernel, and I want to compile a 2.6.25.6.
>
> I ask this question because I've tried going with the old initrd and
> my system hangs almost immediately after I select the new kernel from
> the grub menu.

Doesn't that answer your question? Of course, if you are compiling a
kernel specifically for your machine, you could compile it so that it
doesn't need an initrd.
From: strnbrg on
My understanding of what an initrd is, didn't lead me to the immediate
conclusion that I needed a kernel-specific initrd. Isn't the initrd
just a small root filesystem that contains just enough hard disk
drivers to enable loading the real root filesystem? And in that case,
it seemed that whatever succeeded in loading my root filesystem with
the old kernel would work with the new kernel too. After all, I don't
expect to rebuild my *real* root filesystem just to satisfy the new
kernel. Moreover, this new kernel I'm having trouble with actually
came up (along with the rest of the system) pretty well, when I
installed it on an old Linux 2.4-based system.

The other thing, to be perfectly honest, is that I'm having no luck
making a good initrd, following the instructions in the new kernel
howto (http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html).
From: strnbrg on
OK, solved the problem. It wasn't the initrd. It was that I'd failed
to copy over the new /boot/System.map-2.6.25.6.
From: Andrew Halliwell on
strnbrg <strnbrg59(a)gmail.com> wrote:
> If I want to compile (and then boot into) a new kernel, is it
> necessary that I make a new initrd too? Or can I stick with the
> (working) initrd that came with my Linux distribution (SuSE 10.3),
> which has been working just fine? (SuSE 10.3 installed a 2.6.22.5
> kernel, and I want to compile a 2.6.25.6.

Kernel modules stored in initrd are specificly for the kernel the initrd was
made with, so yep, you'll need to mkinitrd...

UNLESS... you compile your kernel with the things required for booting
compiled INTO the kernel, rather than as modules.

If you do that, you shouldn't need an initrd at all.

> I ask this question because I've tried going with the old initrd and
> my system hangs almost immediately after I select the new kernel from
> the grub menu.

It will, none of the modules will work, they're linked to the old kernel.
that means no filesystem (ext3), possibly no sata drivers, no framebuffer,
etc etc etc...
--
| spike1(a)freenet.co.uk | Windows95 (noun): 32 bit extensions and a |
| | graphical shell for a 16 bit patch to an 8 bit |
| Andrew Halliwell BSc | operating system originally coded for a 4 bit |
| in |microprocessor, written by a 2 bit company, that|
| Computer Science | can't stand 1 bit of competition. |