S.u.S.E. ISDN init-scripts
Support knowledgebase (isdn_netscripts)
Applies to
SuSE Linux: Version 5.1
This article refers to an older version of SuSE Linux.
Therefore some of the informations given in this article may
be outdated or the article may contain stale links.
The following scripts are used in S.u.S.E. Linux 5.1 in
/sbin/init.d
:
i4l_hardware
#!/bin/sh
# Copyright (c) 1996, 1997 S.u.S.E. Gmbh Fuerth, Germany. All rights reserved.
#
# /sbin/init.d/i4l_hardware
#
# (c) Klaus Franken, S.u.S.E. GmbH, Fuerth
#
# Version: 5.1 26.10.97 (kfr)
# Maintainer: kfr@suse.de
#
# Dont't forget to edit /etc/rc.config!
# For more informatione see:
# /usr/doc/packages/i4l/* (especially README.SuSE)
# /usr/src/linux/Documentation/isdn/*
#
# This script is loading the needed ISDN-modules
# The net-confguration is done by /sbin/init.d/i4l
. /etc/rc.config
test "$I4L_START" = yes || exit 0
SBIN=/sbin
FIRMPATH=/usr/lib/isdn
case "$1" in
start)
echo "Loading ISDN drivers ..."
#########################################################
# HiSax
#########################################################
if test ! -z "$I4L_TELES_TYPE"; then
echo "Loading HiSax driver ..."
# default values
test -z "$I4L_HISAXDEBUG" && I4L_HISAXDEBUG="4"
test -z "$I4L_TELES_ID" && I4L_TELES_ID="Tel0"
if test -z "$I4L_TELES_MODUL_OPTIONS"; then
HISAX_PAR1="id=$I4L_TELES_ID type=$I4L_TELES_TYPE protocol=$I4L_PROTOCOL"
case "$I4L_TELES_TYPE" in
1)
# Teles 16.0
HISAX_PAR2="irq=$I4L_TELES_IRQ mem=$I4L_TELES_MEMBASE io=$I4L_TELES_PORT"
;;
2)
# Teles 8.0
HISAX_PAR2="irq=$I4L_TELES_IRQ mem=$I4L_TELES_MEMBASE"
;;
3)
# Teles 16.3
HISAX_PAR2="irq=$I4L_TELES_IRQ io=$I4L_TELES_PORT"
;;
4)
# Creatix/Teles PnP
HISAX_PAR2="irq=$I4L_TELES_IRQ io0=$I4L_TELES_IO0 io1=$I4L_TELES_IO1"
;;
5)
# AVM A1 (Fritz)
HISAX_PAR2="irq=$I4L_TELES_IRQ io=$I4L_TELES_PORT"
;;
6)
# ELSA PCC/PCF
if test -z "$I4L_TELES_PORT"; then
# Autoprobing
HISAX_PAR2=""
else
HISAX_PAR2="io=$I4L_TELES_PORT"
fi
;;
7)
# ELSA Quickstep 1000 (PnP)
HISAX_PAR2="irq=$I4L_TELES_IRQ io=$I4L_TELES_PORT"
;;
8)
# Teles 16.3 PCMCIA
HISAX_PAR2="irq=$I4L_TELES_IRQ io=$I4L_TELES_PORT"
;;
9)
# ITK ix1-micro Rev.2
HISAX_PAR2="irq=$I4L_TELES_IRQ io=$I4L_TELES_PORT"
;;
10)
# ELSA PCMCIA
HISAX_PAR2="irq=$I4L_TELES_IRQ io=$I4L_TELES_PORT"
;;
11)
# Eicon.Diehl Diva ISA PnP / Eicon.Diehl Diva PCI
if test -z "$I4L_TELES_PORT"; then
# PCI
HISAX_PAR2=""
else
HISAX_PAR2="irq=$I4L_TELES_IRQ io=$I4L_TELES_PORT"
fi
;;
12)
# ASUS COM ISDNLink PnP
HISAX_PAR2="irq=$I4L_TELES_IRQ io=$I4L_TELES_PORT"
;;
13)
# HFC-2BS0 based cards
HISAX_PAR2="irq=$I4L_TELES_IRQ io=$I4L_TELES_PORT"
;;
15)
# Sedlbauer Speed Card
HISAX_PAR2="irq=$I4L_TELES_IRQ io=$I4L_TELES_PORT"
;;
16)
# USR Sportster internal
HISAX_PAR2="irq=$I4L_TELES_IRQ io=$I4L_TELES_PORT"
;;
17)
# MIC card
HISAX_PAR2="irq=$I4L_TELES_IRQ io=$I4L_TELES_PORT"
;;
18)
# ELSA Quickstep 1000PCI
HISAX_PAR2=""
;;
*)
echo "$0: unknown I4L_TELES_TYPE: $I4L_TELES_TYPE"
echo "$0: exiting!"
exit 1
;;
esac
HISAX_PAR="${HISAX_PAR1} ${HISAX_PAR2}"
else
HISAX_PAR=$I4L_TELES_MODUL_OPTIONS
fi
/sbin/modprobe -v hisax $HISAX_PAR
if test $? -ne 0; then
echo ""
echo "Initialization of HiSax failed!"
echo "Check /var/log/messages and /var/log/warn."
echo "Check that the values in '/etc/rc.config' are correct:"
echo "I4L_TELES_TYPE: ${I4L_TELES_TYPE}"
echo "I4L_TELES_MEMBASE: ${I4L_TELES_MEMBASE}"
echo "I4L_TELES_IRQ: ${I4L_TELES_IRQ}"
echo "I4L_TELES_PORT: ${I4L_TELES_PORT}"
echo "I4L_TELES_IO0: ${I4L_TELES_IO0}"
echo "I4L_TELES_IO1: ${I4L_TELES_IO1}"
echo "I4L_PROTOCOL: ${I4L_PROTOCOL}"
echo "I4L_TELES_MODUL_OPTIONS: ${I4L_TELES_MODUL_OPTIONS}"
echo ""
modprobe -r hisax
exit 1
fi
# enable debugging
test -z "$I4L_TELES_ID" ||
$SBIN/hisaxctrl ${I4L_TELES_ID} 1 4
test -z "$I4L_LEASED" ||
$SBIN/hisaxctrl ${I4L_TELES_ID} 5 0
test -z "$I4L_VERBOSE" ||
$SBIN/isdnctrl verbose 3
# start isdnlog
for optionfile in /etc/isdn/isdnlog.*.options; do
if test -f $optionfile; then
device=${optionfile#*.}
device=${device%.*}
echo "Starting isdnlog with $optionfile for $device..."
$SBIN/isdnlog -f$optionfile /dev/$device &
else
echo "Starting isdnlog with defaults for /dev/isdnctrl0..."
$SBIN/isdnlog -D -l1015 -x4087 -M -n -W80 /dev/isdnctrl0 &
fi
done
# start iprofd
test "$I4L_IPROFD" = "yes" &&
($SBIN/iprofd /etc/isdn/modemsettings &)
fi
#########################################################
# ICN
#########################################################
if test ! -z "$I4l_ICN_PORT"; then
echo "Loading ICN driver ..."
ICN_PAR="portbase=$I4l_ICN_PORT membase=$I4l_ICN_MEMBASE \
icn_id=$I4l_ICN_ID"
test -z "$I4l_ICN_ID2" ||
ICN_PAR="$ICN_PAR icn_id2=$I4l_ICN_ID2"
/sbin/modprobe -v icn "$ICN_PAR"
if test $? -ne 0; then
echo ""
echo "Initialization of the ICN-modul failed!"
echo "Check that the values in '/etc/rc.config' are correct:"
echo " and see /usr/doc/packages/i4l/kernel/README.icn"
echo "I4L_ICN_ID: ${I4L_ICN_ID}"
echo "I4L_ICN_ID2: ${I4L_ICN_ID2}"
echo "I4L_ICN_PORT: ${I4L_ICN_PORT}"
echo "I4L_ICN_MEMBASE: ${I4L_ICN_MEMBASE}"
echo ""
modprobe -r icn
exit 1
fi
case "$I4L_ICN_PROTOCOLL" in
1) ICN_FIRM="$FIRMPATH/pc_1t_ca.bin" ;;
2) ICN_FIRM="$FIRMPATH/pc_eu_ca.bin" ;;
*) echo "ERROR: unknown ISDN-Protocoll: $I4L_ICN_PROTOCOLL"
exit 1
;;
esac
case "$I4L_ICN_PROTOCOLL2" in
1) ICN_FIRM2="$FIRMPATH/pc_1t_ca.bin" ;;
2) ICN_FIRM2="$FIRMPATH/pc_eu_ca.bin" ;;
"") ;;
*) echo "ERROR: unknown ISDN-Protocoll: $I4L_ICN_PROTOCOLL"
exit 1
;;
esac
echo "Loading ICN firmware ..."
ICN_FIRM="$FIRMPATH/loadpg.bin $ICN_FIRM $ICN_FIRM2"
$SBIN/icnctrl load $ICN_FIRM
if test $? -ne 0; then
echo ""
echo "Loading of Firmware $ICN_FIRM failed!"
echo "Check that the values in '/etc/rc.config' are correct:"
echo " and see /usr/doc/packages/i4l/kernel/README.icn"
echo "I4L_ICN_ID: ${I4L_ICN_ID}"
echo "I4L_ICN_ID2: ${I4L_ICN_ID2}"
echo "I4L_ICN_PORT: ${I4L_ICN_PORT}"
echo "I4L_ICN_MEMBASE: ${I4L_ICN_MEMBASE}"
echo "I4L_ICN_PROTOCOLL: ${I4L_ICN_PROTOCOLL}"
echo "I4L_ICN_PROTOCOLL2: ${I4L_ICN_PROTOCOLL}"
echo ""
modprobe -r icn
exit 1
fi
fi
#########################################################
# AVM-B1
#########################################################
if test "$I4L_USE_B1" = "yes" ; then
if test "$I4L_USE_B1_AS_MODULE" = "yes" ; then
echo "Loading AVM-B1 driver ..."
modprobe -v kernelcapi portbase=0
if test $? -ne 0; then
echo "Initialization of the AVM-B1-CAPI2.0-modul failed!"
exit 1
fi
modprobe -v capi
if test $? -ne 0; then
echo "Initialization of the AVM-B1-CAPI2.0-Interface failed!"
modprobe -r kernelcapi
exit 1
fi
modprobe -v capidrv
if test $? -ne 0; then
echo "Initialization of the AVM-B1-I4L-Interface failed!"
modprobe -r capi
exit 1
fi
if test $I4L_USE_B1_PCI = yes ; then
modprobe -v b1pci
if test $? -ne 0; then
echo "Initialization of the AVM-B1-PCI-module failed!"
exit 1
fi
fi
fi
for CONTR in 1 2 3 4 ; do
eval IRQ=\$I4L_B1_IRQ_$CONTR
eval IO=\$I4L_B1_IO_$CONTR
eval PROTO=\$I4L_B1_PROTOCOLL_$CONTR
if test ! -z "$IRQ" -a ! -z "$IO" ; then
echo "Adding AVM-B1 Controller $CONTR (IO: $IO, IRQ: $IRQ)..."
avmcapictrl add $IO $IRQ
if test $? -ne 0; then
echo ""
echo "Adding AVM-B1-Controller $CONTR failed!"
echo ""
exit 1
fi
fi
if test -z $PROTO ; then
continue;
fi
case "$PROTO" in
1) B1_FIRM="$FIRMPATH/b1-1tr6.t4" ;;
2) B1_FIRM="$FIRMPATH/b1.t4" ;;
*) echo "ERROR: unknown ISDN-Protocoll: $PROTO"
exit 1
;;
esac
echo "Loading AVM-B1 firmware to Controller $CONTR ..."
$SBIN/avmcapictrl load $B1_FIRM $CONTR
if test $? -ne 0; then
echo ""
echo "Loading of Firmware $B1_FIRM on Controller $CONTR failed!"
echo ""
exit 1
fi
done
fi
;;
stop)
# kill iprofd
test "$I4L_IPROFD" = "yes" &&
killall iprofd
# kill isdnlog
for pidfile in /var/run/isdnlog.*.pid; do
test -r $pidfile || continue
/bin/kill `cat $pidfile`
rm -f $pidfile
done
echo "Unloading ISDN drivers ..."
# unload modules
if test ! -z "$I4L_TELES_TYPE"; then
/sbin/modprobe -r hisax
fi
if test ! -z "$I4l_ICN_PORT"; then
/sbin/modprobe -r icn
fi
if test ! -z "$I4L_USE_B1"; then
/sbin/modprobe -r capi capidrv kernelcapi capiutil
fi
/sbin/modprobe -r slhc
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0
i4l
#!/bin/sh
# Copyright (c) 1996, 1997 S.u.S.E. Gmbh Fuerth, Germany. All rights reserved.
#
# /sbin/init.d/i4l
#
# (c) Klaus Franken, S.u.S.E. GmbH, Fuerth
#
# Version: 5.1 26.10.97 (kfr)
# Maintainer: kfr@suse.de
#
# Dont't forget to edit /etc/rc.config!
# For more informatione see:
# /usr/doc/packages/i4l/* (especially README.SuSE)
# /usr/src/linux/Documentation/isdn/*
#
# This script is configuring the ISDN net devices
# The ISDN hardware configuration is done by /sbin/init.d/i4l_hardware
. /etc/rc.config
test "$I4L_START" = yes -o ! -z "$2" || exit 0
SBIN=/sbin
case "$1" in
start)
#
# configure interfaces
#
for I in $NETCONFIG; do
eval NETDEV=\$NETDEV$I
eval IFCONFIG=\$IFCONFIG$I
eval I4L_IDLETIME=\$I4L_IDLETIME$I
eval I4L_DIALMAX=\$I4L_DIALMAX$I
eval I4L_REMOTE_OUT=\$I4L_REMOTE_OUT$I
eval I4L_REMOTE_OUT1=\$I4L_REMOTE_OUT1$I
eval I4L_REMOTE_OUT2=\$I4L_REMOTE_OUT2$I
eval I4L_REMOTE_IN=\$I4L_REMOTE_IN$I
eval I4L_REMOTE_IN1=\$I4L_REMOTE_IN1$I
eval I4L_REMOTE_IN2=\$I4L_REMOTE_IN2$I
eval I4L_LOCALMSN=\$I4L_LOCALMSN$I
eval I4L_PROTOCOL=\$I4L_PROTOCOL$I
eval I4L_ENCAP=\$I4L_ENCAP$I
eval I4L_SECURE=\$I4L_SECURE$I
eval I4L_BIND=\$I4L_BIND$I
# additional/default features
eval I4L_PPPBIND=\$I4L_PPPBIND$I
test -z "$I4L_PPPBIND" && I4L_PPPBIND="yes"
eval I4L_CHARGEHUP=\$I4L_CHARGEHUP$I
test -z "$I4L_CHARGEHUP" && I4L_CHARGEHUP="off"
eval I4L_IHUP=\$I4L_IHUP$I
test -z "$I4L_IHUP" && I4L_IHUP="off"
eval I4L_L2=\$I4L_L2$I
test -z "$I4L_L2" && I4L_L2="hdlc"
eval I4L_L3=\$I4L_L3$I
test -z "$I4L_L3" && I4L_L3="trans"
eval I4L_CALLBACK=\$I4L_CALLBACK$I
test -z "$I4L_CALLBACK" && I4L_CALLBACK="off"
eval I4L_CBDELAY=\$I4L_CBDELAY$I
test -z "$I4L_CBDELAY" && I4L_CBDELAY="2"
eval I4L_CBHUP=\$I4L_CBHUP$I
test -z "$I4L_CBHUP" && I4L_CBHUP="on"
if test ! -z "$2" -a "$2" != "$NETDEV"; then
continue
fi
case $NETDEV in
ippp*|isdn*)
echo "Starting isdn4linux on device $NETDEV"
$SBIN/isdnctrl addif $NETDEV
cat /proc/net/dev | grep $NETDEV > /dev/null 2>&1
if test $? -ne 0; then
echo "$0: $NETDEV doesn't exist in /proc/net/dev"
echo "Check ISDN hardware configuration and activate"
echo ""
exit 1
fi
if test -z "$I4L_LOCALMSN"; then
echo "You must set a MSN/EAZ for $NETDEV"
echo "edit /etc/rc.config and define 'I4L_LOCALMSN$I'"
continue
fi
# define local MSN (phone number):
$SBIN/isdnctrl eaz $NETDEV ${I4L_LOCALMSN}
# compability:
test -z "${I4L_REMOTE_OUT1}" ||
I4L_REMOTE_OUT="${I4L_REMOTE_OUT1} $I4L_REMOTE_OUT"
test -z "${I4L_REMOTE_OUT2}" ||
I4L_REMOTE_OUT="${I4L_REMOTE_OUT2} $I4L_REMOTE_OUT"
# add numbers(s) to call out:
test -z "${I4L_REMOTE_OUT}" ||
for number in ${I4L_REMOTE_OUT}; do
$SBIN/isdnctrl addphone $NETDEV out $number
done
# compability:
test -z "${I4L_REMOTE_IN1}" ||
I4L_REMOTE_IN="${I4L_REMOTE_IN1} $I4L_REMOTE_IN"
test -z "${I4L_REMOTE_IN2}" ||
I4L_REMOTE_IN="${I4L_REMOTE_IN2} $I4L_REMOTE_IN"
# add numbers(s) allowed to call in:
test -z "${I4L_REMOTE_IN}" ||
for number in ${I4L_REMOTE_IN}; do
$SBIN/isdnctrl addphone $NETDEV in $number
done
# the layer-2 protocol:
$SBIN/isdnctrl l2_prot $NETDEV $I4L_L2
# the layer-3 protocol:
$SBIN/isdnctrl l3_prot $NETDEV $I4L_L3
# encapsulation
$SBIN/isdnctrl encap $NETDEV $I4L_ENCAP
# secure?, on = only defined numbers are allowed to call in
$SBIN/isdnctrl secure $NETDEV $I4L_SECURE
# automatic hangup if idle:
$SBIN/isdnctrl huptimeout $NETDEV ${I4L_IDLETIME}
# hangup before next charge info?
$SBIN/isdnctrl chargehup $NETDEV $I4L_CHARGEHUP
# hangup incomming calls too?
$SBIN/isdnctrl ihup $NETDEV $I4L_IHUP
# set the number of dial atempts for each number
test -z "$I4L_DIALMAX" ||
$SBIN/isdnctrl dialmax $NETDEV $I4L_DIALMAX
# callback features
$SBIN/isdnctrl callback $NETDEV $I4L_CALLBACK
$SBIN/isdnctrl cbdelay $NETDEV $I4L_CBDELAY
$SBIN/isdnctrl cbhup $NETDEV $I4L_CBHUP
# bind features
test -z "${I4L_BIND}" ||
$SBIN/isdnctrl bind $NETDEV ${I4L_BIND}
;;
*)
;;
esac
#
# configure net device
#
case $NETDEV in
isdn*)
echo "Setting up network device $NETDEV"
ifconfig $NETDEV $IFCONFIG
;;
ippp*)
echo "Setting up network device $NETDEV"
ifconfig $NETDEV $IFCONFIG
# start ppp-daemon
OPTIONFILE=/etc/ppp/options.$NETDEV
PIDFILE=/var/run/ipppd.$NETDEV.pid
# is there running an old ipppd?
if test -s $PIDFILE; then
echo "Warning: $PIDFILE exists"
echo " is there an old ipppd running?"
if test ps -h --format args `cat $PIDFILE` | grep $SBIN/ipppd \
> /dev/null; then
echo "Warning: kill `cat $PIDFILE`"
ps -p `cat $PIDFILE`
kill `cat $PIDFILE`
sleep 2
if test -s $PIDFILE; then
# ganz schoen hartnaeckig :-(
echo "Warning: kill -9 `cat $PIDFILE`"
kill -9 `cat $PIDFILE`
fi
fi
fi
# start
if test -r $OPTIONFILE; then
echo "Starting ippp-daemon for ISDN device $NETDEV with $OPTIONFILE"
$SBIN/ipppd pidfile $PIDFILE file $OPTIONFILE &
else
echo "Start ippp-daemon for ISDN device $NETDEV"
$SBIN/ipppd pidfile $PIDFILE $NETDEV &
fi
if test ! "$I4L_PPPBIND" = "no"; then
binddev=`echo $NETDEV | sed -n "s/ippp\([0-9]*\)$/\1/p"`
$SBIN/isdnctrl pppbind $NETDEV $binddev
echo ""
fi
;;
*)
;;
esac
done
;;
stop)
for I in $NETCONFIG; do
eval NETDEV=\$NETDEV$I
eval IFCONFIG=\$IFCONFIG$I
if test ! -z "$2" -a "$2" != "$NETDEV"; then
continue
fi
case "$NETDEV" in
isdn*)
echo "Shutting down network device $NETDEV."
ifconfig $NETDEV down
$SBIN/isdnctrl delif $NETDEV
;;
ippp*)
echo "Shutting down network device and ipppd for $NETDEV."
PIDFILE=/var/run/ipppd.$NETDEV.pid
test -s $PIDFILE && kill `cat $PIDFILE`
ifconfig $NETDEV down
$SBIN/isdnctrl delif $NETDEV
;;
*)
;;
esac
done
;;
*)
echo "Usage: $0 {start|stop} [NETDEV]"
exit 1
;;
esac
Keywords: ISDN, INIT, SCRIPTS
Categories:
Documentation
SDB-isdn_netscripts, Copyright SuSE Linux AG, Nürnberg, Germany
- Version: 19. Mär 1997
SuSE Linux AG - Last generated: 23. Jul 2002 13:27:39 by kfr (sdb_gen 1.40.0)