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