1 |
199 |
simons |
LINUX DRIVER FOR SOUNDCARDS AS AX.25 MODEMS
|
2 |
|
|
|
3 |
|
|
Thomas M. Sailer, HB9JNX/AE4WA,
|
4 |
|
|
|
5 |
|
|
This driver allows either SoundBlaster (sbc) or WindowsSoundSystem (wss)
|
6 |
|
|
compatible soundcards to be used as either 1200 baud AFSK or 9600 baud FSK
|
7 |
|
|
AX.25 packet radio modems. Only half duplex operation is supported by
|
8 |
|
|
the SoundBlaster driver. Fullduplex is supported for WSS chipsets capable
|
9 |
|
|
of addressing two DMA channels. The driver needs some processing power!
|
10 |
|
|
A 486DX/2 66MHz is a minimum requirement, otherwise interactive performance
|
11 |
|
|
of the computer may become sluggish.
|
12 |
|
|
|
13 |
|
|
|
14 |
|
|
The Interface of the driver
|
15 |
|
|
|
16 |
|
|
The driver provides a kernel network drivers named sm[0-3]. sethdlc
|
17 |
|
|
from the ax25 utilities may be used to set driver states etc. Users
|
18 |
|
|
of userland AX.25 stacks may use the net2kiss utility (also available
|
19 |
|
|
in the ax25 utilities package) to converts packets of a network interface
|
20 |
|
|
to a KISS stream on a pseudo tty. There's also a patch available from
|
21 |
|
|
me for WAMPES which allows attaching a kernel network interface directly.
|
22 |
|
|
|
23 |
|
|
|
24 |
|
|
Configuring the driver
|
25 |
|
|
|
26 |
|
|
Some sound cards need to be initialized before they operate in either
|
27 |
|
|
SoundBlaster or WSS compatibility mode. The driver does _NOT_ do this;
|
28 |
|
|
you may use the standard linux sound driver to initialize the soundcard;
|
29 |
|
|
compile it as a module, and do
|
30 |
|
|
insmod sound
|
31 |
|
|
rmmod sound
|
32 |
|
|
The soundcard should then be initialized correctly. isapnptools is another
|
33 |
|
|
package that can configure PnP soundcards. If your soundcard contains
|
34 |
|
|
a Crystal CS423x chip, you may also try the setcrystal utility in the
|
35 |
|
|
ax25-utilities package.
|
36 |
|
|
|
37 |
|
|
Every time the driver is inserted into the kernel, it has to know which
|
38 |
|
|
modems it should access at which ports. This can be done with the sethdlc
|
39 |
|
|
utility. If you are only using one modem, you can also configure the
|
40 |
|
|
driver from the insmod command line (or by means of an option line in
|
41 |
|
|
/etc/conf.modules).
|
42 |
|
|
|
43 |
|
|
Examples: (use either method, not both)
|
44 |
|
|
insmod soundmodem mode="sbc:afsk1200" iobase=0x220 irq=5 dma=1
|
45 |
|
|
sethdlc -i sm0 -p hw sbc type afsk1200 io 0x220 irq 5 dma 1
|
46 |
|
|
|
47 |
|
|
Both lines configure the first port to drive a soundblaster card
|
48 |
|
|
in 1200 baud AFSK mode.
|
49 |
|
|
|
50 |
|
|
The channel access parameters can be set with sethdlc -a or kissparms.
|
51 |
|
|
Note that both utilities interpret the values slightly different.
|
52 |
|
|
|
53 |
|
|
|
54 |
|
|
Input and output levels
|
55 |
|
|
|
56 |
|
|
It is important that the input and output levels are adjusted properly.
|
57 |
|
|
There are two utilities, available in the ax25 utilities distribution,
|
58 |
|
|
to facilitate this: smmixer and smdiag. smdiag allows you to display
|
59 |
|
|
the input signal in an oscilloscope like display or an eye diagram.
|
60 |
|
|
smmixer allows you to adjust input/output levels. See the respective
|
61 |
|
|
man pages. These two utilities have two counterparts: xfsmmixer and
|
62 |
|
|
xfsmdiag. They both require the FORMS to compile, and provide a nicer
|
63 |
|
|
user interface. Functionality is the same, though.
|
64 |
|
|
|
65 |
|
|
|
66 |
|
|
Transmitter keying
|
67 |
|
|
|
68 |
|
|
Since soundcards do not have a DC coupled output; PTT keying options include
|
69 |
|
|
the following:
|
70 |
|
|
* VOX circuitry
|
71 |
|
|
* Serial port pin
|
72 |
|
|
* Parallel port pin
|
73 |
|
|
* MPU401 MIDI output via a retriggerable monoflop.
|
74 |
|
|
Circuit schematics may be found at
|
75 |
|
|
http://www.ife.ee.ethz.ch/~sailer/pcf/ptt_circ/ptt.html.
|
76 |
|
|
|
77 |
|
|
|
78 |
|
|
Compatibility with the rest of the Linux kernel
|
79 |
|
|
|
80 |
|
|
The sound driver and the soundcard modem driver compete for the same
|
81 |
|
|
hardware resources. Of course only one driver can access a given
|
82 |
|
|
interface at a time. Worse yet, the sound driver grabs the soundcard
|
83 |
|
|
at startup time. Therefore the soundcard modem driver subsequently won't
|
84 |
|
|
be able to access the soundcard. You might therefore find it necessary to
|
85 |
|
|
unload the sound driver before using the soundcard modem driver.
|
86 |
|
|
|
87 |
|
|
|
88 |
|
|
Further reading
|
89 |
|
|
|
90 |
|
|
Please take a look at http://www.ife.ee.ethz.ch/~sailer/ham/linux/hdlc.html
|
91 |
|
|
for further informations on the driver.
|
92 |
|
|
|
93 |
|
|
|
94 |
|
|
vy 73s de
|
95 |
|
|
Tom Sailer, sailer@ife.ee.ethz.ch
|
96 |
|
|
Packet Radio: hb9jnx@hb9w.che.eu
|