mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-24 11:34:50 +08:00
0ea6e61122
Below you will find an updated version from the original series bunching all patches into one big patch updating broken web addresses that are located in Documentation/* Some of the addresses date as far far back as 1995 etc... so searching became a bit difficult, the best way to deal with these is to use web.archive.org to locate these addresses that are outdated. Now there are also some addresses pointing to .spec files some are located, but some(after searching on the companies site)where still no where to be found. In this case I just changed the address to the company site this way the users can contact the company and they can locate them for the users. Signed-off-by: Justin P. Mattock <justinmattock@gmail.com> Signed-off-by: Thomas Weber <weber@corscience.de> Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Cc: Paulo Marques <pmarques@grupopie.com> Cc: Randy Dunlap <rdunlap@xenotime.net> Cc: Michael Neuling <mikey@neuling.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
395 lines
14 KiB
Plaintext
395 lines
14 KiB
Plaintext
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
|
|
todays 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|