Winlink sysop software installation – RMS Trimode and Relay

Next up in my Winlink exploration is to get the sysop software running under linux.

I downloaded the latest and greatest, RMS Trimode Full, unzipped and tried to install with, wine setup.exe. The first thing it tried to do was install .NET 4.0. Rather than let it screw up my carefully installed Wine configuration I opted to use winetricks again.

$ ./winetricks dotnet40

Success! .NET 4.0 installed without issues (excepting the usual warnings about .NET 4.0 not fully working yet – pffft)

RMS Trimode

$ wine RMS\ Link\ Test.exe

So far so good, although, this is what was working in my chooked install previously.

I have no idea what to do with RMS Trimode, however, it installs and runs beautifully.

RMS Relay

$ unzip ../
Archive:  ../
inflating: RMS Relay Setup.msi

$ msiexec -i RMS\ Relay\ Setup.msi

That’s the easy part :-)

$ wine RMS\ Relay.exe

But alas, I am not a sysop so I cannot go any further. However, this installation seems the most complete, and stable. I suspect if I get my HF station up and running with sysop credentials access it should work without any issues.

Dotnet and wine weirdness

It turns out I might’ve gone the long and hard route to install .NET. Since upgrading to wine 1.6 and using the latest winetricks

$ wget
$ chmod +x winetricks

and using a clean WINEARCH=win32 prefix the install went a lot smoother.


$ export WINEARCH=win32

$ ./winetricks dotnet35sp1

initiates the install for .NET 2.0, 2.0sp2, 3.0 and 3.5sp1.

Unfortunately I have to go to this trouble as .NET 3.5 is a requirement for the installation of RMS Trimode and possibly Relay which is the sysop software for Winlink 2000 RMS servers. As I want to set up my station as an RMS mail relay this is very important. I want to evaluate the need and effective coverage of such a station with Winmor in South-Africa before even considering the huge expense of a Pactor 1-4 capable modem.

Having completed the above install of .NET I could install and run RMS Express without any trouble.

$ msiexec -i RMS\ Express\ Setup.msi

$ wine RMS\ Express.exe

Done and dusted. Now to get Trimode and Relay to work.

Winlink (WL2K) operation under linux

Here comes the sticky bit. I don’t have windows installed on any of my machines, except in virtual encironments and as a rule I don’t boot it up if I can do the task in linux. Unfortunately, Winlink programs were coded for Windows only.

Wine seems the obvious answer, but unfortunately, the programs require .NET and probably a number of other Microsoft applications to work. After about 16 hours I finally managed to get it going. Here’s what I did. Much of the problems I faced were probably of my own making, so if you find a shorter easier method, by all means, please let me know and I’ll post a follow up with your contribution.

Wine .NET install for RMS Express and Paclink

My home PC runs Ubuntu 12.04 LTS 64 bit, laptop 13.10 64 bit and I also have an old server running my linux containers on 12.04 LTS 32 bit. Yes, containers with Centos, a couple of Ubuntus, Busybox and Gentoo all coexist in perfect harmony on an old AMD Athlon XP 2200+ with 512 MB RAM. It’s hostname is affectionately set to playground as I use it to test various configurations, scenarios and applications. As everything runs in containers they are created and destroyed as necessary without any changes ever being made to the host OS and as such it has now run for 160 days and counting without a reboot. It would’ve been longer but I had to move it to a better location. I digress, as you can see I like my little server quite a bit. My bigger and better systems just don’t have the same appeal.

To get RMS Express and Paclink to work the following steps were taken. The list below is a bit messy as I copied and pasted directly from my notes, and they weren’t really meant to be published.

You’ll notice I have a heading whenever I copied my .wine directory from one machine to the other to carry on with the installation.

Ubuntu 13.10 64 bit

Without .NET 1.1 the applications do not run at all and complain .NET 2.0 is required. However, that alone is not enough. It seems at the very least .NET 1.1, 2.0, 3.0 and 3.5 are required. In addition it looks like various VB calls are made so I ended up installing all C and VB dlls winetricks would allow me to. They’re probably not all necessary.

paulg@Media:~$ WINEARCH=win32
paulg@Media:~$ winetricks dotnet11

My home PC / Server is called Media, because its my media server… I could’ve been more imaginative I know, but it’s at least descriptive. It’s also my packet BBS, plex server, virtual server and plain old desktop.

ubuntu 12.04 32 bit

I could not for the life of me get .NET 2.0 to install on any 64 bit OS. It would just fail every time even with WINEARCH=win32 specified. Eventually out of desperation I decided to try on playgrouds 32 bit install inside a container spun up for this purpose.

ubuntu@ubuntu_test:~$ winetricks dotnet 20

I also installed the items below. I’m not sure what is and is not required, I just worked through the list and installed everything that looked like it might be related.

  • dotnet 40
  • vb6run
  • vb5run
  • vb4run
  • vcrun6sp6
  • vb2run
  • vb3run
  • vb4run
  • vb5run
  • vb6run
  • vcrun2010
  • msxml3
  • msxml4
  • msxml6

Up to this point I got RMS Link test.exe working which was very exciting to say the least. The rest followed.

  • msscript
  • vcrun2008
  • vcrun2005
  • vcrun2003
  • vjrun20

Back to Ubuntu 13.10 64bit
RMS Express would still fail without any useful messages and I decided to try more .NET versions. So far 1.1, 2.0 and 4.0 were installed. I saw on Windows 3.0 and 3.5 was also installed so 3.5 was my next challenge. It would not install on the 32 bit machine so back to 64 bit.

$ winetricks dotnet35

At some point the wine installation just hung. No CPU usage and no prompts. I had to kill setup.exe) as it got stuck for some reason. What winetricks did install was .NET 2.0 SP1, .NET 3.0 finished, and 3.5 failed.

RMS Express opens, sends mail and generates noises. Looks good so far!
Paclink opens, but cannot bind to ports.

Note – looks like it binds fine if run as root.
Note2 – Paclink binds fine to not priviledged ports, i.e. 8025 and 8110.

It looks like both packages install and run fine. TNC Winmor audio sounds distorted / static.

I’m updating to a beta version of wine (apparently 1.4.1 has a problem with sound):
Add PPA ppa:ubuntu-wine/ppa to the ubuntu repository

# apt-get update

# apt-get install wine1.6

It’s beautiful! Sound appears perfect, however, I have not yet got the HF sorted to test.


I believe the most important parts are the .NET installs. That is where the tricky bits come in. Dotnet20 does not want to install on my 64 bit Ubuntu 13.10 (or home PC with 12.04) but can install on 32 bit (I know, WINEARCH=win32 – doesn’t work)

Then once all the above works, update wine to 1.6 which solves audio issues.

Next up
Try to get RMS Trimode and other Sysop SW to work.They install but do not run yet. I haven’t really had a chance to experiment yet.


A side note, if you want to install any of the applications, the install file is easily installed with msiexec.

ubuntu@ubuntu_test:~$ msiexec RMS\ Express\ Setup.msi

Winlink 2000 (WL2K) operation

The way I understand it is that there are a number of CMS, or Common Message Servers. These servers receive and relay mail. All of them are apparently able to relay mail to the respective recipients.

End users are able to connect to RMS gateways that relay messages to CMSs and so link the Winlink network to the internet. Very cool stuff.

Accessing your messages via radio or telnet

In order to access the Winlink network via radio (Winmor or Pactor) or the Internet (Telnet) two excellent programs were made available. RMS Express (now the preferred application) and Paclink. Both have their advantages.

RMS Express has a nice gui allowing the user to enter his, call sign and location amongst the most important, and can spin up a software modem (TNC) for Winmor operation or link up to a packet modem on a COM port.

It looks like your typical friendly mail client and allows easy mail composition and sending and receiving of messages.

Above you can see a message I sent to myself earlier.

Paclink is more of a gateway to the Winlink network. It too accepts the above information but does not have a built in mail client. Rather it opens up POP3 and SMTP ports so the user can link up any mail client such as Outlook express and Thunderbird.

Paclink is very simple to set up. Configure an access password, ports, callsign and grid square and it’s ready to talk to your mail client.

In both cases a Sound card TNC can be started for Winmor operation or the software configured to communicate via your trusty TNC, usually Pactor.

ZS6IO callsign Winmor – It’s actually kind of pretty, the sound.

Winlink 2000 (WL2K)

I’ve been looking for ways to revive an old hobby of mine, ham radio. I struggled to find reason (for myself) to stay involved especially with the not so recent decline in packet radio and active hams in our area.

As I have no interest in rag chewing or using antiquated CW I couldn’t come up with something useful to do or contribute. So I started up my old packet station and set up a BPQ32 BBS. As it turns out there is tremendous interest. I’m linked to Amsterdam, the UK and  BBS about 60 km from my home and regularly forward messages. My one VHF packet subscriber checks in once a day.

This was loads of fun to set up and I learnt a lot. But, the greater community pointed me to something even more special, Winlink. I quote from their web site:

Winlink 2000 (WL2K) is a worldwide system of volunteer sysops, radio stations and network assets supporting e-mail by radio, with non-commercial links to internet e-mail.

I followed a course presented by them and quickly had my client up and running. This resulted in my an email address, zs6io at being registered for me. Btw, ZS6IO is my ham call. I can also be reached at ZS6IO@ZS6IO.PTA.GAU.ZAF.AF (packet radio only obviously).

What the system offers is a message relay via HF, VHF and also the internet via Telnet if it is available. It relays to the internet, so if you’re a sailor at sea or in need of emergency communication this is a very effective means of reaching out.

Winlink supports a number of digital modes, including Pactor 1 – 4 (my word, Pactor modems are frighteningly expensive – $ 1000 region), HF and VHF packet and also a new mode called Winmor. Winmor is my obvious choice as it is free and operates as a software modem on a generic PC sound card. Apparently it is similar to Pactor 2 in terms of performance.

More on the apps later.

ownCloud progress

It turns out Ubuntu does not make it as easy as I expected. I was confronted with this non descriptive error message on the client when I launched and tried to sync.

There wasn’t much more to the error message on the clients. The ubuntu server apache logs sheds some more light on the issue.

[Wed Aug 14 11:58:03 2013] [error] [client w.x.y.z] script ‘/usr/share/owncloud/remote.php’ not found or unable to stat

The remote.php file is actually in another directory, but it still fails even if I link the file. The ownCloud forum has a post that indicates that the ubuntu package is broken and to rather use the downloaded package from their site, so that is what I did…

I followed the instructions on ownCloud doc installation. In summary the following is important.

Make sure all the dependencies are met, apache2, php5 etc. Most of it will likely already be on your system. If you’re not sure, you can take the easy route, apt-get install owncloud, and then remove the package. The dependencies will remain.

# tar -xjf owncloud-x.x.x.tar.bz2

# cp -r owncloud /var/vhosts/

# chown -R www-data:www-data /var/owncloud/ /var/vhosts/owncloud

I decided to host the data and web server in two difference locations in the example above. You can always choose another path or use the defaults.

Also perform the following:

# a2enmod rewrite

# a2enmod headers

You will also need to add a vhost for your site or use the default landing. Make sure AllowOverride is set to All to enable .htaccess.

Thats all there is to it. Point the client to your ownCloud service and voilà. In the background we have my browser opened to my ownCloud server, the local folder with the text file and the open text file.

Cloud storage

I experienced a small bit of frustration recently when Dropbox thought it was a good idea to delete about a third of my about 10 GB of data. Fortunately, with a bit of effort I could perform a restore on the lost data, one file at a time.

Now we use services such as Dropbox because of the convenience, however, if it is no longer convenient, or even safe, then perhaps it is time to investigate alternative diy options. Don’t get me wrong though, I will probably never get rid of Dropbox, however, I will still want to use my own service for items I consider a security risk, such as work documents.

I have been toying with the idea of hosting a backup service for my data, specifically the stuff I usually backup manually and keep in sync between my various desktops and laptop. So why not just spin up something that will replace all the cloud storage I currently use on my own server.


In comes ownCloud promising many features:

  • File sync through a webdav interface,
  • sync contacts, calendars and bookmarks,
  • web access to said services,
  • and an api to build your own apps around ownCloud.


It seems simple enough. For the server on ubuntu it’s as simple as

apt-get install owncloud

This installs the server environment on your server, in my case, a droplet in Amsterdam.


On your workstation their instructions are simple enough to add the ppa to your repository.

# echo ‘deb /’ >> /etc/apt/sources.list.d/owncloud-client.list


# wget


# apt-key add – < Release.key

# apt-get update

# apt-get install owncloud-client

The above is valid for 12.04 LTS, so just change the 12.04 in the first instruction to your version, e.g. xUbuntu_12.04 becomes xUbuntu_13.04. Now you have both a client and server installed. There are also windows and mobile clients – I’m not that concerned with them for the moment.

Using ownCloud

Its a breeze to use ownCloud as Ubuntu has already done all the work for you. Just point to your domain, http(s)://yourdomain/owncloud

First step is to create your administrator account, but that will fail. The database needs to be configured.

# mysql -u root -p


GRANT ALL ON owncloud.* TO ‘owncloud’@'localhost’ IDENTIFIED BY ‘some_password’;

Under the advanced selection you can enter the db details as configured above. Choose a suitable username and password and Bobs your uncle, you have an ownCloud server.

I’m not sure yet where the data is stored, must be somewhere sensible. I also expect to be able to change the target folder once I add more storage to the system. We’ll explore that in a follow up post.

Small secure linux distributions update

Some time ago I posted on my search for a small secure linux distribution to take care of our office paranoia.

I eventually settled on two. Lightweight portable security is perfect and the one in use at the office. Tails is perfect for personal use.

Lightweight Portable Security

The core requirements are a small OS that leaves no footprint behind and protection against attackers. We need to be able to securely do banking (that’s the office requirement) and be protected from the usual malware, key loggers and the like. It fulfils this requirement completely.

It boots off a CD which is kept in the office safe (yes, we are that paranoid) to prevent tampering. Account details are also kept in a secure location.

The image will boot from a a CD (burnt to disk using any iso CD writing software such as Brasero) or from a flash disk with the following alteration

isohybrid LPS-1.4.1_public_deluxe.iso –entry 4 –type 0x1c

to enable it to boot on the USB disk.

On boot it asks the user to accept or reject the terms and conditions and then ends with a screen that looks suspiciously like a dated version of windows. It has a functional browser, terminal and some software to encrypt and decrypt data. It leaves no trace when the PC is shut down and will not mount any partitions when in use, so it is safe for any secure transaction.


My favourite for personal use is tails. It is based on the popular tor project. See the excerpt from the tor project web site.

Tor is free software and an open network that helps you defend against a form of network surveillance that threatens personal freedom and privacy, confidential business activities and relationships, and state security known as traffic analysis

Yes, they are even more paranoid than I am. Tails hinges of this awesome project to provide users with even more.

Tails is a live DVD or live USB that aims at preserving your privacy and anonymity.
It helps you to:

  • use the Internet anonymously almost anywhere you go and on any computer:
    all connections to the Internet are forced to go through the Tor network;
  • leave no trace on the computer you’re using unless you ask it explicitly;
  • use state-of-the-art cryptographic tools to encrypt your files, email and instant messaging.

As with LPS it does not leave any footprints. It runs from memory, and when the flash disk is removed from the PC or laptop it immediately writes random data to ram and video memory to limit the chance of someone collecting any sensitive data.

Tails starts up by default with root locked, and no ability to access any form of persistent storage. However, with the USB image it is possible to add a persistent encrypted volume (after numerous warnings about security).

It features the tor project secured browser (a secured Iceweasel, i.e. unbranded firefox), pidgin with security bells and whistles both operating via the tor network proxy. Claws mail provides email comms. It also has an I2P client to connect users to the I2P network – I couldn’t really find any use for it although it is awesome in its own right… Note in the image above how it warns about the dangers of the virtual machine and the insecurities it is running on.

As a little test I booted up the VM and browsed a couple of web sites.

All the connections are to localhost on the tor proxy port except for the tor secure connections.

For the less paranoid, there is also an insecure browser that can initiate direct connections. This is useful for banking institutions that may take exception to their customers who switch countries of origin every 10 minutes.

The setup I use is on a small (only in form factor) 32 GB gem drive from AData

It’s virtually inconspicuous and has plenty of persistent storage (encrypted of course) for any important data. Don’t forget though, it is very dangerous to have persistent storage as someone with nefarious intent can torture you to reveal your password… Yes… It’s not paranoia if they’re really out to get you.

And, oh, and, let’s not forget. It has Windows XP camouflage…

All giggles aside, it is a great little environment. It tagged along on my recent Europe trip. Although I did not need it much it is very convenient to have a Linux boot disk handy so I can boot into something useful and secure on a friends laptop. It also raises an eyebrow or two – it’s so mysterious…

Puppy linux

I had to include puppy linux as it is a close contender. The big reason it lost out was because it failed on a lot of our test hardware, probably because it was stripped down so heavily to optimise it. And it doesn’t have a bundled browser, a big no no.

It runs completely out of memory and has a super tiny footprint. Most likely it will run off very old hardware. Definitely have a look at it if you have need of a small and fast OS to revive your old laptop or desktop.

There were quite a few other distros in the running, however, the above are the favourites.

Others worth mentioning are XPud , ubuntu desktop live CD, Slitaz (a linux OS in under 35 MB), Linux Mint, and Damn small linux.

Long post. Thats it for now.


Empower your shell with oh my zsh

From terminal managers to funky aps, I love anything that makes my terminal stand out. More power to me if it is useful. My colleagues shared oh my zsh with me and boy is it sexy. Community plugins and themes can be added in your .zshrc config file to suit your every need.

There are loads of plugins. Take git for example. There are plugins to assist your every command line transaction. It performs clever autocompletion on most transactions. I just started using it. If necessary I’ll give some more feedback later.

For now, lets get to installing. If you’re trusting you can run the following command from the authors web page:

curl -L | sh

Before that though make sure you have zsh installed.

Config changes are as simple as adding a theme, and plugins, to your .zshrc config file:

plugins=(git battery cake command-not-found cp git-extras gpg-agent history postgres rsync svn)

The themes can be viewed on the web site and available plugins are listed in ~/.oh-my-zsh/plugins/. I honestly have no idea what most of them do, but that does not stop me from being giddy with excitement…