old-www/HOWTO/text/NCD-X-Terminal

663 lines
20 KiB
Plaintext
Raw Permalink Blame History

NCD X terminal mini HOWTO
Ian Hodge, ian at permedia.ca
v1.09, March 27, 2000
This document describes how to connect an NCD X terminal to a UNIX
host
______________________________________________________________________
Table of Contents
1. Copyright
2. Introduction
2.1 Summary of steps
3. Requirements
3.1 The X terminal
3.2 Physical Connection
3.3 NCD X server software
4. Configuring the UNIX Host
4.1 TFTP and BootP
5. Configuring the NCD X terminal Boot Process
5.1 Boot Monitor command syntax
5.2 Boot Monitor Setup Menu
5.3 X Terminal Configuration Files
5.4 Logging on to the host
6. Fonts and the X terminal
6.1 The font server
7. Miscellaneous
7.1 Supported Terminals
7.2 Reference
7.3 Equipment used in the preparation of this document
7.4 Acknowledgments
7.5 Outstanding Issues
7.6 Feedback
______________________________________________________________________
1. Copyright
The NCD X terminal mini HOWTO is copyright(c) 1998 by Ian Hodge. Linux
HOWTO documents may be reproduced and distributed in whole or in part,
in any medium physical or electronic, as long as this copyright notice
is retained on all copies.
2. Introduction
This document describes how an X terminal manufactured by NCD (Network
Computing Devices) can be connected to and booted from a UNIX host
using BootP (boot protocol). Many terminals are also capable of
booting with RARP, NFS or locally from a PCMCIA card or over a serial
link (either directly or with a modem).
Although the material in this document was prepared based on
experience with a single model of X terminal, much of the information
applies to other models and other X terminals generally. There is also
an Linux X terminal mini HOWTO document (declared obsolete by HOWTO
maintainers at the time of writing and therefore possibly not
available in all Linux distributions) which overlaps material from
this document. That document covers X terminal information more
generally.
2.1. Summary of steps
The process of connecting an X terminal to a UNIX network can be
summarized in the following steps:
<20> Physically connect the X terminal to the network.
<20> Configure the UNIX host you are going to boot from.
<20> Configure the X terminal boot procedure.
<20> Boot the X terminal.
<20> Log in to the network.
3. Requirements
3.1. The X terminal
An X terminal is a device which communicates and displays over a
network using a distributed network window system known as X.
Typically, the terminal's X software, known as the X server, is
retrieved from the network at boot time. Programs other then the X
server software (X client programs) are not run locally on the X
terminal (with some exceptions); instead, the X terminal displays
programs running on other hosts on the network. The X terminal,
therefore, is a type of network computer which uses the X protocol to
access network resources.
3.2. Physical Connection
The NCD X terminal (model Xncd19r was used in preparation of this
document) has an RJ-45 (twisted pair) connector for use with 10baseT
Ethernet. A hub is required to link more than two Ethernet devices
using twisted pair. If the X terminal and its host are the only
devices in the network, they may be connected with a 'null' cable
which is described in the Linux Ethernet HOWTO document.
3.3. NCD X server software
The terminal's X server software file is available from the
manufacturer and presumably is provided with the terminal upon initial
purchase. This file will reside on the boot host where it can be
accessed by the X terminal when it boots. This file is specific to the
terminal type but independent of boot host. The terminal can boot from
any host which supports the boot communication protocol (explained
later). In addition to X server, the X software may also include
applications, like a window manager, which can run locally on the X
terminal itself.
4. Configuring the UNIX Host
At boot time, the X terminal retrieves files (including its X server
software) from a remote host on the network. After the terminal boots,
the X server software will control input, display, local clients and X
protocol communication. The X server software is executed on the X
terminal and therefore does not have to be software compatible with
the host on which it resides.
4.1. TFTP and BootP
Together, tftp (trivial file transfer protocol) and BootP (boot
protocol server) are used on the remote host to allow the X terminal
to retrieve its X server software and configuration files over the
network. Both services are typically started by inetd (Internet
Daemon).
After the X terminal is powered up, if it is configured to boot from
the network, it will send out a broadcast message using BootP (TCP/IP
bootstrap protocol). This boot message will contain the X terminal's
hardware (Ethernet) address which is used by the boot host to respond
to the boot request.
When a boot request is received by the remote host, inetd (listening
on a port designated in /etc/services) starts the BootP daemon
specified in /etc/inetd.conf.
In file inetd.conf, create or uncomment lines that refer to TFTP and
BootP. The final argument of the tftpd entry in the example below is
the path of the directory containing the files required by the X
terminal. Although directory names are not mandatory, for security
reasons they should always be present as tftp access will then be
restricted to files in specified directories.
From a sample file /etc/inetd.conf:
# tftp service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers".
tftp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.tftpd /usr/X11/lib/X11/ncd/
bootps dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.bootpd
Upon activation, the BootP server daemon on the host will then read
its database file /etc/bootptab. An entry for the X terminal must be
placed in this file. Each entry contains a set of tags separated with
':' characters. The host name must be the very first tag in an entry.
Useful bootptab tags:
hd Bootfile home directory (eg /usr/X11/lib/X11/ncd/).
ip Address of the X terminal (eg 10.0.0.1).
sm Subnet mask (eg 255.0.0.0). To understand the use of the subnet
mask and other IP networking principles, consult the Linux NET-3
(networking) HOWTO document.
gw IP Address of gateway (eg 10.0.0.1).
ht Hardware type - Ethernet in this example.
ha Hardware address of X terminal (6 byte Ethernet address)
According to the bootptab UNIX man page, the 'ha' tag must be
preceded by the 'ht' tag. The X terminal's Ethernet address is
displayed when the terminal is first powered on. The address
appears as a series of 6 double digit hex numbers separated by
colons (e.g. 00:00:A7:12:26:19).
tc Table continuation or label of another entry in the BootP
database. See the example below.
ds IP address of domain name server (eg 10.0.0.3). Not required if
DNS is not used for hostname resolution.
bf Name of X terminal boot file (Usually the terminal model is used
as the X server file name eg Xncd19r).
The following is an example of the Boot protocol server database file,
/etc/bootptab. The character '\' is used to escape the end-of-line
character.
# This is an entry (here given the name default)
# with information common to all BootP clients
default:hd=/usr/X11/lib/X11/ncd/:\
ds=10.0.0.3:\
sm=255.0.0.0:\
gw=10.0.0.1:
# X terminal entry with hostname myxterm
# Notice the tc tag reference to the entry default
myxterm:ht=ethernet:\
ha=0x0000a7122619:\
ip=10.0.0.2:\
tc=default:\
bf=Xncd19r:
When a matching entry for the hardware address in the boot request is
found in the bootptab file, a response is sent by bootpd with the
corresponding IP address from the matching entry. File transfer can
then take place over IP using TFTP.
A hostname can be assigned to the X terminal by creating an entry on
the boot host in the file /etc/hosts. This file is used to map
hostnames to IP addresses. In the this example, the X terminal
(address 10.0.0.2) has been assigned the hostname 'myxterm'.
10.0.0.1 linuxhost # The boot host
10.0.0.2 myxterm # X terminal
5. Configuring the NCD X terminal Boot Process
After being powered up, the X terminal attempts to boot. This is the
process where the X software is loaded into memory and executed. If
the X terminal cannot boot, the Boot Monitor prompt '>' will appear.
The Boot Monitor is firmware found in terminal PROMs (programmable
read-only memory). With the basic Boot Monitor interface, it is
possible to configure the terminal to boot and retrieve its X server
software from the host. Use
Configuration parameters set with the boot monitor are stored in NVRAM
(Non-volatile Random-Access Memory) and are retained when the terminal
is powered down.
From the boot monitor, the 'bt' command or a menu system can be used
to boot the terminal. Functionality of the two methods largely
overlaps but the menu provides control over more boot parameters.
5.1. Boot Monitor command syntax
>bt file terminal_IP host_IP gateway_IP subnet_mask
file
The name of the file retrieved from the remote host containing
the X server software used by the X terminal to boot (eg
"Xncd19r"). Check that this file name is the same as the file
name is found in the X terminal entry in the bootptab file on
the host (explained in the previous section).
terminal_IP
The IP address assigned to the X terminal (eg 10.0.0.2). Again,
this IP address should be the same as the address assigned in
the X terminal entry of the bootptab file on the host.
host_IP
The IP address of the boot host (eg 10.0.0.1).
gateway
The IP address of the subnet gateway (eg 10.0.0.1)
subnet_mask
The subnet mask, specified as a decimal IP address or as a
hexadecimal number (eg 255.0.0.0 or ff000000).
5.2. Boot Monitor Setup Menu
The setup menus are accessed by pressing the 'Setup' key or typing
'se' from the boot monitor '>' prompt.
Get IP Addresses From
The IP address of the X terminal should be obtained from boot
monitor configuration stored in NVRAM. Only select IP address
from the remote host.
Terminal IP Address
The IP address assigned to the X terminal (eg 10.0.0.2). This is
the same as 'terminal_IP' parameter above.
First Boot Host IP Address
The IP address of the boot host (eg 10.0.0.1). This is the same
as 'host_IP' parameter above.
Gateway IP Address
The IP address of the subnet gateway. This is the same as
'gateway' parameter above.
Subnet Mask
The subnet mask, specified as a decimal IP address. This is the
same as the 'subnet_mask' parameter above.
Broadcast IP Address
The IP address used to broadcast to the subnet. (eg
10.255.255.255)
Boot File
The name of the file retrieved from the remote host containing
the X server software used by the X terminal to boot (eg
"Xncd19r"). This is the same as 'file' parameter described
above.
TFTP Boot Directory
The name of the directory on the host which contains the boot
file (eg "/usr/X11/lib/X11/ncd/" or "/tftpboot/").
Config file
The name of the X terminal configuration file on the remote host
(See below).
UNIX Config Directory
Name of the directory containing X terminal configuration files
(eg "/usr/X11/lib/X11/ncd/").
TFTP Order, NFS Order, Local Order
Assign '1' to the preferred method for booting. Assign '1' to
TFTP when booting from a host using BootP.
5.3. X Terminal Configuration Files
During the boot process, the X terminal will attempt to transfer and
load files from the boot host. These files are not required for the X
terminal to boot successfully. If a file is not found, the terminal
will use default settings.
Configuration Files transferred to the X terminal at boot time:
<20> X terminal configuration file (eg ncd.conf) used to retain terminal
settings.
<20> Color file (eg rgb.txt).
<20> X key symbol database (eg XKeysymDB).
<20> Font directory files (eg font.dir, font.alias).
After a successful boot, the X terminal console window with a menu bar
should appear. The terminal setup key toggles display of this console
window. From the console window 'setup' pull-down menu, terminal
characteristics can be viewed, altered and saved on the boot host in
the configuration file which can be used in future sessions.
If TFTP is being used to transfer files from the boot host, then file
permission must be world readable. Similarly, to save a configuration
file to the boot host, the file must already exist and with world
write permission enabled. If secure TFTP is used (this is recommended
for security reasons), then file access is possible only through
specified directories.
Note: The terminal may fail to boot if it was previously configured to
work with other hosts or with different configuration parameters.
Resetting the NVRAM to remove stored settings may solve the problem.
To reset NVRAM, from the boot monitor, type the 'nv' command. From
this sub-menu, select 'l' to load defaults, 's' to save and finally
'q' to quit. Resume the boot procedure described above.
5.4. Logging on to the host
From the X terminal console window menu bar, select the 'terminals'
pull-down menu and choose 'New Telnet...'. When the telnet window
appears, insert the address of a network host in the service entry and
click including a window manager, can be started from the telnet
window.
6. Fonts and the X terminal
The X terminal comes with a small set of fonts. In the X terminal
setup menus and configuration files, these fonts are referred to as
fonts are desirable. Fonts can be added by specifying font paths in X
terminal console setup menus, configuration files or by using the xset
command.
Once the X server software is running on the X terminal, the font path
can modified or queried with the command xset.
To query the X server:
xset -q
To add a font entry:
xset +fp <path>
To remove a font entry:
xset -fp <path>
6.1. The font server
The font server (xfs) runs on a network host and retrieves fonts for
the X terminal and other network clients. Use of the font server
allows the use of a wide variety of fonts as the X server software is
otherwise restricted to bitmap fonts. During retrieval, the font
server can uncompress, scale and convert fonts for the X server and
can help simplify the management of fonts for groups of terminals and
network clients. Font server software is part of many Linux
distributions and has been incorporated into X consortium software
available from ftp.x.org <ftp://ftp.x.org>.
To indicate the use of a font server, a tcp service entry is used
instead of a font path in the X terminal's host resident configuration
file or console setup menu.
Format of tcp service entry:
tcp/<IP address of font server>:<port used by font server>
Example:
tcp/10.0.0.1:7100
An example of an entry in the X terminal configuration file found on
the boot host:
xserver-default-font-path = {
{ "tcp/10.0.0.1:7100" }
{ "built-ins" }
}
The xset command with the tcp service entry can used to add the font
server to the path:
xset +fp tcp/10.0.0.1:7100
WARNING: Certain versions of NCDware require the font server entry to
be listed first before X terminal 'built-in' fonts. This is contrary
to the NCD documentation "System Administrator's Guide for UNIX
Systems". Experiment with the order of the font path and verify it
with the
On the font server host, the server is started at boot time from the
rc.local startup script. The font server (xfs) is started with the
following command:
xfs -config <config file path> -port <font server port number>
The standard font server port is 7100.
Example:
xfs -config /usr/X11/lib/X11/fs/config -port 7100
Example font server configuration file:
# font server configuration file
# allow a max of 10 clients to connect to this font server
client-limit = 10
# when a font server reaches its client limit, start up a new one
clone-self = on
# use the UNIX syslog utility to log errors.
use-syslog = on
# list of font directories
catalogue = /usr/X11R6/lib/X11/fonts/misc/,
/usr/X11R6/lib/X11/fonts/Speedo/,
/usr/X11R6/lib/X11/fonts/Type1/,
/usr/X11R6/lib/X11/fonts/75dpi/,
/usr/X11R6/lib/X11/fonts/100dpi/
# file used to log errors if syslog is not used.
error-file = /usr/X11R6/lib/X11/fs/fs-errors
# 12 point in decipoints
default-point-size = 120
# 100 x 100 and 75 x 75
default-resolutions = 75,75,100,100
7. Miscellaneous
7.1. Supported Terminals
I have been told that this procedures in this document work (more or
less) with the following terminals: NCD 19r, NCD 19c, NCD19m?, NCD
15b, NCD MCX
7.2. Reference
Unix man pages: bootpd(8), tftpd(8), bootptab(5), xdm(1x), xfs(1),
fsinfo(1), xset(1), inetd(8)
Linux Ethernet HOWTO document, Linux Net-3 (Networking) HOWTO document
NCDware System Administrator's Guide for UNIX Systems (print version)
NCD Techtips Archive <ftp://ftp.ncd.com/pub/ncd/Archive/NCD-
Articles/index.html>
Now available for download in the NCD Techtips Archive is the NCDware
Reference Manual
<ftp://ftp.ncd.com/pub/ncd/Archive/Documentation/NCDware/index.html>
which covers almost every X terminal configuration issue in detail.
The searchable NCD knowledge base
<http://www.ncd.com/support/kbsearch/kbase.html> addresses some
frequently asked questions as well as bug reports.
Note that the above links are subject to change. Since the first
version of this mini-HOWTO was published, the NCD web site has been
extensively reorganized.
7.3. Equipment used in the preparation of this document
X terminal: NCD model NCD19r with 19 monochrome monitor 1280x1024 8M
RAM
X server software: NCDware V3.2.CV 19r_s
Remote Host: IBM Cyrix 686 P150+ running Slackware (Linux kernel
version 2.0.31)
Remote Host: IBM Cyrix M2 200 MMX running Red Hat 5.0 (Linux kernel
version 2.0.32)
Network Card: 10 base T Ethernet card (ne 2000 clone) and 8 port hub
Font server version 2 release number 6300
7.4. Acknowledgments
I would like to thank Michael de Lind van Wijngaarden, Jamal Hadi-
Salim and Dwight Hodge for assistance in the preparation of this
document.
7.5. Outstanding Issues
<20> Is it possible or wise to start the font server using inetd?
<20> If the remote host running the font server is powered down but
later comes up again, with the font server active, the X terminal
may fail to retrieve its fonts. The font path entry has to be re-
entered with the console menu or xset. Why?
<20> Are the procedures for other models of X terminals roughly similar?
<20> What is the procedure to boot the X terminal using NFS (Network
File System) or RARP (Reverse Address Resolution Protocol)?
<20> The following messages appear in the X terminal Console. I am
suspicious that they come from xfree86 extensions to X which are
not part of the X terminal server. Can someone confirm or deny
this?
%XSERVER-I-NEWCLIENT, host "localhost" connected with blank authorization
%XSERVER-W-NOEXTENSION, client attempted to use non-existent extension "BIG-REQUESTS"
%XSERVER-W-NOEXTENSION, client attempted to use non-existent extension "XKEYBOARD"
%XSERVER-W-NOEXTENSION, client attempted to use non-existent extension "XFree86-Misc"
<20> Could Linux be ported to an X terminal? This is almost a joke
question but Linux is already on some unlikely platforms.
7.6. Feedback
Please write to ian at permedia.ca with any comments, questions,
corrections, suggestions or contributions. Many thanks to all who
have written with feedback and additional information.