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 :