I've been using FC3 happily for quite a while, with a custom kernel, on
my primary laptop system, originally using FC2.

I recently installed FC3 virgin on an old laptop to use for an embedded
application. As soon as I tried to install a custom kernel, I started
getting fatal "unable to open initial console" errors.

I eventually worked out that the reason for this is that /dev on the
"virgin" install is empty. Apparently FC3 by default uses udev to
populate /dev dynamically. I worked around this by copying all the /dev
nodes from another machine.

But this is a hack. I don't understand what the FC3 handoff process is
at boot time. Is it absolutely necessary to have an initial RAMdisk
when using udev? (I haven't looked inside the default initrd image
installed by FC3).

What's the recommended procedure for installing a custom kernel on an
FC3 system that was installed from scratch with default settings?

Is there a way to use udev that doesn't involve having an initial RAM
disk? (I never use one except in certain fairly deeply embedded
applications).