First of all, I am sort of a newb but I will do my best to explain my problem. I have installed a clean install of Suse 11 using the “openSUSE-11.0-DVD-i386.iso” image. The machine I am using is a p4 2.4ghz. I did a minimal text install to avoid installing kde/gnome since this is going to be a server. The kernel source and headers were included during installation, and this is where my problem begins. When I do a “rpm -qa | grep kernel” this is what I get;
I have tried to install some apps like Cisco VPN Client, and now Jetico BestCrypt for linux, and both complain about the headers not matching the source. Cisco wouldn’t even build from its source, however BestCrypt did but when I tried to start the service it stopped with errors complaining about wrong build or something. I would paste the exact message but I’ve since played around with my kernel source directory by running such things as “make mrproper, make menuconfig, make dep” and now I get a different error that looks like this (in dmesg);
“bc_cast: version magic '2.6.25.5-1.1 SMP mod_unload PENTIUMIII ’ should be '2.6.25.5-1.1-pae SMP mod_unload 586 '”
Of course there’s a whole list of similar errors in dmesg, one for each module or something, I’m not sure.
At any rate, I guess my question is why are my kernel headers different than the source on a default/clean install if 3rd party apps will most likely not build in this situation? Is there anything I can do to get these apps and future apps to build? Without an explanation/solution for this I cannot use Suse 11.
I believe this to be your problem. You shouldn’t need to have this installed
as you already have the kernel-source package which includes the headers,
for your running kernel.
I’ve built tons of apps over the years and have done fine with just the
kernel-source package.
Try removing the linux-kernel-headers package an then retry the builds.
–
Niclas Ekstedt, CNA/CNE/CNS/CLS
Systems Engineer/NSC Sysop
Telindus Sweden AB
I say that because I looked it up when that package got introduced. Not sure about you…
The files the “linux-kernel-headers” package provides are located in /usr/include. I agree that the name of the package is really unfortunate because it suggests kernel headers and not the userspace headers for the kernel.
They have the “#ifdefKERNEL” blocks stripped and hence are not suitable for building kernel modules
What remains in these header files are definitions exported to userspace, and that is done by the kernel developers in a back-and-forward-compatible way.
Hence they do not have to match the kernel version.
This **** pae kernel gave me hell on earth when I tried to install and run virtualbox.
I worked around it by installing the default kernel from yast. All the necessary headers, sources etc get updated when you check the default kernel.
When booting make sure you select the default kernel and boot from GRUB (a new entry is automatically created), the default boot will still be pae, which you can later change from YaST->Syatem->Boot Loader