SuSE Support Database

Title: S.u.S.E. ISDN howto

---

Mainpage ---- Searchform ---- History ---- Versions ---- Categories ---- Contents
Deutsch
---

S.u.S.E. ISDN howto

This article was completely revised. Please see the quick-install guide (see below) for an introduction. This article only covers special features and further information.

S.u.S.E. Linux 5.1

A quick-install guide can be found at

This guide is targeted at all those who want to connect a stand-alone workstation via ISDN to a provider.

Especially if you run a local network you have to pay attention to certain differences from this guide, e.g. how the default route must be set in this case. It is then recommended to ignore the local network first and to adapt the corresponding files manually later on.

Currently supported cards :

HiSax-driver 2.1

Hint : In the text below the term Teles is often used (e.g. in conjunction with the variables in /etc/rc.config). There are historical reasons for this, the driver was called teles in the beginning. Only teles cards were supported by it. The new improved driver is called HiSax and supports almost all Siemens based ISDN cards (ISAC_S 2085/2086/2186 HSCX SAB 82525)

ICN-driver

B1-driver

Cards that are known to be unsupported :

The necessary drivers (-> modules) are bound dynamically to the kernel when needed (and only then). Make sure that the modules isdn and hisax are available (package kernmod) or compile and install them. For sync-PPP the module slhc is needed in addition.

Don't compile the driver directly into the kernel but use modules ! This way you can avoid some adjustments of the scripts and you can work much more flexible. For example it is not necessary to reboot the system in order to access the card.

Which protocol ?

Two different protocols are being used in conjunction with ISDN network connections.

First there is the wellknown PPP protocol (however in the synchronous version -- syncPPP). A special daemon (ipppd) is included for it in the i4l package.

Then there is rawip/HDLC (a low level protocol) which uses many of the features of ISDN (data security). Thus it has very little overhead.

Which one you should use depends on your provider. Normally only syncPPP is offered.

Nevertheless there are providers (e.g. in Austria) that also offer asynchronous PPP via ISDN. Please see the article about asynchronous PPP via ISDN in the support-db .

If you can choose, rawip/HDLC is the simpler protocol and is recommended IMHO. A list of features :

The principle - dial on demand

In contrast to modem connections no special command must be entered in order to initiate a connection. When the network is startet (init 2, see below), a connection to the partner can be established any time by normal activity such as telnet, WWW, ftp, etc . Only then a dialing connecion is established, which takes approximately 2-3 seconds. This makes it possible for other users than root to start a connection. The variable I4L_IDLETIME specifies, after how many seconds of inactivity the connection shut be hung up. One can comfortably stay logged in, programs won't be interrupted. As soon as a button is pressed one will be online again. However never stay logged in for longer periods of time since then a connection might be established by the opposite side.

Attention : Control your configuration and check whether the connection is hung up and when connections are being established. One can easily stay online for days without recognizing it. After all no dialing tone can be heard as was the case with the good old modem. (However this didn't happen to us for a long time ...)

Hints for the selection of IRQs :

Check with the command cat /proc/interrupts, which IRQs are available and which are already in use. The latter are represented by the first column.

Often the delivered DOS/Win program with the call-back test is a reliable test, but IRQ 12 and 15 are not possible with a lot of mainboards (586, PCI, 2. IDE-adapter).

Installation of PnP cards :

There is no fully automatic support for Plug & Pray -cards. In the package isapnp two programs are included that carry out the configuration of the cards, before the card can be accessed by the module. In short you have to do the following :

  1. Start the program pnpdump, your PnP devices should be identified.

  2. Start this program again and create a configuration file :
    pnpdump > /etc/isapnp.conf
    

  3. Edit /etc/isapnp.conf. There is a section for every card. Only the ISDN card is of interest here. A couple of different hardware configurations is proposed here. Choose one and remove the comment signs in front of the necessary lines.

  4. Configure your card with
    isapnp /etc/isapnp.conf
    
    The output of this command will show you whether it worked or not.

  5. As soon as a correct file /etc/isapnp.conf exists, the configuration is done automatically at boot time.

Further information about isapnp is available at file://localhost/usr/doc/packages/isapnp/README.SuSE

Active ISDN cards (ICN-2B, ICN-4B, AVM-B1)

Firmware files

Active cards need a firmware (i.e. the software that is used by the card to run the S0 bus). This firmware is downloaded onto the card by the operating system.

For the above mentioned cards the necessary firmware files are contained in the package i4lfirm (series n, courtesy Thinking Objects and AVM) and will be installed in /usr/lib/isdn.

The Init script will download this firmware automatically onto the card (according to the statements in /etc/rc.config).

Hardware configuration :

Set the variables with the prefix I4L_ICN_ (or I4L_USE_B1_ and I4L_B1_) according to the comments.

Then start /sbin/init.d/i4l_hardware start (or change the runlevel) just like with the Hisax driver and monitor /var/log/messages.

Handling differences to the Hisax driver

Almost the whole description refers to the Hisax driver. However the differences are relatively small since the i4l subsystem is based on a good layer model.

After the hardware driver is loaded (HiSax, icn, b1-capi) isdn4linux will always behave the same.

Exception :

So how do I hang up the ISDN connection ?

The connection will be cut automatically after a predefined period of time. See below for some monitoring tools. The easiest way to shutdown the ISDN system is with S.u.S.E. Linux to enter the following commands :
/sbin/init.d/i4l stop
/sbin/init.d/i4l_hardware stop
A sudden hang up in conjunction with rawip can be achieved with
/sbin/isdnctrl hangup isdn0
or in conjunction with PPP with
/sbin/isdnctrl hangup ippp0

PPP connections :

PPP normally works with dynamic IP numbers, i.e. the numbers are usually assigned when a connection is established.

So how do I configure the network (ifconfig) if the IP number is not known yet ? The real IP number will be registered by ipppd as soon as the connection is established succesfully.

Either enter 192.168.0.1 for the local IP number or a number out of the range that will be assigned by the server. You can choose any desired value for the server's IP number, though.

Don't use 0.0.0.0!

If you have fixed IP numbers you must of course enter these (known) numbers.

The following excerpts define a syncPPP connection to Eunet (Nürnberg) with dynamical assignment of IP numbers in the subnet 193.102.150.0, gateway 193.102.150.13 and the nameserver 192.76.144.66.

/etc/rc.config:

NETDEV_0=ippp0 IFCONFIG_0="192.168.0.1 pointopoint 1.1.1.1 metric 1" I4L_REMOTE_OUT_0=52145922 I4L_LOCALMSN_0=776691 I4L_ENCAP_0="syncppp" SEARCHLIST=eunet.de NAMESERVER=192.76.144.66 /etc/route.conf: # syncPPP with dyn. IP-numbers at Gateway 193.102.150.13 # first a hostroute is set to the gateway, then the defaultroute # is set (also to the gateway) 193.102.150.13 0.0.0.0 255.255.255.255 ippp0 default 193.102.150.13

Possible problems with PPP

PPP server

The following possibility is intended especially for servers. If there exists a file /etc/ppp/options.ippp0 (or ippp1 etc.) the ipppd is being started with the command line
/sbin/ipppd file /etc/ppp/options.ippp0
otherwise only with the net device. This way you can store one separate configuration per device.

Matthias Mohr (SysDesign@T-Online.DE) reports, that in /etc/ppp/options additionally the following options must be set :

+pap login # pap via system user database (/etc/passwd & /etc/shadow) proxyarp # adress resolution towards net device usehostname dns-addr 192.168.0.1 # Set nameserver for clients

With the clients a PAP authentication is performed. The option dns-addr is only necessary for MS clients. This way the nameserver is reported to them (you have to adapt this).

When the keyword login isn't used, the file /etc/ppp/pap-secrets will be read.

Generating your own kernels

Meanwhile the Hisax driver is officially part of the kernel (since 2.0.31).

However there is a separate patch available at ftp://ftp.franken.de/pub/isdn4linux/HiSax. An up to date version can also be found at ftp://ftp.suse.com/pub/isdn4linux

On S.u.S.E.-Linux 5.1 there are two different packages of kernel sources :

  1. The official package : linux
  2. A package that was extended by S.u.S.E. : lx-suse.

It is strongly recommended to use lx-suse since the whole distributions fine tuning assumes its existance.

With module support :

The following parameters are relevant, at least these should be set. Besides the Hisax driver also the other drivers can be generated as modules.

Enable loadable module support (CONFIG_MODULES) [Y/n/?] Set version information on all symbols for modules (CONFIG_MODVERSIONS) [N/y/?] Kernel daemon support (e.g. autoload of modules) (CONFIG_KERNELD) [Y/n/?] Networking support (CONFIG_NET) [Y/n/?] System V IPC (CONFIG_SYSVIPC) [Y/n/?] Loopback device support (CONFIG_BLK_DEV_LOOP) [Y/m/n/?] TCP/IP networking (CONFIG_INET) [Y/n/?] IP: accounting (CONFIG_IP_ACCT) [Y/n/?] Network device support (CONFIG_NETDEVICES) [Y/n/?] Dummy net driver support (CONFIG_DUMMY) [M/n/y/?] ISDN support (CONFIG_ISDN) [M/n/y/?] Support synchronous PPP (CONFIG_ISDN_PPP) [Y/n/?] Use VJ-compression with synchronous PPP (CONFIG_ISDN_PPP_VJ) [Y/n/?] Support audio via ISDN (CONFIG_ISDN_AUDIO) [N/y/?] ICN 2B and 4B support (CONFIG_ISDN_DRV_ICN) [M/m/?] PCBIT-D support (CONFIG_ISDN_DRV_PCBIT) [N/m/?] Teles/NICCY1016PC/Creatix support (CONFIG_ISDN_DRV_TELES) [N/m/y/?] HiSax SiemensChipSet driver support [M/y/n/?] HiSax Support for Teles 16.0/8.0 [Y/n/?] HiSax Support for Teles 16.3 or PNP [Y/n/?] HiSax Support for AVM A1 (Fritz) [Y/n/?] HiSax Support for Elsa ML PCC16/PCC8 [Y/n/?] (and so forth) HiSax Support for EURO/DSS1 [Y/n/?] HiSax Support for german 1TR6 [Y/n/?]

Hint : At least one ISDN protocol (EURO/DSS1 or german 1TR6) must be selected !

If you use the Hisax driver you can of course leave out the unused card types as well as the unnecessary ISDN protocol.

Compile and install the kernel as usual and don't forget the modules :

	make modules
	make modules_install

without modules - drivers are compiled into the kernel

Once again : Life is easier with modules and only this variant is tested. However if you really need it the other way round : Set the above mentioned parameters to Y instead of M.

All parameters for the card must be defined when compiling the kernel or they must be passed as parameters to the kernel at boot-up.

Some values in /etc/rc.config must be set in a different way, see the comments in that file.

The rest of the procedure stays the same. Please make sure that your card is recogniced at boot time, see /var/log/boot.msg.

Tools

  1. chkonline :
    This is useful for shell scripts, since ping cannot be used to check whether currently a connection is established or not. The number (or part of it) that should be checked for an existing connection is passed as an argument. A return value of 1 means offline, 0 means online.

  2. imon :
    This is an ISDN monitor. It is very good since it doesn't use as much CPU time as other tools do. It always shows the current status in a text window. Start it with imon.

  3. imontty :
    Like imon, but will show the status only once.

  4. isdnmon :
    A TCL/TK program that constantly shows the status under X11 (where else ;-). Advantage : small window and looks great.
    Disadvantage : uses lots of CPU time and memory (Does someone know a program that needs less resources ?). The colours show the following information :

    Start it with isdnmon

  5. A patched version of isdnmon. Less widgets are being displayed. Even more important : The select command of wishx is used, thus only minimal CPU time is consomed.
    Disadvantage : The X refresh is slower, however noone should care about that if he is only interested in the information.

    Start it with isdnmonp

  6. xisdnload :
    A descendant of xload. It is always shown the throughput over the ISDN line as well as the number. It is also easy to see whether you're online or not.
    Bug: If you just try to establish a connection, this cannot be distinguished here (in contrast to isdnmon(p) ).

  7. isdnrep :
    The complete report : Who has called when and why. Incoming callers can, as long as they use ISDN, be listed. Thus it is rewarding to enter the known numbers into /etc/isdnlog/isdnlog.conf, so the caller can be listed by name.
    Outgoing calls cannot (except via the ISDN card of course) be shown, since no information about that is provided via the S0 bus (or is read from the card). Start it with isdnrep or isdnrep -a
    Hint : isdnrep only analyses /var/log/isdn.log which is written by isdnlog. Check whether isdnlog is really running. If not, /etc/isdn/isdn.conf may be wrong.

  8. xosview :
    Enter into /usr/X11R6/lib/X11/app-defaults/XOsview :
    	xosview*network:          8000
    
    This way xosway will show full load at 100%.
    Precondition : The package ipfwadm must be installed and the kernel must support IP accounting (CONFIG_IP_ACCT=y).

  9. Preview of phone numbers :
    This not a program but a feature of isdnlog : Even if you don't have ISDN but use an analog modem connected to a telecommunication system, you can see the callers phone number before you answer. This data is stord by isdnlog in /var/log/messages. Run tail -f /var/log/messages on the console or in an xterm (which is recommended anyway).

Further documentation :

ISDN as modem emulation :

ISDN4Linux has a built in modem emulation. This way you can call ISDN mailboxes while using normal modem commands to control the interface. However no analog modems can be called !

As a device use /dev/ttyI0 (or ttyI1 ... ttyI64) instead of /dev/modem. Use ATZ&E123 for the initialization string, where 123 is your own MSN (i.e. phone number).

Two protocols can be used : HDLC and X.75 . The default is X.75 . Please inform yourself what the opposite side expects since otherwise this may leed to confusion there (I believe that the Hisax driver does it right now). The protocol can be changed with

See also /usr/src/linux/Documentation/isdn/README.

Tip :Set the variable I4L_IPROFD="yes" in /etc/rc.config. This daemon stores via AT&W0 the current configuration in /etc/isdnlog/modemsettings and will restore it at the next start-up automatically.

Linux as a terminal server with mgetty :

Edit the file /usr/etc/mgetty+sendfax/megtty.config and enter a device ttyI0 (or some other device) : port ttyI0 debug 8 init-chat "" \d\d\d+++\d\d\dATZ OK ATS14=0&E776691&B512 OK modem-type data Here X.75 and the own MSN 776691 is set.

Enter into /etc/inittab :

mo:23:respawn:/usr/sbin/mgetty -s 38400 ttyI0
Activate the changes in inittab with the command init q , i.e. mgetty should run now. In /tmp/log_mg.ttyI0 you will see the protocol.

As is described above you can now call yourself. This is somehow senseless and costs money but it is a good test.

FAQ

Tested variants :

For non-S.u.S.E.-Linux users

Of course you can also use the described procedure if you have installed another distribution.

Create the file /etc/rc.config manually and enter the values as is described above. This file is the central configuration file for all init scripts in the S.u.S.E. system .
Advantage : Parameters (phone numbers, IP numbers, etc.) and universal programs are separated from each other, you only have to backup this single file.

Hint about the used programs : You need

Currently used programs :

You can download the original S.u.S.E. i4l package directly from the net, package : i4l.tgz, ftp://ftp.gwdg.de/pub/linux/install/suse/.

The used init scripts can be found on our web server under http://www.suse.de/Support/sdb/isdn_netscripts.html

---

See also:

---

Keywords: ISDN, HOWTO, FRITZ, HISAX, PPP, HDLC, RAWIP, MGETTY, EUNET

---

Categories: Documentation

---

Feedback welcome: Send Mail to kfr@suse.de (Please give the following subject: SDB-isdn)

---

Mainpage ---- Searchform ---- History ---- Versions ---- Categories ---- Contents
Deutsch
---

SDB-isdn, Copyright SuSE GmbH, Nuremberg, Germany - Version: 20. Feb 1997
Impressum - Last generated: 24. Feb 1999 14:48:28 by maddin with sdb_gen 1.00.0