Dahdi will not compile

we have a HP DL360

Linux lisa 2.6.16.60-0.21-smp #1 SMP Tue May 6 12:41:02 UTC 2008 x86_64 x86_64 x86_64 GNU/Linux

but while compiling Dahdi (2.0.0 and 2.1.0rc3) the make brings a error

lisa:/usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3 # make all
make -C linux all
make[1]: Entering directory `/usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux'
make -C /lib/modules/2.6.16.60-0.21-smp/build ARCH=x86_64 SUBDIRS=/usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi DAHDI_INCLUDE=/usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/include DAHDI_MODULES_EXTRA=" " HOTPLUG_FIRMWARE=yes modules DAHDI_BUILD_ALL=m
make[2]: Entering directory `/usr/src/linux-2.6.16.60-0.21-obj/x86_64/smp'
make -C ../../../linux-2.6.16.60-0.21 O=../linux-2.6.16.60-0.21-obj/x86_64/smp modules
  CC [M]  /usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi-base.o
  LD [M]  /usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi.o
  CC [M]  /usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi_dummy.o
  CC [M]  /usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi_dynamic.o
  CC [M]  /usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi_dynamic_loc.o
  CC [M]  /usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi_dynamic_eth.o
/usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi_dynamic_eth.c: In function âztdeth_rcvâ:
/usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi_dynamic_eth.c:104: error: too many arguments to function âskb_linearizeâ
make[5]: *** [/usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi_dynamic_eth.o] Error 1
make[4]: *** [_module_/usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi] Error 2
make[3]: *** [modules] Error 2
make[2]: *** [modules] Error 2
make[2]: Leaving directory `/usr/src/linux-2.6.16.60-0.21-obj/x86_64/smp'
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux'
make: *** [all] Error 2
lisa:/usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3 #

what can be the Problem

it seem you need this svn.digium.com/view/dahdi/linux/ … threv=5056

Thanks for this hint, but it still will not compile
[size=42] make -C ../../../linux-2.6.16.60-0.21 O=../linux-2.6.16.60-0.21-obj/x86_64/smp modules CC [M] /usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi-base.o LD [M] /usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi.o CC [M] /usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi_dummy.o CC [M] /usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi_dynamic.o CC [M] /usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi_dynamic_loc.o CC [M] /usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi_dynamic_eth.o /usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi_dynamic_eth.c: In function âztdeth_rcvâ: /usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi_dynamic_eth.c:104: error: too many arguments to function âskb_linearizeâ make[5]: *** [/usr/local/src/dahdi-linux-complete-2.1.0-rc3+2.1.0-rc3/linux/drivers/dahdi/dahdi_dynamic_eth.o] Error 1 [/size]

the OS is a

SUSE Linux Enterprise Server 10 (x86_64)
VERSION = 10
PATCHLEVEL = 2

This is the key line:

/dahdi/dahdi_dynamic_eth.c:104: error: too many arguments to function âskb_linearizeâ 

If you look here: http://lwn.net/Articles/2.6-kernel-api/, you’ll see the API changes in version 2.6.18. Here’s an excerpt:

My guess is that Novell updated certain parts of the API but did not change the version number.

Here is a suggested fix…

Find dahdi_dynamic_eth.c:

find -name 'dahdi_dynamic_eth.c'

In our case, it was here: /usr/src/dahdi-linux-2.1.0.3/drivers/dahdi/dahdi_dynamic_eth.c

Open the file in your editor of choice.

Change the following:

if (span) { skb_pull(skb, sizeof(struct ztdeth_header)); #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) skb_linearize(skb); #else skb_linearize(skb, GFP_KERNEL); #endif dahdi_dynamic_receive(span, (unsigned char *)skb->data, skb->len); }

to this:

if (span) { skb_pull(skb, sizeof(struct ztdeth_header)); skb_linearize(skb); dahdi_dynamic_receive(span, (unsigned char *)skb->data, skb->len); }

Save the file and recompile DAHDI.

Jake Persofsky
Insperia, Inc.
800.827.9491 x8511
301.364.5500 x8511
insperia.com