make additions and changes to manuals
[spider.git] / html / installation-3.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2 <HTML>
3 <HEAD>
4  <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
5  <TITLE>The DXSpider Installation Manual v1.50: Setting up the AX25 Utilities</TITLE>
6  <LINK HREF="installation-4.html" REL=next>
7  <LINK HREF="installation-2.html" REL=previous>
8  <LINK HREF="installation.html#toc3" REL=contents>
9 <link rel=stylesheet href="style.css" type="text/css" title="default stylesheet">
10 </HEAD>
11 <BODY>
12 <A HREF="installation-4.html">Next</A>
13 <A HREF="installation-2.html">Previous</A>
14 <A HREF="installation.html#toc3">Contents</A>
15 <HR>
16 <H2><A NAME="s3">3. Setting up the AX25 Utilities</A></H2>
17
18 <P>The aim of this section is not to fully cover the installation
19 and configuration of all the possible ax25 modules.  I will
20 attempt to cover a simple installation and configure 2 serial
21 ports as if they had TNC's on them.  I will also show what
22 additional configuration the DXSpider program requires.
23 <P>
24 <P>Please bear in mind that I am basing this section on a RedHat
25 7.1 distribution, if you are using SuSe or any other distibution
26 then your mileage may vary.  I will be happy to make any changes
27 and additions if you email me any errors or distribution specific
28 requirements.
29 <P>
30 <P>You would probably benefit from reading the 
31 <A HREF="http://www.fokus.gmd.de/linux/HOWTO/html_single/AX25-HOWTO.html#AEN151">AX25-HOWTO</A> which is much more
32 comprehensive and an interesting configuration program is also available
33 called 
34 <A HREF="http://1409.org/projects/index.html">ax25-config</A> which
35 may help you to configure things.
36 <P>
37 <P>The following files are extracts from the working files at GB7MBC and
38 are in daily use.  However, there are many ways that you can configure the
39 ax25 utils, this is just the one I use, it does not mean it is necessarily
40 the best or for that matter, the right way!
41 <P>
42 <H2><A NAME="ss3.1">3.1 Getting Started</A>
43 </H2>
44
45 <P>There are 2 things you need to do initially.  You need to get the
46 3 files required for the ax25 installation and you need to make
47 some changes to the kernel configuration.
48 <P>
49 <P>The first thing is to get the versions of the ax25 utils that match
50 your kernel.  You may also wish to get a node package of some kind.
51 There are 2 main node packages in use of which I shall keep to the
52 original by Tomi Manninen, OH2BNS as this is included in the ax25
53 rpms as standard.  The other is 
54 <A HREF="ftp://ftp.funet.fi/pub/ham/packet/linux/awznode/">AWZNode</A> by IZ5AWZ.
55 <P>
56 <P>NB: The AX25 stuff in 2.4 kernels appears to have been broken until 2.4.18.  I
57 strongly suggest you get at least this kernel.
58 <P>
59 <P>For 2.4 kernels you need these files...
60 <P>
61 <P>
62 <UL>
63 <LI> 
64 <A HREF="ftp://ftp.rpmfind.net/linux/redhat/7.1/en/powertools/i386/RedHat/RPMS/libax25-0.0.7-7.i386.rpm">libax25-0.0.7-7.i386.rpm</A></LI>
65 <LI> 
66 <A HREF="ftp://ftp.rpmfind.net/linux/redhat/7.1/en/powertools/i386/RedHat/RPMS/ax25-tools-0.0.6-13.i386.rpm">ax25-tools-0.0.6-13.i386.rpm</A></LI>
67 <LI> 
68 <A HREF="ftp://ftp.rpmfind.net/linux/redhat/7.1/en/powertools/i386/RedHat/RPMS/ax25-apps-0.0.4-9.i386.rpm">ax25-apps-0.0.4-9.i386.rpm</A></LI>
69 </UL>
70 <P>
71 <H2><A NAME="ss3.2">3.2 The kernel</A>
72 </H2>
73
74 <P>First you need to add Amateur Radio Support to your kernel.  This is
75 a main menu item and should be easily found.  Within this header you
76 will find lots of options.  For our purposes you need to enable
77 Amateur Radio AX.25 Level 2 Protocol, NET/ROM and the Serial Port 
78 KISS Driver.  For the purposes of this document I will work under the
79 assumption that you include them in the kernel fully, ie not as modules.
80 If you need to look at compiling your kernel for ax25 more fully, I would
81 refer to the excellent 
82 <A HREF="http://www.fokus.gmd.de/linux/HOWTO/html_single/AX25-HOWTO.html#AEN151">AX25-HOWTO</A><P>
83 <P>I should say at this stage that NET/ROM is not mandatory.  If you do not use it
84 simply ignore any instruction concerning it.
85 <P>
86 <P>Now recompile your kernel in the normal way and reboot your system.
87 <P>
88 <H2><A NAME="ss3.3">3.3 Installing the RPM's</A>
89 </H2>
90
91 <P>Now install the RPM's you downloaded, libax25 first, then ax25-tools,
92 then ax25-apps.
93 <P>
94 <BLOCKQUOTE><CODE>
95 <PRE>
96 rpm -ivh libax25-0.0.7-7.i386.rpm
97 rpm -ivh ax25-tool-0.0.6-13.i386.rpm
98 rpm -ivh ax25-apps-0.0.4-9.i386.rpm
99 </PRE>
100 </CODE></BLOCKQUOTE>
101 <P>
102 <H2><A NAME="ss3.4">3.4 Configuration</A>
103 </H2>
104
105 <P>You will find the configuration files in /etc/ax25.  These consist of
106 several files ...
107 <P>
108 <UL>
109 <LI>axports</LI>
110 <LI>nrports</LI>
111 <LI>nrbroadcast</LI>
112 <LI>ax25d.conf</LI>
113 <LI>node.conf</LI>
114 </UL>
115 <P>
116 <P>These are the main files. You will find other files but they do not
117 have any use unless you are wanting to use that particular protocol,
118 Rose or axip for example.
119 <P>
120 <P>NOTE:- before we start it is important to realise that every interface
121 requires a different SSID.  You should be able to follow this in the
122 following examples.
123 <P>
124 <H2><A NAME="ss3.5">3.5 axports</A>
125 </H2>
126
127 <P>This file sets up the ax25 ports you want to use.  An example is below
128 for a standard TNC2 ...
129 <P>
130 <BLOCKQUOTE><CODE>
131 <PRE>
132 #portname   callsign   baudrate   paclen   window   description
133  2m         gb7mbc-2   19200      256      2        2m port on 144.900MHz
134  4m         gb7mbc-4   19200      256      2        4m port on 70.325MHz
135 </PRE>
136 </CODE></BLOCKQUOTE>
137 <P>
138 <P>Note that the portnames have to be unique.
139 <P>
140 <P>The file headings are as follows ...
141 <P>
142 <PRE>
143 portname        -       The name you will refer to the port by
144 callsign        -       The ax25 callsign you want to assign to the port
145 baudrate        -       The speed you communicate between TNC and computer
146 paclen          -       The maximum packet length for ax25 connections
147 window          -       The ax25 window parameter.  This is like 'maxframe'
148 description     -       A textual description of the port
149 </PRE>
150 <P>
151 <H2><A NAME="ss3.6">3.6 nrports</A>
152 </H2>
153
154 <P>This file sets up the netrom ports you want to use.  An example is below
155 and includes a port for both cluster and node.  You will see why we need
156 2 ports later ...
157 <P>
158 <BLOCKQUOTE><CODE>
159 <PRE>
160 #portname   callsign   alias   paclen   description
161  netrom     gb7mbc-8   BARE    236      Node Netrom Port
162  netrom2    gb7mbc-9   MBCDX   236      Cluster Netrom Port
163 </PRE>
164 </CODE></BLOCKQUOTE>
165 <P>
166 <P>Note that the portnames have to be unique.
167 <P>
168 <P>The file headings are as follows ...
169 <P>
170 <PRE>
171 portname        -       The name you will refer to the port by
172 callsign        -       This is the callsign that NET/ROM traffic from this
173                         port will use
174 alias           -       The NET/ROM alias this port will be assigned
175 paclen          -       The maximum size of NET/ROM frames transmitted
176 description     -       A textual description of the port
177 </PRE>
178 <P>
179 <H2><A NAME="ss3.7">3.7 nrbroadcast</A>
180 </H2>
181
182 <P>This file sets up the netrom broadcast qualities.  An example is below ...
183 <P>
184 <BLOCKQUOTE><CODE>
185 <PRE>
186 #axport   min_obs   def_qual   worst_qual   verbose
187  4m       5         10         100          1
188 </PRE>
189 </CODE></BLOCKQUOTE>
190 <P>
191 <P>The file headings are as follows ...
192 <P>
193 <PRE>
194 axport          -       The port name in axports that you wish to broadcast
195                         NET/ROM on.
196 min_obs         -       The minimum obsolescence value for the port
197 def_qual        -       The default quality for the port
198 worst_qual      -       The worst quality for the port.  Any routes under
199                         this quality will be ignored
200 verbose         -       This flag determines whether you will only broadcast
201                         your own node (0) or all known nodes (1)
202 </PRE>
203 <P>
204 <H2><A NAME="ss3.8">3.8 ax25d.conf</A>
205 </H2>
206
207 <P>This file controls any incoming ax25 and NET/ROM connections and steers
208 them to the relevant program.  There are lots of configuration options
209 you can set here, however they are well covered in the AX25-HOWTO.  For
210 our purposes I will show a typical set of parameters.  An example is 
211 below ...
212 <P>
213 <BLOCKQUOTE><CODE>
214 <PRE>
215 [gb7mbc-0 via 2m]
216 parameters    2 1   6  900 *  15  0
217 NOCALL *  *  *  *  *  *  L
218 default  * * * * * *  - sysop /spider/src/client client %u ax25
219
220 [gb7mbc-1 via 2m]
221 parameters    2 1   6  900 *  15  0
222 NOCALL *  *  *  *  *  *  L
223 default *  *  *  *  *  *  0  root  /usr/sbin/node  node
224
225 [gb7mbc-0 via 4m]
226 parameters    2 1   6  900 *  15  0
227 NOCALL *  *  *  *  *  *  L
228 default  * * * * * *  - sysop /spider/src/client client %u ax25
229
230 [gb7mbc-1 via 4m]
231 parameters    2 1   6  900 *  15  0
232 NOCALL *  *  *  *  *  *  L
233 default *  *  *  *  *  *  0  root /usr/sbin/node  node
234
235 &lt;netrom2>
236 parameters 1    10 * * * 3 *
237 NOCALL *  *  *  *  *  *  L
238 default  * * * * * *  - sysop /spider/src/client client %u ax25
239
240 &lt;netrom>
241 parameters 1    10 * * * 3 *
242 NOCALL *  *  *  *  *  *  L
243 default *  *  *  *  *  *  0  root  /usr/sbin/node  node
244 </PRE>
245 </CODE></BLOCKQUOTE>
246 <P>
247 <P>There are a few things to take note of here.  Firstly, all ax25
248 sections are wrapped in [ ] and all NET/ROM sections are wrapped in
249 &lt; &gt;.  Secondly you should be able to see that anyone who forgets to
250 set their callsign in a TNC and tries to connect with the standard
251 NOCALL set into their TNC will not connect, the 'L' means 'lockout'.
252 Lastly and importantly, notice the order of the sections.  They are
253 all done in interface order.
254 <P>
255 <P>You should be able to see that the normal line for access to the
256 cluster is like this ..
257 <P>
258 <BLOCKQUOTE><CODE>
259 <PRE>
260 default  * * * * * *  - sysop /spider/src/client client %u ax25
261 </PRE>
262 </CODE></BLOCKQUOTE>
263 <P>
264 <P>however, if you wish your users to be able to use SSID's on their callsigns ..
265 <P>
266 <BLOCKQUOTE><CODE>
267 <PRE>
268 default  * * * * * *  - sysop /spider/src/client client %s ax25
269 </PRE>
270 </CODE></BLOCKQUOTE>
271 <P>
272 <P>For most purposes this is not desirable. The only time you probably will
273 need this is when you need to allow other cluster nodes that are using SSID's
274 in. In this case it would probably be better to use the first example and
275 then add a specific line for that node like this:
276 <P>
277 <BLOCKQUOTE><CODE>
278 <PRE>
279 GB7DJK-2  * * * * * *  - sysop /spider/src/client client gb7djk-2 ax25
280 default  * * * * * *  - sysop /spider/src/client client %u ax25
281 </PRE>
282 </CODE></BLOCKQUOTE>
283 <P>
284 <H2><A NAME="ss3.9">3.9 node.conf</A>
285 </H2>
286
287 <P>For those of you that wish to run the node, you need to set up the
288 node.conf file.  There are a couple of additional files, node.perms is
289 very similar to the way ftp permissions are set up in NOS systems and 
290 node.motd is the message anyone logging into the node will get.
291 The node.conf file sets all the parameters of the node as you would
292 expect.  An example is below ...
293 <P>
294 <BLOCKQUOTE><CODE>
295 <PRE>
296 # /etc/ax25/node.conf - LinuxNode configuration file
297 #
298 # see node.conf(5)
299
300 # Idle timeout (seconds).
301 #
302 IdleTimeout     1800
303
304 # Timeout when gatewaying (seconds).
305 #
306 ConnTimeout     40000
307
308 # Visible hostname. Will be shown at telnet login.
309 #
310 HostName        gb7mbc.ampr.org
311
312 # ReConnect flag.
313
314 ReConnect       off
315
316 # "Local" network.
317 #
318 #LocalNet       44.139.8.48/32
319
320 # Command aliases. See node.conf(5) for the meaning of the uppercase
321 # letters in the name of the alias.
322 #
323 ##Alias         CAllbook 'telnet %{2:44.17.0.53} 1235 %1 s'
324 #Alias          CONVers  'telnet %{2:oh2ti} 3600 "/n %u %{1:139}\n/w *"'
325 #Alias          CLuster  'c hkiclh'
326 Alias           CONV    "telnet lurpac 3600"
327 Alias           BBS     "c 70cm gb7crv"
328 Alias           DXC     "telnet localhost 9000"
329 Alias           MUD     "telnet homer 4000"
330 ##Alias           TEMP    "finger temp@mary.g6phf"
331 ##Alias           TNOS    "c ip1 gb7mbc-5"
332 ##Alias           TUtor   "telnet gb7mbc 3599"
333                                           
334 # Hidden ports.
335 #
336 #HiddenPorts    2
337
338 # External commands. See node.conf(5) for the meaning of the uppercase
339 # letters in the name of the extcmd.
340 #
341 # Flags:        1       Run command through pipe
342 #               2       Reconnected flag
343 #
344 #ExtCmd         TPM     3       nobody  /usr/bin/finger finger tpm
345 #ExtCmd         ECho    1       nobody  /bin/echo echo \%U \%u \%S \%s \%P \%p \%R \%r \%T \%t \%\% \%0 \%{1:foobar} \%{2} \%3 \%4 \%5
346
347 # Node ID.
348 #
349 NodeId          "\nBARE:GB7MBC-1"
350 #NodeId         \033[01;31m***\033[0m
351
352 # Netrom port name. This port is used for outgoing netrom connects.
353 #
354 NrPort          netrom
355
356 # Logging level
357 #
358 LogLevel        3
359
360 # The escape character (CTRL-T)
361 #
362 EscapeChar      ^T
363
364 # Resolve ip numbers to addresses?
365 #
366 ResolveAddrs    off
367
368 # Node prompt.
369 #
370 #NodePrompt     "\n"
371 #NodePrompt     "%s@%h \%i> "
372 NodePrompt      "\nBARE:GB7MBC-1 \%i > "
373 #NodePrompt     "\a\033[36m%U\033[0m de \033[01;32m#LNODE\033[0m:\033[01;33mOH2BNS-10\033[0m> "
374 </PRE>
375 </CODE></BLOCKQUOTE>
376 <P>
377 <P>This should be fairly obvious I hope.
378 <P>
379 <H2><A NAME="ss3.10">3.10 Getting it all running</A>
380 </H2>
381
382 <P>Ok, now we have all the relevant files configured, the next step is to get
383 it all running.
384 <P>
385 <P>The first thing to do is attach the TNC's.  Your TNC's should be in KISS mode
386 and connected to the serial ports involved.
387 <P>
388 <P>You now use the 'kissattach' command to connect the TNC's to the system like this ...
389 <P>
390 <BLOCKQUOTE><CODE>
391 <PRE>
392 kissattach /dev/ttyS0 2m 44.131.96.199
393 kissattach /dev/ttyS1 4m 44.131.96.199
394 </PRE>
395 </CODE></BLOCKQUOTE>
396 <P>
397 <P>Assuming that 44.131.96.199 is your IP address.  The devices ttyS0 and ttyS1 are com1 and
398 com2 respectively.  Now we can set some parameters ...
399 <P>
400 <BLOCKQUOTE><CODE>
401 <PRE>
402 kissparms -p 2m -t 150 -l 150 -s 50 -r 50
403 kissparms -p 4m -t 150 -l 150 -s 50 -r 50
404 </PRE>
405 </CODE></BLOCKQUOTE>
406 <P>
407 <P>The command 'man kissparms' will give you the explanation of the switches.
408 <P>
409 <P>Now we need to attach the NET/ROM ports in the same way ...
410 <P>
411 <BLOCKQUOTE><CODE>
412 <PRE>
413 nrattach netrom
414 nrattach netrom2
415 </PRE>
416 </CODE></BLOCKQUOTE>
417 <P>
418 <P>All of the above can be put in a file and called from /etc/rc.d/rc.local.  Put all
419 the above commands in a file called rc.ax25 and put a line in rc.local to call it.
420 <P>
421 <P>Now you can start the daemons that set everything in motion ...
422 <P>
423 <BLOCKQUOTE><CODE>
424 <PRE>
425 ax25d
426 netromd -i
427 </PRE>
428 </CODE></BLOCKQUOTE>
429 <P>
430 <P>All should now be running.  All that remains is to get the node working for telnet
431 connections.  If nothing else, this will allow you to connect to the node yourself
432 to check on connection status etc.  There are 2 files that need to be edited.
433 <P>
434 <P>First edit /etc/services and add
435 <P>
436 <BLOCKQUOTE><CODE>
437 <PRE>
438 node    3000/tcp     #OH2BNS's Node Software
439 </PRE>
440 </CODE></BLOCKQUOTE>
441 <P>
442 <P>Assuming you want it to run on port 3000
443 <P>
444 <P>Now cd /etc/xinetd.d and edit a new file called node.  It should look like this ...
445 <P>
446 <BLOCKQUOTE><CODE>
447 <PRE>
448 # default: on
449 #       unencrypted username/password pairs for authentication.
450 service node
451 {
452         socket_type     = stream        
453         wait            = no
454         user            = root
455         server          = /usr/sbin/node
456         log_on_failure  += USERID
457         disable         = yes
458 }
459 </PRE>
460 </CODE></BLOCKQUOTE>
461 <P>
462 <P>You now need to restart the xinetd daemon.  First find out what the PID is
463 like so ..
464 <P>
465 <BLOCKQUOTE><CODE>
466 <PRE>
467 ps auxw |grep xinetd
468 </PRE>
469 </CODE></BLOCKQUOTE>
470 <P>
471 <P>You will get a reply something like this ...
472 <P>
473 <BLOCKQUOTE><CODE>
474 <PRE>
475 root       592  0.0  0.1  2256  620 ?        S    Feb07   0:00 xinetd -stayalive -reuse -pidfile /var/run/xinetd.pid
476 </PRE>
477 </CODE></BLOCKQUOTE>
478 <P>
479 <P>The PID or Process ID is 592 in this case so now we can issue the command ...
480 <P>
481 <BLOCKQUOTE><CODE>
482 <PRE>
483 kill -HUP 592
484 </PRE>
485 </CODE></BLOCKQUOTE>
486 <P>
487 <P>All should now be operational and you should be able to log into the node by
488 using a telnet session to the relevant port, like so ...
489 <P>
490 <BLOCKQUOTE><CODE>
491 <PRE>
492 telnet localhost 3000
493 </PRE>
494 </CODE></BLOCKQUOTE>
495 <P>
496 <P>If that works, you are just about there.  you should (assuming you have radios connected
497 to the TNC's) be able to connect out to other stations and receive incoming ax25 and
498 netrom connections.
499 <P>
500 <HR>
501 <A HREF="installation-4.html">Next</A>
502 <A HREF="installation-2.html">Previous</A>
503 <A HREF="installation.html#toc3">Contents</A>
504 </BODY>
505 </HTML>