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