Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | Welcome to Beta Release 2 of the combination ISDN driver for SpellCaster's |
| 2 | ISA ISDN adapters. Please note this release 2 includes support for the |
| 3 | DataCommute/BRI and TeleCommute/BRI adapters only and any other use is |
| 4 | guaranteed to fail. If you have a DataCommute/PRI installed in the test |
| 5 | computer, we recommend removing it as it will be detected but will not |
| 6 | be usable. To see what we have done to Beta Release 2, see section 3. |
| 7 | |
| 8 | Speaking of guarantees, THIS IS BETA SOFTWARE and as such contains |
| 9 | bugs and defects either known or unknown. Use this software at your own |
| 10 | risk. There is NO SUPPORT for this software. Some help may be available |
| 11 | through the web site or the mailing list but such support is totally at |
| 12 | our own option and without warranty. If you choose to assume all and |
| 13 | total risk by using this driver, we encourage you to join the beta |
| 14 | mailing list. |
| 15 | |
| 16 | To join the Linux beta mailing list, send a message to: |
| 17 | majordomo@spellcast.com with the words "subscribe linux-beta" as the only |
| 18 | contents of the message. Do not include a signature. If you choose to |
| 19 | remove yourself from this list at a later date, send another message to |
| 20 | the same address with the words "unsubscribe linux-beta" as its only |
| 21 | contents. |
| 22 | |
| 23 | TABLE 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 | |
| 41 | 1. Introduction |
| 42 | --------------- |
| 43 | |
| 44 | The revision 2 Linux driver for SpellCaster ISA ISDN adapters is built |
| 45 | upon ISDN4Linux available separately or as included in Linux 2.0 and later. |
| 46 | The driver will support a maximum of 4 adapters in any one system of any |
| 47 | type including DataCommute/BRI, DataCommute/PRI and TeleCommute/BRI for a |
| 48 | maximum of 92 channels for host. The driver is supplied as a module in |
| 49 | source form and needs to be complied before it can be used. It has been |
| 50 | tested on Linux 2.0.20. |
| 51 | |
| 52 | 1.1 What Is ISDN4Linux |
| 53 | |
| 54 | ISDN4Linux is a driver and set of tools used to access and use ISDN devices |
| 55 | on a Linux platform in a common and standard way. It supports HDLC and PPP |
| 56 | protocols and offers channel bundling and MLPPP support. To use ISDN4Linux |
| 57 | you need to configure your kernel for ISDN support and get the ISDN4Linux |
| 58 | tool kit from our web site. |
| 59 | |
| 60 | ISDN4Linux creates a channel pool from all of the available ISDN channels |
| 61 | and therefore can function across adapters. When an ISDN4Linux compliant |
| 62 | driver (such as ours) is loaded, all of the channels go into a pool and |
| 63 | are used on a first-come first-served basis. In addition, individual |
| 64 | channels can be specifically bound to particular interfaces. |
| 65 | |
| 66 | 1.2 What is different between this driver and previous drivers? |
| 67 | |
| 68 | The revision 2 driver besides adopting the ISDN4Linux architecture has many |
| 69 | subtle and not so subtle functional differences from previous releases. These |
| 70 | include: |
| 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 | |
| 92 | 1.3 How do I setup my system with the correct software to use |
| 93 | this driver release? |
| 94 | |
| 95 | Before you can compile, install and use the SpellCaster ISA ISDN driver, you |
| 96 | must 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 | |
| 113 | 2. Basic Operations |
| 114 | ------------------- |
| 115 | |
| 116 | 2.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 | |
| 130 | 2.2 Read the man pages!!! |
| 131 | |
| 132 | Make sure you read the scctrl(8) and sc(4) manual pages before continuing |
| 133 | any further. Type 'man 8 scctrl' and 'man 4 sc'. |
| 134 | |
| 135 | 2.3 Installing the driver |
| 136 | |
| 137 | To install the driver, type '/sbin/insmod sc' as root. sc(4) details options |
| 138 | you can specify but you shouldn't need to use any unless this doesn't work. |
| 139 | |
| 140 | Make sure the driver loaded and detected all of the adapters by typing |
| 141 | 'dmesg'. |
| 142 | |
| 143 | The driver can be configured so that it is loaded upon startup. To do this, |
| 144 | edit the file "/etc/modules/'uname -f'/'uname -v'" and insert the driver name |
| 145 | "sc" into this file. |
| 146 | |
| 147 | 2.4 Removing the driver |
| 148 | |
| 149 | To remove the driver, delete any interfaces that may exist (see isdnctrl(8) |
| 150 | for more on this) and then type '/sbin/rmmod sc'. |
| 151 | |
| 152 | 2.5 What to do if it doesn't load |
| 153 | |
| 154 | If, 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 |
| 156 | make sure that ISDN support is configured in the kernel. |
| 157 | |
| 158 | If you get a message that says 'initialization of sc failed', then the |
| 159 | driver failed to detect an adapter or failed to find resources needed such |
| 160 | as a free IRQ line or shared memory segment. If you are sure there are free |
| 161 | resources available, use the insmod options detailed in sc(4) to override |
| 162 | the probing function. |
| 163 | |
| 164 | Upon testing, the following problem was noted, the driver would load without |
| 165 | problems, but the board would not respond beyond that point. When a check was |
| 166 | done with 'cat /proc/interrupts' the interrupt count for sc was 0. In the event |
| 167 | of this problem, change the BIOS settings so that the interrupts in question are |
| 168 | reserved for ISA use only. |
| 169 | |
| 170 | |
| 171 | 2.6 How to setup ISDN4Linux with the driver |
| 172 | |
| 173 | There are three main configurations which you can use with the driver: |
| 174 | |
| 175 | A) Basic HDLC connection |
| 176 | B) PPP connection |
| 177 | C) MLPPP connection |
| 178 | |
| 179 | It should be mentioned here that you may also use a tty connection if you |
| 180 | desire. The Documentation directory of the isdn4linux subsystem offers good |
| 181 | documentation on this feature. |
| 182 | |
| 183 | A) 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 | |
| 208 | B) 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 | |
| 230 | NOTE: A "*" in the inbound telephone number specifies that a call can be |
| 231 | accepted on any number. |
| 232 | |
| 233 | C) 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 | |
| 264 | NOTE: To use the MLPPP connection to dial OUT to a MLPPP connection, change |
| 265 | the inbound telephone numbers to the outgoing telephone numbers of the MLPPP |
| 266 | host. |
| 267 | |
| 268 | |
| 269 | 3. Beta Change Summaries and Miscellaneous Notes |
| 270 | ------------------------------------------------ |
| 271 | When using the "scctrl" utility to upload firmware revisions on the board, |
| 272 | please note that the byte count displayed at the end of the operation may be |
| 273 | different from the total number of bytes in the "dcbfwn.nn.sr" file. Please |
| 274 | disregard the displayed byte count. |
| 275 | |
| 276 | It was noted that in Beta Release 1, the module would fail to load and result |
| 277 | in a segmentation fault when 'insmod'ed. This problem was created when one of |
| 278 | the isdn4linux parameters, (isdn_ctrl, data field) was filled in. In some |
| 279 | cases, this data field was NULL, and was left unchecked, so when it was |
| 280 | referenced... segv. The bug has been fixed around line 63-68 of event.c. |
| 281 | |