ISDN Experience
To install the ISDN Teles S0 16.3c Plug&Play card under Linux 2.1.119, you need the following software :
  • The HiSax driver Version 2.8 is included in the kernel.
  • isdn4linux Version 2.1b1

    Kernel configuration

    Before loading (tar) the linux-2.1.119.tar to /usr/src/linux-2.1.119 make the appropriate link ln -s /usr/src/linux-2.1.119 /usr/src/linux .
    To run the HiSax driver with the correct IRQ from the kernel edit the configuration file in : /usr/src/linux/drivers/isdn/hisax/config.c
    
    #ifdef CONFIG_HISAX_TELES3C
    #undef DEFAULT_CARD
    #undef DEFAULT_CFG
    #define DEFAULT_CARD ISDN_CTYPE_TELES3C
    #define DEFAULT_CFG {9,0x580,0,0}          <====  original configuration : {5,0x500,0,0}
    #endif
    
    When you are using LILO to boot your PC you can add the appropriate boot arguments in the /etc/lilo.conf file. Run lilo after you compiled the new kernel to match the system maps. The Teles ISDN driver expects a boot argument of the form:
      ______________________________________________________________________
              teles3c=iobase,irq,membase,protocol,teles_id
      append="teles3c=0x580,9,0,0,my_isdn"
      ______________________________________________________________________
    
    where iobase is the i/o port address of the card, membase is the shared memory base address of the card, irq is the interrupt channel the card uses, and teles_id is the unique ASCII string identifier.

    Compile the new kernel :

      cd /usr/src/linux 
      make mrproper
      make xconfig
      
      Plug and Play support (CONFIG_PNP) [Y/n/?]  y
    
      PPP (point-to-point) support (CONFIG_PPP) [Y/m/n/?] y
      ISDN support (CONFIG_ISDN) [Y/m/n/?] y
      Support synchronous PPP (CONFIG_ISDN_PPP) [Y/n/?] y
      Use VJ-compression with synchronous PPP (CONFIG_ISDN_PPP_VJ) [Y/n/?] y
      HiSax SiemensChipSet driver support (CONFIG_ISDN_DRV_HISAX) [M/n/y/?] y
      HiSax Support for EURO/DSS1 (CONFIG_HISAX_EURO) [Y/n/?] y
      HiSax Support for Teles 16.3c (CONFIG_HISAX_TELES3C) [Y/n/?] y
      
    
        Kernel configuration via "make dep"
                                 "make clean" 
                                 "make zImage"    (if you are starting linux via LILO)
                                 "make bzdisk"    (if you are starting from diskette)            
                                 "make lilo"      (if you use lilo to boot your PC)
                                 "make modules"
                                 "make modules_install" 
    
    
    At boot you get the information :
    May  3 16:41:56 hocks kernel: ISDN subsystem Rev: 1.55/1.47/1.55/1.33/none/1.2
    May  3 16:41:56 hocks kernel: HiSax: Driver for Siemens chip set ISDN cards
    May  3 16:41:56 hocks kernel: HiSax: Version 2.8
    May  3 16:41:56 hocks kernel: HiSax: Revisions 2.18/2.7/2.5/2.13/2.7
    May  3 16:41:56 hocks kernel: HiSax: Card 1 Protocol EDSS1 Id=HiSax (0)
    May  3 16:41:56 hocks kernel: HiSax: Teles 16.3c driver Rev. 1.2
    May  3 16:41:56 hocks kernel: teles3c: defined at 0x580 IRQ 9 HZ 100
    May  3 16:41:56 hocks kernel: teles3c: resetting card
    May  3 16:41:56 hocks kernel: Teles 16.3c: IRQ 9 count 0
    May  3 16:41:56 hocks kernel: Teles 16.3c: IRQ 9 count 1
    May  3 16:41:56 hocks kernel: HiSax: DSS1 Rev. 2.7
    May  3 16:41:56 hocks kernel: HiSax: 2 channels added
    May  3 16:41:56 hocks kernel: PPP: version 2.3.3 (demand dialling)
    May  3 16:41:56 hocks kernel: TCP compression code copyright 1989 Regents of the
     University of California
    May  3 16:41:56 hocks kernel: PPP line discipline registered.
    
    
    
    Scripts to start the isdn logging and pppd :

    /etc/rc.d/rc.isdn

    
    case "$1" in
    start) 
      echo -n "Configuring ISDN: "
      /sbin/isdnlog -w10 -m5623 -l1527 /dev/isdnctrl 2>> /var/log/isdn.log &
      /etc/ppp/rc.ippp start 
      echo "ISDN adapter configured"
    ;; 
    
    stop) 
      echo -n " ISDN: " 
      /etc/ppp/rc.ippp stop 
      echo "ISDN logging stopped "
    ;; 
    
    *)
      echo "Usage: isdn {start|stop}" 
      exit 1 
    esac
    
    exit 0 
    

    /etc/ppp/rc.ippp

    
    
    # BE SURE TO EDIT THIS FILE BEFORE USING IT !!!!!
    #
    
    
    LOCALNUMBER=YourLocalNumber
    IREMOTENUMBER=YourISPNumber
    OREMOTENUMBER=0YourISPNumber
    LOCALIP=0.0.0.0
    REMOTEIP=$LOCALIP
    NETMASK=$LOCALIP
    LOGNAME=LoginName
    DEVICE=ippp0
    
    
    case $1 in
    start)
      /sbin/isdnctrl verbose 3                         
      /sbin/isdnctrl system on                         
      /sbin/isdnctrl addif $DEVICE                     
      /sbin/isdnctrl eaz $DEVICE $LOCALNUMBER         # Set local EAZ .. 
      /sbin/isdnctrl addphone $DEVICE in $IREMOTENUMBER 
      /sbin/isdnctrl addphone $DEVICE out $OREMOTENUMBER 
      /sbin/isdnctrl l2_prot $DEVICE hdlc             # set Level 2 to HDLC
      /sbin/isdnctrl l3_prot $DEVICE trans            # 'trans' is default
      /sbin/isdnctrl encap $DEVICE syncppp            # encap IP in PPP frames
      /sbin/isdnctrl huptimeout $DEVICE 600           # Hangup-Timeout 
      /sbin/isdnctrl chargehup $DEVICE off  
      /sbin/isdnctrl callback $DEVICE out             
      /sbin/isdnctrl cbdelay ippp0 0 
      /sbin/isdnctrl secure $DEVICE on                  
      /sbin/isdnctrl verbose 2
    
      /sbin/ifconfig $DEVICE $LOCALIP pointopoint $REMOTEIP netmask $NETMASK metric 1 
      /sbin/route add default $DEVICE
    
      /sbin/ipppd user $LOGNAME \
            ipcp-accept-local ipcp-accept-remote \
            +ua /etc/ppp/pap-secrets \
            -detach \
            mru 1524 \
            $DEVICE ;
    ;;
    
    stop)
        /sbin/isdnctrl hangup ippp0
        sleep 1
        kill -9 $(/bin/ps -ax | /usr/bin/grep ipppd | /usr/bin/grep -v grep |
    /usr/b
    in/awk '{print $1}')
        /sbin/route del default
        /sbin/ifconfig $DEVICE down
        /sbin/isdnctrl delif $DEVICE
    ;;
    
    *)
      echo Usage: $0 start | stop
      exit 1
    esac
    
    exit 
    
    
    The script /etc/ppp/pap-secrets contains your userid and password in two lines.

    After you run the rc.isdn script, you will see similar messages in the /var/adm/messages file :
    May  3 17:08:14 hocks kernel: isdn: Verbose-Level is 2
    May  3 17:08:15 hocks isdnlog: isdnlog Version 2.41 loaded 
    May  3 17:08:15 hocks isdnlog: (ISDN subsystem with ISDN_MAX_CHANNELS > 16 detected - 2 active channels, 3 MSN/SI entries) 
    May  3 17:08:15 hocks isdnlog: (Data versions: iprofd=0x04  net_cfg=0x04 /dev/isdninfo=0x01) 
    May  3 17:08:15 hocks syslog: Found 2 devices: /dev/modem, /dev/ippp0, 
    May  3 17:08:16 hocks pppd[502]: pppd 2.2.0 started by root, uid 0
    May  3 17:08:16 hocks pppd[502]: init_unit: 0 
    May  3 17:08:16 hocks pppd[502]: Connect[0]: /dev/modem, fd: 6
    May  3 17:08:16 hocks pppd[502]: init_unit: 1 
    May  3 17:08:16 hocks pppd[502]: Connect[1]: /dev/ippp0, fd: 7
    
    
    
    The dial-in to the ISP is done automatically with a request to an IP network address (telnet, ping, etc). To avoid DNS lookup at pppd start include a dummy entry for your hostname in the /etc/hosts 0.0.0.0 hocks. You can trigger the pppd with the command /sbin/isdnctrl dial ippp0.
    Further tools to make the ISDN configuration and usage easy :
  • kISDN 0.4.2 which needs the K Desktop Environment and the Qt toolkits in order to run.
  • IBOD/XIBOD ISDN Bandwidth On Demand Daemon
    Links to more Teles S0 ISDN HOWTOs :
  • ISDN Teles S0 HOWTOs
    Last Update September 11, 1998 Eva Hocks