1 <!doctype linuxdoc system>
5 <!-- Title information -->
7 <title>The DXSpider Installation Manual v1.49</title>
8 <author>Iain Philipps, G0RDI (g0rdi@77hz.com) and
9 Ian Maude, G0VGS, (ianmaude@btinternet.com)</author>
10 <date>November 2001 revision 1.0</date>
13 A reference for SysOps of the DXSpider DXCluster program.
16 <!-- Table of contents -->
19 <!-- Begin the document -->
21 <sect>Linux Installation
26 This section describes the installation of DX Spider v1.47 on a
27 <htmlurl url="http://www.redhat.com" name="RedHat"> Linux Distribution.
28 Wherever possible I will try to include differences for other distributions.
29 I do not intend to try and cover the installation of Linux or the setup
30 of the AX25 utilities. If you need help on this then read Iains original
31 installation guide that comes with the Spider distribution.
34 I am assuming a general knowledge of Linux and its commands. You should
35 know how to use <em>tar</em> and how to edit files using your favourite editor.
38 The crucial ingredient for all of this is
39 <htmlurl url="http://www.perl.org" name="Perl">. Earlier versions of
40 Spider required perl 5.004, however it is now <it>STRONGLY</it> recommended
41 that you use at least version 5.005_03 as this is the version being used
42 in the development of Spider.
44 <P>In addition to the standard Red Hat distribution you will require the
45 following modules from <htmlurl url="http://www.cpan.org/CPAN.html" name="http://www.cpan.org/CPAN.html"> ...
49 <item> <htmlurl url="http://www.cpan.org/modules/by-module/Data/Data-Dumper-2.10.tar.gz" name="Data-Dumper-2.10.tar.gz">
50 <item> <htmlurl url="http://www.cpan.org/modules/by-module/Date/TimeDate-1.10.tar.gz" name="TimeDate-1.10.tar.gz">
51 <item> <htmlurl url="http://www.cpan.org/modules/by-module/IO/IO-1.20.tar.gz" name="IO-1.20.tar.gz (for perl 5.00403 and lower)">
52 <item> <htmlurl url="http://www.cpan.org/modules/by-module/Net/Net-Telnet-3.02.tar.gz" name="Net-Telnet-3.02.tar.gz">
53 <item> <htmlurl url="http://www.cpan.org/modules/by-module/Curses/Curses-1.06.tar.gz" name="Curses-1.06.tar.gz">
54 <item> <htmlurl url="http://www.cpan.org/modules/by-module/Time/Time-HiRes-01.20.tar.gz" name="Time-HiRes-01.20.tar.gz">
58 Copy the CPAN modules listed above to a convenient place on your computer. One good place would be /usr/local/packages, and the instructions which follow will assume that that's where you have put them.
61 Log in as 'root', and make sure you're at '/root' before you continue. Here are exactly the commands you must issue next: -
64 # tar xvfz /usr/local/packages/Data-Dumper-2.10.tar.gz
71 # tar xvfz /usr/local/packages/TimeDate-1.10.tar.gz
78 # tar xvfz /usr/local/packages/IO-1.20.tar.gz
82 # make install UNINST=1
85 # tar xvfz /usr/local/packages/Net-Telnet-3.02.tar.gz
92 # tar xvfz /usr/local/packages/Curses-1.06.tar.gz
99 # tar xvfz /usr/local/packages/Time-HiRes-01.20.tar.gz
100 # cd Time-HiRes-01.20
108 Do not fall into the trap of thinking they're all the same, just because they nearly are! Pay particular attention to the instructions of IO, above.
114 I will assume that you have already downloaded the latest tarball of
115 the DXSpider software and are ready to install it. I am assuming version
116 1.47 for this section but of course you would use the latest version.
119 Login as root and create a user to run the cluster under. <bf><it>UNDER
120 NO CIRCUMSTANCES USE ROOT AS THIS USER!</it></bf>. I am going to use
121 the name <em>sysop</em>. You can call it anything you wish. Depending
122 on your security requirements you may wish to use an existing user,
123 however this is your own choice.
130 For SUSE distributions, the command would be ..
137 Now set a password for the user ...
142 # Retype new UNIX password:
143 passwd: all authentication tokens updated successfully
146 <sect1>Installing the software
149 Now to unpack the DX Spider distribution, set symbolic links and group
150 permissions. Copy the tarball to /home/sysop and do the following.
154 # tar xvfz spider-1.47.tar.gz
155 # ln -s ~sysop/spider /spider
156 # groupadd -g 251 spider (or another number)
159 If you do not have the command <em>groupadd</em> available to you simply
160 add a line in /etc/group by hand.
163 # vi /etc/group (or your favorite editor)
166 You also need to add some others to the group, including your own callsign
167 (this will be used as an alias) and root. The finished line in /etc/group
168 should look something like this
171 spider:x:251:sysop,g0vgs,root
175 The next step is to set the permissions on the Spider directory tree and files ....
178 # chown -R sysop.spider spider
179 # find . -type d -exec chmod 2775 {} \;
180 # find . -type f -exec chmod 775 {} \;
184 This last step allows various users of the group <em>spider</em> to have
185 write access to all the directories. This is not really needed just yet
186 but will be useful when web interfaces start to appear.
189 Finally, you need to fix the permissions on the ax25_call and netrom_call
190 programs. Check where they are with the <em>locate</em> command and alter
191 the permissions with the <em>chmod</em> command like this ..
194 # chown root ax25_call netrom_call
195 # chmod 4775 ax25_call netrom_call
198 <sect1>Setting callsigns etc
201 Now login to your machine as the user you created earlier. In my case that
202 user is called <em>sysop</em>. Once logged in, issue the following commands ....
208 $ cp perl/DXVars.pm.issue local/DXVars.pm
210 $ vi DXVars.pm (or your favourite editor)
214 Using the distributed DXVars.pm as a a template, set your cluster callsign,
215 sysop callsign and other user info to suit your own environment. Note that
216 this a perl file which will be parsed and executed as part of the cluster. If
217 you get it wrong then perl will complain when you start the cluster process.
218 It is important only to alter the text of any section. Some of the lines look
219 a little odd. Take this line for example ....
222 $myemail = "ianmaude\@btinternet.com";
226 There appears to be an extra slash in there. However this has to be there
227 for the file to work so leave it in.
229 <P><bf>PLEASE USE CAPITAL LETTERS FOR CALLSIGNS</bf>
232 DON'T alter any file in /spider/perl, they are overwritten with every
233 release. Any files or commands you place in /spider/local or /spider/local_cmd
234 will automagically be used in preference to the ones in /spider/perl EVEN
235 while the cluster is running!
238 Save the new file and change directory to ../perl ....
245 Now type the following command which creates the basic user file with you as
252 <sect1>The client program
255 In earlier versions of Spider, all the processes were Perl scripts. This
256 was fine but with a lot of users your computer memory would soon be used up.
257 To combat this a new client was written in "C". This client only works for
258 <em>incoming</em> connects at the moment. Before you can use it though it
259 has to be "made". CD to /spider/src and type <em>make</em>. You
260 should see the output on your screen and hopefully now have a small C program
261 called <em>client</em>. Leave it in this directory.
264 <sect1>Starting up for the first time
267 We can now bring spider up for the first time and see if all is well or not!
268 It should look something like this ...
272 DXSpider DX Cluster Version 1.47
273 Copyright (c) 1998 Dirk Koopman G1TLH
275 loading band data ...
276 loading user file system ...
277 starting listener ...
278 reading existing message headers
280 orft we jolly well go ...
284 If all is well then login on another term or console as <em>sysop</em> and
285 cd to /spider/src. Now issue the following command ...
292 This should log you into the cluster as the sysop under the alias callsign we
293 set earlier. In this case the callsign is G0VGS. The cluster callsign is set
294 in the DXVars.pm file in /spider/local. In this case we will assume that this
295 was set as GB7MBC. You should therefore see this when you login ....
298 G0VGS de GB7MBC 19-Nov-1999 2150Z >
301 If you do, congratulations! If not, look over the instructions again, you
302 have probably missed something out. You can shut spider down again with the
310 and both the cluster and the client should return to Linux prompts.
313 <sect>Linux quick installation guide
316 This section is designed for experienced Spider sysops who want to install
317 Spider from scratch. It is simply a check list of things that need to be
318 done without any explanations. The name in brackets at the end of each line
319 is the user that should be doing that process.
323 <item>Get the additional CPAN modules and install them (root)
324 <item>Create the "sysop" user and set a password (root)
325 <item>Put the Spider tarball in ~sysop and untar it (root)
326 <item>ln -s ~sysop/spider /spider (root)
327 <item>groupadd -g 251 spider (root)
328 <item>Add any more users you need to the group entry in /etc/group (root)
329 <item>Set the permissions on the spider tree (root)
330 <item>Fix permissions on ax25_call and netrom_call (root)
331 <item>Login as the sysop user
332 <item>cd to /spider (sysop)
333 <item>mkdir local (sysop)
334 <item>mkdir local_cmd (sysop)
335 <item>cp perl/DXVars.pm.issue local/DXVars.pm (sysop)
336 <item>cd to /spider/local and edit DXVars to set your details (sysop)
337 <item>cd ../perl (sysop)
338 <item>./create_sysop.pl (sysop)
339 <item>./cluster.pl (sysop)
342 Spider should now be running and you should be able to login using the
347 <item>Enter the correct line in ax25d.conf (root)
348 <item>Enter the correct line in /etc/services (root)
349 <item>Enter the correct line in /etc/inetd.conf (root)
350 <item>killall -HUP inetd (root)
353 Spider should now be able to accept logins via telnet, netrom and ax25.
357 <item>Start the cluster (sysop)
358 <item>set/node and type for links (sysop)
359 <item>Write any connect scripts (sysop)
360 <item>Edit /spider/crontab as required (sysop)
361 <item>Edit any other files as necessary (sysop)
362 <item>Set filters, hops and forwarding files (sysop)
364 <item>Enter the correct line in /etc/inittab (root)
369 <sect1>Allowing ax25 connects from users
372 As stated previously, the aim of this document is not to tell you how to
373 configure Linux or the ax25 utilities. However, you do need to add a line
374 in your ax25d.conf to allow connections to DXSpider for your users. For
375 each interface that you wish to allow connections on, use the following format ...
378 default * * * * * * - sysop /spider/src/client client %u ax25
381 or, if you wish your users to be able to use SSID's on their callsigns ..
384 default * * * * * * - sysop /spider/src/client client %s ax25
387 For most purposes this is not desirable. The only time you probably will
388 need this is when you need to allow other cluster nodes that are using SSID's
389 in. In this case it would probably be better to use the first example and
390 then add a specific line for that node like this:
393 GB7DJK-2 * * * * * * - sysop /spider/src/client client gb7djk-2 ax25
394 default * * * * * * - sysop /spider/src/client client %u ax25
397 <sect1>Allowing telnet connects from users
400 From version 1.47 there is a new (more efficient) way of doing this
401 (see next section) but, if you prefer, the method of doing it described
402 here will continue to work just fine.
405 Allowing telnet connections is quite simple. Firstly you need to add a line
406 in /etc/services to allow connections to a port number, like this ....
409 spdlogin 8000/tcp # spider anonymous login port
412 Then add a line in /etc/inetd.conf like this ....
415 spdlogin stream tcp nowait root /usr/sbin/tcpd /spider/src/client login telnet
419 Once this is done, you need to restart inetd like this ....
426 <P>Now login as <em>sysop</em> and cd spider/src. You can test that spider
427 is accepting telnet logins by issuing the following command ....
430 ./client login telnet
433 You should get a login prompt and on issuing a callsign, you will be given
434 access to the cluster. Note, you will not get a password login. There seems
435 no good reason for a password prompt to be given so it is not asked for.
438 Assuming all is well, then try a telnet from your linux console ....
441 telnet localhost 8000
445 You should now get the login prompt and be able to login as before.
447 <sect1>Setting up telnet connects (from 1.47 onwards)
450 From version 1.47 you can choose to allow the perl cluster.pl program to
451 allow connections directly (i.e. not via the <tt>/spider/src/client</tt>
452 interface program). If you are using Windows then this is the only method
453 available of allowing incoming telnet connections.
456 To do this you need first to remove any line that you may previously have set
457 up in /etc/inetd.conf. Remember to:-
464 to make the change happen...
467 Having done that, you need to copy the file
468 <em>/spider/perl/Listeners.pm</em> to <em>/spider/local</em> and
469 then edit it. You will need to uncomment the line containing &dquot;0.0.0.0&dquot;
470 and select the correct port to listen on. So that it looks like this:-
479 As standard, the listener will listen on all interfaces simultaneously.
480 If you require more control than this, you can specify each interface
485 ["gb7baa.dxcluster.net", 8000],
486 ["44.131.16.2", 6300],
491 This will only be successful if the IP addresses on each interface are static.
492 If you are using some kind of dynamic IP addressing then the 'default' method
493 is the only one that will work.
496 Restart the cluster.pl program to enable the listener.
499 One important difference with the internal listener is that no echoing
500 is done by the cluster program. Users will need to set 'local-echo' on in
501 their telnet clients if it isn't set automatically (as per the standards).
502 Needless to say this will probably only apply to Windows users.
504 <sect1>Setting up for AGW Engine (1.47 onwards)
507 AGW Engine is a Windows based ax25 stack. You can connect to an AGW engine
508 from Linux as well as Windows based machines.
511 In order to enable access to an AGW Engine you need to copy
512 <em>/spider/perl/AGWConnect.pm</em> to <em>/spider/local</em> and edit it.
513 Specifically you must:-
516 <item> set <tt>$enable</tt> to 1.
517 <item> set <tt>$login</tt> and <tt>$passwd</tt> to the values set up in your AGW installation.
518 If you haven't set any there, then you should not touch these values.
519 <item> You can connect to a remote AGW engine (ie on some other machine) by changing <tt>$addr</tt>
520 and <tt>$port</tt> appropriately.
521 <item> Restart the cluster.pl program
525 <sect1>Setting up node connects
528 In order to allow cluster node connections, spider needs to know that the
529 connecting callsign is a cluster node. This is the case whether the connect
530 is incoming or outgoing. In spider this is a simple task and can be done in
534 Later versions of Spider can distinguish different software and treat them
535 differently. For example, the WCY beacon cannot be handles by AK1A type
536 nodes as AK1A does not know what to do with PC73. There are 4 different
537 types of node at present and although they may not have any major
538 differences at the moment, it allows for compatibility. The 4 types are ...
548 For now, we will assume that the cluster we are going to connect to is an
552 Start up the cluster as you did before and login as the sysop with client.
553 The cluster node I am wanting to make a connection to is GB7BAA but you would
554 obviously use whatever callsign you required. At the prompt type ...
561 The case does not matter as long as you have a version of DXSpider later than
562 1.33. Earlier versions required the callsign to be in upper case.
565 That is now set, it is as simple as that. To prove it, login on yet another
566 console as sysop, cd to spider/src and issue the command ...
569 ./client gb7baa (using the callsign you set as a node)
573 You should get an initialisation string from DXSpider like this ...
580 If the callsign you just set up as a cluster node is for an incoming connect,
581 this is all that needs to be done. If the connection is to be outgoing then
582 a connection script needs to be written.
585 Sometimes you make a mistake... Honest, it does happen. If you want to make a node
586 back to being a normal user, regardless
587 of what type it is, do:
593 <sect1>Connection scripts
596 Because DXSpider operates under Linux, connections can be made using just about
597 any protocol; AX25, NETRom, tcp/ip, ROSE etc are all possible examples.
598 Connect scripts live in the /spider/connect directory and are simple ascii files.
599 Writing a script for connections is therefore relatively simple.
602 The connect scripts consist of lines which start with the following keywords
607 <tag/#/All lines starting with a <tt>#</tt> are ignored, as are completely
610 <tag/timeout/<tt>timeout</tt> followed by a number is the number of seconds to wait for a
611 command to complete. If there is no timeout specified in the script
612 then the default is 60 seconds.
614 <tag/abort/ <tt>abort</tt> is a regular expression containing one or more strings to look
615 for to abort a connection. This is a perl regular expression and is
616 executed ignoring case.
618 <tag/connect/<tt>connect</tt> followed by ax25, agw (for Windows users) or telnet and some type dependent
619 information. In the case of a telnet connection, there can be up to
621 The first is the ip address or hostname of the computer you wish to
622 connect to and the second is the port number you want to use (this
623 can be left out if it is a normal telnet session).
624 In the case of an ax25 session then this would normally be a call to
625 ax25_call or netrom_call as in the example above. It is your
626 responsibility to get your node and other ax25 parameters to work
627 before going down this route!
629 <tag/'/<tt>'</tt> is the delimiting character for a word or phrase of an expect/send
630 line in a chat type script. The words/phrases normally come in pairs,
631 either can be empty. Each line reads input from the connection until
632 it sees the string (or perl regular expression) contained in the
633 left hand string. If the left hand string is empty then it doesn't
634 read or wait for anything. The comparison is done ignoring case.
635 When the left hand string has found what it is looking for (if it is)
636 then the right hand string is sent to the connection.
637 This process is repeated for every line of chat script.
639 <tag/client/<tt>client</tt> starts the connection, put the arguments you would want here
640 if you were starting the client program manually. You only need this
641 if the script has a different name to the callsign you are trying to
642 connect to (i.e. you have a script called other which actually
643 connects to GB7DJK-1 [instead of a script called gb7djk-1]).
647 There are many possible ways to configure the script but here are three examples,
648 one for a NETRom/AX25 connect, one for AGW engines and one for tcp/ip.
652 abort (Busy|Sorry|Fail)
653 # don't forget to chmod 4775 netrom_call!
654 connect ax25 /usr/sbin/netrom_call bbs gb7djk g1tlh
658 # you can leave this out if you call the script 'gb7dxm'
666 abort (Busy|Sorry|Fail)
667 # this does exactly the same as the previous example
668 # the '1' is the AGW port number to connect thru for g1tlh
673 # you can leave this out if you call the script 'gb7dxm'
681 connect telnet dirkl.tobit.co.uk
684 # tell GB7DJK-1 that it is connected to GB7DJK
685 # you can leave this out if you call this script 'gb7djk'
690 Both these examples assume that everything is set up properly at the other end.
691 You will find other examples in the /spider/examples directory.
693 <sect1>Starting the connection
696 You start the connection, from within a sysop enabled cluster login, by typing
697 in the word <em>connect</em> followed by a script name like this ....
700 G0VGS de GB7MBC 13-Dec-1998 2041Z >connect gb7djk-1
701 connection to GB7DJK-1 started
702 G0VGS de GB7MBC 13-Dec-1998 2043Z >
705 This will start a connection using the script called <em>gb7djk-1</em>. You can
706 follow the connection by watching the term or console from where you started
707 <em>cluster.pl</em>. From version 1.47 onwards, you will need to <tt>set/debug connect</tt> first.
708 You should see something like this ...
711 <- D G1TLH connect gb7djk-1
712 -> D G1TLH connection to GB7DJK-1 started
713 -> D G1TLH G1TLH de GB7DJK 13-Dec-1998 2046Z >
715 CONNECT sort: telnet command: dirkl.tobit.co.uk
716 CHAT "login" -> "gb7djk"
718 Red Hat Linux release 5.1 (Manhattan)
719 Kernel 2.0.35 on an i586
723 CHAT "word" -> "gb7djk"
725 received "Password: "
727 Connected to GB7DJK-1, starting normal protocol
730 GB7DJK-1 channel func state 0 -> init
732 <- D GB7DJK-1 Last login: Sun Dec 13 17:59:56 from dirk1
733 <- D GB7DJK-1 PC38^GB7DJK-1^~
734 <- D GB7DJK-1 PC18^ 1 nodes, 0 local / 1 total users Max users 0 Uptime
741 With later versions of Spider there is a set/login command for users. This
742 tells them when a user or node logs in or out. If you do not add a line to
743 your scripts after the final line (or before the client line which should always
744 be last if needed) then the login/logout information will be sent to users
745 <it>before</it> the login actually completes. This means if a node is
746 unreachable, it will continue sending logins and logouts to users even though it
747 is not actually connecting. To avoid this use the following line ...
754 In a script, this might look like ...
758 abort (Busy|Sorry|Fail)
759 connect telnet mary 3000
761 '>' 'telnet 44.131.93.96 7305'
768 Cluster links in particular suffer greatly from the presence of telnet echo.
769 This is caused by the telnet negotiation itself and can create at worst severe
770 loops. At best it creates unnecessary bandwidth and large logfiles! There are
771 things that can be done to limit this problem but will not always work dependent
772 on the route taken to connect.
775 Telnet echo itself should only be a problem if the connection is being made to
776 the telnet port (23). This port uses special rules that include echo negotiation.
777 If the connection is to a different port, such as 7300, this negotiation does
778 not happen and therefore no echo should be present.
781 Sometimes it is not possible to make a direct connection to another node and this
782 can cause problems. There is a way of trying to suppress the telnet echo but
783 this will not always work, unfortunately it is difficult to be more specific.
784 Here is an example of what I mean ...
788 abort (Busy|Sorry|Fail)
789 connect telnet mary.lancs.ac.uk
792 '\$' 'stty -echo raw'
793 '\$' 'telnet 44.131.93.96'
797 So, the first connection is made by Spider. This is fine as Spider uses the
798 Net_Telnet script from within perl. This actually uses TCP rather than TELNET
799 so no negotiation will be done on the first connection. Once connected to
800 mary.lancs.ac.uk, the command is sent to suppress echo. Now a telnet is made
801 to a cluster node that is accepting connections on port 23. The problem with
802 this link is that the negotiation is made by the remote machine, therefore you
803 have no control over it. The chances are that this link will create echo and
804 there will be no way you can stop it.
807 <sect1>Autostarting the cluster
810 Ok, you should now have DXSpider running nicely and allowing connects by cluster
811 nodes or users. However, it has to be shutdown and restarted manually. It
812 would be much easier to have it start automatically.
815 This is not only a way to start the cluster automatically, it also works as a
816 watchdog, checking the sanity of DXSpider and respawning it should it crash for
817 any reason. Before doing the following, shutdown the cluster as you did earlier.
820 Login as root and bring up the /etc/inittab file in your favourite editor. Add
821 the following lines to the file near the end ...
824 ##Start DXSpider on bootup and respawn it should it crash
825 DX:3:respawn:/bin/su -c "/usr/bin/perl -w /spider/perl/cluster.pl" sysop >/dev/tty7
829 This line works fine for RedHat distributions. It is also fine for SuSE up to
830 7.0. From Suse 7.1 you need to add runlevels 2 and 5 like this ...
833 DX:235:respawn:/bin/su -c "/usr/bin/perl -w /spider/perl/cluster.pl" sysop >/dev/tty7
837 The line required for Slackware distributions is slightly different. My thanks to
838 Aurelio, PA3EZL for this information.
841 DX:23:respawn:/bin/su - sysop -c "/usr/bin/perl -w /spider/perl/cluster.pl" >/dev/tty7
845 This will automatically start DXSpider on tty7 (ALT-F7) on bootup and restart
846 it should it crash for any reason.
849 As root type the command <em>telinit q</em>. DXSpider should start up
850 immediately. You will see the output on tty7 and if you login as <em>sysop</em>
851 you should find everything running nicely.
853 <sect>Microsoft Windows Installation
860 What you'll be left with once you've followed these instructions
861 is (hopefully) a working DX Spider v1.47 system that is capable
862 of accepting or originating "internet" connections, plus inbound
863 AX.25 and TCP/IP radio connections. If the absence of outbound
864 radio connections is a serious limitation for you, it would be
865 better for you to wait a couple more weeks until this support has
868 On the other hand, you may have an enquiring mind, or better yet,
869 may be looking for a useful way of connecting your current
870 (perhaps) AK1A cluster "to the internet" via some networking
871 mechanism (BPQEther, etc) or other. I won't be producing
872 instructions for the latter case, because I don't have an AK1A to
873 play with. But someone might ...
875 Whatever, this document is intended to get you started with DX
876 Spider in a Microsoft Windows ™ environment. It's not
877 intended to teach you anything other than how to perform a
878 minimum configuration of a DX Spider installation and have it
879 able to connect across "the internet" to other DX Clusters, while
880 accepting inbound TELNET and radio connections.
882 <sect1>The requirements
885 The very first things you're going to need are (in order of
889 <item>A cup of good, strong tea
890 <item>A supported Windows platform with an internet connection so you can
891 download the necessary software bits and bobs directly to it. There are other ways, but this is preferable.
892 <item>Another cup of good, strong tea
893 <item>If all goes according to plan, about an hour to spare
894 <item>Plenty of good, strong tea
900 The platform I used to generate these instructions was a
901 "vanilla" Microsoft Windows Me 4.90.3000 system, with a 700MHz
902 AMD Athlon processor and 96 Mb memory. I've also personally
903 verified that it runs on my laptop (Pentium 266MHz, 32 Mb memory,
904 Windows 98 SE v4.10.2222 A) and a computer that I assembled from
905 a random pile of junk (AMD K6-2 333MHz, 64 Mb memory, Windows 98
906 v4.10.1998). As a result, I have reason to believe that what I'm
907 about to describe will perform equally on any 32-bit MS Windows
908 environment with 32 Mb of memory.
910 Because of the changes that have recently been made to the core
911 "cluster.pl" module and the introduction of a very lightweight
912 "winclient.pl", I have a sneaking suspicion that this will now
913 run on any platform that has reasonably complete support for
914 Perl. Is there someone out there with both an enquiring mind and
915 (say) a Macintosh, for instance?
917 Please bear in mind, though, that my instructions relate solely
918 to how to get this going under a Microsoft Windows environment,
919 and I have zero intention of trying to make them say otherwise.
924 Install your chosen Perl environment. Unless you have a very good
925 reason for not doing so, I strongly suggest that you use
926 ActivePerl v5.6. For my testing & development, I used build 623.
927 You can get this from:- <htmlurl
928 url="http://www.activestate.com/Products/ActivePerl/Download.html"
929 name="http://www.activestate.com/Products/ActivePerl/Download.html">
931 You will need to choose either the MSI or the AS package. My
932 recommendation is that you choose the MSI package and deal with
933 the consequences if your system isn't equipped with support for
934 the latest MS Installer; you'll be better off in the long run.
935 The build 623 download is 7,460 KB, so now is a really good time
936 to have some tea if you're on a slow dial-up connection.
938 During installation, please ensure that you do choose the options
939 to "Add Perl to the PATH environment variable" and "Create Perl
940 file extension association"; it will make your life so much
941 easier. Once the installation is finished, be sure to reboot your
942 PC. You probably won't be told anywhere else that this needs to
943 be done now, but it does. Really.
945 Once you've rebooted, open a "DOS box" (Start > Run > command
946 might do it, if you can't find it elsewhere) and from wherever it
947 lands, type PERL -v <ENTER> (it's better if that's a lower-case
948 'v', because an upper-case 'V' means something else. You should
949 be rewarded with some interesting information about your Perl
950 installation. If you're not, you must go back to the beginning
951 and discover what went wrong and fix it. It's pointless to
952 proceed unless this simple check is passed. Assuming it did work,
955 <sect1>Additional packages
958 Some extensions ("packages") need to be added to the base Perl
959 distribution, and we'll do this next. If you're using the Perl I
960 recommended, and don't know any better for yourself, then just
961 blindly following these instructions will work just fine. If that
962 didn't describe you, then you're on your own.
964 Visit the following URL:
966 <htmlurl url="http://www.activestate.com/PPMPackages/zips/6xx-builds-only/"
967 name="http://www.activestate.com/PPMPackages/zips/6xx-builds-only/">
969 and download the following files:-
979 Make yourself a convenient directory to unpack all of these zip
980 files into (I put mine in "D:\ppm>") and do the following (the
981 bits you type in are blue ). Note that where these files land
982 will be directly related to where you chose to install your
983 ActivePerl (mine, as you can probably guess from what follows,
984 went into "D:\Perl"):-
987 D:\ppm>ppm install Data-Dumper.ppd
988 Installing package 'Data-Dumper.ppd'
989 Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.bs
990 Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.dll
991 Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.exp
992 Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.lib
993 Installing D:\Perl\html\site\lib\auto\Data\Dumper\Dumper.html
994 Installing D:\Perl\site\lib\Data\Dumper\Dumper.pm
995 Writing D:\Perl\site\lib\auto\Data\Dumper\Dumper.packlist
999 I'm not going to bother you with exhaustive details of the rest
1000 of them, but suffice it to say you need to:
1003 ppm install DB_File.ppd
1004 ppm install Net-Telnet.ppd
1005 ppm install TimeDate.ppd
1006 ppm install Time-HiRes.ppd
1009 If all that seemed to work OK, time to move along. Before anyone
1010 who is familiar with PPM tells me that we didn't need to download
1011 and keep those files locally, I knew that. I also knew that PPM
1012 is sometimes awkward to configure via firewalls, and that
1013 sometimes the repositories don't always work the way we'd hope. I
1014 do it that way because it suits me.
1016 <sect1>Getting Spider
1019 Get the current version of the DX Spider distribution. This needs
1020 to be v1.47 or later. You've got two ways (currently) of getting
1021 this; either get a CVS update from sourceforge (if you don't know
1022 what this is, then it isn't for you) or get my package from:-
1024 <htmlurl url="http://www.dcc.rsgb.org/WinSpider.zip" name="http://www.dcc.rsgb.org/WinSpider.zip">
1026 or if you want the lastest CVS version (which is produced every night)
1028 <htmlurl url="http://www.dxcluster.org/download/CVSlatest.tgz" name="http://www.dxcluster.org/download/CVSlatest.tgz">
1030 If you went down the CVS route, then everything will be nicely
1031 set out on your local disk. If you got the ZIP file, unpack it to
1032 somewhere convenient. The following examples assume that you put
1033 it on drive "C:\", for convenience.
1035 <bf>NOTE:</bf> This distribution method will go away as soon as the first
1036 v1.47 tarball is released. You can use WinZip to unpack that, and
1037 my life will be made easier by not needing to keep this .ZIP file
1040 <sect>Installing the software
1043 Ensure that your CVS session or your unZIPped file have left you
1044 with a directory "C:\spider\local"; if not, go to "C:\spider\"
1045 and create one. If "C:\spider" is missing, go back and figure out
1046 why, because it shouldn't be.
1048 Now create your own local copy of the DXVars.pm file by:-
1051 copy c:\spider\perl\DXVars.pm.issue
1052 c:\spider\local\DXVars.pm
1055 Now you'll need to edit this file using a text editor. If nothing
1056 else, you can simply
1068 to bring up an editor window containing the file. As an absolute
1069 minimum you must adjust the following items in DXVars.pm:-
1072 <item> $mycall - Should hold the callsign of your DX Cluster
1073 <item> $myname - The SysOp's first name
1074 <item> $myalias - the SysOp's callsign. Cannot be the same as $mycall!
1077 You really also ought to update the $mylatitude, $mylongitude,
1078 $myqth and $myemail variables. And unless you are absolutely
1079 certain you know what you're doing, you should change nothing
1082 <sect1>The AGW packet engine
1085 On the assumption that you'll be using the SV2AGW Packet Engine
1086 to interface your radios to the cluster, you should now create
1087 your own local copy of AGWConnect.pm by:-
1090 copy c:\spider\perl\AGWConnect.pm
1091 c:\spider\local\AGWConnect.pm
1097 notepad AGWConnect.pm
1100 to bring up an editor window containing the file. You must
1101 consider adjusting the following items in AGWConnect.pm:-
1104 <item>$enable - set to '1' to enable AGWPE interface
1105 <item>$login - the login ID you chose when you set up the SV2AGW security :-)
1106 <item>$passwd - password that matches $login
1109 <sect1>Setting up the initial user files
1112 Next you need to create the initial user files, etc. A tool is
1113 supplied which will do this for you. To run the tool:-
1117 perl create_sysop.pl
1120 If all goes according to plan, you will see no output from this
1121 program, and after a brief wait, your DOS prompt will be
1124 Depending on how brave you are, you might now care to try the
1131 If you did everything you were told, your DOS window will now
1132 hold a display which looks something like:-
1135 DXSpider DX Cluster Version 1.47
1136 Copyright (c) 1998-2001 Dirk Koopman G1TLH
1137 loading prefixes ...
1138 loading band data ...
1139 loading user file system ...
1140 starting listeners ...
1141 Internal port: localhost 27754
1143 reading in duplicate spot and WWV info ...
1144 reading existing message headers ...
1148 @msg = 0 before delete
1149 @msg = 0 after delete
1150 reading cron jobs ...v cron: reading /spider/cmd/crontab
1151 cron: adding 1 0 * * 0
1152 DXUser::export("$main::data/user_asc")
1153 reading database descriptors ...
1154 doing local initialisation ...
1155 orft we jolly well go ...
1159 Now, if that's what you've got, you are very nearly home and dry
1160 (in as far as these particular experiments are concerned, anyhow)
1162 To access your new cluster (from the local machine) find yourself another
1163 "DOS box" and do the following:-
1170 If you are rewarded with a display which looks something like:-
1173 Hello Iain, this is GB7SJP in Amersham, Bucks running DXSpider V1.47
1174 Cluster: 1 nodes, 1 local / 1 total users Max users 2 Uptime 0 00:00
1175 M0ADI de GB7SJP 4-Mar-2001 1511Z >
1178 You've arrived. Try some commands, and see how they feel. (In
1179 case you were wondering, "Iain", "M0ADI" and "GB7SJP" all came
1180 from the version of DXVars.pm that was on the machine when I
1181 started the winclient.pl)
1183 <sect1>Incoming telnets
1186 If you want to enable inbound "TELNET" connections, you've got a
1187 little more work to do. From a handy "DOS box" that's not doing
1188 anything else, do the following:-
1191 copy \spider\perl\listeners.pm \spider\local
1193 notepad listeners.pm
1196 The following lines need attention:-
1202 On my machine, I've simply uncommented the "0.0.0.0" entry by
1203 removing the '#' from the front of the line.
1205 If you don't have a static hostname for your machine, and you
1206 intend to allow folk to connect to your machine across the
1207 internet, then I'd suggest you pay a visit to www.dyndns.org and
1208 create one for yourself. While it's free, it will take a modest
1209 an amount of effort on your part to read, understand and
1210 implement what needs to be done to set this up.
1212 <sect1>Connecting to other clusters
1215 If you want to connect this to another cluster, then you'll want
1216 to negotiate a link with someone. For experimental purposes, I'm
1217 happy to allow folk to connect to GB7DXA (spud.ath.cx), on the
1218 understanding that the system may or may not be there and may or
1219 may not be connected to anything particularly useful at any given
1220 moment. Contact me by Email if you want me to set up a connection
1223 <sect>General Information
1226 The following relates to all versions of DXSpider and is not platform related.
1228 <sect1>The crontab file
1231 Login as <em>sysop</em> and create a file in /spider/local_cmd called crontab.
1232 Edit it with your favourite editor and add a line like this (I have included
1236 # check every 10 minutes to see if gb7xxx is connected and if not
1237 # start a connect job going
1239 0,10,20,30,40,50 * * * * start_connect('gb7xxx') unless connected('gb7xxx')
1243 The callsign involved will be the callsign of the cluster node you are
1244 going to connect to. This will now check every 10 minutes to see if
1245 gb7xxx is connected, if it is then nothing will be done. If it is not,
1246 then a connect attempt will be started.
1249 There are probably lots of other things you could use this crontab file for.
1250 If you want to know more about it, look at the
1251 <htmlurl url="http://www.dxcluster.org/cron.html" name="DXSpider"> website
1252 at the cron page where it is explained more fully.