x86: fix "BUG: sleeping function called from invalid context" in print_vma_addr()
[wrt350n-kernel.git] / Documentation / isdn / README.HiSax
blob031c8d81433770feab8d1f0a7069bed6ee0cc266
1 HiSax is a Linux hardware-level driver for passive ISDN cards with Siemens
2 chipset (ISAC_S 2085/2086/2186, HSCX SAB 82525). It is based on the Teles
3 driver from Jan den Ouden.
4 It is meant to be used with isdn4linux, an ISDN link-level module for Linux
5 written by Fritz Elfert.
7     This program is free software; you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
9     the Free Software Foundation; either version 2 of the License, or
10     (at your option) any later version.
12     This program is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15     GNU General Public License for more details.
17     You should have received a copy of the GNU General Public License
18     along with this program; if not, write to the Free Software
19     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 Supported cards
23 ---------------
25 Teles 8.0/16.0/16.3 and compatible ones
26 Teles 16.3c
27 Teles S0/PCMCIA
28 Teles PCI
29 Teles S0Box
30 Creatix S0Box
31 Creatix PnP S0
32 Compaq ISDN S0 ISA card
33 AVM A1 (Fritz, Teledat 150)
34 AVM Fritz PCMCIA
35 AVM Fritz PnP
36 AVM Fritz PCI
37 ELSA Microlink PCC-16, PCF, PCF-Pro, PCC-8
38 ELSA Quickstep 1000
39 ELSA Quickstep 1000PCI
40 ELSA Quickstep 3000 (same settings as QS1000)
41 ELSA Quickstep 3000PCI
42 ELSA PCMCIA
43 ITK ix1-micro Rev.2
44 Eicon Diva 2.0 ISA and PCI (S0 and U interface, no PRO version)
45 Eicon Diva 2.01 ISA and PCI
46 Eicon Diva 2.02 PCI
47 Eicon Diva Piccola
48 ASUSCOM NETWORK INC. ISDNLink 128K PC adapter (order code I-IN100-ST-D)
49 Dynalink IS64PH (OEM version of ASUSCOM NETWORK INC. ISDNLink 128K adapter)
50 PCBIT-DP (OEM version of ASUSCOM NETWORK INC. ISDNLink)
51 HFC-2BS0 based cards (TeleInt SA1)
52 Sedlbauer Speed Card (Speed Win, Teledat 100, PCI, Fax+)
53 Sedlbauer Speed Star/Speed Star2 (PCMCIA)
54 Sedlbauer ISDN-Controller PC/104
55 USR Sportster internal TA (compatible Stollmann tina-pp V3)
56 USR internal TA PCI
57 ith Kommunikationstechnik GmbH MIC 16 ISA card
58 Traverse Technologie NETjet PCI S0 card and NETspider U card
59 Ovislink ISDN sc100-p card (NETjet driver)
60 Dr. Neuhaus Niccy PnP/PCI
61 Siemens I-Surf 1.0
62 Siemens I-Surf 2.0 (with IPAC, try type 12 asuscom) 
63 ACER P10
64 HST Saphir
65 Berkom Telekom A4T
66 Scitel Quadro
67 Gazel ISDN cards
68 HFC-PCI based cards
69 Winbond W6692 based cards
70 HFC-S+, HFC-SP/PCMCIA cards
71 formula-n enternow
72 Gerdes Power ISDN
74 Note: PCF, PCF-Pro: up to now, only the ISDN part is supported
75       PCC-8: not tested yet
76       Eicon.Diehl Diva U interface not tested
78 If you know other passive cards with the Siemens chipset, please let me know.
79 You can combine any card, if there is no conflict between the resources
80 (io, mem, irq).
83 Configuring the driver
84 ----------------------
86 The HiSax driver can either be built directly into the kernel or as a module.
87 It can be configured using the command line feature while loading the kernel
88 with LILO or LOADLIN or, if built as a module, using insmod/modprobe with
89 parameters.
90 There is also some config needed before you compile the kernel and/or
91 modules. It is included in the normal "make [menu]config" target at the
92 kernel. Don't forget it, especially to select the right D-channel protocol.
94 Please note: In older versions of the HiSax driver, all PnP cards
95 needed to be configured with isapnp and worked only with the HiSax
96 driver used as a module.
98 In the current version, HiSax will automatically use the in-kernel
99 ISAPnP support, provided you selected it during kernel configuration
100 (CONFIG_ISAPNP), if you don't give the io=, irq= command line parameters.
102 The affected card types are: 4,7,12,14,19,27-30
104 a) when built as a module
105 -------------------------
107 insmod/modprobe  hisax.o \
108   io=iobase irq=IRQ mem=membase type=card_type \
109   protocol=D_channel_protocol id=idstring
111 or, if several cards are installed:
113 insmod/modprobe hisax.o \
114   io=iobase1,iobase2,... irq=IRQ1,IRQ2,... mem=membase1,membase2,... \
115   type=card_type1,card_type2,... \
116   protocol=D_channel_protocol1,D_channel_protocol2,... \
117   id=idstring1%idstring2 ...
119 where "iobaseN" represents the I/O base address of the Nth card, "membaseN"
120 the memory base address of the Nth card, etc.
122 The reason for the delimiter "%" being used in the idstrings is that ","
123 won't work with the current modules package.
125 The parameters may be specified in any order. For example, the "io"
126 parameter may precede the "irq" parameter, or vice versa. If several
127 cards are installed, the ordering within the comma separated parameter
128 lists must of course be consistent.
130 Only parameters applicable to the card type need to be specified. For
131 example, the Teles 16.3 card is not memory-mapped, so the "mem"
132 parameter may be omitted for this card. Sometimes it may be necessary
133 to specify a dummy parameter, however. This is the case when there is
134 a card of a different type later in the list that needs a parameter
135 which the preceding card does not. For instance, if a Teles 16.0 card
136 is listed after a Teles 16.3 card, a dummy memory base parameter of 0
137 must be specified for the 16.3. Instead of a dummy value, the parameter
138 can also be skipped by simply omitting the value. For example:
139 mem=,0xd0000. See example 6 below.
141 The parameter for the D-Channel protocol may be omitted if you selected the
142 correct one during kernel config. Valid values are "1" for German 1TR6,
143 "2" for EDSS1 (Euro ISDN), "3" for leased lines (no D-Channel) and "4"
144 for US NI1.
145 With US NI1 you have to include your SPID into the MSN setting in the form
146 <MSN>:<SPID> for example (your phonenumber is 1234 your SPID 5678):
147 AT&E1234:5678                       on ttyI interfaces
148 isdnctrl eaz ippp0 1234:5678        on network devices
150 The Creatix/Teles PnP cards use io1= and io2= instead of io= for specifying
151 the I/O addresses of the ISAC and HSCX chips, respectively.
153 Card types:
155     Type                Required parameters (in addition to type and protocol)
157     1   Teles 16.0               irq, mem, io
158     2   Teles  8.0               irq, mem
159     3   Teles 16.3 (non PnP)     irq, io
160     4   Creatix/Teles PnP        irq, io0 (ISAC), io1 (HSCX)
161     5   AVM A1 (Fritz)           irq, io
162     6   ELSA PCC/PCF cards       io or nothing for autodetect (the iobase is
163                                  required only if you have more than one ELSA
164                                  card in your PC)
165     7   ELSA Quickstep 1000      irq, io  (from isapnp setup)
166     8   Teles 16.3 PCMCIA        irq, io
167     9   ITK ix1-micro Rev.2      irq, io
168    10   ELSA PCMCIA              irq, io  (set with card manager)
169    11   Eicon.Diehl Diva ISA PnP irq, io
170    11   Eicon.Diehl Diva PCI     no parameter
171    12   ASUS COM ISDNLink        irq, io  (from isapnp setup)
172    13   HFC-2BS0 based cards     irq, io
173    14   Teles 16.3c PnP          irq, io
174    15   Sedlbauer Speed Card     irq, io
175    15   Sedlbauer PC/104         irq, io
176    15   Sedlbauer Speed PCI      no parameter
177    16   USR Sportster internal   irq, io
178    17   MIC card                 irq, io
179    18   ELSA Quickstep 1000PCI   no parameter
180    19   Compaq ISDN S0 ISA card  irq, io0, io1, io (from isapnp setup io=IO2)
181    20   NETjet PCI card          no parameter
182    21   Teles PCI                no parameter
183    22   Sedlbauer Speed Star (PCMCIA) irq, io (set with card manager)
184    24   Dr. Neuhaus Niccy PnP    irq, io0, io1 (from isapnp setup)
185    24   Dr. Neuhaus Niccy PCI    no parameter
186    25   Teles S0Box              irq, io (of the used lpt port)
187    26   AVM A1 PCMCIA (Fritz!)   irq, io (set with card manager)
188    27   AVM PnP (Fritz!PnP)      irq, io  (from isapnp setup)
189    27   AVM PCI (Fritz!PCI)      no parameter
190    28   Sedlbauer Speed Fax+     irq, io (from isapnp setup)
191    29   Siemens I-Surf 1.0       irq, io, memory (from isapnp setup)   
192    30   ACER P10                 irq, io (from isapnp setup)   
193    31   HST Saphir               irq, io
194    32   Telekom A4T              none
195    33   Scitel Quadro            subcontroller (4*S0, subctrl 1...4)
196    34   Gazel ISDN cards (ISA)   irq,io
197    34   Gazel ISDN cards (PCI)   none
198    35   HFC 2BDS0 PCI            none
199    36   W6692 based PCI cards    none
200    37   HFC 2BDS0 S+, SP         irq,io 
201    38   NETspider U PCI card     none
202    39   HFC 2BDS0 SP/PCMCIA      irq,io (set with cardmgr)
203    40   hotplug interface
204    41   Formula-n enter:now PCI  none
206 At the moment IRQ sharing is only possible with PCI cards. Please make sure
207 that your IRQ is free and enabled for ISA use.
210 Examples for module loading
212 1. Teles 16.3, Euro ISDN, I/O base 280 hex, IRQ 10
213    modprobe hisax type=3 protocol=2 io=0x280 irq=10
215 2. Teles 16.0, 1TR6 ISDN, I/O base d80 hex, IRQ 5, Memory d0000 hex
216    modprobe hisax protocol=1 type=1 io=0xd80 mem=0xd0000 irq=5
218 3. Fritzcard, Euro ISDN, I/O base 340 hex, IRQ 10 and ELSA PCF, Euro ISDN
219    modprobe hisax type=5,6 protocol=2,2 io=0x340 irq=10 id=Fritz%Elsa
221 4. Any ELSA PCC/PCF card, Euro ISDN
222    modprobe hisax type=6 protocol=2
224 5. Teles 16.3 PnP, Euro ISDN, with isapnp configured
225    isapnp config:  (INT 0 (IRQ 10 (MODE +E)))
226                    (IO 0 (BASE 0x0580))
227                    (IO 1 (BASE 0x0180))
228    modprobe hisax type=4 protocol=2 irq=10 io0=0x580 io1=0x180
230    In the current version of HiSax, you can instead simply use
232    modprobe hisax type=4 protocol=2
234    if you configured your kernel for ISAPnP. Don't run isapnp in
235    this case!
237 6. Teles 16.3, Euro ISDN, I/O base 280 hex, IRQ 12 and
238    Teles 16.0, 1TR6, IRQ 5, Memory d0000 hex
239    modprobe hisax type=3,1 protocol=2,1 io=0x280 mem=0,0xd0000
241    Please note the dummy 0 memory address for the Teles 16.3, used as a
242    placeholder as described above, in the last example.
244 7. Teles PCMCIA, Euro ISDN, I/O base 180 hex, IRQ 15 (default values)
245    modprobe hisax type=8 protocol=2 io=0x180 irq=15
248 b) using LILO/LOADLIN, with the driver compiled directly into the kernel
249 ------------------------------------------------------------------------
251 hisax=typ1,dp1,pa_1,pb_1,pc_1[,typ2,dp2,pa_2 ... \
252       typn,dpn,pa_n,pb_n,pc_n][,idstring1[,idstring2,...,idstringn]]
254 where
255      typ1 = type of 1st card (default depends on kernel settings)
256      dp1  = D-Channel protocol of 1st card. 1=1TR6, 2=EDSS1, 3=leased
257      pa_1 = 1st parameter (depending on the type of the card)
258      pb_1 = 2nd parameter (    "     "   "   "   "   "   "  )
259      pc_1 = 3rd parameter (    "     "   "   "   "   "   "  )
261      typ2,dp2,pa_2,pb_2,pc_2 = Parameters of the second card (defaults: none)
262      typn,dpn,pa_n,pb_n,pc_n = Parameters of the n'th card (up to 16 cards are
263                                                                      supported)
265      idstring = Driver ID for accessing the particular card with utility
266                 programs and for identification when using a line monitor
267                 (default: "HiSax")
269                 Note: the ID string must start with an alphabetical character!
271 Card types:
273 type
274     1   Teles 16.0              pa=irq  pb=membase  pc=iobase
275     2   Teles  8.0              pa=irq  pb=membase
276     3   Teles 16.3              pa=irq  pb=iobase
277     4   Creatix/Teles PNP       ONLY WORKS AS A MODULE !
278     5   AVM A1 (Fritz)          pa=irq  pb=iobase
279     6   ELSA PCC/PCF cards      pa=iobase or nothing for autodetect
280     7   ELSA Quickstep 1000     ONLY WORKS AS A MODULE !
281     8   Teles S0 PCMCIA         pa=irq  pb=iobase
282     9   ITK ix1-micro Rev.2     pa=irq  pb=iobase
283    10   ELSA PCMCIA             pa=irq, pb=io  (set with card manager)
284    11   Eicon.Diehl Diva ISAPnP ONLY WORKS AS A MODULE !
285    11   Eicon.Diehl Diva PCI    no parameter
286    12   ASUS COM ISDNLink       ONLY WORKS AS A MODULE !
287    13   HFC-2BS0 based cards    pa=irq  pb=io
288    14   Teles 16.3c PnP         ONLY WORKS AS A MODULE !
289    15   Sedlbauer Speed Card    pa=irq  pb=io (Speed Win only as module !)
290    15   Sedlbauer PC/104        pa=irq  pb=io
291    15   Sedlbauer Speed PCI     no parameter
292    16   USR Sportster internal  pa=irq  pb=io
293    17   MIC card                pa=irq  pb=io
294    18   ELSA Quickstep 1000PCI  no parameter
295    19   Compaq ISDN S0 ISA card ONLY WORKS AS A MODULE !
296    20   NETjet PCI card         no parameter
297    21   Teles PCI               no parameter
298    22   Sedlbauer Speed Star (PCMCIA)  pa=irq, pb=io  (set with card manager)
299    24   Dr. Neuhaus Niccy PnP   ONLY WORKS AS A MODULE !
300    24   Dr. Neuhaus Niccy PCI   no parameter
301    25   Teles S0Box             pa=irq, pb=io (of the used lpt port)
302    26   AVM A1 PCMCIA (Fritz!)  pa=irq, pb=io (set with card manager)
303    27   AVM PnP (Fritz!PnP)     ONLY WORKS AS A MODULE !
304    27   AVM PCI (Fritz!PCI)     no parameter
305    28   Sedlbauer Speed Fax+    ONLY WORKS AS A MODULE !
306    29   Siemens I-Surf 1.0      ONLY WORKS AS A MODULE !
307    30   ACER P10                ONLY WORKS AS A MODULE !
308    31   HST Saphir              pa=irq, pb=io
309    32   Telekom A4T             no parameter
310    33   Scitel Quadro           subcontroller (4*S0, subctrl 1...4)
311    34   Gazel ISDN cards (ISA)  pa=irq, pb=io
312    34   Gazel ISDN cards (PCI)  no parameter
313    35   HFC 2BDS0 PCI           no parameter
314    36   W6692 based PCI cards   none
315    37   HFC 2BDS0 S+,SP/PCMCIA  ONLY WORKS AS A MODULE !
316    38   NETspider U PCI card    none
317    39   HFC 2BDS0 SP/PCMCIA     ONLY WORKS AS A MODULE !
318    40   hotplug interface       ONLY WORKS AS A MODULE !
319    41   Formula-n enter:now PCI none
321 Running the driver
322 ------------------
324 When you insmod isdn.o and hisax.o (or with the in-kernel version, during
325 boot time), a few lines should appear in your syslog. Look for something like:
327 Apr 13 21:01:59 kke01 kernel: HiSax: Driver for Siemens chip set ISDN cards
328 Apr 13 21:01:59 kke01 kernel: HiSax: Version 2.9
329 Apr 13 21:01:59 kke01 kernel: HiSax: Revisions 1.14/1.9/1.10/1.25/1.8
330 Apr 13 21:01:59 kke01 kernel: HiSax: Total 1 card defined
331 Apr 13 21:01:59 kke01 kernel: HiSax: Card 1 Protocol EDSS1 Id=HiSax1 (0)
332 Apr 13 21:01:59 kke01 kernel: HiSax: Elsa driver Rev. 1.13
334 Apr 13 21:01:59 kke01 kernel: Elsa: PCF-Pro found at 0x360 Rev.:C IRQ 10
335 Apr 13 21:01:59 kke01 kernel: Elsa: timer OK; resetting card
336 Apr 13 21:01:59 kke01 kernel: Elsa: HSCX version A: V2.1  B: V2.1
337 Apr 13 21:01:59 kke01 kernel: Elsa: ISAC 2086/2186 V1.1
339 Apr 13 21:01:59 kke01 kernel: HiSax: DSS1 Rev. 1.14
340 Apr 13 21:01:59 kke01 kernel: HiSax: 2 channels added
342 This means that the card is ready for use.
343 Cabling problems or line-downs are not detected, and only some ELSA cards can
344 detect the S0 power.
346 Remember that, according to the new strategy for accessing low-level drivers
347 from within isdn4linux, you should also define a driver ID while doing
348 insmod: Simply append hisax_id=<SomeString> to the insmod command line. This
349 string MUST NOT start with a digit or a small 'x'!
351 At this point you can run a 'cat /dev/isdnctrl0' and view debugging messages.
353 At the moment, debugging messages are enabled with the hisaxctrl tool:
355     hisaxctrl <DriverId> DebugCmd <debugging_flags>
357 <DriverId> default is HiSax, if you didn't specify one.
359 DebugCmd is  1  for generic debugging
360             11  for layer 1 development debugging
361             13  for layer 3 development debugging
363 where <debugging_flags> is the integer sum of the following debugging
364 options you wish enabled:
366 With DebugCmd set to 1:
368    0x0001  Link-level <--> hardware-level communication
369    0x0002  Top state machine
370    0x0004  D-Channel Frames for isdnlog
371    0x0008  D-Channel Q.921
372    0x0010  B-Channel X.75
373    0x0020  D-Channel l2
374    0x0040  B-Channel l2
375    0x0080  D-Channel link state debugging
376    0x0100  B-Channel link state debugging
377    0x0200  TEI debug
378    0x0400  LOCK debug in callc.c
379    0x0800  More paranoid debug in callc.c (not for normal use)
380    0x1000  D-Channel l1 state debugging
381    0x2000  B-Channel l1 state debugging
383 With DebugCmd set to 11:
385    0x0001  Warnings (default: on)
386    0x0002  IRQ status
387    0x0004  ISAC
388    0x0008  ISAC FIFO
389    0x0010  HSCX
390    0x0020  HSCX FIFO (attention: full B-Channel output!)
391    0x0040  D-Channel LAPD frame types
392    0x0080  IPAC debug
393    0x0100  HFC receive debug
394    0x0200  ISAC monitor debug
395    0x0400  D-Channel frames for isdnlog (set with 1 0x4 too)
396    0x0800  D-Channel message verbose
398 With DebugCmd set to 13:
400          1  Warnings (default: on)
401          2  l3 protocol descriptor errors
402          4  l3 state machine
403          8  charge info debugging (1TR6)
405 For example, 'hisaxctrl HiSax 1 0x3ff' enables full generic debugging.
407 Because of some obscure problems with some switch equipment, the delay
408 between the CONNECT message and sending the first data on the B-channel is now
409 configurable with
411 hisaxctrl <DriverId> 2 <delay>
412 <delay> in ms Value between 50 and 800 ms is recommended.
414 Downloading Firmware
415 --------------------
416 At the moment, the Sedlbauer speed fax+ is the only card, which
417 needs to download firmware.
418 The firmware is downloaded with the hisaxctrl tool:
420     hisaxctrl <DriverId> 9 <firmware_filename>
422 <DriverId> default is HiSax, if you didn't specify one,
424 where <firmware_filename> is the filename of the firmware file.
426 For example, 'hisaxctrl HiSax 9 ISAR.BIN' downloads the firmware for
427 ISAR based cards (like the Sedlbauer speed fax+).
429 Warning
430 -------
431 HiSax is a work in progress and may crash your machine.
432 For certification look at HiSax.cert file.
434 Limitations
435 -----------
436 At this time, HiSax only works on Euro ISDN lines and German 1TR6 lines.
437 For leased lines see appendix.
439 Bugs
440 ----
441 If you find any, please let me know.
444 Thanks
445 ------
446 Special thanks to:
448         Emil Stephan for the name HiSax which is a mix of HSCX and ISAC.
450         Fritz Elfert, Jan den Ouden, Michael Hipp, Michael Wein,
451         Andreas Kool, Pekka Sarnila, Sim Yskes, Johan Myrre'en,
452         Klaus-Peter Nischke (ITK AG), Christof Petig, Werner Fehn (ELSA GmbH),
453         Volker Schmidt
454         Edgar Toernig and Marcus Niemann for the Sedlbauer driver
455         Stephan von Krawczynski
456         Juergen Quade for the Leased Line part
457         Klaus Lichtenwalder (Klaus.Lichtenwalder@WebForum.DE), for ELSA PCMCIA support
458         Enrik Berkhan (enrik@starfleet.inka.de) for S0BOX specific stuff
459         Ton van Rosmalen for Teles PCI
460         Petr Novak <petr.novak@i.cz> for Winbond W6692 support
461         Werner Cornelius <werner@isdn4linux.de> for HFC-PCI, HFC-S(+/P) and supplementary services support
462         and more people who are hunting bugs. (If I forgot somebody, please
463         send me a mail).
465         Firma ELSA GmbH
466         Firma Eicon.Diehl GmbH
467         Firma Dynalink NL
468         Firma ASUSCOM NETWORK INC. Taiwan
469         Firma S.u.S.E
470         Firma ith Kommunikationstechnik GmbH
471         Firma Traverse Technologie Australia
472         Firma Medusa GmbH  (www.medusa.de).
473         Firma Quant-X Austria for sponsoring a DEC Alpha board+CPU
474         Firma Cologne Chip Designs GmbH
476         My girl friend and partner in life Ute for her patience with me.
479 Enjoy,
481 Karsten Keil
482 keil@isdn4linux.de
485 Appendix: Teles PCMCIA driver
486 -----------------------------
489    http://www.stud.uni-wuppertal.de/~ea0141/pcmcia.html
490 for instructions.
492 Appendix: Linux and ISDN-leased lines
493 -------------------------------------
495 Original from Juergen Quade, new version KKe.
497 Attention NEW VERSION, the old leased line syntax won't work !!!
499 You can use HiSax to connect your Linux-Box via an ISDN leased line
500 to e.g. the Internet:
502 1. Build a kernel which includes the HiSax driver either as a module
503    or as part of the kernel.
504      cd /usr/src/linux
505      make menuconfig
506      <ISDN subsystem - ISDN support -- HiSax>
507      make clean; make zImage; make modules; make modules_install
508 2. Install the new kernel
509      cp /usr/src/linux/arch/i386/boot/zImage /etc/kernel/linux.isdn
510      vi /etc/lilo.conf
511      <add new kernel in the bootable image section>
512      lilo
513 3. in case the hisax driver is a "fixed" part of the kernel, configure
514    the driver with lilo:
515      vi /etc/lilo.conf
516      <add HiSax driver parameter in the global section (see below)>
517      lilo
518    Your lilo.conf _might_ look like the following:
520         # LILO configuration-file
521         # global section
522     # teles 16.0 on IRQ=5, MEM=0xd8000, PORT=0xd80
523         append="hisax=1,3,5,0xd8000,0xd80,HiSax"
524     # teles 16.3 (non pnp) on IRQ=15, PORT=0xd80
525         # append="hisax=3,3,5,0xd8000,0xd80,HiSax"
526         boot=/dev/sda
527         compact        # faster, but won't work on all systems.
528         linear
529         read-only
530         prompt
531         timeout=100
532         vga = normal    # force sane state
533         # Linux bootable partition config begins
534         image = /etc/kernel/linux.isdn
535         root = /dev/sda1
536         label = linux.isdn
537         #
538         image = /etc/kernel/linux-2.0.30
539         root = /dev/sda1
540         label = linux.secure
542    In the line starting with "append" you have to adapt the parameters
543    according to your card (see above in this file)
545 3. boot the new linux.isdn kernel
546 4. start the ISDN subsystem:
547    a) load - if necessary - the modules (depends, whether you compiled
548       the ISDN driver as module or not)
549       According to the type of card you have to specify the necessary
550       driver parameter (irq, io, mem, type, protocol).
551       For the leased line the protocol is "3". See the table above for
552       the parameters, which you have to specify depending on your card.
553    b) configure i4l
554       /sbin/isdnctrl addif isdn0
555       # EAZ  1 -- B1 channel   2 --B2 channel
556       /sbin/isdnctrl eaz isdn0 1
557       /sbin/isdnctrl secure isdn0 on
558       /sbin/isdnctrl huptimeout isdn0 0
559       /sbin/isdnctrl l2_prot isdn0 hdlc
560       # Attention you must not set an outgoing number !!! This won't work !!!
561       # The incoming number is LEASED0 for the first card, LEASED1 for the
562       # second and so on.
563       /sbin/isdnctrl addphone isdn0 in LEASED0
564       # Here is no need to bind the channel.
565    c) in case the remote partner is a CISCO:
566       /sbin/isdnctrl encap isdn0 cisco-h
567    d) configure the interface
568       /sbin/ifconfig isdn0 ${LOCAL_IP} pointopoint ${REMOTE_IP}
569    e) set the routes
570       /sbin/route add -host ${REMOTE_IP} isdn0
571       /sbin/route add default gw ${REMOTE_IP}
572    f) switch the card into leased mode for each used B-channel
573       /sbin/hisaxctrl HiSax 5 1
575 Remarks:
576 a) Use state of the art isdn4k-utils
578 Here an example script:
579 #!/bin/sh
580 # Start/Stop ISDN leased line connection
582 I4L_AS_MODULE=yes
583 I4L_REMOTE_IS_CISCO=no
584 I4L_MODULE_PARAMS="type=16 io=0x268 irq=7 "
585 I4L_DEBUG=no
586 I4L_LEASED_128K=yes
587 LOCAL_IP=192.168.1.1
588 REMOTE_IP=192.168.2.1
590 case "$1" in
591     start)
592         echo "Starting ISDN ..."
593         if [ ${I4L_AS_MODULE} = "yes" ]; then
594                 echo "loading modules..."
595                 /sbin/modprobe hisax ${I4L_MODULE_PARAMS}
596         fi
597         # configure interface
598         /sbin/isdnctrl addif isdn0
599         /sbin/isdnctrl secure isdn0 on
600         if [ ${I4L_DEBUG} = "yes" ]; then
601                 /sbin/isdnctrl verbose 7
602                 /sbin/hisaxctrl HiSax 1 0xffff
603                 /sbin/hisaxctrl HiSax 11 0xff
604                 cat  /dev/isdnctrl >/tmp/lea.log &
605         fi
606         if [ ${I4L_REMOTE_IS_CISCO} = "yes" ]; then
607                 /sbin/isdnctrl encap isdn0 cisco-h
608         fi
609         /sbin/isdnctrl huptimeout isdn0 0
610         # B-CHANNEL 1
611         /sbin/isdnctrl eaz isdn0 1
612         /sbin/isdnctrl l2_prot isdn0 hdlc
613         # 1. card
614         /sbin/isdnctrl addphone isdn0 in LEASED0
615         if [ ${I4L_LEASED_128K} = "yes" ]; then
616                 /sbin/isdnctrl addslave isdn0 isdn0s
617                 /sbin/isdnctrl secure isdn0s on
618                 /sbin/isdnctrl huptimeout isdn0s 0
619                 # B-CHANNEL 2
620                 /sbin/isdnctrl eaz isdn0s 2
621                 /sbin/isdnctrl l2_prot isdn0s hdlc
622                 # 1. card
623                 /sbin/isdnctrl addphone isdn0s in LEASED0
624                 if [ ${I4L_REMOTE_IS_CISCO} = "yes" ]; then
625                         /sbin/isdnctrl encap isdn0s cisco-h
626                 fi
627         fi
628         /sbin/isdnctrl dialmode isdn0 manual
629         # configure tcp/ip
630         /sbin/ifconfig isdn0 ${LOCAL_IP} pointopoint ${REMOTE_IP}
631         /sbin/route add -host ${REMOTE_IP} isdn0
632         /sbin/route add default gw ${REMOTE_IP}
633         # switch to leased mode
634         # B-CHANNEL 1
635         /sbin/hisaxctrl HiSax 5 1
636         if [ ${I4L_LEASED_128K} = "yes" ]; then
637                 # B-CHANNEL 2
638                 sleep 10; /* Wait for master */
639                 /sbin/hisaxctrl HiSax 5 2
640         fi
641         ;;
642     stop)
643         /sbin/ifconfig isdn0 down
644         /sbin/isdnctrl delif isdn0
645         if [ ${I4L_DEBUG} = "yes" ]; then
646                 killall cat
647         fi
648         if [ ${I4L_AS_MODULE} = "yes" ]; then
649                 /sbin/rmmod hisax
650                 /sbin/rmmod isdn
651                 /sbin/rmmod ppp
652                 /sbin/rmmod slhc
653         fi
654         ;;
655     *)
656         echo "Usage: $0 {start|stop}"
657         exit 1
658 esac
659 exit 0