What method is should actually be used and why.
(the kernel used was vanilla-sources)
Recently while upgrading from 2.6.30.3 to 2.6.32.9 and 2.6.34-rc6 (all vanilla sources) i found myself in a dilemma caused by a few problems.
I am a manual kernel user; always been and will. I like to trim and optimize the kernel to the maximum possible in order to load exactly only what i need and every time i upgrade to a new kernel i will take as much time as necessary to compile the new one from scratch.
I have always preferred not to use make oldconfig until this last time. In the past years i always opened the old kernel with make menuconfig in one terminal and at the same time starting the new kernel on another terminal with make menuconfig and copying all the selected options thoroughly.
I have read a few topics and pages about this; including Gentoo Linux Kernel Upgrade Guide and i agree with what is said there:
.10. Advanced: Using your old kernel .config to configure a new one
It is sometimes possible to save time by re-using the configuration file from your old kernel when configuring the new one. Note that this is generally unsafe -- too many changes between every kernel release for this to be a reliable upgrade path.
The only situation where this is appropriate is when upgrading from one Gentoo kernel revision to another. For example, the changes made between gentoo-sources-2.6.9-r1 and gentoo-sources-2.6.9-r2 will be very small, so it is usually OK to use the following method. However, it is not appropriate to use it in the example used throughout this document: upgrading from 2.6.8 to 2.6.9. Too many changes between the official releases, and the method described below does not display enough context to the user, often resulting in the user running into problems because they disabled options that they really didn't want to.
However i have currently encountered a problem that was only solved by make oldconfig.
This problem was weird and mostly to do with the mouse support and sata /dev/*names*
While the /dev/*names* were not a big issue for me; the mouse was.
When i moved to 2.6.32.9 and above making sure that i had the same kernel support as before; when i rebooted the mouse did not work.
/dev/mice and /dev/psaux existed; and i was able to use the USB mouse but NOT the regular working PS/2 mouse.
There were no errors anywhere as well as any output.
Sata dev names changed from /dev/sdb* /dev/sdd* /dev/sde* /dev/sdf* to /dev/sdg* /dev/sdh* /dev/sdi* /dev/sdj*
(basically they jumped 4 letters ahead)
Here is an example of 4 kernels and their ps/2 mice support as well as the compile method.
2.6.30.3 (old kernel - rock solid - no mice or sata issues all hardware works)
Code: Select all
# cat config-2.6.30.3 | grep PS2
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=yCode: Select all
# cat config-2.6.32.9 | grep PS2
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_SENTELIC is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=yCode: Select all
# cat config-2.6.34-rc6 | grep PS2
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_SENTELIC is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_ALTERA_PS2 is not setCode: Select all
# cat /usr/src/linux/.config | grep PS2
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_SENTELIC is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=ySince the .config file is basically a text file with options i am now questioning what method should be used next time.
While choosing make oldconfig is not recommended and it is uncomfortable for me due to documented facts and documentation i now i have to question this.
What should i do in the next upgrade to ensure that i have a flawless kernel compile without any flaky choices or configurations.
Whats your input, advice and experience compiling kernels and their outcome performance and stability?



