Download the latest stable kernel from the http://www.kernel.org/ unpack the downloaded source file.
Steps:
- # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2
- # tar xjf tar xjf linux-2.6.34.tar.bz2
- # ln -s linux-2.6.34 linux
- # cd linux
- # cp /boot/config-`uname -r` ./.config
- # make menuconfig (here you can select .config as preselected .config from old kernel)
- # make rpm (Compile the Kernel and make a rpm-paket)
- During the compilation of linux-2.6.34 kernel the following error appears
drivers/message/fusion/mptsas.c: In function `mptsas_port_delete'
drivers/message/fusion/mptsas.c: 105: sorry, unimplemented: inlining failed in call to 'mptsas_set_rphy': function body not available
drivers/message/fusion/mptsas.c: 467: sorry, unimplemented: called from here
- Because: The ‘mptsas_set_rphy’ function is defined after the ‘mptsas_port_delete’ function in the file
Solution :
Moved the ‘mptsas_set_rphy’ function definition before to the function ‘mptsas_port_delete’ function definition.
drivers/built-in.o(.init.text+0x3bad): In function `con_init': include/trace/events/kmem.h:47: undefined reference to `.L1452'
Solution:
This bug was due to the result of allocating the memory using kzalloc() in con_init() function in the drivers/char/vt.c file.
The problem is:
vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT);
Solution:
vc_cons[currcons].d = vc = alloc_bootmem(sizeof(struct vc_data));