DAHDI make install into non-PAE location

  1. Downloaded DAHDI 2.4.0 sources on CentOS 5.5.
  2. make all works fine.
  3. make install installs the modules into the wrong location. (See below.)
  4. If I move the modules to the right location, modprobe dahdi gets me “dahdi: disagrees about version of symbol struct_module”.

uname -r gives me “2.6.18-194.17.1.elPAE”. However, make install creates a new directory called /lib/modules/2.6.18-194.17.1.el" without the PAE and puts the compiled modules into there. Curioursly, it creates empty directories in the PAE modules directory. If I do make config and then modprobe dahdi, I get file not found as I would expect. If I move the installed modules into the PAE directory, do depmod, and then modprobe dahdi, it finds the module but gives the above-mentioned error.

The kernel sources I have loaded purport to be the PAE version. The headers appear to be the appropriate i686 headers although they are not specific to PAE processors.

Help? Does the PAE kernel have a different version of struct module?

dahdi-linux-2.4.0/Makefile , line 12:

# If you want to build for a kernel other than the current kernel, set KVERS

Any luck with that?

I am building for the current kernel. KVERS just gets uname -r, which is returning the correct string (with the PAE on the end).

Digging a little further, I believe the problem has to do with /lib/modules/2.6.18-194.17.1.el5PAE/build/Makefile. This appears to be supplied as part of the linux distribution. At the top, EXTRAVERSION is set to 2.6.18-194.17.1.el5 (without the PAE). I haven’t had time to go through the Makefile carefully, but it does appear to be creating directories using this string.

What I don’t know is if there is something magical about the “PAE” that if I modify the Makefile something else will break.

Figured it out. I had installed the kernel-devel package instead of the kernel-PAE-devel package. My mistake.