* William Case <billlinux [ at ] rogers [ dot ] com> [071215 15:52]:
> I am about to do a fresh install of Fedora 8.  I want to begin exploring
> the kernel so if I need new partitions etc. now would be a good time to
> set up properly.
You don't need separate partitions if you are just swapping a kernel
with one that is relatively close to it.  You can run just about any
2.6.x kernel with the same modern userspace (such as FC8).
        ls /boot/vmlinuz* | wc -l
        18
I seem to have 18 of them.
> I need some advice on how to set up so that I can:
> 1) download a separate kernel -- binary, source and documentation.
I don't use (and avoid) rpm based systems, but you should be able to
install a different kernel using rpm/yum.  You would then select the
right one using grub (or another boot loader) at boot time.
> 2) have access to it from my home directory -- if possible.
You want to have the files in $HOME ?  Well that's not really how linux
distros are setup to boot.
You can however build the kernel in your $HOME dir and install it in the
system directories (/boot and /lib/modules/).  You probably want to use
git.
> 3) trace various trees -- operations from first mention of symbol to
> end.
So you want source, not binaries?
Let me recommend git.
> 4) make sure anything I might do does not screw up my existing system.
Use virtualization or another harddisk.
If you have a modern CPU, you should get a kernel that supports KVM and
run another distro inside a virtual machine.  You can then hack up the
virtualized kernel and not worry about breaking things.
See http://kvm.qumranet.com/ for more info.  Feel free to ask if you
want some help on KVM.
> The advice that I have found even on Linux Kernel Newbies seems to be
> for hackers who are building drivers etc. as contributions (ie. using
> git).  I just want to play and explore -- maybe viewing C and some asm.
You want to use git, even if you just view the source.
Here is how you build a kernel:
        # I assume that you have build tools installed, if not something
        # like this will cure it
        #  - substitute apt with your favorite method of getting packages
        apt-get install build-essential
        # get the git software:
        #  - again, substitute apt with your favorite method of getting packages
        apt-get install git-core                
        # get the linux kernel
        git clone git://git2.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
        cd linux-2.6
        # checkout the last release (or any release you want)
        git reset --hard v2.6.23
        # get the config file from the running kernel:
        zcat /proc/config.gz > .config
        # configure the kernel
        #  - note many questions are answered from the .config file above
        #  - you can use any of the following
        make oldconfig          # text based
        make menuconfig         # curses based
        make xconfig            # X based
        # build the kernel
        make bzImage modules
        # install the kernel
        make modules-install install
        # build a new initramfs for the kernel
        #  - substitute the <new version> with the version you just built, or with "all"
        update-initramfs -c -k <new version>
        
        # get grub to see the new kernel
        update-grub
        # reboot
Please note that the update-* tools above are Debian specific.  The
actual build steps are distro agnostic.
-Bart
-- 
				WebSig: http://www.jukie.net/~bart/sig/