The hardware drivers are supplied as modules. You could compile the drivers directly into the kernel, but this is not recommended.
The module isdn
is resonsible for the I4L subsystem.
It also requires (depending on your kernel compilation) slhc
.
These modules are required for the actual hardware drives and
must be loaded beforehand. If the modules are loaded with
modprobe
, then you don't have to worry about this, since the
dependencies are automatically checked.
Note: use only modprobe
to load the modules.
Depending on your hardware, different modules are needed. The
HiSax
module is necessary for passive ISDN cards. Specific
modules according to manufacturer are need for active cards.
isdnlog listens continuously to the D channel and collects important data for problem diagnosis as well for later analysis. isdnlog is started just after the HiSax driver is started (see below for active cards).
We'll explain more about the functions and starting isdnlog later; here are just the most important points for configuration:
/etc/isdn/isdn.conf
Here are some important parameters (such as the area code) that i4l cannot establish automatically.
You'll need to set at least the country code and the area code yourself.
# exapmle of /etc/isdn/isdn.conf # copy this file to /etc/isdn/isdn.conf and edit # # More information: /usr/doc/packages/i4l/isdnlog/README [GLOBAL] COUNTRYPREFIX = + COUNTRYCODE = 49 AREAPREFIX = 0 # EDIT THIS LINE: AREACODE = 911 # Example: #AREACODE = 911 # Nuernberg [VARIABLES] [ISDNLOG] LOGFILE = /var/log/isdn.log ILABEL = %b %e %T %ICall to tei %t from %N2 on %n2 OLABEL = %b %e %T %Itei %t calling %N2 with %n2 REPFMTWWW = "%X %D %17.17H %T %-17.17F %-20.20l SI: %S %9u %U %I %O" REPFMTSHORT = "%X%D %8.8H %T %-14.14F%U%I %O" REPFMT = " %X %D %15.15H %T %-15.15F %7u %U %I %O"
isdnlog takes a number of options that can be given either as command line parameters or in a config file.
S.u.S.E. uses the the file
/etc/isdn/isdnlog.isdnctrl0.options
(0: 1st card, 2: 2nd card, 4: 3rd card),
and isdnlog is started with the parameter
-f
. This file is commented and contains the most important
parameters.
There is more information in the isdnlog README file, which is in the
source package, and under S.u.S.E is also at
/usr/doc/packages/i4l/isdnlog/README
.
When started by hand, isdnlog should be given at least these options:
isdnlog -D -l1015 -x4087 -M -n -W80 /dev/isdnctrl0 &
isdnlog can automatically assign aliases to incoming and outgoing
numbers. These are then shown instead of the telephone numbers themselves.
The aliases are in:
/etc/isdn/callerid.conf
. For example:
[MSN] NUMBER = +4991152145922 ALIAS = Eunet-N ZONE = 1
PnP cards still have to be manually configured in 2.0 kernels. It's a bit of work, but luckily needs only to be done once.
The configuration is done with the package isapnp
. It includes
the two programs:
The drivers can address the hardware only after the cards have been so configured. Therefore, PnP cards can only be used with modules, not with drivers compiled in the kernel.
First we'll scan for PnP cards, but be careful: pnpdump
can
bring the computer to a halt. Do not start the program under X, and if
possible in single user mode.
We'll pipe the output from pnpdump
straight into the configuration file:
pnpdump > /etc/isapnp.conf
Here's and example for the QS3000:
# This is free software, see the sources for details. # This software has NO WARRANTY, use at your OWN RISK # # For details of this file format, see isapnp.conf(5) # # For latest information on isapnp and pnpdump see: # http://www.roestock.demon.co.uk/isapnptools/ # # Compiler flags: -DREALTIME -DNEEDSETSCHEDULER # # Trying port address 0203 # Board 1 has serial identifier e5 00 00 00 00 34 01 93 15 # (DEBUG) (READPORT 0x0203) (ISOLATE) (IDENTIFY *) # Card 1: (serial identifier e5 00 00 00 00 34 01 93 15) # ELS0134 Serial No 0 [checksum e5] # Version 1.0, Vendor version 0.0 # ANSI string -->ELSA QuickStep 3000<-- # # Logical device id ELS0134 # # Edit the entries below to uncomment out the configuration required. # Note that only the first value of any range is given, this may be changed if r equired # Don't forget to uncomment the activate (ACT Y) when happy (CONFIGURE ELS0134/0 (LD 0 # Multiple choice time, choose one only ! # Start dependent functions: priority acceptable # Logical device decodes 16 bit IO address lines # Minimum IO base address 0x0160 # Maximum IO base address 0x0360 # IO base alignment 16 bytes # Number of IO addresses required: 16 #(IO 0 (BASE 0x0160)) # IRQ 3, 4, 5, 7, 10, 11, 12 or 15. # High true, edge sensitive interrupt (by default) #(INT 0 (IRQ 3 (MODE +E))) # End dependent functions #(ACT Y) )) # End tag... Checksum 0x00 (OK) # Returns all cards to the "Wait for Key" state (WAITFORKEY)
With the output identifier, we can tell which cards were recognized (and if there are any PnP cards at all).
This file will be edited; the comment characters have to be deleted and where necessary the proper values entered. Possible values are given in the comments.
(IO 0 (BASE 0x0160)) (INT 0 (IRQ 3 (MODE +E))) (ACT Y)
Note: (ACT Y)
must also be given. Otherwise nothing will happen.
This configuration can now be sent to the PnP cards:
isapnp /etc/isapnp.conf Board 1 has Identity e5 00 00 00 00 34 01 93 15: ELS0134 Serial No 0 [checksum e5]
The output is unfortunately not very clear, but you should be bble to at least recognize the identifier of the card.
Under S.u.S.E, the isapnp
command is run automatically in the
init script. Otherwise, you'll have to make sure yourself that it
has been run.
The HiSax driver reads its parameters when loading to tell which card (or cards) at which address should be searched for.
(smhFixMe: what does YaST look like in English?)
With S.u.S.E, configuration of the ISDN hardware is done with the
Administration des Systems/
Hardware in System integrieren/
ISDN-Hardware konfigurieren
screen. Along with the choice of card type and parameters, the modules can
be loaded with Starten
. If there are problems, you can try other parameters right away. If successful, with Speichern
the parameters can be saved in rc.config
so that the modules will be loaded again at the next time the
system is started.
The systax is described at /usr/src/linux/Documentation/isdn/README.HiSax.
/etc/rc.config
The ISDN hardware can also be given and/or controlled directly in /etc/rc.config
. Here is an example for the Elsa QS-3000:
# # start i4l? ("yes" or "no") # see: /usr/doc/packages/i4l/README.SuSE # I4L_START="yes" # # driver-id for HiSax-driver # set to "HiSax" # or whatever you defined when loading driver within kernel # set to "" if you don't have a hisax-card # I4L_TELES_ID="hisax1" # # D-channel protocol 1=1TR6, 2=EDSS1(Euro-ISDN) for HiSax # I4L_PROTOCOL="2" # Type ISDN-card Required parameters # ---- --------------------- ------------------------------------------- # 1 Teles 16.0 irq, mem, io # 2 Teles 8.0 irq, mem # 3 Teles 16.3 (non PnP) irq, io # 4 Creatix/Teles PnP irq, io0 (ISAC), io1 (HSCX) # 5 AVM A1 (Fritz) irq, io # 6 ELSA PCC/PCF cards io or nothing for autodetect (the iobase is # only required, if you have more than one ELSA # card in your PC) # 7 ELSA Quickstep 1000 irq, io (from isapnp setup) # 8 Teles 16.3 PCMCIA irq, io # 9 ITK ix1-micro Rev.2 irq, io # since: HiSax 2.5: # 10 ELSA PCMCIA irq, io (set with card manager) # 11 Eicon.Diehl Diva ISA PnP irq, io # 11 Eicon.Diehl Diva PCI no parameter # 12 ASUS COM ISDNLink irq, io (from isapnp setup) # 13 HFC-2BS0 based cards irq, io # 15 Sedlbauer Speed Card irq, io # (= Teledat 100) # 16 USR Sportster internal irq, io # 17 MIC card irq, io # 18 ELSA Quickstep 1000PCI no parameter # I4L_TELES_TYPE="7" # # IRQ of Teles Card # eg. 12 or 15 when loading as module # set to "" when driver is loaded within kernel # I4L_TELES_IRQ="3" # # Portaddress of Teles card (e.g. 0xd80, "0" for S0/8) # I4L_TELES_PORT="0x0160"
The string TELES
here has only a historical meaning.
These entries automatically generate the parameter line for the HiSax driver. In addition, you can also give the parameters yourself, which is necessary for newer cards or when you have several cards (see below).
Example for a AVM Fritz and a ELSA PCF card:
I4L_TELES_MODUL_OPTIONS="type=5,6 protocol=2,2 io=0x340 irq=10 id=Fritz%Elsa"
To load the modules use the init script:
glen:/root # /sbin/init.d/i4l_hardware start Loading ISDN drivers ... Loading HiSax driver ... /sbin/insmod /lib/modules/2.0.33/misc/hisax.o id=hisax1 type=7 protocol=2 irq=3 io=0x0160 Verbose-level set to 3. Starting isdnlog with /etc/isdn/isdnlog.isdnctrl0.options for isdnctrl0...
Note that this automatically starts isdnlog
.
To unload the modules use the same script:
glen:/root # /sbin/init.d/i4l_hardware stop Unloading ISDN drivers ...
The syntax is described in /usr/src/linux/Documentation/isdn/README.HiSax.
For example, for a ELSA QS3000;
modprobe -v hisax id=hisax1 type=7 protocol=2 irq=3 io=0x0160
/sbin/hisaxctrl hisax1 1 4 /sbin/isdnctrl verbose 3 /sbin/isdnlog /dev/isdnctrl0
In case of an error while loading the HiSax module, there are no useful messages on the screen, but usually just Device or resource busy
. The real error messages are saved syslog (usually) in
file:/var/log/messages.
Example of unsuccessfully loading an AVM Fritz:
Feb 6 22:45:05 glen kernel: HiSax: Driver for Siemens chip set ISDN cards Feb 6 22:45:05 glen kernel: HiSax: Version 2.1 Feb 6 22:45:05 glen kernel: HiSax: Revisions 1.15/1.10/1.10/1.30/1.8 Feb 6 22:45:05 glen kernel: HiSax: Total 1 card defined Feb 6 22:45:05 glen kernel: HiSax: Card 1 Protocol EDSS1 Id=HiSax (0) Feb 6 22:45:05 glen kernel: HiSax: AVM driver Rev. 1.6 Feb 6 22:45:05 glen kernel: AVM A1: Byte at 1b00 is ff Feb 6 22:45:05 glen kernel: AVM A1: Byte at 1b03 is ff Feb 6 22:45:05 glen kernel: AVM A1: Byte at 1b02 is ff Feb 6 22:45:05 glen kernel: AVM A1: Byte at 1b00 is ff Feb 6 22:45:05 glen kernel: HiSax: AVM A1 config irq:12 cfg:1b00 Feb 6 22:45:05 glen kernel: HiSax: isac:1700/1300 Feb 6 22:45:05 glen kernel: HiSax: hscx A:700/300 hscx B:f00/b00 Feb 6 22:45:05 glen kernel: AVM A1: HSCX version A: ??? B: ??? Feb 6 22:45:05 glen kernel: AVM A1: ISAC 2085 V2.3 Feb 6 22:45:05 glen kernel: AVM A1: wrong HSCX versions check IO address Feb 6 22:45:05 glen kernel: HiSax: Card AVM A1 not installed !
In this case, no Fritz card was found ad the given port address. (In fact, there was no Fritz card installed ;-). With this message, it should be easy to see the exact cause. Other common errors are:
could not get interrupt
:
The driver cannot work with the given IRQ. Try another. Unused IRQs can be found by reading cat /proc/interrupts
.
If absolutely nothing seems to work, try asking on the mailing list.
Be sure to include the output from /var/log/messages
.
FixMe
FixMe
The best and easiest test is to try calling yourself.
For this test, it makes not difference whether it is an ISDN or a voice call, whether from an internal or external ISDN or analog telephone. No connection will be make. It is only important that a message about the call appears in file:/var/log/messages.
Example for an analog call on the MSN 123459:
Apr 6 22:15:20 glen kernel: isdn_net: call from 911123458,1,0 -> 123459 Apr 6 22:15:20 glen kernel: isdn_net: Service-Indicator not 7, ignored
The important thing here is the entry of the called number after the arror, here the 123459. Here you should try all of your own numbers. Just as it is shown here is how you will later enter your own MSN.
Ziel: Die ISDN-Karte soll angesprochen und geprüft werden.
Notiere Dir:
Nur in /var/log/messages
steht die Wahrheit,
sie ist für die
gesamte Konfigurationsarbeit (und später) zu verfolgen.
Öffne (mindestens) zwei Konsolen (virtuelle Linux-Konsole
oder unter X zwei xterm
).
Auf einer Konsole starte entweder:
tail -f /var/log/messages
less /var/log/messages
, im Programm
dann F
(follow) drücken, um immer die
neuesten Zeilen zu bekommen. (Diesen Modus
beendet man durch Ctrl-C
, beenden
von less mit q
.Falls es eine Plug&Pray-Karte ist, konfiguriere
sie, wenn Du es nicht weißt, starte pnpdump
.
Siehe
Plug&Play-Karten.
Lade das entsprechende Modul nach Deiner bevorzugten Methode (also YaST ;-).
Stelle sicher, daß die Einstellungen notiert sind und beim Systemstart automatisch das Modul wieder geladen wird.
Prüfe, ob das Modul geladen ist mit lsmod
.
Prüfe, ob der isdnlog
läuft mit
/ps ax|grep isdnlog
Prüfe, ob /var/log/messages
normal
aussieht.
Siehe HiSax-Treiber laden
Rufe Dich selbst an und notiere alle MSN unter denen Du angerufen werden kannst.
Siehe Hardware testen