Outpost on Linux with WINE

I recently decided to play around with packet radio while I had some time off of work for the holidays.  I just wanted something to get my feet wet with, not knowing if it would be something I really wanted to get into.  So, I ended up with a pair of Kantronics KPC-2s for the right price of $25 total.  Interestingly, these are from the mid-eighties and the manual describes how to interface to computers like the VIC-20, C64, Apple II, etc.  Even though I have a working VIC-20 up in the attic, I decided I’d go forward with my modern PC.

The local group uses Outpost to connect to packet BBSes for message exchange.  Even though this is a Windows app, I decided to play nice and do what I could to set myself up to use it.  I immediately tried running it under KVM, passing my serial port through.  It worked just fine, which meant I had a reasonable solution at the very least.  However, this is less than ideal because it requires me to run a full copy of Windows, and it requires me to dedicate a serial port to KVM whenever it’s booted (since KVM doesn’t let go of it while running).

So, I went down the path of running Outpost under WINE.  The program installed fine and seemed to run normally.  However, it refused to speak to the serial port properly.  I could see that it was opening the port, and I could even send commands to the TNC but no serial data would flow back to Outpost.  Running under CrossoverOffice and regular WINE, I’d get the following errors:

fixme:comm:set_queue_size insize 1024 outsize 512 unimplemented stub
fixme:comm:GetCommProperties (0x80 0x32f514 )

Some diggging seemed to reveal that this may be related to my use of a USB-to-serial adapter, although I’m not sure how.  Since it’s not likely I’ll be increasing the number of machines in my possession that have real serial ports, I figured this was mostly the end of the road for using Outpost under WINE to access the serial port.  I’m not a Windows programmer, so I wouldn’t know much about how to even bring it up with the Outpost folks.

Not to be defeated, I decided to try another approach.  Outpost has the ability to connect to a BBS over telnet directly, without using a TNC.  Since networking under WINE usually works quite well, I decided to try to work up a proxy.  I ended up with a small C program that opens the serial port and listens on a socket.  When it receives a socket connection, it instructs the TNC to call the BBS and proxies the traffic until a disconnect occurs.  The result is that I can use Outpost directly in WINE, talking to my proxy program running natively in Linux.

It’s a total hack, but it works, and it also means that you can remote your TNC and radio from the machine you run Outpost on, which can be kinda handy.  If you’re interested, you can grab the source here.  Note that you should configure Outpost to send no password, and set the username equal to the BBS you want to connect to.  The proxy will read the login and use that callsign in the connect command to the TNC.

Category(s): Radio

Comments are closed.