OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [Documentation/] [networking/] [6pack.txt] - Blame information for rev 17

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 xianfeng
This is the 6pack-mini-HOWTO, written by
2
 
3
Andreas Könsgen DG3KQ
4
Internet: ajk@iehk.rwth-aachen.de
5
AMPR-net: dg3kq@db0pra.ampr.org
6
AX.25:    dg3kq@db0ach.#nrw.deu.eu
7
 
8
Last update: April 7, 1998
9
 
10
1. What is 6pack, and what are the advantages to KISS?
11
 
12
6pack is a transmission protocol for data exchange between the PC and
13
the TNC over a serial line. It can be used as an alternative to KISS.
14
 
15
6pack has two major advantages:
16
- The PC is given full control over the radio
17
  channel. Special control data is exchanged between the PC and the TNC so
18
  that the PC knows at any time if the TNC is receiving data, if a TNC
19
  buffer underrun or overrun has occurred, if the PTT is
20
  set and so on. This control data is processed at a higher priority than
21
  normal data, so a data stream can be interrupted at any time to issue an
22
  important event. This helps to improve the channel access and timing
23
  algorithms as everything is computed in the PC. It would even be possible
24
  to experiment with something completely different from the known CSMA and
25
  DAMA channel access methods.
26
  This kind of real-time control is especially important to supply several
27
  TNCs that are connected between each other and the PC by a daisy chain
28
  (however, this feature is not supported yet by the Linux 6pack driver).
29
 
30
- Each packet transferred over the serial line is supplied with a checksum,
31
  so it is easy to detect errors due to problems on the serial line.
32
  Received packets that are corrupt are not passed on to the AX.25 layer.
33
  Damaged packets that the TNC has received from the PC are not transmitted.
34
 
35
More details about 6pack are described in the file 6pack.ps that is located
36
in the doc directory of the AX.25 utilities package.
37
 
38
2. Who has developed the 6pack protocol?
39
 
40
The 6pack protocol has been developed by Ekki Plicht DF4OR, Henning Rech
41
DF9IC and Gunter Jost DK7WJ. A driver for 6pack, written by Gunter Jost and
42
Matthias Welwarsky DG2FEF, comes along with the PC version of FlexNet.
43
They have also written a firmware for TNCs to perform the 6pack
44
protocol (see section 4 below).
45
 
46
3. Where can I get the latest version of 6pack for LinuX?
47
 
48
At the moment, the 6pack stuff can obtained via anonymous ftp from
49
db0bm.automation.fh-aachen.de. In the directory /incoming/dg3kq,
50
there is a file named 6pack.tgz.
51
 
52
4. Preparing the TNC for 6pack operation
53
 
54
To be able to use 6pack, a special firmware for the TNC is needed. The EPROM
55
of a newly bought TNC does not contain 6pack, so you will have to
56
program an EPROM yourself. The image file for 6pack EPROMs should be
57
available on any packet radio box where PC/FlexNet can be found. The name of
58
the file is 6pack.bin. This file is copyrighted and maintained by the FlexNet
59
team. It can be used under the terms of the license that comes along
60
with PC/FlexNet. Please do not ask me about the internals of this file as I
61
don't know anything about it. I used a textual description of the 6pack
62
protocol to program the Linux driver.
63
 
64
TNCs contain a 64kByte EPROM, the lower half of which is used for
65
the firmware/KISS. The upper half is either empty or is sometimes
66
programmed with software called TAPR. In the latter case, the TNC
67
is supplied with a DIP switch so you can easily change between the
68
two systems. When programming a new EPROM, one of the systems is replaced
69
by 6pack. It is useful to replace TAPR, as this software is rarely used
70
nowadays. If your TNC is not equipped with the switch mentioned above, you
71
can build in one yourself that switches over the highest address pin
72
of the EPROM between HIGH and LOW level. After having inserted the new EPROM
73
and switched to 6pack, apply power to the TNC for a first test. The connect
74
and the status LED are lit for about a second if the firmware initialises
75
the TNC correctly.
76
 
77
5. Building and installing the 6pack driver
78
 
79
The driver has been tested with kernel version 2.1.90. Use with older
80
kernels may lead to a compilation error because the interface to a kernel
81
function has been changed in the 2.1.8x kernels.
82
 
83
How to turn on 6pack support:
84
 
85
- In the linux kernel configuration program, select the code maturity level
86
  options menu and turn on the prompting for development drivers.
87
 
88
- Select the amateur radio support menu and turn on the serial port 6pack
89
  driver.
90
 
91
- Compile and install the kernel and the modules.
92
 
93
To use the driver, the kissattach program delivered with the AX.25 utilities
94
has to be modified.
95
 
96
- Do a cd to the directory that holds the kissattach sources. Edit the
97
  kissattach.c file. At the top, insert the following lines:
98
 
99
  #ifndef N_6PACK
100
  #define N_6PACK (N_AX25+1)
101
  #endif
102
 
103
  Then find the line
104
 
105
  int disc = N_AX25;
106
 
107
  and replace N_AX25 by N_6PACK.
108
 
109
- Recompile kissattach. Rename it to spattach to avoid confusions.
110
 
111
Installing the driver:
112
 
113
- Do an insmod 6pack. Look at your /var/log/messages file to check if the
114
  module has printed its initialization message.
115
 
116
- Do a spattach as you would launch kissattach when starting a KISS port.
117
  Check if the kernel prints the message '6pack: TNC found'.
118
 
119
- From here, everything should work as if you were setting up a KISS port.
120
  The only difference is that the network device that represents
121
  the 6pack port is called sp instead of sl or ax. So, sp0 would be the
122
  first 6pack port.
123
 
124
Although the driver has been tested on various platforms, I still declare it
125
ALPHA. BE CAREFUL! Sync your disks before insmoding the 6pack module
126
and spattaching. Watch out if your computer behaves strangely. Read section
127
6 of this file about known problems.
128
 
129
Note that the connect and status LEDs of the TNC are controlled in a
130
different way than they are when the TNC is used with PC/FlexNet. When using
131
FlexNet, the connect LED is on if there is a connection; the status LED is
132
on if there is data in the buffer of the PC's AX.25 engine that has to be
133
transmitted. Under Linux, the 6pack layer is beyond the AX.25 layer,
134
so the 6pack driver doesn't know anything about connects or data that
135
has not yet been transmitted. Therefore the LEDs are controlled
136
as they are in KISS mode: The connect LED is turned on if data is transferred
137
from the PC to the TNC over the serial line, the status LED if data is
138
sent to the PC.
139
 
140
6. Known problems
141
 
142
When testing the driver with 2.0.3x kernels and
143
operating with data rates on the radio channel of 9600 Baud or higher,
144
the driver may, on certain systems, sometimes print the message '6pack:
145
bad checksum', which is due to data loss if the other station sends two
146
or more subsequent packets. I have been told that this is due to a problem
147
with the serial driver of 2.0.3x kernels. I don't know yet if the problem
148
still exists with 2.1.x kernels, as I have heard that the serial driver
149
code has been changed with 2.1.x.
150
 
151
When shutting down the sp interface with ifconfig, the kernel crashes if
152
there is still an AX.25 connection left over which an IP connection was
153
running, even if that IP connection is already closed. The problem does not
154
occur when there is a bare AX.25 connection still running. I don't know if
155
this is a problem of the 6pack driver or something else in the kernel.
156
 
157
The driver has been tested as a module, not yet as a kernel-builtin driver.
158
 
159
The 6pack protocol supports daisy-chaining of TNCs in a token ring, which is
160
connected to one serial port of the PC. This feature is not implemented
161
and at least at the moment I won't be able to do it because I do not have
162
the opportunity to build a TNC daisy-chain and test it.
163
 
164
Some of the comments in the source code are inaccurate. They are left from
165
the SLIP/KISS driver, from which the 6pack driver has been derived.
166
I haven't modified or removed them yet -- sorry! The code itself needs
167
some cleaning and optimizing. This will be done in a later release.
168
 
169
If you encounter a bug or if you have a question or suggestion concerning the
170
driver, feel free to mail me, using the addresses given at the beginning of
171
this file.
172
 
173
Have fun!
174
 
175
Andreas

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.