Add information on setting up the ax25 utils to the installation manual
[spider.git] / txt / installation.txt
1   The DXSpider Installation Manual v1.49
2   Iain Philipps, G0RDI (g0rdi@77hz.com) and Ian Maude, G0VGS,
3   (g0vgs@gb7mbc.net)
4   February 2002 revision 1.2
5
6   A reference for SysOps of the DXSpider DXCluster program.
7   ______________________________________________________________________
8
9   Table of Contents
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67   1. Linux Installation
68
69      1.1 Introduction
70      1.2 Preparation
71      1.3 Installing the software
72      1.4 Setting callsigns etc
73      1.5 The client program
74      1.6 Starting up for the first time
75
76   2. Linux quick installation guide
77
78   3. Setting up the AX25 Utilities
79
80      3.1 Getting Started
81      3.2 The kernel
82      3.3 Installing the RPM's
83      3.4 Configuration
84      3.5 axports
85      3.6 nrports
86      3.7 nrbroadcast
87      3.8 ax25d.conf
88      3.9 node.conf
89      3.10 Getting it all running
90
91   4. Configuration
92
93      4.1 Allowing ax25 connects from users
94      4.2 Allowing telnet connects from users
95      4.3 Setting up telnet connects (from 1.47 onwards)
96      4.4 Setting up for AGW Engine (1.47 onwards)
97      4.5 Setting up node connects
98      4.6 Connection scripts
99      4.7 Starting the connection
100      4.8 Telnet echo
101      4.9 Autostarting the cluster
102
103   5. Microsoft Windows Installation
104
105      5.1 Introduction
106      5.2 The requirements
107      5.3 The system
108      5.4 Perl
109      5.5 Additional packages
110      5.6 Getting Spider
111
112   6. Installing the software
113
114      6.1 Incoming telnets
115      6.2 The AGW packet engine
116      6.3 Setting up the initial user files
117      6.4 Connecting to other clusters
118
119   7. General Information
120
121      7.1 The crontab file
122
123
124   ______________________________________________________________________
125
126   1.  Linux Installation
127
128   1.1.  Introduction
129
130   This section describes the installation of DX Spider v1.47 on a RedHat
131   Linux Distribution.  Wherever possible I will try to include
132   differences for other distributions.  I do not intend to try and cover
133   the installation of Linux or the setup of the AX25 utilities.  If you
134   need help on this then read Iains original installation guide that
135   comes with the Spider distribution.
136
137
138   I am assuming a general knowledge of Linux and its commands.  You
139   should know how to use tar and how to edit files using your favourite
140   editor.
141
142
143   The crucial ingredient for all of this is Perl.  Earlier versions of
144   Spider required perl 5.004, however it is now STRONGLY recommended
145   that you use at least version 5.005_03 as this is the version being
146   used in the development of Spider.
147
148
149   In addition to the standard Red Hat distribution you will require the
150   following modules from http://www.cpan.org/CPAN.html , please note
151   however that with later versions of perl, some of these modules may be
152   included with the distribution.  Get the modules anyway and try to
153   install as below.  If they complain, they are probably already a part
154   of your perl distribution.
155
156
157
158   o  Data-Dumper-2.10.tar.gz
159
160   o  TimeDate-1.10.tar.gz
161
162   o  IO-1.20.tar.gz (for perl 5.00403 and lower)
163
164   o  Net-Telnet-3.02.tar.gz
165
166   o  Curses-1.06.tar.gz
167
168   o  Time-HiRes-01.20.tar.gz
169
170
171   Copy the CPAN modules listed above to a convenient place on your
172   computer. One good place would be /usr/local/packages, and the
173   instructions which follow will assume that that's where you have put
174   them.
175
176
177   Log in as 'root', and make sure you're at '/root' before you continue.
178   Here are exactly the commands you must issue next: -
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199   # tar xvfz /usr/local/packages/Data-Dumper-2.10.tar.gz
200   # cd Data-Dumper-2.10
201   # perl Makefile.PL
202   # make test
203   # make install
204   # cd ..
205   #
206   # tar xvfz /usr/local/packages/TimeDate-1.10.tar.gz
207   # cd TimeDate-1.10
208   # perl Makefile.PL
209   # make test
210   # make install
211   # cd ..
212   #
213   # tar xvfz /usr/local/packages/IO-1.20.tar.gz
214   # cd IO-1.20
215   # perl Makefile.PL
216   # make test
217   # make install UNINST=1
218   # cd ..
219   #
220   # tar xvfz /usr/local/packages/Net-Telnet-3.02.tar.gz
221   # cd Net-Telnet-3.02
222   # perl Makefile.PL
223   # make test
224   # make install
225   # cd ..
226   #
227   # tar xvfz /usr/local/packages/Curses-1.06.tar.gz
228   # cd Curses-1.06
229   # perl Makefile.PL
230   # make test
231   # make install
232   # cd ..
233   #
234   # tar xvfz /usr/local/packages/Time-HiRes-01.20.tar.gz
235   # cd Time-HiRes-01.20
236   # perl Makefile.PL
237   # make test
238   # make install
239   # cd ..
240
241
242
243
244   Do not fall into the trap of thinking they're all the same, just
245   because they nearly are! Pay particular attention to the instructions
246   of IO, above.
247
248
249
250   1.2.  Preparation
251
252   I will assume that you have already downloaded the latest tarball of
253   the DXSpider software and are ready to install it. I am assuming
254   version 1.47 for this section but of course you would use the latest
255   version.
256
257
258   Login as root and create a user to run the cluster under.  UNDER NO
259   CIRCUMSTANCES USE ROOT AS THIS USER!.  I am going to use the name
260   sysop.  You can call it anything you wish.  Depending on your security
261   requirements you may wish to use an existing user, however this is
262   your own choice.
263
264
265        # adduser -m sysop
266
267
268
269
270
271   For SUSE distributions, the command would be ..
272
273
274
275        # useradd -m sysop
276
277
278
279
280
281   Now set a password for the user ...
282
283
284
285        # passwd sysop
286        # New UNIX password:
287        # Retype new UNIX password:
288        passwd: all authentication tokens updated successfully
289
290
291
292
293
294   1.3.  Installing the software
295
296   Now to unpack the DX Spider distribution, set symbolic links and group
297   permissions.  Copy the tarball to /home/sysop and do the following.
298
299
300
301        # cd ~sysop
302        # tar xvfz spider-1.47.tar.gz
303        # ln -s ~sysop/spider /spider
304        # groupadd -g 251 spider       (or another number)
305
306
307
308
309
310   If you do not have the command groupadd available to you simply add a
311   line in /etc/group by hand.
312
313
314
315        # vi /etc/group                (or your favorite editor)
316
317
318
319
320
321   You also need to add some others to the group, including your own
322   callsign (this will be used as an alias) and root.  The finished line
323   in /etc/group should look something like this
324
325   spider:x:251:sysop,g0vgs,root
326
327
328   The next step is to set the permissions on the Spider directory tree
329   and files ....
330
331        # chown -R sysop.spider spider
332        # find . -type d -exec chmod 2775 {} \;
333        # find . -type f -exec chmod 775 {} \;
334
335
336
337
338
339   This last step allows various users of the group spider to have write
340   access to all the directories.  This is not really needed just yet but
341   will be useful when web interfaces start to appear.
342
343
344   Finally, you need to fix the permissions on the ax25_call and
345   netrom_call programs.  Check where they are with the locate command
346   and alter the permissions with the chmod command like this ..
347
348
349
350        # chown root ax25_call netrom_call
351        # chmod 4775 ax25_call netrom_call
352
353
354
355
356
357   1.4.  Setting callsigns etc
358
359   Now login to your machine as the user you created earlier.  In my case
360   that user is called sysop.  Once logged in, issue the following
361   commands ....
362
363
364
365        $ cd /spider
366        $ mkdir local
367        $ mkdir local_cmd
368        $ cp perl/DXVars.pm.issue local/DXVars.pm
369        $ cd local
370        $ vi DXVars.pm (or your favourite editor)
371
372
373
374
375
376   Using the distributed DXVars.pm as a a template, set your cluster
377   callsign, sysop callsign and other user info to suit your own
378   environment.
379
380
381
382        $mycall = "GB7DJK";
383
384
385
386
387
388   This is the call sign of your cluster.  If you use an SSID then
389   include it here also.
390
391
392
393        $myalias = "G1TLH";
394
395
396
397   This is the sysop user callsign, normally your own.
398
399
400   PLEASE USE CAPITAL LETTERS FOR CALLSIGNS
401
402
403   Note that this a perl file which will be parsed and executed as part
404   of the cluster. If you get it wrong then perl will complain when you
405   start the cluster process.  It is important only to alter the text of
406   any section.  Some of the lines look a little odd.  Take this line for
407   example ....
408
409   $myemail = "ianmaude\@btinternet.com";
410
411
412   There appears to be an extra slash in there.  However this has to be
413   there for the file to work so leave it in.
414
415
416   DON'T alter any file in /spider/perl, they are overwritten with every
417   release. Any files or commands you place in /spider/local or
418   /spider/local_cmd will automagically be used in preference to the ones
419   in /spider/perl EVEN while the cluster is running!
420
421
422   Save the new file and change directory to ../perl ....
423
424
425
426        $ cd ../perl
427
428
429
430
431
432   Now type the following command which creates the basic user file with
433   you as the sysop.
434
435
436
437        $ ./create_sysop.pl
438
439
440
441
442
443   1.5.  The client program
444
445   In earlier versions of Spider, all the processes were Perl scripts.
446   This was fine but with a lot of users your computer memory would soon
447   be used up.  To combat this a new client was written in "C".  This
448   client only works for incoming connects at the moment.  Before you can
449   use it though it has to be "made".  CD to /spider/src and type make.
450   You should see the output on your screen and hopefully now have a
451   small C program called client.  Leave it in this directory.
452
453
454
455   1.6.  Starting up for the first time
456
457   We can now bring spider up for the first time and see if all is well
458   or not!  It should look something like this ...
459
460
461
462
463   $ ./cluster.pl
464   DXSpider DX Cluster Version 1.47
465   Copyright (c) 1998 Dirk Koopman G1TLH
466   loading prefixes ...
467   loading band data ...
468   loading user file system ...
469   starting listener ...
470   reading existing message headers
471   reading cron jobs
472   orft we jolly well go ...
473
474
475
476
477
478   If all is well then login on another term or console as sysop and cd
479   to /spider/src.  Now issue the following command ...
480
481
482
483        $ ./client
484
485
486
487
488
489   This should log you into the cluster as the sysop under the alias
490   callsign we set earlier.  In this case the callsign is G0VGS.  The
491   cluster callsign is set in the DXVars.pm file in /spider/local.  In
492   this case we will assume that this was set as GB7MBC.  You should
493   therefore see this when you login ....
494
495
496
497        G0VGS de GB7MBC 19-Nov-1999 2150Z >
498
499
500
501
502
503   If you do, congratulations!  If not, look over the instructions again,
504   you have probably missed something out.  You can shut spider down
505   again with the command ....
506
507
508
509        shutdown
510
511
512
513
514
515   and both the cluster and the client should return to Linux prompts.
516
517
518
519   2.  Linux quick installation guide
520
521   This section is designed for experienced Spider sysops who want to
522   install Spider from scratch.  It is simply a check list of things that
523   need to be done without any explanations.  The name in brackets at the
524   end of each line is the user that should be doing that process.
525
526
527   o  Login as root
528
529   o  Get the additional CPAN modules and install them (root)
530
531   o  Create the "sysop" user and set a password (root)
532
533   o  Put the Spider tarball in  sysop and untar it (root)
534
535   o  ln -s  sysop/spider /spider (root)
536
537   o  groupadd -g 251 spider (root)
538
539   o  Add any more users you need to the group entry in /etc/group (root)
540
541   o  Set the permissions on the spider tree (root)
542
543   o  Fix permissions on ax25_call and netrom_call (root)
544
545   o  Login as the sysop user
546
547   o  cd to /spider (sysop)
548
549   o  mkdir local (sysop)
550
551   o  mkdir local_cmd (sysop)
552
553   o  cp perl/DXVars.pm.issue local/DXVars.pm (sysop)
554
555   o  cd to /spider/local and edit DXVars to set your details (sysop)
556
557   o  cd ../perl (sysop)
558
559   o  ./create_sysop.pl (sysop)
560
561   o  ./cluster.pl (sysop)
562
563
564   Spider should now be running and you should be able to login using the
565   client program.
566
567
568   o  Login as root
569
570   o  Enter the correct line in ax25d.conf (root)
571
572   o  Enter the correct line in /etc/services (root)
573
574   o  Enter the correct line in /etc/inetd.conf (root)
575
576   o  killall -HUP inetd (root)
577
578
579   Spider should now be able to accept logins via telnet, netrom and
580   ax25.
581
582
583   o  Login as sysop
584
585   o  Start the cluster (sysop)
586
587   o  set/node and type for links (sysop)
588
589   o  Write any connect scripts (sysop)
590
591   o  Edit /spider/crontab as required (sysop)
592
593   o  Edit any other files as necessary (sysop)
594
595   o  Set filters, hops and forwarding files (sysop)
596
597   o  Login as root
598
599   o  Enter the correct line in /etc/inittab (root)
600
601
602   3.  Setting up the AX25 Utilities
603
604   The aim of this section is not to fully cover the installation and
605   configuration of all the possible ax25 modules.  I will attempt to
606   cover a simple installation and configure 2 serial ports as if they
607   had TNC's on them.  I will also show what additional configuration the
608   DXSpider program requires.
609
610
611   Please bear in mind that I am basing this section on a RedHat 7.1
612   distribution, if you are using SuSe or any other distibution then your
613   mileage may vary.  I will be happy to make any changes and additions
614   if you email me any errors or distribution specific requirements.
615
616
617   You would probably benefit from reading the AX25-HOWTO which is much
618   more comprehensive and an interesting configuration program is also
619   available called ax25-config which may help you to configure things.
620
621
622   The following files are extracts from the working files at GB7MBC and
623   are in daily use.  However, there are many ways that you can configure
624   the ax25 utils, this is just the one I use, it does not mean it is
625   necessarily the best or for that matter, the right way!
626
627
628   3.1.  Getting Started
629
630   There are 2 things you need to do initially.  You need to get the 3
631   files required for the ax25 installation and you need to make some
632   changes to the kernel configuration.
633
634
635   The first thing is to get the versions of the ax25 utils that match
636   your kernel.  You may also wish to get a node package of some kind.
637   There are 2 main node packages in use of which I shall keep to the
638   original by Tomi Manninen, OH2BNS as this is included in the ax25 rpms
639   as standard.  The other is AWZNode by IZ5AWZ.
640
641
642   For 2.4 kernels you need these files...
643
644
645
646   o  libax25-0.0.7-7.i386.rpm
647
648   o  ax25-tools-0.0.6-13.i386.rpm
649
650   o  ax25-apps-0.0.4-9.i386.rpm
651
652
653   3.2.  The kernel
654
655   First you need to add Amateur Radio Support to your kernel.  This is a
656   main menu item and should be easily found.  Within this header you
657   will find lots of options.  For our purposes you need to enable
658   Amateur Radio AX.25 Level 2 Protocol, NET/ROM and the Serial Port KISS
659   Driver.  For the purposes of this document I will work under the
660   assumption that you include them in the kernel fully, ie not as
661   modules.  If you need to look at compiling your kernel for ax25 more
662   fully, I would refer to the excellent AX25-HOWTO
663
664
665   I should say at this stage that NET/ROM is not mandatory.  If you do
666   not use it simply ignore any instruction concerning it.
667
668
669   Now recompile your kernel in the normal way and reboot your system.
670
671
672   3.3.  Installing the RPM's
673
674   Now install the RPM's you downloaded, libax25 first, then ax25-tools,
675   then ax25-apps.
676
677
678
679        rpm -ivh libax25-0.0.7-7.i386.rpm
680        rpm -ivh ax25-tool-0.0.6-13.i386.rpm
681        rpm -ivh ax25-apps-0.0.4-9.i386.rpm
682
683
684
685
686
687   3.4.  Configuration
688
689   You will find the configuration files in /etc/ax25.  These consist of
690   several files ...
691
692
693   o  axports
694
695   o  nrports
696
697   o  nrbroadcast
698
699   o  ax25d.conf
700
701   o  node.conf
702
703
704   These are the main files. You will find other files but they do not
705   have any use unless you are wanting to use that particular protocol,
706   Rose or axip for example.
707
708
709   NOTE:- before we start it is important to realise that every interface
710   requires a different SSID.  You should be able to follow this in the
711   following examples.
712
713
714   3.5.  axports
715
716   This file sets up the ax25 ports you want to use.  An example is below
717   for a standard TNC2 ...
718
719
720
721        #portname   callsign   baudrate   paclen   window   description
722         2m         gb7mbc-2   19200      256      2        2m port on 144.900MHz
723         4m         gb7mbc-4   19200      256      2        4m port on 70.325MHz
724
725
726
727   Note that the portnames have to be unique.
728
729
730   The file headings are as follows ...
731
732
733   portname        -       The name you will refer to the port by
734   callsign        -       The ax25 callsign you want to assign to the port
735   baudrate        -       The speed you communicate between TNC and computer
736   paclen          -       The maximum packet length for ax25 connections
737   window          -       The ax25 window parameter.  This is like 'maxframe'
738   description     -       A textual description of the port
739
740
741
742
743   3.6.  nrports
744
745   This file sets up the netrom ports you want to use.  An example is
746   below and includes a port for both cluster and node.  You will see why
747   we need 2 ports later ...
748
749
750
751        #portname   callsign   alias   paclen   description
752         netrom     gb7mbc-8   BARE    236      Node Netrom Port
753         netrom2    gb7mbc-9   MBCDX   236      Cluster Netrom Port
754
755
756
757
758
759   Note that the portnames have to be unique.
760
761
762   The file headings are as follows ...
763
764
765   portname        -       The name you will refer to the port by
766   callsign        -       This is the callsign that NET/ROM traffic from this
767                           port will use
768   alias           -       The NET/ROM alias this port will be assigned
769   paclen          -       The maximum size of NET/ROM frames transmitted
770   description     -       A textual description of the port
771
772
773
774
775   3.7.  nrbroadcast
776
777   This file sets up the netrom broadcast qualities.  An example is below
778   ...
779
780
781
782        #axport   min_obs   def_qual   worst_qual   verbose
783         4m       5         10         100          1
784
785
786
787
788
789   The file headings are as follows ...
790
791
792
793   axport          -       The port name in axports that you wish to broadcast
794                           NET/ROM on.
795   min_obs         -       The minimum obsolescence value for the port
796   def_qual        -       The default quality for the port
797   worst_qual      -       The worst quality for the port.  Any routes under
798                           this quality will be ignored
799   verbose         -       This flag determines whether you will only broadcast
800                           your own node (0) or all known nodes (1)
801
802
803
804
805   3.8.  ax25d.conf
806
807   This file controls any incoming ax25 and NET/ROM connections and
808   steers them to the relevant program.  There are lots of configuration
809   options you can set here, however they are well covered in the
810   AX25-HOWTO.  For our purposes I will show a typical set of parameters.
811   An example is below ...
812
813
814
815        [gb7mbc-0 via 2m]
816        parameters    2 1   6  900 *  15  0
817        NOCALL *  *  *  *  *  *  L
818        default  * * * * * *  - sysop /spider/src/client client %u ax25
819
820        [gb7mbc-1 via 2m]
821        parameters    2 1   6  900 *  15  0
822        NOCALL *  *  *  *  *  *  L
823        default *  *  *  *  *  *  0  root  /usr/sbin/node  node
824
825        [gb7mbc-0 via 4m]
826        parameters    2 1   6  900 *  15  0
827        NOCALL *  *  *  *  *  *  L
828        default  * * * * * *  - sysop /spider/src/client client %u ax25
829
830        [gb7mbc-1 via 4m]
831        parameters    2 1   6  900 *  15  0
832        NOCALL *  *  *  *  *  *  L
833        default *  *  *  *  *  *  0  root /usr/sbin/node  node
834
835        <netrom2>
836        parameters 1    10 * * * 3 *
837        NOCALL *  *  *  *  *  *  L
838        default  * * * * * *  - sysop /spider/src/client client %u ax25
839
840        <netrom>
841        parameters 1    10 * * * 3 *
842        NOCALL *  *  *  *  *  *  L
843        default *  *  *  *  *  *  0  root  /usr/sbin/node  node
844
845
846
847
848
849   There are a few things to take note of here.  Firstly, all ax25
850   sections are wrapped in [ ] and all NET/ROM sections are wrapped in <
851   >.  Secondly you should be able to see that anyone who forgets to set
852   their callsign in a TNC and tries to connect with the standard NOCALL
853   set into their TNC will not connect, the 'L' means 'lockout'.  Lastly
854   and importantly, notice the order of the sections.  They are all done
855   in interface order.
856
857
858
859   You should be able to see that the normal line for access to the
860   cluster is like this ..
861
862
863
864        default  * * * * * *  - sysop /spider/src/client client %u ax25
865
866
867
868
869
870   however, if you wish your users to be able to use SSID's on their
871   callsigns ..
872
873
874
875        default  * * * * * *  - sysop /spider/src/client client %s ax25
876
877
878
879
880
881   For most purposes this is not desirable. The only time you probably
882   will need this is when you need to allow other cluster nodes that are
883   using SSID's in. In this case it would probably be better to use the
884   first example and then add a specific line for that node like this:
885
886
887
888        GB7DJK-2  * * * * * *  - sysop /spider/src/client client gb7djk-2 ax25
889        default  * * * * * *  - sysop /spider/src/client client %u ax25
890
891
892
893
894
895   3.9.  node.conf
896
897   For those of you that wish to run the node, you need to set up the
898   node.conf file.  There are a couple of additional files, node.perms is
899   very similar to the way ftp permissions are set up in NOS systems and
900   node.motd is the message anyone logging into the node will get.  The
901   node.conf file sets all the parameters of the node as you would
902   expect.  An example is below ...
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925   # /etc/ax25/node.conf - LinuxNode configuration file
926   #
927   # see node.conf(5)
928
929   # Idle timeout (seconds).
930   #
931   IdleTimeout     1800
932
933   # Timeout when gatewaying (seconds).
934   #
935   ConnTimeout     40000
936
937   # Visible hostname. Will be shown at telnet login.
938   #
939   HostName        gb7mbc.ampr.org
940
941   # ReConnect flag.
942   #
943   ReConnect       off
944
945   # "Local" network.
946   #
947   #LocalNet       44.139.8.48/32
948
949   # Command aliases. See node.conf(5) for the meaning of the uppercase
950   # letters in the name of the alias.
951   #
952   ##Alias         CAllbook 'telnet %{2:44.17.0.53} 1235 %1 s'
953   #Alias          CONVers  'telnet %{2:oh2ti} 3600 "/n %u %{1:139}\n/w *"'
954   #Alias          CLuster  'c hkiclh'
955   Alias           CONV    "telnet lurpac 3600"
956   Alias           BBS     "c 70cm gb7crv"
957   Alias           DXC     "telnet localhost 9000"
958   Alias           MUD     "telnet homer 4000"
959   ##Alias           TEMP    "finger temp@mary.g6phf"
960   ##Alias           TNOS    "c ip1 gb7mbc-5"
961   ##Alias           TUtor   "telnet gb7mbc 3599"
962
963   # Hidden ports.
964   #
965   #HiddenPorts    2
966
967   # External commands. See node.conf(5) for the meaning of the uppercase
968   # letters in the name of the extcmd.
969   #
970   # Flags:        1       Run command through pipe
971   #               2       Reconnected flag
972   #
973   #ExtCmd         TPM     3       nobody  /usr/bin/finger finger tpm
974   #ExtCmd         ECho    1       nobody  /bin/echo echo \%U \%u \%S \%s \%P \%p \%R \%r \%T \%t \%\% \%0 \%{1:foobar} \%{2} \%3 \%4 \%5
975
976   # Node ID.
977   #
978   NodeId          "\nBARE:GB7MBC-1"
979   #NodeId         \033[01;31m***\033[0m
980
981   # Netrom port name. This port is used for outgoing netrom connects.
982   #
983   NrPort          netrom
984
985   # Logging level
986   #
987   LogLevel        3
988
989   # The escape character (CTRL-T)
990   #
991   EscapeChar      ^T
992
993   # Resolve ip numbers to addresses?
994   #
995   ResolveAddrs    off
996
997   # Node prompt.
998   #
999   #NodePrompt     "\n"
1000   #NodePrompt     "%s@%h \%i> "
1001   NodePrompt      "\nBARE:GB7MBC-1 \%i > "
1002   #NodePrompt     "\a\033[36m%U\033[0m de \033[01;32m#LNODE\033[0m:\033[01;33mOH2BNS-10\033[0m> "
1003
1004
1005
1006
1007
1008   This should be fairly obvious I hope.
1009
1010
1011   3.10.  Getting it all running
1012
1013   Ok, now we have all the relevant files configured, the next step is to
1014   get it all running.
1015
1016
1017   The first thing to do is attach the TNC's.  Your TNC's should be in
1018   KISS mode and connected to the serial ports involved.
1019
1020
1021   You now use the 'kissattach' command to connect the TNC's to the
1022   system like this ...
1023
1024
1025
1026        kissattach /dev/ttyS0 2m 44.131.96.199
1027        kissattach /dev/ttyS1 4m 44.131.96.199
1028
1029
1030
1031
1032
1033   Assuming that 44.131.96.199 is your IP address.  The devices ttyS0 and
1034   ttyS1 are com1 and com2 respectively.  Now we can set some parameters
1035   ...
1036
1037
1038
1039        kissparms -p 2m -t 150 -l 150 -s 50 -r 50
1040        kissparms -p 4m -t 150 -l 150 -s 50 -r 50
1041
1042
1043
1044
1045
1046   The command 'man kissparms' will give you the explanation of the
1047   switches.
1048
1049
1050   Now we need to attach the NET/ROM ports in the same way ...
1051
1052
1053
1054        nrattach netrom
1055        nrattach netrom2
1056
1057   All of the above can be put in a file and called from
1058   /etc/rc.d/rc.local.  Put all the above commands in a file called
1059   rc.ax25 and put a line in rc.local to call it.
1060
1061
1062   Now you can start the daemons that set everything in motion ...
1063
1064
1065
1066        ax25d
1067        netromd -i
1068
1069
1070
1071
1072
1073   All should now be running.  All that remains is to get the node
1074   working for telnet connections.  If nothing else, this will allow you
1075   to connect to the node yourself to check on connection status etc.
1076   There are 2 files that need to be edited.
1077
1078
1079   First edit /etc/services and add
1080
1081
1082
1083        node    3000/tcp     #OH2BNS's Node Software
1084
1085
1086
1087
1088
1089   Assuming you want it to run on port 3000
1090
1091
1092   Now cd /etc/xinetd.d and edit a new file called node.  It should look
1093   like this ...
1094
1095
1096
1097        # default: on
1098        #       unencrypted username/password pairs for authentication.
1099        service node
1100        {
1101                socket_type     = stream
1102                wait            = no
1103                user            = root
1104                server          = /usr/sbin/node
1105                log_on_failure  += USERID
1106                disable         = yes
1107        }
1108
1109
1110
1111
1112
1113   You now need to restart the xinetd daemon.  First find out what the
1114   PID is like so ..
1115
1116
1117
1118        ps auxw |grep xinetd
1119
1120
1121
1122
1123   You will get a reply something like this ...
1124
1125
1126
1127        root       592  0.0  0.1  2256  620 ?        S    Feb07   0:00 xinetd -stayalive -reuse -pidfile /var/run/xinetd.pid
1128
1129
1130
1131
1132
1133   The PID or Process ID is 592 in this case so now we can issue the
1134   command ...
1135
1136
1137
1138        kill -HUP 592
1139
1140
1141
1142
1143
1144   All should now be operational and you should be able to log into the
1145   node by using a telnet session to the relevant port, like so ...
1146
1147
1148
1149        telnet localhost 3000
1150
1151
1152
1153
1154
1155   If that works, you are just about there.  you should (assuming you
1156   have radios connected to the TNC's) be able to connect out to other
1157   stations and receive incoming ax25 and netrom connections.
1158
1159
1160   4.  Configuration
1161
1162   4.1.  Allowing ax25 connects from users
1163
1164   This is dealt with in the previous section
1165
1166
1167   4.2.  Allowing telnet connects from users
1168
1169
1170   From version 1.47 there is a new (more efficient) way of doing this
1171   (see next section) but, if you prefer, the method of doing it
1172   described here will continue to work just fine.
1173
1174
1175   Allowing telnet connections is quite simple.  Firstly you need to add
1176   a line in /etc/services to allow connections to a port number, like
1177   this ....
1178
1179
1180
1181        spdlogin   8000/tcp     # spider anonymous login port
1182
1183
1184
1185
1186
1187   Then add a line in /etc/inetd.conf like this ....
1188
1189        spdlogin stream tcp nowait root /usr/sbin/tcpd /spider/src/client login telnet
1190
1191
1192
1193
1194
1195   Once this is done, you need to restart inetd like this ....
1196
1197
1198
1199        killall -HUP inetd
1200
1201
1202
1203
1204
1205   Now login as sysop and cd spider/src. You can test that spider is
1206   accepting telnet logins by issuing the following command ....
1207
1208
1209
1210        ./client login telnet
1211
1212
1213
1214
1215
1216   You should get a login prompt and on issuing a callsign, you will be
1217   given access to the cluster.  Note, you will not get a password login.
1218   There seems no good reason for a password prompt to be given so it is
1219   not asked for.
1220
1221
1222   Assuming all is well, then try a telnet from your linux console ....
1223
1224
1225
1226        telnet localhost 8000
1227
1228
1229
1230
1231
1232   You should now get the login prompt and be able to login as before.
1233
1234
1235   4.3.  Setting up telnet connects (from 1.47 onwards)
1236
1237   From version 1.47 you can choose to allow the perl cluster.pl program
1238   to allow connections directly (i.e. not via the /spider/src/client
1239   interface program). If you are using Windows then this is the only
1240   method available of allowing incoming telnet connections.
1241
1242
1243   To do this you need first to remove any line that you may previously
1244   have set up in /etc/inetd.conf. Remember to:-
1245
1246
1247
1248        killall -HUP inetd
1249
1250
1251
1252
1253
1254
1255   to make the change happen...
1256
1257
1258   Having done that, you need to copy the file /spider/perl/Listeners.pm
1259   to /spider/local and then edit it. You will need to uncomment the line
1260   containing "0.0.0.0" and select the correct port to listen on. So that
1261   it looks like this:-
1262
1263
1264
1265        @listen = (
1266            ["0.0.0.0", 8000],
1267        );
1268
1269
1270
1271
1272
1273   As standard, the listener will listen on all interfaces
1274   simultaneously.  If you require more control than this, you can
1275   specify each interface individually:-
1276
1277
1278
1279        @listen = (
1280            ["gb7baa.dxcluster.net", 8000],
1281            ["44.131.16.2", 6300],
1282        );
1283
1284
1285
1286
1287
1288   This will only be successful if the IP addresses on each interface are
1289   static.  If you are using some kind of dynamic IP addressing then the
1290   'default' method is the only one that will work.
1291
1292
1293   Restart the cluster.pl program to enable the listener.
1294
1295
1296   One important difference with the internal listener is that no echoing
1297   is done by the cluster program. Users will need to set 'local-echo' on
1298   in their telnet clients if it isn't set automatically (as per the
1299   standards).  Needless to say this will probably only apply to Windows
1300   users.
1301
1302
1303   4.4.  Setting up for AGW Engine (1.47 onwards)
1304
1305   AGW Engine is a Windows based ax25 stack. You can connect to an AGW
1306   engine from Linux as well as Windows based machines.
1307
1308
1309   In order to enable access to an AGW Engine you need to copy
1310   /spider/perl/AGWConnect.pm to /spider/local and edit it.  Specifically
1311   you must:-
1312
1313
1314   o  set $enable to 1.
1315
1316   o  set $login and $passwd to the values set up in your AGW
1317      installation.  If you haven't set any there, then you should not
1318      touch these values.
1319
1320
1321   o  You can connect to a remote AGW engine (ie on some other machine)
1322      by changing $addr and $port appropriately.
1323
1324   o  Restart the cluster.pl program
1325
1326
1327
1328
1329   4.5.  Setting up node connects
1330
1331   In order to allow cluster node connections, spider needs to know that
1332   the connecting callsign is a cluster node.  This is the case whether
1333   the connect is incoming or outgoing.  In spider this is a simple task
1334   and can be done in runtime.
1335
1336
1337   Later versions of Spider can distinguish different software and treat
1338   them differently.  For example, the WCY beacon cannot be handles by
1339   AK1A type nodes as AK1A does not know what to do with PC73.  There are
1340   4 different types of node at present and although they may not have
1341   any major differences at the moment, it allows for compatibility.  The
1342   4 types are ...
1343
1344
1345
1346        set/node        (AK1A type)
1347        set/spider
1348        set/dxnet
1349        set/clx
1350
1351
1352
1353
1354
1355   For now, we will assume that the cluster we are going to connect to is
1356   an AK1A type node.
1357
1358
1359   Start up the cluster as you did before and login as the sysop with
1360   client.  The cluster node I am wanting to make a connection to is
1361   GB7BAA but you would obviously use whatever callsign you required.  At
1362   the prompt type ...
1363
1364
1365
1366        set/node gb7baa
1367
1368
1369
1370
1371
1372   The case does not matter as long as you have a version of DXSpider
1373   later than 1.33.  Earlier versions required the callsign to be in
1374   upper case.
1375
1376
1377   That is now set, it is as simple as that.  To prove it, login on yet
1378   another console as sysop, cd to spider/src and issue the command ...
1379
1380
1381
1382        ./client gb7baa (using the callsign you set as a node)
1383
1384
1385
1386
1387   You should get an initialisation string from DXSpider like this ...
1388
1389
1390
1391        ./client gb7baa
1392        PC38^GB7MBC^~
1393
1394
1395
1396
1397   If the callsign you just set up as a cluster node is for an incoming
1398   connect, this is all that needs to be done.  If the connection is to
1399   be outgoing then a connection script needs to be written.
1400
1401
1402   Sometimes you make a mistake... Honest, it does happen.  If you want
1403   to make a node back to being a normal user, regardless of what type it
1404   is, do:
1405
1406
1407
1408        unset/node gb7baa
1409
1410
1411
1412
1413
1414   4.6.  Connection scripts
1415
1416   Because DXSpider operates under Linux, connections can be made using
1417   just about any protocol;  AX25, NETRom, tcp/ip, ROSE etc are all
1418   possible examples.  Connect scripts live in the /spider/connect
1419   directory and are simple ascii files.  Writing a script for
1420   connections is therefore relatively simple.
1421
1422
1423   The connect scripts consist of lines which start with the following
1424   keywords or symbols:-
1425
1426
1427
1428      #  All lines starting with a # are ignored, as are completely blank
1429         lines.
1430
1431
1432      timeout
1433         timeout followed by a number is the number of seconds to wait
1434         for a command to complete. If there is no timeout specified in
1435         the script then the default is 60 seconds.
1436
1437
1438      abort
1439         abort is a regular expression containing one or more strings to
1440         look for to abort a connection. This is a perl regular
1441         expression and is executed ignoring case.
1442
1443
1444      connect
1445         connect followed by ax25, agw (for Windows users) or telnet and
1446         some type dependent information. In the case of a telnet
1447         connection, there can be up to two parameters.  The first is the
1448         ip address or hostname of the computer you wish to connect to
1449         and the second is the port number you want to use (this can be
1450         left out if it is a normal telnet session).  In the case of an
1451         ax25 session then this would normally be a call to ax25_call or
1452         netrom_call as in the example above. It is your responsibility
1453         to get your node and other ax25 parameters to work before going
1454         down this route!
1455
1456
1457      '  line in a chat type script. The words/phrases normally come in
1458         pairs, either can be empty. Each line reads input from the
1459         connection until it sees the string (or perl regular expression)
1460         contained in the left hand string. If the left hand string is
1461         empty then it doesn't read or wait for anything. The comparison
1462         is done ignoring case.  When the left hand string has found what
1463         it is looking for (if it is) then the right hand string is sent
1464         to the connection.  This process is repeated for every line of
1465         chat script.
1466
1467
1468      client
1469         client starts the connection, put the arguments you would want
1470         here if you were starting the client program manually. You only
1471         need this if the script has a different name to the callsign you
1472         are trying to connect to (i.e. you have a script called other
1473         which actually connects to GB7DJK-1 [instead of a script called
1474         gb7djk-1]).
1475
1476
1477   There are many possible ways to configure the script but here are
1478   three examples, one for a NETRom/AX25 connect, one for AGW engines and
1479   one for tcp/ip.
1480
1481
1482
1483        timeout 60
1484        abort (Busy|Sorry|Fail)
1485        # don't forget to chmod 4775 netrom_call!
1486        connect ax25 /usr/sbin/netrom_call bbs gb7djk g1tlh
1487        # you can leave this out if you call the script 'gb7dxm'
1488        client gb7dxm ax25
1489
1490
1491
1492
1493
1494
1495
1496
1497        timeout 60
1498        abort (Busy|Sorry|Fail)
1499        # this does exactly the same as the previous example
1500        # the '1' is the AGW port number to connect thru for g1tlh
1501        connect agw 1 g1tlh
1502        # you can leave this out if you call the script 'gb7dxm'
1503        client gb7dxm ax25
1504
1505
1506
1507
1508
1509
1510
1511
1512        timeout 15
1513        connect telnet dirkl.tobit.co.uk
1514        # tell GB7DJK-1 that it is connected to GB7DJK
1515        # you can leave this out if you call this script 'gb7djk'
1516        client gb7djk telnet
1517
1518
1519   Both these examples assume that everything is set up properly at the
1520   other end.  You will find other examples in the /spider/examples
1521   directory.
1522
1523
1524   4.7.  Starting the connection
1525
1526   You start the connection, from within a sysop enabled cluster login,
1527   by typing in the word connect followed by a script name like this ....
1528
1529
1530
1531        G0VGS de GB7MBC 13-Dec-1998 2041Z >connect gb7djk-1
1532        connection to GB7DJK-1 started
1533        G0VGS de GB7MBC 13-Dec-1998 2043Z >
1534
1535
1536
1537
1538
1539   This will start a connection using the script called gb7djk-1.  You
1540   can follow the connection by watching the term or console from where
1541   you started cluster.pl.  From version 1.47 onwards, you will need to
1542   set/debug connect first.  You should see something like this ...
1543
1544
1545
1546        <- D G1TLH connect gb7djk-1
1547        -> D G1TLH connection to GB7DJK-1 started
1548        -> D G1TLH G1TLH de GB7DJK 13-Dec-1998 2046Z >
1549        timeout set to 15
1550        CONNECT sort: telnet command: dirkl.tobit.co.uk
1551        CHAT "login" -> "gb7djk"
1552        received "
1553        Red Hat Linux release 5.1 (Manhattan)
1554        Kernel 2.0.35 on an i586
1555        "
1556        received "login: "
1557        sent "gb7djk"
1558        CHAT "word" -> "gb7djk"
1559        received "gb7djk"
1560        received "Password: "
1561        sent "gb7djk"
1562        Connected to GB7DJK-1, starting normal protocol
1563        <- O GB7DJK-1 telnet
1564        -> B GB7DJK-1 0
1565        GB7DJK-1 channel func  state 0 -> init
1566        <- D GB7DJK-1
1567        <- D GB7DJK-1 Last login: Sun Dec 13 17:59:56 from dirk1
1568        <- D GB7DJK-1 PC38^GB7DJK-1^~
1569        <- D GB7DJK-1 PC18^ 1 nodes, 0 local / 1 total users  Max users 0  Uptime
1570        0 00:00^5447^~
1571            etc
1572
1573
1574
1575
1576
1577   With later versions of Spider there is a set/login command for users.
1578   This tells them when a user or node logs in or out.  If you do not add
1579   a line to your scripts after the final line (or before the client line
1580   which should always be last if needed) then the login/logout
1581   information will be sent to users before the login actually completes.
1582   This means if a node is unreachable, it will continue sending logins
1583   and logouts to users even though it is not actually connecting.  To
1584   avoid this use the following line ...
1585   In a script, this might look like ...
1586
1587
1588
1589        timeout 35
1590        abort (Busy|Sorry|Fail)
1591        connect telnet mary 3000
1592
1593
1594
1595
1596
1597   4.8.  Telnet echo
1598
1599   Cluster links in particular suffer greatly from the presence of telnet
1600   echo.  This is caused by the telnet negotiation itself and can create
1601   at worst severe loops.  At best it creates unnecessary bandwidth and
1602   large logfiles!  There are things that can be done to limit this
1603   problem but will not always work dependent on the route taken to
1604   connect.
1605
1606
1607   Telnet echo itself should only be a problem if the connection is being
1608   made to the telnet port (23).  This port uses special rules that
1609   include echo negotiation.  If the connection is to a different port,
1610   such as 7300, this negotiation does not happen and therefore no echo
1611   should be present.
1612
1613
1614   Sometimes it is not possible to make a direct connection to another
1615   node and this can cause problems.  There is a way of trying to
1616   suppress the telnet echo but this will not always work, unfortunately
1617   it is difficult to be more specific.  Here is an example of what I
1618   mean ...
1619
1620
1621
1622        timeout 35
1623        abort (Busy|Sorry|Fail)
1624        connect telnet mary.lancs.ac.uk
1625
1626
1627
1628
1629
1630   So, the first connection is made by Spider.  This is fine as Spider
1631   uses the Net_Telnet script from within perl.  This actually uses TCP
1632   rather than TELNET so no negotiation will be done on the first
1633   connection.  Once connected to mary.lancs.ac.uk, the command is sent
1634   to suppress echo.  Now a telnet is made to a cluster node that is
1635   accepting connections on port 23.  The problem with this link is that
1636   the negotiation is made by the remote machine, therefore you have no
1637   control over it.  The chances are that this link will create echo and
1638   there will be no way you can stop it.
1639
1640
1641
1642   4.9.  Autostarting the cluster
1643
1644   Ok, you should now have DXSpider running nicely and allowing connects
1645   by cluster nodes or users.  However, it has to be shutdown and
1646   restarted manually.  It would be much easier to have it start
1647   automatically.
1648
1649
1650
1651   This is not only a way to start the cluster automatically, it also
1652   works as a watchdog, checking the sanity of DXSpider and respawning it
1653   should it crash for any reason.  Before doing the following, shutdown
1654   the cluster as you did earlier.
1655
1656
1657   Login as root and bring up the /etc/inittab file in your favourite
1658   editor.  Add the following lines to the file near the end ...
1659
1660
1661
1662        ##Start DXSpider on bootup and respawn it should it crash
1663        DX:3:respawn:/bin/su -c "/usr/bin/perl -w /spider/perl/cluster.pl" sysop >/dev/tty7
1664
1665
1666
1667
1668
1669   This line works fine for RedHat distributions. It is also fine for
1670   SuSE up to 7.0.  From Suse 7.1 you need to add runlevels 2 and 5 like
1671   this ...
1672
1673
1674
1675        DX:235:respawn:/bin/su -c "/usr/bin/perl -w /spider/perl/cluster.pl" sysop >/dev/tty7
1676
1677
1678
1679
1680
1681   The line required for Slackware distributions is slightly different.
1682   My thanks to Aurelio, PA3EZL for this information.
1683
1684
1685
1686        DX:23:respawn:/bin/su - sysop -c "/usr/bin/perl -w /spider/perl/cluster.pl" >/dev/tty7
1687
1688
1689
1690
1691
1692   This will automatically start DXSpider on tty7 (ALT-F7) on bootup and
1693   restart it should it crash for any reason.
1694
1695
1696   As root type the command telinit q.  DXSpider should start up
1697   immediately.  You will see the output on tty7 and if you login as
1698   sysop you should find everything running nicely.
1699
1700
1701   5.  Microsoft Windows Installation
1702
1703   5.1.  Introduction
1704
1705   IMPORTANT:
1706
1707   What you'll be left with once you've followed these instructions is
1708   (hopefully) a working DX Spider v1.47 system that is capable of
1709   accepting or originating "internet" connections, plus inbound AX.25
1710   and TCP/IP radio connections. If the absence of outbound radio
1711   connections is a serious limitation for you, it would be better for
1712   you to wait a couple more weeks until this support has been added.
1713
1714   On the other hand, you may have an enquiring mind, or better yet, may
1715   be looking for a useful way of connecting your current (perhaps) AK1A
1716   cluster "to the internet" via some networking mechanism (BPQEther,
1717   etc) or other. I won't be producing instructions for the latter case,
1718   because I don't have an AK1A to play with. But someone might ...
1719
1720   Whatever, this document is intended to get you started with DX Spider
1721   in a Microsoft Windows (TM) environment. It's not intended to teach
1722   you anything other than how to perform a minimum configuration of a DX
1723   Spider installation and have it able to connect across "the internet"
1724   to other DX Clusters, while accepting inbound TELNET and radio
1725   connections.
1726
1727
1728   5.2.  The requirements
1729
1730   The very first things you're going to need are (in order of
1731   importance):-
1732
1733
1734   o  A cup of good, strong tea
1735
1736   o  A supported Windows platform with an internet connection so you can
1737      download the necessary software bits and bobs directly to it. There
1738      are other ways, but this is preferable.
1739
1740   o  Another cup of good, strong tea
1741
1742   o  If all goes according to plan, about an hour to spare
1743
1744   o  Plenty of good, strong tea
1745
1746
1747   5.3.  The system
1748
1749   The platform I used to generate these instructions was a "vanilla"
1750   Microsoft Windows Me 4.90.3000 system, with a 700MHz AMD Athlon
1751   processor and 96 Mb memory. I've also personally verified that it runs
1752   on my laptop (Pentium 266MHz, 32 Mb memory, Windows 98 SE v4.10.2222
1753   A) and a computer that I assembled from a random pile of junk (AMD
1754   K6-2 333MHz, 64 Mb memory, Windows 98 v4.10.1998). As a result, I have
1755   reason to believe that what I'm about to describe will perform equally
1756   on any 32-bit MS Windows environment with 32 Mb of memory.
1757
1758   Because of the changes that have recently been made to the core
1759   "cluster.pl" module and the introduction of a very lightweight
1760   "winclient.pl", I have a sneaking suspicion that this will now run on
1761   any platform that has reasonably complete support for Perl. Is there
1762   someone out there with both an enquiring mind and (say) a Macintosh,
1763   for instance?
1764
1765   Please bear in mind, though, that my instructions relate solely to how
1766   to get this going under a Microsoft Windows environment, and I have
1767   zero intention of trying to make them say otherwise.
1768
1769
1770   5.4.  Perl
1771
1772   Install your chosen Perl environment. Unless you have a very good
1773   reason for not doing so, I strongly suggest that you use ActivePerl
1774   v5.6. For my testing & development, I used build 623.  You can get
1775   this from:-
1776   http://www.activestate.com/Products/ActivePerl/Download.html
1777
1778   You will need to choose either the MSI or the AS package. My
1779   recommendation is that you choose the MSI package and deal with the
1780   consequences if your system isn't equipped with support for the latest
1781   MS Installer; you'll be better off in the long run.  The build 623
1782   download is 7,460 KB, so now is a really good time to have some tea if
1783   you're on a slow dial-up connection.
1784
1785   During installation, please ensure that you do choose the options to
1786   "Add Perl to the PATH environment variable" and "Create Perl file
1787   extension association"; it will make your life so much easier. Once
1788   the installation is finished, be sure to reboot your PC. You probably
1789   won't be told anywhere else that this needs to be done now, but it
1790   does. Really.
1791
1792   Once you've rebooted, open a "DOS box" (Start > Run > command might do
1793   it, if you can't find it elsewhere) and from wherever it lands, type
1794   PERL -v <ENTER> (it's better if that's a lower-case be rewarded with
1795   some interesting information about your Perl installation. If you're
1796   not, you must go back to the beginning and discover what went wrong
1797   and fix it. It's pointless to proceed unless this simple check is
1798   passed. Assuming it did work, you may now move on.
1799
1800
1801   5.5.  Additional packages
1802
1803   Some extensions ("packages") need to be added to the base Perl
1804   distribution, and we'll do this next. If you're using the Perl I
1805   recommended, and don't know any better for yourself, then just blindly
1806   following these instructions will work just fine. If that didn't
1807   describe you, then you're on your own.
1808
1809   Visit the following URL:
1810
1811   http://www.activestate.com/PPMPackages/zips/6xx-builds-only/
1812
1813   and download the following files:-
1814
1815
1816
1817        Data-Dumper.zip
1818        Net-Telnet.zip
1819        TimeDate.zip
1820        Time-HiRes.zip
1821        DB_File.zip
1822
1823
1824
1825
1826   Make yourself a convenient directory to unpack all of these zip files
1827   into (I put mine in "D:\ppm>") and do the following (the bits you type
1828   in are blue ). Note that where these files land will be directly
1829   related to where you chose to install your ActivePerl (mine, as you
1830   can probably guess from what follows, went into "D:\Perl"):-
1831
1832
1833
1834        D:\ppm>ppm install Data-Dumper.ppd
1835        Installing package 'Data-Dumper.ppd'
1836        Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.bs
1837        Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.dll
1838        Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.exp
1839        Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.lib
1840        Installing D:\Perl\html\site\lib\auto\Data\Dumper\Dumper.html
1841        Installing D:\Perl\site\lib\Data\Dumper\Dumper.pm
1842        Writing D:\Perl\site\lib\auto\Data\Dumper\Dumper.packlist
1843        D:\ppm>
1844
1845
1846
1847
1848
1849   I'm not going to bother you with exhaustive details of the rest of
1850   them, but suffice it to say you need to:
1851
1852
1853
1854        ppm install DB_File.ppd
1855        ppm install Net-Telnet.ppd
1856        ppm install TimeDate.ppd
1857        ppm install Time-HiRes.ppd
1858
1859
1860
1861
1862   If all that seemed to work OK, time to move along. Before anyone who
1863   is familiar with PPM tells me that we didn't need to download and keep
1864   those files locally, I knew that. I also knew that PPM is sometimes
1865   awkward to configure via firewalls, and that sometimes the
1866   repositories don't always work the way we'd hope. I do it that way
1867   because it suits me.
1868
1869
1870   5.6.  Getting Spider
1871
1872   Get the current version of the DX Spider distribution. This needs to
1873   be v1.47 or later. You've got two ways (currently) of getting this;
1874   either get a CVS update from sourceforge (if you don't know what this
1875   is, then it isn't for you) or get the latest "official" release from:-
1876
1877   http://www.dxcluster.org/download/index.html
1878
1879   or if you want the lastest snapshot of CVS version (which is produced
1880   every night):-
1881
1882   http://www.dxcluster.org/download/CVSlatest.tgz
1883
1884   This is generally the best one to go for as it is completely up to
1885   date. However, there is always the very slight chance that it might
1886   unstable. Generally, there will be a note on the website if this is
1887   the case.
1888
1889
1890   The only difference between "CVSlatest.tgz" and the latest "official"
1891   release version is that it is more up to date. Don't confuse this TGZ
1892   file with "Downloading from Sourceforge with CVS" - they are two quite
1893   different things.
1894
1895
1896   If you went down the CVS route (ie installed wincvs and downloaded
1897   from sourceforge), then everything will be nicely set out on your
1898   local disk. If you got the TGZ file, unpack it to somewhere
1899   convenient. The following examples assume that you put it on drive
1900   "C:\", for convenience.
1901
1902
1903   You will need winzip to manipulate the TGZ files (they are bit like
1904   ZIP files) if you are not using CVS.
1905
1906
1907   6.  Installing the software
1908
1909   Ensure that your CVS session or your WINunZIPped file have left you
1910   with a directory "C:\spider\local" and C:\spider\local_cmd"; if not,
1911   go to "C:\spider\" and create them. If "C:\spider" is missing, go back
1912   and figure out why, because it shouldn't be.
1913
1914
1915   Now create your own local copy of the DXVars.pm file by:-
1916
1917
1918
1919        copy c:\spider\perl\DXVars.pm.issue
1920        c:\spider\local\DXVars.pm
1921
1922
1923
1924
1925   Now you'll need to edit this file using a text editor. If nothing
1926   else, you can simply
1927
1928
1929
1930        cd \spider\local
1931
1932
1933
1934
1935   and then
1936
1937
1938
1939        notepad DXVars.pm
1940
1941
1942
1943
1944   to bring up an editor window containing the file. As an absolute
1945   minimum you must adjust the following items in DXVars.pm:-
1946
1947
1948   o  $mycall  - Should hold the callsign of your DX Cluster
1949
1950   o  $myname  - The SysOp's first name
1951
1952   o  $myalias - the SysOp's callsign. Cannot be the same as $mycall!
1953
1954   o  $myqth - The station's geographical location (QTH).
1955
1956   o  $mylatitude - The station latitude in degrees and decimal fractions
1957
1958   o  $mylongitude - The station longitude in degrees and decimal
1959      fractions
1960
1961   o  $mylocator - The Maidenhead (or QRA) locator of the station
1962
1963   You really also ought to update the $myqth and $myemail variables. And
1964   unless you are absolutely certain you know what you're doing, you
1965   should change nothing else in this file. Note that if you use an "@"
1966   or a "$" character in one of the above strings (typically in $myemail)
1967   you must write them as "\@" or "\$".
1968
1969
1970
1971   6.1.  Incoming telnets
1972
1973   If you want to enable inbound "TELNET" connections (or you are running
1974   Windows NT, 2000 or XP), you've got a little more work to do. From a
1975   handy "DOS box" that's not doing anything else, do the following:-
1976
1977
1978
1979
1980
1981   copy \spider\perl\Listeners.pm \spider\local
1982   cd \spider\local
1983   notepad listeners.pm
1984
1985
1986
1987
1988   The following lines need attention:-
1989
1990
1991
1992        ["0.0.0.0", 7300],
1993
1994
1995
1996
1997   On my machine, I've simply uncommented the "0.0.0.0" entry by removing
1998   the '#' from the front of the line.
1999
2000   You MUST carry out this step if you are running on a Windows NT, 2000
2001   or XP based system
2002
2003   If you don't have a static hostname for your machine, and you intend
2004   to allow folk to connect to your machine across the internet, then I'd
2005   suggest you pay a visit to www.dyndns.org and create one for yourself.
2006   While it's free, it will take a modest an amount of effort on your
2007   part to read, understand and implement what needs to be done to set
2008   this up.
2009
2010
2011   If your machine is connected to the internet and you don't want to
2012   allow your machine to be visible to the outside world you should
2013   change the "0.0.0.0" to "127.0.0.1" [which is "localhost"]. This will
2014   then only allow connections from inside your machine. As was said
2015   earlier: if you aren't running Win9x (or you want to use DXTelnet or
2016   somesuch), then you need to have the machine listening at least to
2017   "127.0.0.1" ("0.0.0.0" means all IP addresses).
2018
2019
2020   6.2.  The AGW packet engine
2021
2022   On the assumption that you'll be using the SV2AGW Packet Engine to
2023   interface your radios to the cluster, you should now create your own
2024   local copy of AGWConnect.pm by:-
2025
2026
2027
2028        copy c:\spider\perl\AGWConnect.pm
2029        c:\spider\local\AGWConnect.pm
2030
2031
2032
2033
2034   and then
2035
2036
2037
2038        notepad AGWConnect.pm
2039
2040
2041
2042
2043   to bring up an editor window containing the file. You must consider
2044   adjusting the following items in AGWConnect.pm:-
2045
2046
2047   o  $enable - set to '1' to enable AGWPE interface
2048
2049   o  $login  - the login ID you chose when you set up the SV2AGW
2050      security :-)
2051
2052   o  $passwd - password that matches $login
2053
2054
2055   6.3.  Setting up the initial user files
2056
2057   Next you need to create the initial user files, etc. A tool is
2058   supplied which will do this for you. To run the tool:-
2059
2060
2061
2062        cd \spider\perl
2063        perl create_sysop.pl
2064
2065
2066
2067
2068   If all goes according to plan, you will see no output from this
2069   program, and after a brief wait, your DOS prompt will be returned.
2070
2071   Depending on how brave you are, you might now care to try the
2072   following:-
2073
2074
2075
2076        perl cluster.pl
2077
2078
2079
2080
2081   If you did everything you were told, your DOS window will now hold a
2082   display which looks something like:-
2083
2084
2085
2086        DXSpider DX Cluster Version 1.47
2087        Copyright (c) 1998-2001 Dirk Koopman G1TLH
2088        loading prefixes ...
2089        loading band data ...
2090        loading user file system ...
2091        starting listeners ...
2092        Internal port: localhost 27754
2093        load badwords: Ok
2094        reading in duplicate spot and WWV info ...
2095        reading existing message headers ...
2096        load badmsg: Ok
2097        load forward: Ok
2098        load swop: Ok
2099        @msg = 0 before delete
2100        @msg = 0 after delete
2101        reading cron jobs ...v cron: reading /spider/cmd/crontab
2102        cron: adding 1 0 * * 0
2103        DXUser::export("$main::data/user_asc")
2104        reading database descriptors ...
2105        doing local initialisation ...
2106        orft we jolly well go ...
2107        queue msg (0)
2108
2109
2110
2111
2112
2113   Now, if that's what you've got, you are very nearly home and dry (in
2114   as far as these particular experiments are concerned, anyhow)
2115
2116   If you are running Windows 9x you can access your new cluster (from
2117   the local machine) by finding yourself another "DOS box" and doing the
2118   following:-
2119
2120
2121
2122        cd \spider\perl
2123        perl winclient.pl
2124
2125
2126
2127
2128   If you are running Windows NT, 2000 or XP then winclient.pl does not
2129   work. We don't know why other than this seems to be some kind of
2130   incomaptibility in perl. You can achieve the same thing by telnetting
2131   to the port you defined in Listeners.pm (7300 as default), thus:-
2132
2133
2134
2135        Menu->Start->Run
2136        telnet localhost 7300
2137
2138
2139
2140
2141   On getting the login: prompt, enter your sysop callsign (the one you
2142   put in DXVars.pm as $myalias).
2143
2144
2145   I would recommend strongly that you obtain a better telnet client than
2146   that which comes with windows (I use PuTTY).
2147
2148
2149   Anyway, if you are rewarded with a display which looks something
2150   like:-
2151
2152
2153
2154        Hello Iain, this is GB7SJP in Amersham, Bucks running DXSpider V1.47
2155        Cluster: 1 nodes, 1 local / 1 total users Max users 2 Uptime 0 00:00
2156        M0ADI de GB7SJP 4-Mar-2001 1511Z >
2157
2158
2159
2160
2161   You've arrived. Try some commands, and see how they feel. (In case you
2162   were wondering, "Iain", "M0ADI" and "GB7SJP" all came from the version
2163   of DXVars.pm that was on the machine when I started the winclient.pl)
2164
2165
2166   The interface is very basic. It is a simple command line. There are
2167   better looking interfaces. Most of the "standard" logging and DX
2168   Cluster access programs that are capable of connecting via a TCP or
2169   telnet connection will work as a "Sysop Console" client. You connect
2170   to "localhost" on the port that you defined in Listeners.pm (usually
2171   7300). I recommend packages like DXTelnet.
2172
2173
2174   6.4.  Connecting to other clusters
2175
2176   If you want to connect this to another cluster, then you'll want to
2177   negotiate a link with someone. For experimental purposes, I'm happy to
2178   allow folk to connect to GB7DXA (spud.ath.cx), on the understanding
2179   that the system may or may not be there and may or may not be
2180   connected to anything particularly useful at any given moment. Contact
2181   me by Email if you want me to set up a connection for you.
2182
2183
2184   7.  General Information
2185
2186   The following relates to all versions of DXSpider and is not platform
2187   related.
2188
2189
2190   7.1.  The crontab file
2191
2192   Login as sysop and create a file in /spider/local_cmd called crontab.
2193   Edit it with your favourite editor and add a line like this (I have
2194   included a comment)
2195
2196
2197
2198        # check every 10 minutes to see if gb7xxx is connected and if not
2199        # start a connect job going
2200
2201        0,10,20,30,40,50 * * * * start_connect('gb7xxx') unless connected('gb7xxx')
2202
2203
2204
2205
2206
2207   The callsign involved will be the callsign of the cluster node you are
2208   going to connect to.  This will now check every 10 minutes to see if
2209   gb7xxx is connected, if it is then nothing will be done.  If it is
2210   not, then a connect attempt will be started.
2211
2212
2213   There are probably lots of other things you could use this crontab
2214   file for.  If you want to know more about it, look at the DXSpider
2215   website at the cron page where it is explained more fully.
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244