Can't install dahdi linux on suse 10 sp2

Hello NG

I try to run dahdi-linux-2.1.0.4 on SLES10 SP2 but it doesn’t run. When type “make” i get the following error

asterisk:/usr/src/download/dahdi-linux-2.1.0.4 # make
make -C /lib/modules/2.6.16.60-0.21-smp/build ARCH=x86_64 SUBDIRS=/usr/src/download/dahdi-linux-2.1.0.4/drivers/dahdi DAHDI_INCLUDE=/usr/src/download/dahdi-linux-2.1.0.4/include DAHDI_MODULES_EXTRA=" " HOTPLUG_FIRMWARE=yes modules DAHDI_BUILD_ALL=m
make[1]: 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/src/download/dahdi-linux-2.1.0.4/drivers/dahdi/dahdi_dynamic_eth.o /usr/src/download/dahdi-linux-2.1.0.4/drivers/dahdi/dahdi_dynamic_eth.c: In function âztdeth_rcvâ: /usr/src/download/dahdi-linux-2.1.0.4/drivers/dahdi/dahdi_dynamic_eth.c:104: error: too many arguments to function âskb_linearizeâ make[4]: *** [/usr/src/download/dahdi-linux-2.1.0.4/drivers/dahdi/dahdi_dynamic_eth.o] Error 1 make[3]: *** [_module_/usr/src/download/dahdi-linux-2.1.0.4/drivers/dahdi] Error 2 make[2]: *** [modules] Error 2 make[1]: *** [modules] Error 2 make[1]: Leaving directory/usr/src/linux-2.6.16.60-0.21-obj/x86_64/smp’
make: *** [modules] Error 2
asterisk:/usr/src/download/dahdi-linux-2.1.0.4 #
asterisk:/usr/src/download/dahdi-linux-2.1.0.4 #

Need urgently help

Thanks Ramon

If your getting this error:
Code:
/dahdi/dahdi_dynamic_eth.c:104: error: too many arguments to function âskb_linearizeâ

The problem is:
The skb_linearize() function has been reworked, and no longer has a GFP flags argument.

Here is a suggested fix…

Find dahdi_dynamic_eth.c:
Code:
find -name ‘dahdi_dynamic_eth.c’

In our case, it was here:
Code:

/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:
Code:
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:
Code:
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.