Install DxSpider on Raspberry Pi

Revision: 1.01 – 12/11/2018

Here you find my installations guide how to install dxspider on raspberry Pi. Also you can find more information here wiki.dxcluster.org. If you need help please contact with me.

Furthermore if you don’t want make manual installation you can used my script for the installation and configuration Dxspider.

1. Fisrt change user from pi to root

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo su -l
$ sudo su -l
$ sudo su -l

2. Create user sysop and setup password

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# adduser -m sysop
# passwd sysop
# adduser -m sysop # passwd sysop
# adduser -m sysop 

# passwd sysop

3. Install perl libraries

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# apt-get update
# apt-get install libtimedate-perl libnet-telnet-perl libcurses-perl libdigest-sha-perl libdata-dumper-simple-perl
# apt-get update # apt-get install libtimedate-perl libnet-telnet-perl libcurses-perl libdigest-sha-perl libdata-dumper-simple-perl
# apt-get update 

# apt-get install libtimedate-perl libnet-telnet-perl libcurses-perl libdigest-sha-perl libdata-dumper-simple-perl

4. Now download and  unpack the DX Spider distribution, set symbolic links and group permissions. Copy the tarball to /home/sysop and do the following.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# cd ~sysop
# wget http://www.dxcluster.org/download/CVSlatest.tgz
# tar xvfz CVSlatest.tgz
# ln -s ~sysop/spider /spider
# groupadd -g 251 spider
# cd ~sysop # wget http://www.dxcluster.org/download/CVSlatest.tgz # tar xvfz CVSlatest.tgz # ln -s ~sysop/spider /spider # groupadd -g 251 spider
# cd ~sysop 

# wget http://www.dxcluster.org/download/CVSlatest.tgz 

# tar xvfz CVSlatest.tgz 

# ln -s ~sysop/spider /spider 

# groupadd -g 251 spider

If you do not have the command ‘groupadd’ available to you, simply add a line in /etc/group by hand.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# vi /etc/group
# vi /etc/group
# vi /etc/group

You also need to add some others to the group, including your own callsign (this will be used as an alias) and root. The finished line in /etc/group should look something like this:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
spider:x:251:sysop,sv5fri,root
spider:x:251:sysop,sv5fri,root
spider:x:251:sysop,sv5fri,root

5. The next step is to set the permissions on the Spider directory tree and files

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# chown -R sysop.spider spider
# find . -type d -exec chmod 2775 {} \;
# find . -type f -exec chmod 775 {} \;
# chown -R sysop.spider spider # find . -type d -exec chmod 2775 {} \; # find . -type f -exec chmod 775 {} \;
# chown -R sysop.spider spider 

# find . -type d -exec chmod 2775 {} \; 

# find . -type f -exec chmod 775 {} \;

6. Now login to your machine as the user you created earlier. In my case that user is called ‘sysop’. Once logged in, issue the following commands

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# su -l sysop
$ cd /spider
$ mkdir local
$ mkdir local_cmd
$ cp perl/DXVars.pm.issue local/DXVars.pm
$ cd local
$ vi DXVars.pm
# su -l sysop $ cd /spider $ mkdir local $ mkdir local_cmd $ cp perl/DXVars.pm.issue local/DXVars.pm $ cd local $ vi DXVars.pm
# su -l sysop 

$ cd /spider 

$ mkdir local 

$ mkdir local_cmd 

$ cp perl/DXVars.pm.issue local/DXVars.pm 

$ cd local 

$ vi DXVars.pm

Using the distributed DXVars.pm as a a template, set your cluster callsign, sysop callsign and other user info to suit your own environment.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$mycall = "SV5FRI-1";
$myalias = "SV5FRI";
$myemail = "myemail@gmail.com";
$mycall = "SV5FRI-1"; $myalias = "SV5FRI"; $myemail = "myemail@gmail.com";
$mycall = "SV5FRI-1"; 
$myalias = "SV5FRI"; 
$myemail = "myemail@gmail.com";

7. Edit Listeners.pm to remove “#” from the line for the port, and add additional ports as needed:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ cp /spider/perl/Listeners.pm /spider/local/Listeners.pm
$ cd /spider/local/
$ vi Listeners.pm
$ cp /spider/perl/Listeners.pm /spider/local/Listeners.pm $ cd /spider/local/ $ vi Listeners.pm
$ cp /spider/perl/Listeners.pm /spider/local/Listeners.pm 

$ cd /spider/local/ 

$ vi Listeners.pm

After edit Listeners.pm file like

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
@listen =
( [“0.0.0.0”, 7300],
);
@listen = ( [“0.0.0.0”, 7300], );
@listen = 
 ( [“0.0.0.0”, 7300], 
);

8. Now type the following command which creates the basic user file with you as the sysop.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ cd ../perl
$ ./create_sysop.pl
$ cd ../perl $ ./create_sysop.pl
$ cd ../perl 

$ ./create_sysop.pl

9. Starting up for the first time cluster

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ cd ../perl
$ ./cluster.pl
$ cd ../perl $ ./cluster.pl
$ cd ../perl 

$ ./cluster.pl

10. On a separate ssh or system console, log into the system as sysop

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ /spider/perl/console.pl
$ /spider/perl/console.pl
$ /spider/perl/console.pl

11. Creates the connect script file and enters the editor. Your connect script should look similar to this script.

Create connect script

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ touch /spider/connect/<adjacent_node_callsign>
$ vi /spider/connect/<adjacent_node_callsign>
$ touch /spider/connect/<adjacent_node_callsign> $ vi /spider/connect/<adjacent_node_callsign>
$ touch /spider/connect/<adjacent_node_callsign> 

$ vi /spider/connect/<adjacent_node_callsign>

Connect script must like this

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
timeout 60
abort (Busy|Sorry|Fail)
# don't forget to chmod 4775 netrom_call!
connect telnet cluster.xyz.com 7300
# example 'login' 'sv5fri-1' 'login' '<your_node_callsign>'
# example if you connect to k1ttt
# client k1ttt
telnet client <connect_node_callsign> telnet
timeout 60 abort (Busy|Sorry|Fail) # don't forget to chmod 4775 netrom_call! connect telnet cluster.xyz.com 7300 # example 'login' 'sv5fri-1' 'login' '<your_node_callsign>' # example if you connect to k1ttt # client k1ttt telnet client <connect_node_callsign> telnet
timeout 60 
abort (Busy|Sorry|Fail) 
# don't forget to chmod 4775 netrom_call! 
connect telnet cluster.xyz.com 7300 
# example 'login' 'sv5fri-1' 'login' '<your_node_callsign>' 
# example if you connect to k1ttt 
# client k1ttt 
telnet client <connect_node_callsign> telnet

After check permission file

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
chmod 775 /spider/connect/<adjacent_node_callsign>
chmod 775 /spider/connect/<adjacent_node_callsign>
chmod 775 /spider/connect/<adjacent_node_callsign>

12. To configure your node you must set the adjacent node by node type:

i. For connection to a DXSpider node use the set/spider command from the console

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ /spider/perl/console.pl
–-----
sv5fri de sv5fri-1 25-Nov-2015 0755Z dxspider > set/spider <adjacent_node_callsign>
$ /spider/perl/console.pl –----- sv5fri de sv5fri-1 25-Nov-2015 0755Z dxspider > set/spider <adjacent_node_callsign>
$ /spider/perl/console.pl 
–----- 
sv5fri de sv5fri-1 25-Nov-2015 0755Z dxspider > set/spider <adjacent_node_callsign>

Enter your link partner as after set/spider

ii. For a connection to an ARCluster node

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ /spider/perl/console.pl
–-----
sv5fri de sv5fri-1 25-NOV-2015 0757Z dxspider > set/arcluster <adjacent_node_callsign>
$ /spider/perl/console.pl –----- sv5fri de sv5fri-1 25-NOV-2015 0757Z dxspider > set/arcluster <adjacent_node_callsign>
$ /spider/perl/console.pl 
–----- 
sv5fri de sv5fri-1 25-NOV-2015 0757Z dxspider > set/arcluster <adjacent_node_callsign>

13. To initiate a connection to the your new adjacent node partner

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ /spider/perl/console.pl
connect <adjacent_node_callsign>
$ /spider/perl/console.pl connect <adjacent_node_callsign>
$ /spider/perl/console.pl 

connect <adjacent_node_callsign>

14. At least you need a cron and a connect script to connect to the nodes automatically for examble – your node parter is: k1ttt

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ touch /spider/local_cmd/crontab
$ vi /spider/local_cmd/crontab
$ touch /spider/local_cmd/crontab $ vi /spider/local_cmd/crontab
$ touch /spider/local_cmd/crontab 

$ vi /spider/local_cmd/crontab

the cron like this:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Check every 10 minutes to see if xxxx is connected and if not
# start a connect job
#
0,10,20,30,40,50 * * * * start_connect('k1ttt') unless connected('k1ttt')
# Check every 10 minutes to see if xxxx is connected and if not # start a connect job # 0,10,20,30,40,50 * * * * start_connect('k1ttt') unless connected('k1ttt')
# Check every 10 minutes to see if xxxx is connected and if not 
# start a connect job 
#
0,10,20,30,40,50 * * * * start_connect('k1ttt') unless connected('k1ttt')

After check permission file

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
chmod 775 /spider/local_cmd/crontab>
chmod 775 /spider/local_cmd/crontab>
chmod 775 /spider/local_cmd/crontab>

Good luck with DxSpider installation 🙂

Share