Linux SCSI Terminal Server driver

$Id: index.php,v 1.57 2003/12/13 10:47:00 nemesis Exp $
Version: 2_cjc_2 (see the Changes log)

This software allows Linux to use the Central Data/Digi SCSI Terminal Servers (and even the rare Motorola OEM versions).

The picture to the right shows (top to bottom) 4 Central Data ST-1620s, 1 Motorola STS-S8P, and 5 Motorola STS-S16Ps. Too bad I can only put 7 on a SCSI chain at a time. :)

Skip the history, get to the meat of this project.

big stack of STSs


Aug 7, 2000:
Right now, I've started writing a user-space tool to work on the SCSI generic driver. Once that works, I'll move this into a kernel module. The source code can be found in this package, or you can browse the tree, but I warn you, it's still rather fragile. It still needs to be cleaned up and better documented. However, it DOES work. The STS I have will only go up to 38400 baud, but I transfered a kernel image between machines across it at 3600Bps with no errors.

Aug 12, 2000:
It works! Thanks to Digi's ELS driver being nothing more than a FAS command pipe on top of all the TTY/serial code, I just ported my userspace tool to a EL/STS pipe. :)

Sep 21, 2000:
Whoops, I forgot to release the STS unit table that Digi sent me. If you have other STSs that are not part of my patches, you can get your unittab settings from this sts_unittab.c file.

Jan 19, 2001:
I've gotten around to checking in with Digi again, and it looks like they put their latest version of the ELS drivers up, which includes my bug fix! :)

I've re-ported my changes to this new version of the driver. Their changes include much better packaging, and a lot of code clean-ups.

Next step is to port their module to Linux 2.4.x. I'll keep this web site posted.

Feb 9, 2001:
Ah! Robert gave me source code for the CenData firmware updater! Woo-hoo! So, I've started working on a version for Linux, re-using my scsi generic code from the STS driver. I figured I'd do a full rewrite because the majority of the "cdupdate" code is written to use the "/dev/stsdiag" file, which doesn't exist. That and I wanted another excuse to use "mmap".

Feb 13, 2001:
Well, here are a few things I've done:

I'm still working on some issues with the STS+ELS driver under 2.4, but I hope to have that straightened out soon.

Feb 16, 2001:
The 2.4.x port wasn't complete. Looks like 2.4 also cleaned up their TTY code so that when cdscsid (or cdetherd) would reconnect to the ELS driver, the "read" and "write" functions weren't set, so the "select" call never returned for the els device. So that's been corrected. I also finished changing the SCSI address code around so that "Host.Chan.ID.LUN" can be used instead of /dev/sg*.

Everything appears to work again, so I've released version "2_cjc_2" now. I still need to put the FAS_GLOBAL code in, but I just didn't feel like it today. For the safest results, people should download the userspace code, run that once, and then load cdscsid. That'll make sure your STS gets at least one FAS_GLOBAL.

Jul 07, 2003:
Brian R. Swan dug through a RedHat 9.0 install to try and get things compiled correctly, and sent me the resulting tarball. I haven't had a chance to look through it yet, but I'll put it up here for other people to muck with if they want it:

Brian R. Swan's rh9 tarball

Jul 09, 2003:
Just got a note from Doug Rorem at the University of Illinois. They use the STS driver to run a Digi 16 port at the IDOT office to manage all the console ports for generating their travel congestion webpages:

older system
new w/ Tollway info
Full map


How to make it happen

Or, just cheat, and download my version of the source rpm. Install src.rpm, rpm -ba, install rpm, done!

How to upgrade your STS firmware

I've finished the STS firmware updater! Thanks to Bob Rubendunst at Digi, I got all the information I needed on how the STS uses the "WRITE BUFFER" SCSI commands to upload firmware.

Where to get various things


If you just want to look around, all the files here can be found in my download area.