SuSE Support-Datenbank
Titel: SuSE ISDN-Init-Scripte

Übersicht
Stichwortsuche
History
Versionen
Kategorien
Alle Artikel
English
SuSE ISDN-Init-Scripte
Bezieht sich auf
SuSE Linux: Version 5.2
Bei SuSE Linux 5.2 werden die folgenden Scripte in
/sbin/init.d
benutzt:
i4l_hardware
#!/bin/sh
# Copyright (c) 1996, 1997 SuSE Gmbh Fuerth, Germany. All rights reserved.
#
# /sbin/init.d/i4l_hardware
#
# (c) Klaus Franken, SuSE GmbH, Fuerth
#
# Version: 5.2 06.03.98 (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 "$I4L_USE_B1" = "yes" ; then
/sbin/avmcapictrl reset 1
/sbin/modprobe -r capidrv capi kernelcapi capiutil
fi
/sbin/modprobe -r slhc
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0
i4l
#!/bin/sh
# Copyright (c) 1996, 1997 SuSE Gmbh Fuerth, Germany. All rights reserved.
#
# /sbin/init.d/i4l
#
# (c) Klaus Franken, SuSE GmbH, Fuerth
#
# Version: 5.2+ 14.04.98 (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
# Additional Part MPPP / I4L_SLAVE - C.Guenther 03/98
. /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"
eval I4L_SLAVE=\$I4L_SLAVE$I
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}
# MPPP
if test -n "$I4L_SLAVE"; then
$SBIN/isdnctrl addslave $NETDEV $I4L_SLAVE
# add numbers(s) to call out:
test -z "${I4L_REMOTE_OUT}" ||
for number in ${I4L_REMOTE_OUT}; do
$SBIN/isdnctrl addphone $I4L_SLAVE out $number
done
test -z "${I4L_REMOTE_IN}" ||
for number in ${I4L_REMOTE_IN}; do
$SBIN/isdnctrl addphone $I4L_SLAVE in $number
done
$SBIN/isdnctrl eaz $I4L_SLAVE ${I4L_LOCALMSN}
$SBIN/isdnctrl l2_prot $I4L_SLAVE $I4L_L2
$SBIN/isdnctrl l3_prot $I4L_SLAVE $I4L_L3
$SBIN/isdnctrl encap $I4L_SLAVE $I4L_ENCAP
$SBIN/isdnctrl secure $I4L_SLAVE $I4L_SECURE
$SBIN/isdnctrl huptimeout $I4L_SLAVE ${I4L_IDLETIME}
$SBIN/isdnctrl chargehup $I4L_SLAVE $I4L_CHARGEHUP
fi
;;
*)
;;
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?"
ps -h --format args `cat $PIDFILE` | grep $SBIN/ipppd>/dev/null
if test $? -eq 0; 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 ""
if test -n "$I4L_SLAVE"; then
binddev=`echo $I4L_SLAVE | sed -n "s/ippp\([0-9]*\)$/\1/p"`
$SBIN/isdnctrl pppbind $I4L_SLAVE $binddev
echo ""
fi
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`
if test -s $PIDFILE; then
sleep 2
# ganz schoen hartnaeckig :-(
echo "Warning: kill -9 `cat $PIDFILE`"
kill -9 `cat $PIDFILE` 2>/dev/null
fi
ifconfig $NETDEV down
$SBIN/isdnctrl delif $NETDEV
;;
*)
;;
esac
done
;;
*)
echo "Usage: $0 {start|stop} [NETDEV]"
exit 1
;;
esac

Siehe auch:

Stichwörter: ISDN, INIT, SCRIPTS

Kategorien:
Dokumentation

Übersicht
Stichwortsuche
History
Versionen
Kategorien
Alle Artikel
English
SDB-isdn_netscripts, Copyright SuSE GmbH, Nuremberg, Germany
- Version: 10. Nov 1997
SuSE GmbH - Zuletzt generiert: 23. Nov 1999 14:15:09
by bg
with sdb_gen 1.00.0