[howto] Compile 2.6.31 Kernel in Slackware 13.0
This is the way I did it, and hopefully should work for you as well.
Open terminal and login as root [or if you'd prefer, use sudo in every step.]
After it’s extracted remove the previous symlink.
Now your linux directory points to your newly extracted kernel tree source. If you want you can configure using your personal config, or I have uploaded my config which I will use in this guide. So you may skip next step of wgetting it.
Now scroll all the way down and select load kernel configuration and press enter to select the .config.
This will take a while, meanwhile open another tab and configure lilo.
Scroll all the way down and copy the existing linux entry. Just change the part which says /boot/vmlinuz to /boot/bzImage and then add another line just below it called initrd. Here’s my entry:
Remember to replace /dev/hda4 with your own root partition. Yes yes, I know we haven’t created an initrd image yet. Patience! Just save and exit for now.
Now that make is over run:
You may copy over the config file to /boot but I see now use for that and hence I skipped it. Hey as long as it works, eh?
Anyways, now for the next step, you are own your own since it depends on what partition type you are using. I use ext4 throughout and have no separate partition for /boot and hence this is how I generated my initrd image. Please refer to /boot/README.initrd file for details!
If you get a warning about LBA32 just add “lba32″ in your lilo.conf and re-run lilo. And now reboot into your new kernel!
Good Luck
Open terminal and login as root [or if you'd prefer, use sudo in every step.]
Code:
# cd /usr/src # wget ‘http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.tar.bz2′ # tar xvfj linux-2.6.31.tar.bz2
Code:
# rm -rf linux # ln -s /usr/src/linux-2.6.31 /usr/src/linux
Code:
# cd /usr/src/linux && wget ‘http://www.sigmirror.com/files/31573_su3ht/.config’ # make menuconfig
Code:
# make
Code:
# nano /etc/lilo.conf
Code:
image = /boot/bzImage initrd = /boot/initrd.gz root= /dev/hda4 label = Linux read-only
Now that make is over run:
Code:
# make modules_install # cp arch/i386/boot/bzImage /boot/bzImage # cp System.map /boot/System.map.new # rm /boot/System.map # ln -s /boot/System.map.new /boot/System.map
Anyways, now for the next step, you are own your own since it depends on what partition type you are using. I use ext4 throughout and have no separate partition for /boot and hence this is how I generated my initrd image. Please refer to /boot/README.initrd file for details!
Code:
# mkinitrd -c -k 2.6.31-pdg -m ext4 -f ext4 -r /dev/hda4 # cd /etc/rc.d # rm rc.modules # cp rc.modules-2.6.29.6-smp rc.modules-2.6.31-pdg # ln -s /etc/rc.d/rc.modules-2.6.31-pdg /etc/rc.d/rc.modules # lilo
Good Luck
Total Comments 2
Comments
-
question about removing and re-linking /etc/rc.modules
Very good tutorial. Two questions though:
1. At the end you recommend doing:
Code:# cd /etc/rc.d # rm rc.modules # cp rc.modules-2.6.29.6-smp rc.modules-2.6.31-pdg # ln -s /etc/rc.d/rc.modules-2.6.31-pdg /etc/rc.d/rc.modules
http://alien.slackbook.org/dokuwiki/...rnelbuilding&s[]=compile&s[]=kernel
2. Also, is the process the same if you are compiling a kernel on 64 bit Slackware?Posted 10-16-2009 at 06:24 AM by tommcd -
I just created a new symlink for the new kernel modules, that's step is not really necessary as I'm using the older rc.modules itself.
I compiled a 32bit kernel, so for a 64bit kernel, you must use your own config, you can use one from the existing kernel .config in your /usr/src/linux directory. The rest of the process is same, just instead of copying the bzImage from i386, you should do it from x86.
cp arch/x86/boot/bzImage /boot/bzImage
Atleast that's what I know since I don't really use a 64bit system, even though I have a core2 cpu, I like 32bit.
Hope this helps you.Posted 10-23-2009 at 08:37 PM by ~sHyLoCk~