I am attempting to install Dahdi on a virtual machine running Centos 5.5 and having various problems. yum install kernel-devel gcc make gcc-c++ libxml2-devel Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.optus.net * extras: mirror.optus.net * rpmforge: fr2.rpmfind.net * updates: mirror.optus.net Setting up Install Process Package kernel-devel-2.6.18-238.9.1.el5.x86_64 already installed and latest version Package gcc-4.1.2-50.el5.x86_64 already installed and latest version Package 1:make-3.81-3.el5.x86_64 already installed and latest version Package gcc-c++-4.1.2-50.el5.x86_64 already installed and latest version Package libxml2-devel-2.6.26-2.1.2.8.el5_5.1.x86_64 already installed and latest version Package libxml2-devel-2.6.26-2.1.2.8.el5_5.1.i386 already installed and latest version Nothing to do [root at atlantis dahdi-linux-2.4.1.2]# make make -C drivers/dahdi/firmware firmware-loaders make[1]: Entering directory `/usr/src/dahdi-linux-2.4.1.2/drivers/dahdi/firmware' make[1]: Leaving directory `/usr/src/dahdi-linux-2.4.1.2/drivers/dahdi/firmware' You do not appear to have the sources for the 2.6.18-238.el5 kernel installed. So we're running a different kernel... uname -r 2.6.18-238.el5 Downloaded kernel sources for 2.6.18-238.el5 [user at atlantis ~]$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} [user at atlantis ~]$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros [user at atlantis ~]$cd ~/rpmbuild/SPECS [user at atlantis ~]$rpmbuild -bp --target=`uname -m` kernel-2.6.spec 2> prep-err.log | tee prep-out.log [root at atlantis kernel-2.6.18]# cp /home/user/rpmbuild/BUILD/kernel-2.6.18/linux-2.6.18.x86_64 /usr/src/kernels/2.6.18-238.el5-x86_64 -R [root at atlantis dahdi-linux-complete-2.4.1.2+2.4.1]# make all /usr/src/dahdi-linux-complete-2.4.1.2+2.4.1/linux/drivers/dahdi/dahdi-base.c:8652: error: invalid use of undefined type ???struct module??? /usr/src/dahdi-linux-complete-2.4.1.2+2.4.1/linux/drivers/dahdi/dahdi-base.c:8652: error: ???struct dahdi_chan??? has no member named ???pulsecount??? etc etc This article (http://asteriskfaqs.org/2011/01/30/asterisk-users/invalid-use-of-undefined-type-struct-module.html) indicates that those errors are the result of not having CONFIG_MODULES set in the kernel config. cd /home/user/rpmbuild/BUILD/kernel-2.6.18/linux-2.6.18.x86_64 make menuconfig [*] Enable loadable module support Legend: [*] built-in Any advice appreciated.
Shaun Ruffell
2011-May-04 16:56 UTC
[asterisk-users] Invalid use of undefined type when make dahdi
On Wed, May 04, 2011 at 09:56:40PM +1200, CB wrote:> I am attempting to install Dahdi on a virtual machine running Centos 5.5 and > having various problems. > > yum install kernel-devel gcc make gcc-c++ libxml2-devel > Loaded plugins: fastestmirror > Loading mirror speeds from cached hostfile > * base: mirror.optus.net > * extras: mirror.optus.net > * rpmforge: fr2.rpmfind.net > * updates: mirror.optus.net > Setting up Install Process > Package kernel-devel-2.6.18-238.9.1.el5.x86_64 already installed and > latest version > Package gcc-4.1.2-50.el5.x86_64 already installed and latest version > Package 1:make-3.81-3.el5.x86_64 already installed and latest version > Package gcc-c++-4.1.2-50.el5.x86_64 already installed and latest version > Package libxml2-devel-2.6.26-2.1.2.8.el5_5.1.x86_64 already installed > and latest version > Package libxml2-devel-2.6.26-2.1.2.8.el5_5.1.i386 already installed and > latest version > Nothing to do > > [root at atlantis dahdi-linux-2.4.1.2]# make > make -C drivers/dahdi/firmware firmware-loaders > make[1]: Entering directory > `/usr/src/dahdi-linux-2.4.1.2/drivers/dahdi/firmware' > make[1]: Leaving directory > `/usr/src/dahdi-linux-2.4.1.2/drivers/dahdi/firmware' > You do not appear to have the sources for the 2.6.18-238.el5 kernel > installed. > > So we're running a different kernel... > > uname -r > 2.6.18-238.el5 > > Downloaded kernel sources for 2.6.18-238.el5 > > [user at atlantis ~]$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} > [user at atlantis ~]$ echo '%_topdir %(echo $HOME)/rpmbuild' > > ~/.rpmmacros > [user at atlantis ~]$cd ~/rpmbuild/SPECS > [user at atlantis ~]$rpmbuild -bp --target=`uname -m` kernel-2.6.spec > 2> prep-err.log | tee prep-out.log > > [root at atlantis kernel-2.6.18]# cp > /home/user/rpmbuild/BUILD/kernel-2.6.18/linux-2.6.18.x86_64 > /usr/src/kernels/2.6.18-238.el5-x86_64 -R > > [root at atlantis dahdi-linux-complete-2.4.1.2+2.4.1]# make all > > /usr/src/dahdi-linux-complete-2.4.1.2+2.4.1/linux/drivers/dahdi/dahdi-base.c:8652: > error: invalid use of undefined type ???struct module??? > /usr/src/dahdi-linux-complete-2.4.1.2+2.4.1/linux/drivers/dahdi/dahdi-base.c:8652: > error: ???struct dahdi_chan??? has no member named ???pulsecount??? > etc etc > > This article (http://asteriskfaqs.org/2011/01/30/asterisk-users/invalid-use-of-undefined-type-struct-module.html) indicates that those errors are the result of not having CONFIG_MODULES set in the kernel config. > > cd /home/user/rpmbuild/BUILD/kernel-2.6.18/linux-2.6.18.x86_64 > make menuconfig > [*] Enable loadable module support > > Legend: [*] built-in > > Any advice appreciated.It still looks like the kernel that is running doesn't match the kernel that you prepped. Can you "yum install kernel-devel-`uname -r`" after cleaning up the /usr/src/kernels/2.6.18-238.el5-x86_64 directory and then build? -- Shaun Ruffell Digium, Inc. | Linux Kernel Developer 445 Jan Davis Drive NW - Huntsville, AL 35806 - USA Check us out at: www.digium.com & www.asterisk.org