[Asterisk-Users] Mandrake & CAPI

Razza rjames31 at btopenworld.com
Sun Feb 20 05:00:54 MST 2005


All,
I have been trying to get CAPI4Linux working on my machine and being
frank am failing miserably! I am looking for any help available, I am
real newbie (so please be gentle) and choose to run Mandrake 9.2 as it
appears quite friendly (or so I thought!).
 
I have been following the guidance found at
http://www.voip-info.org/wiki-Asterisk+How+to+connect+with+CAPI for the
AVM card (actually I have a BT Speedway - apparently the same thing).
 
I guess the best approach is to detail what I have done in tandem with
the guidance? So here we go - 
 
Type - 
# modprobe capi
 
Great! I get no response (which is expected!), so move to step 2
(http://www.voip-info.org/wiki-Asterisk+AVM+Fritz+CAPI+Driver+Install)
 
Guidance states 'Download and install your kernel sources' - I installed
these as part of the original installation, so I'll ignore.
 
I download and install the CAPI driver - 
# cd /usr/src 
# wget
ftp://ftp.avm.de/cardware/fritzcrd.pci/linux/suse.82/fcpci-suse8.2-03.11
.02.tar.gz 
# tar -xzvf fcpci-suse8.2-03.11.02.tar.gz 
# cd fritz
Great! Looking good!
 
Guidance states modify the makefile in /usr/src/src.drv as follows -  
Replace - 
 CARD_PATH       = /lib/modules/`uname -r`/misc 
with  - 
 CARD_PATH       = /lib/modules/$(uname -r)/kernel/drivers/isdn/avmb1
 
I am aware this chap is running Debian and I am running Mandrake, so
after searching decided to modify the line as such - 
 CARD_PATH       = /lib/modules/2.4.22-10mdk/kernel/drivers/isdn/avmb1
 
Guidance states modify the KRNLINCL lines for the correct include path -

KRNLINCL        = /usr/src/kernel-headers-`uname -r`/include 
#KRNLINCL        = /lib/modules/`uname -r`/build/include 
#KRNLINCL        = /usr/src/linux/include
 
And modify the lines as thus - 
DEFINES = -DMODULE -D__KERNEL__ -DNDEBUG \ 
                 -D__$(CARD)__ -DTARGET=\"$(CARD)\" 
CCFLAGS = -c $(DEFINES) -O2 -Wall -I $(KRNLINCL) 
With -  
DEFINES = -DMODULE -DMODVERSIONS -D__KERNEL__ -DNDEBUG \ 
                 -D__$(CARD)__ -DTARGET=\"$(CARD)\" 
CCFLAGS = -c $(DEFINES) -march=i686 -O2 -Wall -I $(KRNLINCL) \ 
               -include $(KRNLINCL)/linux/modversions.h
 
Again aware of the Debian V's Mandrake configuration, I searched the web
and found the following guidance for Mandrake (using the google
translation feature - http://translate.google.com/translate?hl=en
<http://translate.google.com/translate?hl=en&sl=de&u=http://ixi.thepengu
in.de/&prev=/search%3Fq%3Dcapi%2Bmandrake%26hl%3Den%26lr%3D%26rls%3DRNWE
,RNWE:2004-35,RNWE:en>
&sl=de&u=http://ixi.thepenguin.de/&prev=/search%3Fq%3Dcapi%2Bmandrake%26
hl%3Den%26lr%3D%26rls%3DRNWE,RNWE:2004-35,RNWE:en )
 
And made the following changes to the makefile in /usr/src/src.drv as
that seemed more appropriate and saved the file - 
 
KRNLINCL =/usr/src/linux/include
 
DEFINES = Dmodule Dmodversions D__kernel __ Dndebug \
D__$(card) __ Dtarget=\"$(card) \ "
 
CCFLAGS = C $(defines) -march=i586 -O2 barrier i $(krnlincl) \
include/usr/src/linux/include/linux/modversions.h
 
Going back to the original Guidance
(http://www.voip-info.org/wiki-Asterisk+AVM+Fritz+CAPI+Driver+Install)
I am instructed to modify the defs.h file in /usr/src/fritz/src.drv as
follows - 
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0) 
with 
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 23)
 
Great, I'm now ready to run the make command! Unfortunately the first
couple of responses are as follows which to me looks very bad? And not
sure what to do next?
 
[root at asterisk src.drv]# make
cc C Dmodule Dmodversions D__kernel__ DNDEBUG D____ Dtarget=\"\"
-march=i586 -O2 barrier i /usr/src/linux/include
include/usr/src/linux/include/linux/modversions.h main.c -o main.o
cc: C: No such file or directory
cc: Dmodule: No such file or directory
cc: Dmodversions: No such file or directory
cc: D__kernel__: No such file or directory
cc: DNDEBUG: No such file or directory
cc: D____: No such file or directory
cc: Dtarget="": No such file or directory
cc: barrier: No such file or directory
cc: i: No such file or directory
cc: include/usr/src/linux/include/linux/modversions.h: No such file or
directory
 

For completeness I Have included the makefile and defs.h files
 
-------- Makefile --------
SOURCES  = main.c driver.c tables.c queue.c lib.c tools.c
OBJECTS  = $(patsubst %.c,%.o,$(SOURCES)) 
LIBRARY  = ../lib/$(CARD)-lib.o
 
CARD_PATH = /lib/modules/2.4.22-10mdk/kernel/drivers/isdn/avmb1
CS_PATH  = /lib/modules/`uname -r`/pcmcia-external
 
KRNLINCL = /usr/src/linux/include
 
DEFINES  = Dmodule Dmodversions D__kernel__ DNDEBUG \
    D__$(CARD)__ Dtarget=\"$(CARD)\"
CCFLAGS  = C $(DEFINES) -march=i586 -O2 barrier i $(KRNLINCL) \
  include/usr/src/linux/include/linux/modversions.h
LDFLAGS  = -r
 
ifeq ($(CARD),fcpcmcia)
CS_MOD  = fcpcmcia_cs.o
CS_SRC  = fcpcmcia_cs.c
else
CS_MOD  =
CS_SRC  =
endif
 
all:  $(CARD).o $(LIBRARY) $(CS_MOD)
 
install: $(CARD).o $(LIBRARY) $(CS_MOD)
  mkdir -p $(CARD_PATH)
  cp -f $(CARD).o $(CARD_PATH)
ifeq ($(CARD),fcpcmcia)
  mkdir -p $(CS_PATH)
  cp -f $(CS_MOD) $(CS_PATH)
endif
 
clean:  
  $(RM) $(OBJECTS) $(CARD).o $(CS_MOD)
 
$(CARD).o: $(OBJECTS)
  $(LD) $(LDFLAGS) -o $@ $(OBJECTS) $(LIBRARY)
 
$(OBJECTS): %.o: %.c
  $(CC) $(CCFLAGS) $< -o $@ 
 
$(CS_MOD): $(CS_SRC)
  $(CC) $(CCFLAGS) $< -o $@
 
# No dependencies yet...
 

-------- Defs.h --------
/*
 * defs.h
 * Copyright (C) 2002, AVM GmbH. All rights reserved.
 * 
 * This Software is  free software. You can redistribute and/or
 * modify such free software under the terms of the GNU Lesser General
Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * 
 * The free software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this Software; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
USA, or see
 * http://www.opensource.org/licenses/lgpl-license.html
 * 
 * Contact: AVM GmbH, Alt-Moabit 95, 10559 Berlin, Germany, email:
info at avm.de
 */
 
#ifndef __have_defs_h__
#define __have_defs_h__
 
#ifndef LINUX_VERSION_CODE
# include <linux/version.h>
#endif
 
#ifndef TRUE
# define TRUE  (1==1)
# define FALSE  (1==0)
#endif
 
/*----------------------------------------------------------------------
-----*\
\*----------------------------------------------------------------------
-----*/
#if defined (__fcclassic__)
# define PRODUCT_LOGO "AVM FRITZ!Card Classic"
# define INTERFACE "isa"
#elif defined (__fcpnp__)
# define PRODUCT_LOGO "AVM FRITZ!Card PnP"
# define INTERFACE "pnp"
#elif defined (__fcpcmcia__)
# define PRODUCT_LOGO "AVM FRITZ!Card PCMCIA"
# define INTERFACE "pcmcia"
#elif defined (__fcpci__)
# define PRODUCT_LOGO "AVM FRITZ!Card PCI"
# define INTERFACE "pci"
#endif
#define DRIVER_LOGO PRODUCT_LOGO " driver"
#define SHORT_LOGO "fritz-" INTERFACE
 
#define REV_DEFAULT "0.5.2"
 
/*----------------------------------------------------------------------
-----*\
\*----------------------------------------------------------------------
-----*/
#if defined (OSDEBUG) && defined (NDEBUG)
# undef NDEBUG
#endif
 
#define UNUSED_ARG(x) (x)=(x)
 
/*----------------------------------------------------------------------
-----*\
\*----------------------------------------------------------------------
-----*/
#define KB   1024
#define MIN_LIB_HEAP_SIZE (64 * KB)
#define MAX_LIB_HEAP_SIZE (600 * KB)
 
/*----------------------------------------------------------------------
-----*\
\*----------------------------------------------------------------------
-----*/
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 3, 13)
# define GET_PCI_BASE(d, r) (d)->base_address[r]
#else
# define GET_PCI_BASE(d, r) (d)->resource[r].start
#endif
 
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 3, 43)
# define KFREE_SKB(x) dev_kfree_skb(x)
#else
# include <linux/netdevice.h>
# define KFREE_SKB(x) dev_kfree_skb_any(x)
#endif
 
#if defined (CONFIG_ISAPNP_MODULE) && !defined (CONFIG_ISAPNP)
#define CONFIG_ISAPNP
#endif
 
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 23)
typedef void irqreturn_t;
 
#define IRQ_NONE
#define IRQ_HANDLED
#define IRQ_RETVAL(x)
#endif
 
#endif

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20050220/e8519243/attachment.htm


More information about the asterisk-users mailing list