Tips for the Configuration of Tektronix XP200 Series X Terminals (Thin Clients) with Linux.

Version 0.02 25-Apr-2000

Well, thanks to some good fortune on my part, I happened to acquire a number of Tektronix XP200 Series X Terminals.

In brief, Tektronix was acquired by NCD since these beauties were made. The basic architecture of these devices forms the foundation of a number of the newer NCD Thin Clients available today.

When these Tek items were sold new, they were sold as a complete package, with support, monitor, and other stuff.

When I acquired these, there were no monitors, and no powersupplies or other connectable thingos, and importantly, no docs or software.

Thanks to a number of #humbug folks on irc.uq.edu.au , I was able to ascertain a few important facts about these machines.

I've also been able to nut out the power supply and a number of other details.

They take standard 72pin ram, up to 2x16 meg additional to the 4meg already on board.
I'd recommend at least 4 meg additional if you want to run things without complaints or errors. These units have to have enough memory to display the bitmaps and track the windows. More windows, less memory.

Power Supply

These units take an 8 pin mini-din connector, readily available from Jaycar for around $2.50
The device itself draws low current and requires +5V DC, +12V DC and GND.
With my trusty multimeter I couldn't locate anything that used +12V DC. I'm told that PCMCIA devices use +12V DC, and since PCMCIA stuff is an option on these devices but is not installed.

These terminals work flawlessly on +5V DC only in my experience.

Don't be tempted to use 12V on the 5V pins. That fries these things irreparably, which isn't usually what you want to do.

Connector (8 Pin Mini-DIN):

Looking at the back of the terminal unit box (pin number designations are mine and purely arbitrary)

1o  2o  3o

4o  5o  6o

  7o  8o

Pins 1, 2, 3 = GND (All are internally tied together)
Pins 6, 7, 8 = +5V DC (All are internally tied together)
Pin 5 = +12V DC
Pin 4 = Not Connected
 

Peripherals

Summary

These units have 2 serial ports with standard 9 pin connectors. It seems from what I have read, that these serial ports can map their io data to a TCP port. I've not played with this, but that would open up the potential for connecting barcode readers and cash drawers and all sorts of other POS stuff, with appropriate server side software. Have fun playing with this.

They also take standard PS/2 Keyboard and Mouse, and have a standard 15 pin VGA out.

Network-wise, they have UTP and Thinnet connections for ethernet, and autoselects the active one.

Configuration:

Stages

  1. Monitor
  2. Keyboard
  3. Network
  4. Software
  5. Fancy Stuff

Monitor

This is the most important step after you've got juice going to them.
If you're lucky and own an all-singing/all-dancing ubeaut monitor, well, you're set.
These things support sync_on_green fixed frequency monitors as well to a limited extent.

Otherwise you'll need to hook it up and then cycle blindly through the available video modes until you get a good picture.

Steps:

  1. Connect power
  2. Connect Keyboard to lowermost ps2 socket
  3. Connect Mouse to uppermost ps2 socket
  4. Connect VGA monitor
  5. Turn on terminal


Wait about 20 seconds and then press space
Type the following followed by the enter key

se monset -1

and wait. This will automatically cycle through the video modes available. Let it go through a couple of times so you can see what you've got available with your hardware. Follow the directions and that will flash the new settings to the memory.

It does have some modes which work with fixed frequency sync-on-green monitors.
No modification of the modelines appears to be possible, so you'll need to tweak the internals of your monitor if you're not happy with the location/size of the display.
 

Keyboard

You will need to select the type of keyboard that you are using next.
Type the following followed by the enter key

se keynotset

This will allow you to select the keyboard type.
For most people this will be 101 key with Pause, but other types are listed and avaiulable.
 

Network

These terminals are versatile as anything.
They support manual config, DHCP, bootp, rarp.
They can download their software via tftp and nfs.

For DHCP you need a bootmonitor version 5.8 or above I think. If you don't have that version bootmonitor installed, don't worry, you can download the new one and flash it to these units once the thing is running, then reconfigure them to DHCP. Its much nicer in the end.

I'm not going to tell you about setting up the server side stuff here, but I can tell you that DHCP works flawlessly on these things and simplifies configuration and management greatly. Find out more about DCHP in http://mirror-return.cc.uq.edu.au/pub/linux/HOWTO/mini/DHCP

Initially it is good to set it up manually.

Set the boot host with
    ihost x.x.x.x

Set the terminal address
    iaddr x.x.x.x

Set the Network mask
    imask x.x.x.x

Set the Gateway
    igate x.x.x.x

Set the location of the terminal kernel on the boot host with...
   bpath /exports/tekxp/boot/os.350
(This is the nfs path to the xterminal kernel on the ihost machine.)

Set Boot kernel retrieval method (Sets it to NFS with rsize=8192)
Use a smaller rsize if you want to cause less network congestion but give a slower boot.
    bmethod nfs 8192

Save all your changes to Non-volatile memory
    nvsave
 
 

Software

Firstly, you'll need to obtain the software for these thingos. That means you need should have a licence and all that other legal stuff. There are no free alternatives for this unit that I've discovered as yet, however you can download the most recent software from NCD without any hassles or registration required. I'd dare say you have a right to use this software, however I'm no lawyer and I don't encourage or endorse the unlawful use or distribution of software. Obtain and use this software at your own risk. You have been warned.

There are two versions of the software that support this family of terminal, namely NCBridge and XpressWare.
NCBridge is newer and bigger. XpressWare is smaller and simpler. They seem to be functionally equivalent. NCBridge just has a few more bells and whistles, but is essentially the same.

You can download these both

XPressware
ftp://ftp.ncd.com/pub/nwd/XpressWare/Patches/V8.1/

and

NCBridge
ftp://ftp.ncd.com/pub/nwd/NCBridge/Patches/V3.2/
NC Bridge has the advantage of an HTML manual available on the ncd site, and an acrobat version also...

If you can add an additional 8meg or more ram to these terminals, then I'd use NCBridge. Otherwise, use XpressWare as it is not as memory hungry.

You'll need to read the readme files in these directories before downloading in order to work out just what you need. There are versions that can be served by NT Server and other ones for unix hosts. Generally speaking, there's two files you'll need for the software. You're looking at about 30-60Meg download for the full deal.

Follow the directions in the instructions. Generally this involves untarring them into a directory.

This directory will then need to be nfs exported as read only (or rw if you're brave) to your terminals. How to do that is subject of other howto's unrelated to this document such as the NFS-HOWTO. Try seeing it at http://mirror-return.cc.uq.edu.au/pub/linux/HOWTO/NFS-HOWTO
 

The file

os.350

is the kernel for these machines.

the bpath statement must reflect the nfs path to this file.

Then do all your favourite security things to lock down your system as best as you can.

Make sure you can see and read this directory.

Once this is all done, the next time you start the terminal, it should boot.and bring up the familiar x server display.

There is an incredible amount of configuration flexibility available with these terminals.
Virtually everything can be managed centrally.

From memory, I can't recall if it creates a config directory, but I do know that it has a file called xp.cnf that is in the main install area. That is the server side config file that is sent to the terminal on boot. It must reside in a directory named config (eg /exports/tekxp/boot/config/xp.cnf in my example)

This xp.cnf file is extremely well commented and detailed. It even allows for system messages to be sent to syslogd on another machine. Way handy that one.
Change the settings in here and reboot. Its amazingly versatile. Scripting and a whole lot more.
Combine the flexibility of this file with the options and functionality of the dhcp server and you can do absolutely everything with these units from your comfy chair.

The only thing that I haven't found out how to do it to set up a connection to a font server. I've ended up duplicating my fonts in the terminal directory. Also note, it requires .Z and not .gz fonts. Standard fonts supplied by xfree work. Just be sure of the conversion. I think the utility is compress is it not?

Fancy Stuff

You'll probably want the most recent BootMonitor. This is part of the bios on these units.

At the time of writing, the most recent version is

 ftp://ftp.ncd.com/pub/nwd/NCBridge/BootMonitors/boot_mon.350_V5.11

But before installing, you'll have to have an operational and configured terminal and you simply must read...

 ftp://ftp.ncd.com/pub/nwd/NCBridge/BootMonitors/README.INSTALL

This file contains important info on which terminals this version is suitable for and on how to update the bootrom. Don't install the wrong bootmonitor on the wrong terminal. That will ruin your whole day and stuff the terminal.

In order to use DHCP, on booting, press space to fall into the boot monitor prompt.
Set your network numbers to 0.0.0.0 and with a correctly configured dhcp server, it should work first try. The filename="blah" option in the dhcpd.conf allows the setting of the boot file as listed in bpath.

I am by no means an expert in DHCP, but I was able to get this running in about half an hour. With the configurability of the DHCP and xp.conf settings, you can completely manage the terminal's settings from your server.

Other things to do:
Add your xterminal to the list of xservers used by your x login manager. Its all so simple.
In file /etc/X11/xdm/Xservers add the following for each terminal
x.x.x.x:0 foreign
where x.x.x.x is the ip address or hostname of the terminal.

Good Luck, and please share your knowledge and experiences with these.

Cheers

Andrew

ajdraper@uq.net.au