Normal kernel versions for Mandriva 2006 are 2.6.12.12mdk standard, up to 2.6.12.17mdk as of present. Some people have wondered what to do if you need to get something working/compiled that requires a later kernel. I also heard people mention problems trying to do manual kernel upgrades on Mandrake/Mandriva due to the way they are normally set up. So I figured, I'll give it a go and see if it's really that bad. As it happens, no, it worked a treat
First, I downloaded 2.6.15.6 from kernel.org (this is the latest as of todays date). Download the bz2, it's 10MB smaller than the GZ. This was saved to my ~/Download directory. In my example, this refers to /home/ian/Download. First off, you need to extract it and update the symlink, so:
CODE
su (supply root password when prompted)
cd /usr/src
tar xvf /home/ian/Download/linux-2.6.15.6.tar.bz2
rm linux
ln -s linux-2.6.15.6 linux
cd /usr/src
tar xvf /home/ian/Download/linux-2.6.15.6.tar.bz2
rm linux
ln -s linux-2.6.15.6 linux
Now, you've unpacked it, this is where we issue a few commands and then sit back and wait for about 30 minutes or so. Kernel compilation can take some time, especially if your machine is low spec. Mandriva's kernels are mostly modular, and for this, we're going to keep it the same. First, check that you can see files in your /boot directory. Specifically, the /boot/config file which is a symlink to your current kernel config file. If you can see this, then this makes it real easy. Why it makes it easy is that your current config file will be read by the kernel, therefore using all the settings from your existing Mandriva kernel. That way you don't have to worry about building a kernel that misses something and causes problems later. So, the next steps we do are:
Please note, if you want the Mandriva Bootsplash, make sure you check the Bootsplash section towards the bottom of this post. If you continue as below, the kernel will be compiled without bootsplash support.
CODE
make mrproper (this clears any previous kernel compile, so for first time round, not really required)
make menuconfig (when this loads, just tab to exit, and then save the configuration
make menuconfig (when this loads, just tab to exit, and then save the configuration
and that's it, your kernel config is exactly the same as your current 2.6.12 Mandriva kernel.
Compiling the kernel
Now, we need to compile it. I normally just add it all on one line, so that you just leave it go and it'll finish and complete automatically for you. Below, I've listed the options you can do in 3 stages, and then all in one:
CODE
make
make modules_install
make install
make modules_install
make install
this means you have to keep checking after each stage. However, this one command will do it all for you:
CODE
make && make modules_install && make install
The first part compiles the kernel and modules. The second part installs the modules and the third part copies the kernel into place, creates the initrd image that Mandriva requires and copies the system.map, kernel.h and config files into the /boot directory. The contents of my directory is listed as follows:
CODE
[ian@elise ~]$ ls -l /boot
total 5404
-rw-r--r-- 1 root root 512 Jan 13 22:01 boot.0300
lrwxrwxrwx 1 root root 19 Mar 10 20:52 config -> config-2.6.12-17mdk
-rw-r--r-- 1 root root 71358 Feb 13 22:27 config-2.6.12-17mdk
-rw-r--r-- 1 root root 65014 Mar 10 20:47 config-2.6.15.6
drwxr-xr-x 2 root root 120 Jan 13 21:45 grub/
-rw------- 1 root root 234244 Feb 25 15:01 initrd-2.6.12-17mdk.img
-rw-r--r-- 1 root root 210860 Mar 10 20:47 initrd-2.6.15.6.img
lrwxrwxrwx 1 root root 23 Feb 25 15:01 initrd.img -> initrd-2.6.12-17mdk.img
lrwxrwxrwx 1 root root 27 Mar 10 20:52 kernel.h -> /boot/kernel.h-2.6.12-17mdk
-rw-r--r-- 1 root root 695 Feb 25 16:06 kernel.h-2.6.12-17mdk
-rw-r--r-- 1 root root 695 Mar 10 20:49 kernel.h-2.6.15.6
-rw------- 1 root root 343552 Mar 10 20:47 map
lrwxrwxrwx 1 root root 15 Jan 13 22:02 message -> message-graphic
-rw-r--r-- 1 root root 246542 Mar 10 20:47 message-graphic
-rw-r--r-- 1 root root 116 Jan 13 22:02 message-text
lrwxrwxrwx 1 root root 23 Mar 10 20:52 System.map -> System.map-2.6.12-17mdk
-rw-r--r-- 1 root root 639466 Feb 13 22:27 System.map-2.6.12-17mdk
-rw-r--r-- 1 root root 622211 Mar 10 20:47 System.map-2.6.15.6
-rw-r--r-- 1 root root 256 Jan 13 22:01 uk.klt
lrwxrwxrwx 1 root root 20 Feb 25 15:01 vmlinuz -> vmlinuz-2.6.12-17mdk
-rw-r--r-- 1 root root 1607727 Feb 13 22:27 vmlinuz-2.6.12-17mdk
-rw-r--r-- 1 root root 1448482 Mar 10 20:47 vmlinuz-2.6.15.6
total 5404
-rw-r--r-- 1 root root 512 Jan 13 22:01 boot.0300
lrwxrwxrwx 1 root root 19 Mar 10 20:52 config -> config-2.6.12-17mdk
-rw-r--r-- 1 root root 71358 Feb 13 22:27 config-2.6.12-17mdk
-rw-r--r-- 1 root root 65014 Mar 10 20:47 config-2.6.15.6
drwxr-xr-x 2 root root 120 Jan 13 21:45 grub/
-rw------- 1 root root 234244 Feb 25 15:01 initrd-2.6.12-17mdk.img
-rw-r--r-- 1 root root 210860 Mar 10 20:47 initrd-2.6.15.6.img
lrwxrwxrwx 1 root root 23 Feb 25 15:01 initrd.img -> initrd-2.6.12-17mdk.img
lrwxrwxrwx 1 root root 27 Mar 10 20:52 kernel.h -> /boot/kernel.h-2.6.12-17mdk
-rw-r--r-- 1 root root 695 Feb 25 16:06 kernel.h-2.6.12-17mdk
-rw-r--r-- 1 root root 695 Mar 10 20:49 kernel.h-2.6.15.6
-rw------- 1 root root 343552 Mar 10 20:47 map
lrwxrwxrwx 1 root root 15 Jan 13 22:02 message -> message-graphic
-rw-r--r-- 1 root root 246542 Mar 10 20:47 message-graphic
-rw-r--r-- 1 root root 116 Jan 13 22:02 message-text
lrwxrwxrwx 1 root root 23 Mar 10 20:52 System.map -> System.map-2.6.12-17mdk
-rw-r--r-- 1 root root 639466 Feb 13 22:27 System.map-2.6.12-17mdk
-rw-r--r-- 1 root root 622211 Mar 10 20:47 System.map-2.6.15.6
-rw-r--r-- 1 root root 256 Jan 13 22:01 uk.klt
lrwxrwxrwx 1 root root 20 Feb 25 15:01 vmlinuz -> vmlinuz-2.6.12-17mdk
-rw-r--r-- 1 root root 1607727 Feb 13 22:27 vmlinuz-2.6.12-17mdk
-rw-r--r-- 1 root root 1448482 Mar 10 20:47 vmlinuz-2.6.15.6
I didn't bother to update my symlinks for config, etc, etc. I could do, but for now, I've installed it as it. The last command also modified my lilo configuration and created an entry called "26156". So my main entries allow me to boot my standard Mandriva kernel, and the last one allows me to boot my newly created kernel. Updating your symlinks is only required if you have implicitly pointed your lilo/grub configuration to look at the symlinks instead of the actual kernel version itself. My new kernel is functioning correctly without having to do this.
Mandriva Bootsplash
The Mandriva bootsplash will no longer be present, but this is only a minor thing. A patch can be applied to get it back. Therefore, you need to change the steps from "make menuconfig". First, you need to download from here:
ftp://ftp.openbios.org/pub/bootsplash/ker...1.6-2.6.15.diff (info provided in post #8 below by mandrivauser ceco)
The steps to enable are as follows:
CODE
cd /usr/src/linux
patch -p1 < /path/to/bootsplash-3.1.6-2.6.15.diff
make menuconfig
Device Drivers --> Graphics Support
Scroll to bottom and select Logo Configuration
Disable Bootup Logo
Select Bootsplash Configuration
Enable Bootup Splash Screen
patch -p1 < /path/to/bootsplash-3.1.6-2.6.15.diff
make menuconfig
Device Drivers --> Graphics Support
Scroll to bottom and select Logo Configuration
Disable Bootup Logo
Select Bootsplash Configuration
Enable Bootup Splash Screen
exit and choose save option, then continue using the compile steps as shown above. If using later kernel version in the future, then check for a later version of the bootsplash here: http://www.bootsplash.org/kernel.html
Additional posts below list success stories as well as problems encountered and how to resolve them. Please read all the below so that you can make sure your kernel migration is a success.


