|
@@ -1,394 +0,0 @@
|
|
|
-Linux Quicknet-Drivers-Howto
|
|
|
-Quicknet Technologies, Inc. (www.quicknet.net)
|
|
|
-Version 0.3.4 December 18, 1999
|
|
|
-
|
|
|
-1.0 Introduction
|
|
|
-
|
|
|
-This document describes the first GPL release version of the Linux
|
|
|
-driver for the Quicknet Internet PhoneJACK and Internet LineJACK
|
|
|
-cards. More information about these cards is available at
|
|
|
-www.quicknet.net. The driver version discussed in this document is
|
|
|
-0.3.4.
|
|
|
-
|
|
|
-These cards offer nice telco style interfaces to use your standard
|
|
|
-telephone/key system/PBX as the user interface for VoIP applications.
|
|
|
-The Internet LineJACK also offers PSTN connectivity for a single line
|
|
|
-Internet to PSTN gateway. Of course, you can add more than one card
|
|
|
-to a system to obtain multi-line functionality. At this time, the
|
|
|
-driver supports the POTS port on both the Internet PhoneJACK and the
|
|
|
-Internet LineJACK, but the PSTN port on the latter card is not yet
|
|
|
-supported.
|
|
|
-
|
|
|
-This document, and the drivers for the cards, are intended for a
|
|
|
-limited audience that includes technically capable programmers who
|
|
|
-would like to experiment with Quicknet cards. The drivers are
|
|
|
-considered in ALPHA status and are not yet considered stable enough
|
|
|
-for general, widespread use in an unlimited audience.
|
|
|
-
|
|
|
-That's worth saying again:
|
|
|
-
|
|
|
-THE LINUX DRIVERS FOR QUICKNET CARDS ARE PRESENTLY IN A ALPHA STATE
|
|
|
-AND SHOULD NOT BE CONSIDERED AS READY FOR NORMAL WIDESPREAD USE.
|
|
|
-
|
|
|
-They are released early in the spirit of Internet development and to
|
|
|
-make this technology available to innovators who would benefit from
|
|
|
-early exposure.
|
|
|
-
|
|
|
-When we promote the device driver to "beta" level it will be
|
|
|
-considered ready for non-programmer, non-technical users. Until then,
|
|
|
-please be aware that these drivers may not be stable and may affect
|
|
|
-the performance of your system.
|
|
|
-
|
|
|
-
|
|
|
-1.1 Latest Additions/Improvements
|
|
|
-
|
|
|
-The 0.3.4 version of the driver is the first GPL release. Several
|
|
|
-features had to be removed from the prior binary only module, mostly
|
|
|
-for reasons of Intellectual Property rights. We can't release
|
|
|
-information that is not ours - so certain aspects of the driver had to
|
|
|
-be removed to protect the rights of others.
|
|
|
-
|
|
|
-Specifically, very old Internet PhoneJACK cards have non-standard
|
|
|
-G.723.1 codecs (due to the early nature of the DSPs in those days).
|
|
|
-The auto-conversion code to bring those cards into compliance with
|
|
|
-today's standards is available as a binary only module to those people
|
|
|
-needing it. If you bought your card after 1997 or so, you are OK -
|
|
|
-it's only the very old cards that are affected.
|
|
|
-
|
|
|
-Also, the code to download G.728/G.729/G.729a codecs to the DSP is
|
|
|
-available as a binary only module as well. This IP is not ours to
|
|
|
-release.
|
|
|
-
|
|
|
-Hooks are built into the GPL driver to allow it to work with other
|
|
|
-companion modules that are completely separate from this module.
|
|
|
-
|
|
|
-1.2 Copyright, Trademarks, Disclaimer, & Credits
|
|
|
-
|
|
|
-Copyright
|
|
|
-
|
|
|
-Copyright (c) 1999 Quicknet Technologies, Inc. Permission is granted
|
|
|
-to freely copy and distribute this document provided you preserve it
|
|
|
-in its original form. For corrections and minor changes contact the
|
|
|
-maintainer at linux@quicknet.net.
|
|
|
-
|
|
|
-Trademarks
|
|
|
-
|
|
|
-Internet PhoneJACK and Internet LineJACK are registered trademarks of
|
|
|
-Quicknet Technologies, Inc.
|
|
|
-
|
|
|
-Disclaimer
|
|
|
-
|
|
|
-Much of the info in this HOWTO is early information released by
|
|
|
-Quicknet Technologies, Inc. for the express purpose of allowing early
|
|
|
-testing and use of the Linux drivers developed for their products.
|
|
|
-While every attempt has been made to be thorough, complete and
|
|
|
-accurate, the information contained here may be unreliable and there
|
|
|
-are likely a number of errors in this document. Please let the
|
|
|
-maintainer know about them. Since this is free documentation, it
|
|
|
-should be obvious that neither I nor previous authors can be held
|
|
|
-legally responsible for any errors.
|
|
|
-
|
|
|
-Credits
|
|
|
-
|
|
|
-This HOWTO was written by:
|
|
|
-
|
|
|
- Greg Herlein <gherlein@quicknet.net>
|
|
|
- Ed Okerson <eokerson@quicknet.net>
|
|
|
-
|
|
|
-1.3 Future Plans: You Can Help
|
|
|
-
|
|
|
-Please let the maintainer know of any errors in facts, opinions,
|
|
|
-logic, spelling, grammar, clarity, links, etc. But first, if the date
|
|
|
-is over a month old, check to see that you have the latest
|
|
|
-version. Please send any info that you think belongs in this document.
|
|
|
-
|
|
|
-You can also contribute code and/or bug-fixes for the sample
|
|
|
-applications.
|
|
|
-
|
|
|
-
|
|
|
-1.4 Where to get things
|
|
|
-
|
|
|
-Info on latest versions of the driver are here:
|
|
|
-
|
|
|
-http://web.archive.org/web/*/http://www.quicknet.net/develop.htm
|
|
|
-
|
|
|
-1.5 Mailing List
|
|
|
-
|
|
|
-Quicknet operates a mailing list to provide a public forum on using
|
|
|
-these drivers.
|
|
|
-
|
|
|
-To subscribe to the linux-sdk mailing list, send an email to:
|
|
|
-
|
|
|
- majordomo@linux.quicknet.net
|
|
|
-
|
|
|
-In the body of the email, type:
|
|
|
-
|
|
|
- subscribe linux-sdk <your-email-address>
|
|
|
-
|
|
|
-Please delete any signature block that you would normally add to the
|
|
|
-bottom of your email - it tends to confuse majordomo.
|
|
|
-
|
|
|
-To send mail to the list, address your mail to
|
|
|
-
|
|
|
- linux-sdk@linux.quicknet.net
|
|
|
-
|
|
|
-Your message will go out to everyone on the list.
|
|
|
-
|
|
|
-To unsubscribe to the linux-sdk mailing list, send an email to:
|
|
|
-
|
|
|
- majordomo@linux.quicknet.net
|
|
|
-
|
|
|
-In the body of the email, type:
|
|
|
-
|
|
|
- unsubscribe linux-sdk <your-email-address>
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-2.0 Requirements
|
|
|
-
|
|
|
-2.1 Quicknet Card(s)
|
|
|
-
|
|
|
-You will need at least one Internet PhoneJACK or Internet LineJACK
|
|
|
-cards. These are ISA or PCI bus devices that use Plug-n-Play for
|
|
|
-configuration, and use no IRQs. The driver will support up to 16
|
|
|
-cards in any one system, of any mix between the two types.
|
|
|
-
|
|
|
-Note that you will need two cards to do any useful testing alone, since
|
|
|
-you will need a card on both ends of the connection. Of course, if
|
|
|
-you are doing collaborative work, perhaps your friends or coworkers
|
|
|
-have cards too. If not, we'll gladly sell them some!
|
|
|
-
|
|
|
-
|
|
|
-2.2 ISAPNP
|
|
|
-
|
|
|
-Since the Quicknet cards are Plug-n-Play devices, you will need the
|
|
|
-isapnp tools package to configure the cards, or you can use the isapnp
|
|
|
-module to autoconfigure them. The former package probably came with
|
|
|
-your Linux distribution. Documentation on this package is available
|
|
|
-online at:
|
|
|
-
|
|
|
-http://mailer.wiwi.uni-marburg.de/linux/LDP/HOWTO/Plug-and-Play-HOWTO.html
|
|
|
-
|
|
|
-The isapnp autoconfiguration is available on the Quicknet website at:
|
|
|
-
|
|
|
- http://www.quicknet.net/develop.htm
|
|
|
-
|
|
|
-though it may be in the kernel by the time you read this.
|
|
|
-
|
|
|
-
|
|
|
-3.0 Card Configuration
|
|
|
-
|
|
|
-If you did not get your drivers as part of the linux kernel, do the
|
|
|
-following to install them:
|
|
|
-
|
|
|
- a. untar the distribution file. We use the following command:
|
|
|
- tar -xvzf ixj-0.x.x.tgz
|
|
|
-
|
|
|
-This creates a subdirectory holding all the necessary files. Go to that
|
|
|
-subdirectory.
|
|
|
-
|
|
|
- b. run the "ixj_dev_create" script to remove any stray device
|
|
|
-files left in the /dev directory, and to create the new officially
|
|
|
-designated device files. Note that the old devices were called
|
|
|
-/dev/ixj, and the new method uses /dev/phone.
|
|
|
-
|
|
|
- c. type "make;make install" - this will compile and install the
|
|
|
-module.
|
|
|
-
|
|
|
- d. type "depmod -av" to rebuild all your kernel version dependencies.
|
|
|
-
|
|
|
- e. if you are using the isapnp module to configure the cards
|
|
|
- automatically, then skip to step f. Otherwise, ensure that you
|
|
|
- have run the isapnp configuration utility to properly configure
|
|
|
- the cards.
|
|
|
-
|
|
|
- e1. The Internet PhoneJACK has one configuration register that
|
|
|
- requires 16 IO ports. The Internet LineJACK card has two
|
|
|
- configuration registers and isapnp reports that IO 0
|
|
|
- requires 16 IO ports and IO 1 requires 8. The Quicknet
|
|
|
- driver assumes that these registers are configured to be
|
|
|
- contiguous, i.e. if IO 0 is set to 0x340 then IO 1 should
|
|
|
- be set to 0x350.
|
|
|
-
|
|
|
- Make sure that none of the cards overlap if you have
|
|
|
- multiple cards in the system.
|
|
|
-
|
|
|
- If you are new to the isapnp tools, you can jumpstart
|
|
|
- yourself by doing the following:
|
|
|
-
|
|
|
- e2. go to the /etc directory and run pnpdump to get a blank
|
|
|
- isapnp.conf file.
|
|
|
-
|
|
|
- pnpdump > /etc/isapnp.conf
|
|
|
-
|
|
|
- e3. edit the /etc/isapnp.conf file to set the IO warnings and
|
|
|
- the register IO addresses. The IO warnings means that you
|
|
|
- should find the line in the file that looks like this:
|
|
|
-
|
|
|
- (CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING
|
|
|
-
|
|
|
- and you should edit the line to look like this:
|
|
|
-
|
|
|
- (CONFLICT (IO WARNING)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) #
|
|
|
- or WARNING
|
|
|
-
|
|
|
- The next step is to set the IO port addresses. The issue
|
|
|
- here is that isapnp does not identify all of the ports out
|
|
|
- there. Specifically any device that does not have a driver
|
|
|
- or module loaded by Linux will not be registered. This
|
|
|
- includes older sound cards and network cards. We have
|
|
|
- found that the IO port 0x300 is often used even though
|
|
|
- isapnp claims that no-one is using those ports. We
|
|
|
- recommend that for a single card installation that port
|
|
|
- 0x340 (and 0x350) be used. The IO port line should change
|
|
|
- from this:
|
|
|
-
|
|
|
- (IO 0 (SIZE 16) (BASE 0x0300) (CHECK))
|
|
|
-
|
|
|
- to this:
|
|
|
-
|
|
|
- (IO 0 (SIZE 16) (BASE 0x0340) )
|
|
|
-
|
|
|
- e4. if you have multiple Quicknet cards, make sure that you do
|
|
|
- not have any overlaps. Be especially careful if you are
|
|
|
- mixing Internet PhoneJACK and Internet LineJACK cards in
|
|
|
- the same system. In these cases we recommend moving the
|
|
|
- IO port addresses to the 0x400 block. Please note that on
|
|
|
- a few machines the 0x400 series are used. Feel free to
|
|
|
- experiment with other addresses. Our cards have been
|
|
|
- proven to work using IO addresses of up to 0xFF0.
|
|
|
-
|
|
|
- e5. the last step is to uncomment the activation line so the
|
|
|
- drivers will be associated with the port. This means the
|
|
|
- line (immediately below) the IO line should go from this:
|
|
|
-
|
|
|
- # (ACT Y)
|
|
|
-
|
|
|
- to this:
|
|
|
-
|
|
|
- (ACT Y)
|
|
|
-
|
|
|
- Once you have finished editing the isapnp.conf file you
|
|
|
- must submit it into the pnp driverconfigure the cards.
|
|
|
- This is done using the following command:
|
|
|
-
|
|
|
- isapnp isapnp.conf
|
|
|
-
|
|
|
- If this works you should see a line that identifies the
|
|
|
- Quicknet device, the IO port(s) chosen, and a message
|
|
|
- "Enabled OK".
|
|
|
-
|
|
|
- f. if you are loading the module by hand, use insmod. An example
|
|
|
-of this would look like this:
|
|
|
-
|
|
|
- insmod phonedev
|
|
|
- insmod ixj dspio=0x320,0x310 xio=0,0x330
|
|
|
-
|
|
|
-Then verify the module loaded by running lsmod. If you are not using a
|
|
|
-module that matches your kernel version, you may need to "force" the
|
|
|
-load using the -f option in the insmod command.
|
|
|
-
|
|
|
- insmod phonedev
|
|
|
- insmod -f ixj dspio=0x320,0x310 xio=0,0x330
|
|
|
-
|
|
|
-
|
|
|
-If you are using isapnp to autoconfigure your card, then you do NOT
|
|
|
-need any of the above, though you need to use depmod to load the
|
|
|
-driver, like this:
|
|
|
-
|
|
|
- depmod ixj
|
|
|
-
|
|
|
-which will result in the needed drivers getting loaded automatically.
|
|
|
-
|
|
|
- g. if you are planning on having the kernel automatically request
|
|
|
-the module for you, then you need to edit /etc/conf.modules and add the
|
|
|
-following lines:
|
|
|
-
|
|
|
- options ixj dspio=0x340 xio=0x330 ixjdebug=0
|
|
|
-
|
|
|
-If you do this, then when you execute an application that uses the
|
|
|
-module the kernel will request that it is loaded.
|
|
|
-
|
|
|
- h. if you want non-root users to be able to read and write to the
|
|
|
-ixj devices (this is a good idea!) you should do the following:
|
|
|
-
|
|
|
- - decide upon a group name to use and create that group if
|
|
|
- needed. Add the user names to that group that you wish to
|
|
|
- have access to the device. For example, we typically will
|
|
|
- create a group named "ixj" in /etc/group and add all users
|
|
|
- to that group that we want to run software that can use the
|
|
|
- ixjX devices.
|
|
|
-
|
|
|
- - change the permissions on the device files, like this:
|
|
|
-
|
|
|
- chgrp ixj /dev/ixj*
|
|
|
- chmod 660 /dev/ixj*
|
|
|
-
|
|
|
-Once this is done, then non-root users should be able to use the
|
|
|
-devices. If you have enabled autoloading of modules, then the user
|
|
|
-should be able to open the device and have the module loaded
|
|
|
-automatically for them.
|
|
|
-
|
|
|
-
|
|
|
-4.0 Driver Installation problems.
|
|
|
-
|
|
|
-We have tested these drivers on the 2.2.9, 2.2.10, 2.2.12, and 2.2.13 kernels
|
|
|
-and in all cases have eventually been able to get the drivers to load and
|
|
|
-run. We have found four types of problems that prevent this from happening.
|
|
|
-The problems and solutions are:
|
|
|
-
|
|
|
- a. A step was missed in the installation. Go back and use section 3
|
|
|
-as a checklist. Many people miss running the ixj_dev_create script and thus
|
|
|
-never load the device names into the filesystem.
|
|
|
-
|
|
|
- b. The kernel is inconsistently linked. We have found this problem in
|
|
|
-the Out Of the Box installation of several distributions. The symptoms
|
|
|
-are that neither driver will load, and that the unknown symbols include "jiffy"
|
|
|
-and "kmalloc". The solution is to recompile both the kernel and the
|
|
|
-modules. The command string for the final compile looks like this:
|
|
|
-
|
|
|
- In the kernel directory:
|
|
|
- 1. cp .config /tmp
|
|
|
- 2. make mrproper
|
|
|
- 3. cp /tmp/.config .
|
|
|
- 4. make clean;make bzImage;make modules;make modules_install
|
|
|
-
|
|
|
-This rebuilds both the kernel and all the modules and makes sure they all
|
|
|
-have the same linkages. This generally solves the problem once the new
|
|
|
-kernel is installed and the system rebooted.
|
|
|
-
|
|
|
- c. The kernel has been patched, then unpatched. This happens when
|
|
|
-someone decides to use an earlier kernel after they load a later kernel.
|
|
|
-The symptoms are proceeding through all three above steps and still not
|
|
|
-being able to load the driver. What has happened is that the generated
|
|
|
-header files are out of sync with the kernel itself. The solution is
|
|
|
-to recompile (again) using "make mrproper". This will remove and then
|
|
|
-regenerate all the necessary header files. Once this is done, then you
|
|
|
-need to install and reboot the kernel. We have not seen any problem
|
|
|
-loading one of our drivers after this treatment.
|
|
|
-
|
|
|
-5.0 Known Limitations
|
|
|
-
|
|
|
-We cannot currently play "dial-tone" and listen for DTMF digits at the
|
|
|
-same time using the ISA PhoneJACK. This is a bug in the 8020 DSP chip
|
|
|
-used on that product. All other Quicknet products function normally
|
|
|
-in this regard. We have a work-around, but it's not done yet. Until
|
|
|
-then, if you want dial-tone, you can always play a recorded dial-tone
|
|
|
-sound into the audio until you have gathered the DTMF digits.
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|