ok, I like typing so I'll give you the easy run through for fc4.
first though, yum in an incredibly powerful tool, but there are better places to send it to retrieve rpms. Check out fedorafaq.org. it's a very simple page that runs you through some pretty important stuff like how to get java running on your browser, and how to get mp3's going.
particularly of interest is the yum.conf. it's terrific. go to the site and the setup is very easy.
now onto kernels. absolutely the easiest way to do it is to start with a new downloaded kernel. these are available at kernel.org... click on the "F" to the right of the newest stable kernel (it's 2.6.13 today)
this'll give you a download for a .bz2 archive, which is just another way of compressing a folder like zip or tar.gz.
the directory you want to decompress the package to is /usr/src/kernels/ (in previous version of fedora it was just /usr/src/) so you'll want to cd to the directory you downloaded it to, and
#mv linux-2.6.13* /usr/src/kernels/
now we've got to decompress it, to turn it back into a directory. "tar" handles most decompressions, and decompression for .bz2 is
#tar -jxf linux-2.6.13.bz2
(it might take a while)
now, if you "ls" in the kernels directory, there should be a directory named linux-2.6.13. we won't need the bz2 archive anymore, so you can
#rm -f linux-2.6.13.bz2
and then cd into the directory you just created. For the next step you need the package qt-devel, which wasn't included in fedora up to this point, but I believe it is now. to open the kernel configuration, just use
#make xconfig
and it'll open up an easy to use xwindow called qconf with a lot of options. there are a few tricks in there. first you're going to click on "General Setup" on the left, and then double click on the "Local version - append to kernel release" line of text, which will open a text box at the bottom of the top right window (it's hard to see)
what you type on there will be appended to the end of your kernel name, so type something -kosmo (that's my dog's name) and you'll end up with a kernel named 2.6.13-kosmo.
The rest of the options are extensive, and the more boxes you leave checked, the longer your kernel will take to compile. if you're trying to learn, I really suggest you go through all the trees, and figure out what everything is. clicking the little boxes includes/removes each package, with a "check" indicating that it will be compiled into the kernel directly, and a "dot" indicating that it will compile as a module.
The general rule for this is that things that are always going to be connected to your computer, like a video card, or a fixed ethernet card, can be compiled into the kernel, things that you plug and unplug, like a pcmcia network card, usbstorage, etc are compiled as modules, and things you don't have, will never use, or have never heard of (there's a lot of those) will not have to be compiled at all.
a few suggestions of things that you probaby want that are sometimes unchecked or hidden:
-under Device Drivers>Block Devices, you want RAM disk support, and initial RAM disk support. you might think that only live linux cd's etc would need a RAMdisk, but it's needed for the bootstrap process, and if you don't have it, you'll kernel panic on boot. (there are lots of things that will cause a kernel panic while booting if you remove them, but you'l have to figure them out)
-under "Sound" you need sound card support (as a module) (this creates soundcore), and then under Advanced Linux Sound Architecture (alsa...) you want to click on the arrow for PCI devices and find yours. what I was talking about in the previous post (stripping out) is removing all the devices you don't have here, so that there's no chanse it could try to use a different driver.
-if your'e dual booting with windows, and your windows partition is ntfs, you're probably going to want the ability to mount it to read (there's no good write support for ntfs yet) you need to dot ntfs file system support under File systems>Dos/Fat/NT Filesystems.
beyond this, most descriptions have a comment at the end of the description to the tune of "if you've never heard of this, say N" (this means uncheck it, it's from the old kernel config system where you used to have to go through each of these options one by one and type y if you wanted them, n if you didn't, and m if you wanted a module, it was a pain in the ass, because there was no going back) or "you probably want this," or, "you only want this if you're debugging yada yada." The descriptions are quite good, and almost always helpful.
when you've decided what you want and what you don't want, click the save icon at the top (if you don't, it will warn you as you exit) and then close the window. if you want to know where all of your hard unclicking work went, it's saved as a hidden file in the source directory (/usr/src/kernels/linux-2.6.13) as ".config"
in future, if you don't want to have to reclick a new kernel, you can copy this .config into the new source directory and you'll only have to sift through the stuff that is new to that kernel (marked with [NEW])
now we're back to the command prompt, and ready to make the kernel. as of fedora core 3 (I think that released with 2.6.9?) , this is very easy. before that, you had to compile both the kernel image, the modules, then move them both to where they needed to be, and then update your bootloader. the new makefiles do all this for you. all you should have to do is become root, and then compile. if you're logged in as root already, no problem. if not, just type
#su
(and then your password when it prompts you)
#make all
and then anywhere from 2 hours to ten minutes later
#make install
and then
#make modules_install
now if you read your bootloader config (grub is the default bootloader on fedora)
#cat /boot/grub/grub.conf
there should be an entry for your new kernel, which will be easily visible with the new -kosmo (or your dog's name) at the end.
while we're in this config file, look at the "default=" field at the top. that's the entry number (starting at zero) that will boot after the number of seconds noted in the "timeout=" field.
if you want to change any of the stuff in here, until you get used to the terminal, type
#gedit /boot/grub/grub.conf
and it will open in a nice window that looks like a text editor. I'm much faster with a text editor called vi, but it's extremely difficult to use if you never have before. there are lots of guides to it online however.
all you have to do now is reboot with
#shutdown -r now (you have to be root to do that from a terminal as well)
and wait for the grub countdown. hit enter to get a list of available boot methods, and then scroll down to the new kernel and hit enter again.
if it doesn't boot, write down whatever message you get, cycle the power and boot to the original kernel, search for the error on
www.google.com/linux
and add whatever it is you're missing to your kernel, recompile as above, and try again.
when you're confident in your new kernel, you can change the "default=" field in grub.conf to represent your new kernel, and reduce the "timeout=" field so that you don't have to wait as long for it to boot automatically. I wouldn't make it less than a second though, as you always want access to a backup kernel if you need it.
let me know if you get snagged up anywhere.
/g