1Welcome to Beta Release 2 of the combination ISDN driver for SpellCaster's 2ISA ISDN adapters. Please note this release 2 includes support for the 3DataCommute/BRI and TeleCommute/BRI adapters only and any other use is 4guaranteed to fail. If you have a DataCommute/PRI installed in the test 5computer, we recommend removing it as it will be detected but will not 6be usable. To see what we have done to Beta Release 2, see section 3. 7 8Speaking of guarantees, THIS IS BETA SOFTWARE and as such contains 9bugs and defects either known or unknown. Use this software at your own 10risk. There is NO SUPPORT for this software. Some help may be available 11through the web site or the mailing list but such support is totally at 12our own option and without warranty. If you choose to assume all and 13total risk by using this driver, we encourage you to join the beta 14mailing list. 15 16To join the Linux beta mailing list, send a message to: 17majordomo@spellcast.com with the words "subscribe linux-beta" as the only 18contents of the message. Do not include a signature. If you choose to 19remove yourself from this list at a later date, send another message to 20the same address with the words "unsubscribe linux-beta" as its only 21contents. 22 23TABLE OF CONTENTS 24----------------- 25 1. Introduction 26 1.1 What is ISDN4Linux? 27 1.2 What is different between this driver and previous drivers? 28 1.3 How do I setup my system with the correct software to use 29 this driver release? 30 31 2. Basic Operations 32 2.1 Unpacking and installing the driver 33 2.2 Read the man pages!!! 34 2.3 Installing the driver 35 2.4 Removing the driver 36 2.5 What to do if it doesn't load 37 2.6 How to setup ISDN4Linux with the driver 38 39 3. Beta Change Summaries and Miscellaneous Notes 40 411. Introduction 42--------------- 43 44The revision 2 Linux driver for SpellCaster ISA ISDN adapters is built 45upon ISDN4Linux available separately or as included in Linux 2.0 and later. 46The driver will support a maximum of 4 adapters in any one system of any 47type including DataCommute/BRI, DataCommute/PRI and TeleCommute/BRI for a 48maximum of 92 channels for host. The driver is supplied as a module in 49source form and needs to be complied before it can be used. It has been 50tested on Linux 2.0.20. 51 521.1 What Is ISDN4Linux 53 54ISDN4Linux is a driver and set of tools used to access and use ISDN devices 55on a Linux platform in a common and standard way. It supports HDLC and PPP 56protocols and offers channel bundling and MLPPP support. To use ISDN4Linux 57you need to configure your kernel for ISDN support and get the ISDN4Linux 58tool kit from our web site. 59 60ISDN4Linux creates a channel pool from all of the available ISDN channels 61and therefore can function across adapters. When an ISDN4Linux compliant 62driver (such as ours) is loaded, all of the channels go into a pool and 63are used on a first-come first-served basis. In addition, individual 64channels can be specifically bound to particular interfaces. 65 661.2 What is different between this driver and previous drivers? 67 68The revision 2 driver besides adopting the ISDN4Linux architecture has many 69subtle and not so subtle functional differences from previous releases. These 70include: 71 - More efficient shared memory management combined with a simpler 72 configuration. All adapters now use only 16Kbytes of shared RAM 73 versus between 16K and 64K. New methods for using the shared RAM 74 allow us to utilize all of the available RAM on the adapter through 75 only one 16K page. 76 - Better detection of available upper memory. The probing routines 77 have been improved to better detect available shared RAM pages and 78 used pages are now locked. 79 - Decreased loading time and a wider range of I/O ports probed. 80 We have significantly reduced the amount of time it takes to load 81 the driver and at the same time doubled the number of I/O ports 82 probed increasing the likelihood of finding an adapter. 83 - We now support all ISA adapter models with a single driver instead 84 of separate drivers for each model. The revision 2 driver supports 85 the DataCommute/BRI, DataCommute/PRI and TeleCommute/BRI in any 86 combination up to a maximum of four adapters per system. 87 - On board PPP protocol support has been removed in favour of the 88 sync-PPP support used in ISDN4Linux. This means more control of 89 the protocol parameters, faster negotiation time and a more 90 familiar interface. 91 921.3 How do I setup my system with the correct software to use 93 this driver release? 94 95Before you can compile, install and use the SpellCaster ISA ISDN driver, you 96must ensure that the following software is installed, configured and running: 97 98 - Linux kernel 2.0.20 or later with the required init and ps 99 versions. Please see your distribution vendor for the correct 100 utility packages. The latest kernel is available from 101 ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0/ 102 103 - The latest modules package (modules-2.0.0.tar.gz) from 104 ftp://sunsite.unc.edu/pub/Linux/kernel/modules-2.0.0.tar.gz 105 106 - The ISDN4Linux tools available from 107 ftp://ftp.franken.de/pub/isdn4linux/v2.0/isdn4k-utils-2.0.tar.gz 108 This package may fail to compile for you so you can alternatively 109 get a pre-compiled version from 110 ftp://ftp.spellcast.com/pub/drivers/isdn4linux/isdn4k-bin-2.0.tar.gz 111 112 1132. Basic Operations 114------------------- 115 1162.1 Unpacking and installing the driver 117 118 1. As root, create a directory in a convenient place. We suggest 119 /usr/src/spellcaster. 120 121 2. Unpack the archive with : 122 tar xzf sc-n.nn.tar.gz -C /usr/src/spellcaster 123 124 3. Change directory to /usr/src/spellcaster 125 126 4. Read the README and RELNOTES files. 127 128 5. Run 'make' and if all goes well, run 'make install'. 129 1302.2 Read the man pages!!! 131 132Make sure you read the scctrl(8) and sc(4) manual pages before continuing 133any further. Type 'man 8 scctrl' and 'man 4 sc'. 134 1352.3 Installing the driver 136 137To install the driver, type '/sbin/insmod sc' as root. sc(4) details options 138you can specify but you shouldn't need to use any unless this doesn't work. 139 140Make sure the driver loaded and detected all of the adapters by typing 141'dmesg'. 142 143The driver can be configured so that it is loaded upon startup. To do this, 144edit the file "/etc/modules/'uname -f'/'uname -v'" and insert the driver name 145"sc" into this file. 146 1472.4 Removing the driver 148 149To remove the driver, delete any interfaces that may exist (see isdnctrl(8) 150for more on this) and then type '/sbin/rmmod sc'. 151 1522.5 What to do if it doesn't load 153 154If, when you try to install the driver, you get a message mentioning 155'register_isdn' then you do not have the ISDN4Linux system installed. Please 156make sure that ISDN support is configured in the kernel. 157 158If you get a message that says 'initialization of sc failed', then the 159driver failed to detect an adapter or failed to find resources needed such 160as a free IRQ line or shared memory segment. If you are sure there are free 161resources available, use the insmod options detailed in sc(4) to override 162the probing function. 163 164Upon testing, the following problem was noted, the driver would load without 165problems, but the board would not respond beyond that point. When a check was 166done with 'cat /proc/interrupts' the interrupt count for sc was 0. In the event 167of this problem, change the BIOS settings so that the interrupts in question are 168reserved for ISA use only. 169 170 1712.6 How to setup ISDN4Linux with the driver 172 173There are three main configurations which you can use with the driver: 174 175A) Basic HDLC connection 176B) PPP connection 177C) MLPPP connection 178 179It should be mentioned here that you may also use a tty connection if you 180desire. The Documentation directory of the isdn4linux subsystem offers good 181documentation on this feature. 182 183A) 10 steps to the establishment of a basic HDLC connection 184----------------------------------------------------------- 185 186- please open the isdn-hdlc file in the examples directory and follow along... 187 188 This file is a script used to configure a BRI ISDN TA to establish a 189 basic HDLC connection between its two channels. Two network 190 interfaces are created and two routes added between the channels. 191 192 i) using the isdnctrl utility, add an interface with "addif" and 193 name it "isdn0" 194 ii) add the outgoing and inbound telephone numbers 195 iii) set the Layer 2 protocol to hdlc 196 iv) set the eaz of the interface to be the phone number of that 197 specific channel 198 v) to turn the callback features off, set the callback to "off" and 199 the callback delay (cbdelay) to 0. 200 vi) the hangup timeout can be set to a specified number of seconds 201 vii) the hangup upon incoming call can be set on or off 202 viii) use the ifconfig command to bring up the network interface with 203 a specific IP address and point to point address 204 ix) add a route to the IP address through the isdn0 interface 205 x) a ping should result in the establishment of the connection 206 207 208B) Establishment of a PPP connection 209------------------------------------ 210 211- please open the isdn-ppp file in the examples directory and follow along... 212 213 This file is a script used to configure a BRI ISDN TA to establish a 214 PPP connection between the two channels. The file is almost 215 identical to the HDLC connection example except that the packet 216 encapsulation type has to be set. 217 218 use the same procedure as in the HDLC connection from steps i) to 219 iii) then, after the Layer 2 protocol is set, set the encapsulation 220 "encap" to syncppp. With this done, the rest of the steps, iv) to x) 221 can be followed from above. 222 223 Then, the ipppd (ippp daemon) must be setup: 224 225 xi) use the ipppd function found in /sbin/ipppd to set the following: 226 xii) take out (minus) VJ compression and bsd compression 227 xiii) set the mru size to 2000 228 xiv) link the two /dev interfaces to the daemon 229 230NOTE: A "*" in the inbound telephone number specifies that a call can be 231accepted on any number. 232 233C) Establishment of a MLPPP connection 234-------------------------------------- 235 236- please open the isdn-mppp file in the examples directory and follow along... 237 238 This file is a script used to configure a BRI ISDN TA to accept a 239 Multi Link PPP connection. 240 241 i) using the isdnctrl utility, add an interface with "addif" and 242 name it "ippp0" 243 ii) add the inbound telephone number 244 iii) set the Layer 2 protocol to hdlc and the Layer 3 protocol to 245 trans (transparent) 246 iv) set the packet encapsulation to syncppp 247 v) set the eaz of the interface to be the phone number of that 248 specific channel 249 vi) to turn the callback features off, set the callback to "off" and 250 the callback delay (cbdelay) to 0. 251 vi) the hangup timeout can be set to a specified number of seconds 252 vii) the hangup upon incoming call can be set on or off 253 viii) add a slave interface and name it "ippp32" for example 254 ix) set the similar parameters for the ippp32 interface 255 x) use the ifconfig command to bring-up the ippp0 interface with a 256 specific IP address and point to point address 257 xi) add a route to the IP address through the ippp0 interface 258 xii) use the ipppd function found in /sbin/ipppd to set the following: 259 xiii) take out (minus) bsd compression 260 xiv) set the mru size to 2000 261 xv) add (+) the multi-link function "+mp" 262 xvi) link the two /dev interfaces to the daemon 263 264NOTE: To use the MLPPP connection to dial OUT to a MLPPP connection, change 265the inbound telephone numbers to the outgoing telephone numbers of the MLPPP 266host. 267 268 2693. Beta Change Summaries and Miscellaneous Notes 270------------------------------------------------ 271When using the "scctrl" utility to upload firmware revisions on the board, 272please note that the byte count displayed at the end of the operation may be 273different from the total number of bytes in the "dcbfwn.nn.sr" file. Please 274disregard the displayed byte count. 275 276It was noted that in Beta Release 1, the module would fail to load and result 277in a segmentation fault when 'insmod'ed. This problem was created when one of 278the isdn4linux parameters, (isdn_ctrl, data field) was filled in. In some 279cases, this data field was NULL, and was left unchecked, so when it was 280referenced... segv. The bug has been fixed around line 63-68 of event.c. 281 282