NCD X terminal mini HOWTO Ian Hodge, ian at permedia.ca v1.09, March 27, 2000 _________________________________________________________________ 这份文件在教述如何以 NCD X 终端机连接至 UNIX 主机。 _________________________________________________________________ 1. 版权 2. 引言 * 2.1 全部的步骤 3. 需求 * 3.1 X 终端机 * 3.2 实体连接 * 3.3 NCD X 伺服器软体 4. 设定 UNIX 主机 * 4.1 TFTP 以及 BootP 5. 设定 NCD X 终端机的开机程序 * 5.1 开机监控程式的命令文法 * 5.2 开机监控软体设定选单 * 5.3 X 终端机设定档 * 5.4 登入主机 6. 字型以及 X 终端机 * 6.1 字型伺服器 7. 其他零琐的事 * 7.1 被支援终端机 * 7.2 参考 * 7.3 这份文件所准备的装置 * 7.4 感谢 * 7.5 题外的问题 * 7.6 回馈 _________________________________________________________________ 1. 版权 NCD X 终端机的 mini HOWTO 的版权是由 Ian Hodge。 Linux HOWTO 文件也许会 以任何的媒体来重置或发布其中的部份或全部, 不论以印刷或是电子档,这份版 权宣告都要包含在所有的发行中。 2. 引言 这份文件在教述如何由利用 BootP(Boot Protocol) 连结至 UNIX 主机产生一个 并起始一个 X 终端机。 许多的终端机模式也相容於由 RARP, NFS 或是 PCMCIA 卡,或是序列阜的连接 ( 不论是直接连线或是透过数据机 ) 的开机方式。 虽然这份文件的内容是以单一模式的 X terminal 做为基础的, 但是这些资讯也 适用於其他的模式或是其他的 X 终端机。 另外有一份名为 Linux X terminal 的 mini HOWTO 文件 ( 这份文件被 HOWTO 的维护人员宣告废弃了,所以也许你 在 Linux 的发行版本中找不到这份文件 ) 这份文件和本文件的内容有所重叠。 这份文件包含更广泛的 X 终端机的说明。 2.1 全部的步骤 连接一个 X 终端机至 UNIX 网路的步骤大致上有下列几个步骤: * 实际的连接 X 终端机至网路。 * 设定你要从哪部 UNIX 主机开机。 * 设定 X 终端机的开机程序。 * 起始 X 终端机。 * 登入网域。 3. 需求 3.1 X 终端机 X 终端机是一种利用网路作沟通与显示的装置,而这种网路 利用了分散式的网路 视窗系统,例如我们所熟知的 X 。 一般而言, X 的软体(例如 X server)是在 开机时从网路上被取回来的。 这些除了 X server 的软体 ( X client 的程式 ) 并不是在使用 X 终端机的机器上跑 ( 然有一些例外 ); X 终端机反而是在显 示其他存在於网路中的机器上,执行程式的结果。 所以说 X 终端机只是一种利 用 X 协定去存取网路资源的一种网路电脑。 3.2 实体连接 NCD 的 X 终端机 ( 型号为 Xncd19r 备用於准备这份文件 ) 拥有一个 RJ-45 ( 双绞线 ) 的 10baseT 乙太网路的街头。 一部集线器是以双绞线连接两个以上乙 太网路装置的设备。 如果 X 终端机和她的主机是网路上存在的仅有的装置, 他 们应该被一种叫做 'null' 线的线才连接,这种线在 Linux Ethernet HOWTO 的 文件中有被描述。 3.3 NCD X 伺服器软体 X server 软体由制造厂商提供并且应该在终端机买的时候提供。 这份档案被储 存在能让 X 终端机开机的主机上。 它因 X 终端机的不同而有所不同,但是和储 存它的主机并没有关系。 终端机能够从任何支援开机的通讯息协定的主机开机。 另外,这份 X 的软体也包含了 X server 以及一些类似於视窗管理员, 在 X 终 端机上执行的程式。 4. 设定 UNIX 主机 在开机时,X 终端机自网路上的远端系统取得这些必要档案 (包含它的 X server ) 当终端机开机以後,X server 将会控制输入,显示以及 X 通讯息定的 沟通。 X server 是在 X 终端机上执行的,所以它并不需要与存放它的主机需要 相容。 4.1 TFTP 以及 BootP 一并提及 tftp (trivial file transfer protocol) 还有 BootP (boot protocol server) 都被使用於 X 终端机透过网路取得远端主机上的 X server 以及设定档, 这两种服务典型的都是被 inetd ( Internet Daemon ) 启动。 X 终端机开机以後,如果它设定成自网路开机,它将会以 BootP ( TCP/IP bootstrap protocol ) 送出广播的讯息。 这份开机的资讯将会包含X 终端机的 网路卡卡号资料, 这份资料是用来让开机用的处机利用来回应 X 终端机的。 当远端主机机收到远端开机的要求时, inetd ( 这个 daemon 是在倾听在 /etc/services 所开的 Port )启动 BootP 这个被 /etc/services 指定的 daemon 。 在 inetd.conf 这个设定档里面,建立或是取消 TFTP 以及 BootP 的设定列。 tftpd 这设定的最终一项参数,以下方这个设定为例子,是一个存放 X 终端机需 要的档案所存放的目录。虽然存放的目录不是限定的,但是为了安全因素,它们 应该放在一个限制只能由 tftp 存取的特殊路径。 /etc/inetd.conf 的□例档: # tftp 主要是提供开机的服务。许多的站台 # 执行这个服务只是为了提供开机。 tftp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.tftpd /usr/X11/lib/X11/n cd/ bootps dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.bootpd 起始化时, BootP 这个在主机上执行的 daemon会去读它 /etc/bootptab 的资料 库档。 每一个 X 终端机都必须在这个设定档里面存有一组资料。 每一笔资料被 ':' 字元所分隔。 每部主机的名字都是每一笔资料的头一个标记。 有用的 bootptab 标记: hd 开机用的家目录 ( 例如 /usr/X11/lib/X11/ncd/ )。 ip X 终端机的网路位址 ( 例如 10.0.0.1)。 sm 子网路遮罩 ( 例如 255.0.0.0)。如果欲知如何使用子网路遮罩以及其他 的 IP 网路原则, 请参阅 Linux NET-3 (networking) HOWTO document 。 gw 闸道的 IP 位置 ( 例如 10.0.0.1)。 ht 硬体装置类型 - 在这个例子中是 Ethernet。 ha X 终端机的硬体位置 ( 6 个位元组的表示的乙太网路卡号 ) 依据 bootptab 的 UNIX 说明,'ht' 标记必须比 'ha' 标记在前面。 X 终端机的乙太网路卡号会在终端机第一次接上电源时显示。 这个位置有 点像是六组被分号分开的两位数的十六进位符号 所表达 ( 例如 00:00:A7:12:26:19 )。 tc 表格内的资料继续下去。 ds 名称伺服器的 IP 位址 ( 例如 10.0.0.3 )。 如果不用解析电脑的名称 ,这一个项目是不需要的。 bf X 终端机的开机档案 ( 终端机的名称常常用做为档案名称,例如 Xncd19r)。 接下来列的是一个 BootP 伺服器资料库档案的/etc/bootptab 例子。 '\'这个字 元是用作换行的字元。 # 这是一笔资料 ( 它给定一些预设的设定资讯 ) # 指定所有 BootP 客户端的共同资讯 default:hd=/usr/X11/lib/X11/ncd/:\ ds=10.0.0.3:\ sm=255.0.0.0:\ gw=10.0.0.1: # 这笔 X 终端资料的主机名称为 myxterm # 注意, tc 这个标记是参阅预设的资料 myxterm:ht=ethernet:\ ha=0x0000a7122619:\ ip=10.0.0.2:\ tc=default:\ bf=Xncd19r: 当一个符合 bootptab 资料库的开机要求被侦测到时 bootpd 会从资料库中找到 相符的资讯, 并送出一个符合这个硬体卡号的 IP 位址。 档案藉由 TFTP 透过 IP 协定传送出去。 X 终端机的主机名称能被存放於开机主机的 /etc/hosts 这个档案里的某一笔资 料决定。 这个档案用来解析主机名称对应於 IP 位置的关系。 在这个□例中, X 终端机 ( IP 位址为 10.0.0.2) 被分配成 myxterm 。 10.0.0.1 linuxhost # 开机用的主机 10.0.0.2 myxterm # X 终端机 5. 设定 NCD X 终端机的开机程序 电源打开以後, X 终端机试著去开机。 这个步骤是将 X 的相关软体载入到记忆 体之中并执行之。 如果 X 终端机不能开机,那麽开机管理程式的提示符号 '>' 将会出现。 这个开机监视软体是一种存在於终端机里面的 PROMs (programmable read-only memory) 的韧体。基本的开机监控软体介面,它可能 是设定终端机如何开机以及 自主机获取 X server 的软体。 使用 '?' 以获取开 机监控程式的指令协助。 利用存在 NVRAM (Non-volatile Random-Access Memory) 的开机监控程式设定参 数 并且在关机时保留设定值。 在开机监控程式中,'bt' 这个指令或是一个系统选单能够用来起始终端机。 基 本而论,两者都提供同样的能力,但是选单能提供更多的选项设定。 5.1 开机监控程式的命令文法 >bt file terminal_IP host_IP gateway_IP subnet_mask file 这个名称是欲自远端主机要求的档案名称,它包含了 被 X 终端机开机使 用的 X server 的软体 (例如:' Xncd19r ' ) 。 确定这个档案名称符 合储存於 bootptab 档案 ( 我们之前提过它 ) 中 X 终端机的资讯。 terminal_IP 这个 IP 位址是指定给 X 终端机的 ( 例如 10.0.0.2 )。 同样的,这组 组机训也要和 bootptab 档案中 X 终端机的资讯相同。 host_IP 这个 IP 位址是指定给开机主机的 ( 例如 10.0.0.1)。 gateway 这个 IP 位址是指定给闸道的 ( 例如 10.0.0.1)。 subnet_mask 子网路遮罩,以十进制或是十六进制表达 (例如 255.0.0.0 或是 ff000000)。 5.2 开机监控软体设定选单 使用 '设定键' 或是在命令提示符号 '>' 後面键入 'se'。 Get IP Addresses From X 终端机的 IP 位址应该被储存由开机监控程式的设定工具储存於 NVRAM 中。 如果你有在使用 RARP ( reverse ARP ) 去从选端的主机取 得 IP,那麽你可以选择 'Network'。 Terminal IP Address 这个 IP 位址是指定给 X 终端机的 ( 例如 10.0.0.2 )。 这如同上面所 提及的 'terminal_IP'。 First Boot Host IP Address 这个 IP 位址是指定给开机主机的 ( 例如 10.0.0.1 )。 这如同上面所 提及的 'host_IP'。 Gateway IP Address 这个 IP 位址是指定给闸道的。 这如同上面所提及的 'gateway' 。 Subnet Mask 子网路遮罩,以十进制表达。 这如同上面所提及的 'subnet_mask'。 Broadcast IP Address 这个 IP 位址是用来广播讯息至子网路的 ( 例如 10.255.255.255)。 Boot File 这个名称是欲自远端主机要求的档案名称,它包含了 被 X 终端机开机使 用的 X server 的软体 (例如: 'Xncd19r' )。 这如同上面所提及的 'file'。 TFTP Boot Directory 这项资料是主机存放开机档案的路径 ( 例如 '/usr/X11/lib/X11/ncd/' 或是 '/tftpboot/' )。 Config file X 终端机在远端主机上设定档的资料名称 ( 往下看 )。 UNIX Config Directory 主机存放设定档的路径名称 (eg "/usr/X11/lib/X11/ncd/")。 TFTP Order, NFS Order, Local Order 指定优先使用的开机用协定为 '1'。 指定为 TFTP 为 '1' 当开机时使用 BootP 开机。 5.3 X 终端机设定档 在开机的程序中,X 终端机会试图从开机主机传送,下载档案到本端执行。 X 终 端机开机是否成功并不一定要求这些档案。如果档案没有被找到,终端机将会使 用预设值。 设定档在开机时开始传送: * X 终端机设定档 ( 例如 ncd.conf ) 是用来维护终端机的设定。 * 色彩设定档 ( 例如 rgb.txt )。 * X 键盘符号表的资料库 ( 例如 XKeysymDB )。 * 字型目录档案 ( 例如 font.dir, font.alias)。 开机成功後,X 终端机视窗将会伴随一个功能表选单出现。 终端机设定的键值贴 在这个终端机视窗上。 这个终端机视窗有一个 'setup' 下拉式选单, 终端机的 一些特性能在此被显示,修改以及储存在这个开机用主机的设定档之中,以便将 来使用。 如果使用 TFTP 自开机主机下载档案至 X 终端机上, 那麽这个档案的权限必须 设定为全部的使用者都能存取。 相同的,为了能存放设定档至开机主机,这个档 案必须存在并且打开所有的控制权限。 如果安全的 TFTP 被使用 ( 因为安全的 理由这是被强烈建议的 ), 那麽档案只限定於某些特定的目录才能被存取。 Note: 如果终端机先前被设定为使用另一部主机,或是不同的设定参数,也许它 不能正常开机。 重置 NVRAM 以移除设定,应该能解决这个问题。 从开机监控程式重置 NVRAM 只要键入 'nv' 这道命令。在子选单里选择 ' l ' 载入预设值。 ' s ' 来储存, 'q' 用以离开。 确定开机程序如上所描述。 5.4 登入主机 在 X 终端机的下拉式选单中,选择 'terminals' 这一项选单,接著选择 ' New Telnet... ' 。 当远端登入的视窗出现时,在服务这个项目里键入网路主机的 IP 位址,在来选择 'OK'。 这时选端只机的登入提示应该会出现。在登入以後 ,X 的程式, 包含视窗管理员,都能在这个远端登入的视窗中被执行。 6. 字型以及 X 终端机 X 终端机一开始是使用小型字的。在 X 终端机的设定选单还有设定档里面 这些 字型都是内建可供使用的。 终端机能够使用单独使用这些字型,但是我们希望能 够使用更多的字型。 字型能被在 X 终端机的设定选单中经由指定的路径中被使 用,或是使用 xset 来作设定。 当 X server 的软体在 X 终端机上执行时,你能使用 xset 来指定字型。 查询 X server : xset -q 将字型的路径加入: xset +fp 移除字型项目: xset -fp 6.1 字型伺服器 这个字型伺服器在一部网路主机上执行,其工作是帮忙 X 终端机还有其他在网路 上的客服端取得字型。 使用字型伺服器能够让 X server 的软体允许使用除了点 阵字型以外可变动的字型。 在取得的过程中,这个字型伺服器能够帮 X server 解压缩,缩放以及转换字型, 并且更容易的帮助一群的 X 终端机以及网路上的 客服端管理字型。 字型伺服器的软体被包含在许多的 Linux 发行版中,并且已 被整合在 X 设群所发布的软体中,你可以自 [1]ftp.x.org取得。 要注意的是,使用字型伺服器,在 X 终端机的设定档或是设定选单中, 一个 tcp 的服务要用来取代字型路径。 tcp 服务的格式: tcp/< 字型伺服器的 IP 位址 >:< 字型伺服器所使用的接口 > 例子: tcp/10.0.0.1:7100 一笔存放於开机主机的 X 终端机设定档的例子: xserver-default-font-path = { { "tcp/10.0.0.1:7100" } { "built-ins" } } 由 xset 附加上 tcp 参数也能将自行伺服器加入路径之中: xset +fp tcp/10.0.0.1:7100 警告:某些版本的 NCD 软体要求自型伺服器的资讯为 X 终端机的第一项内建自 型。 这是和 NCD 命名为 "System Administrator's Guide for UNIX Systems" 的文件所相违背的。 用 ' xset q ' 这道命令确定字型的路径的顺序。 在自型伺服器这边,这个伺服器的起始工作是 rc.local 这个启动命令稿中。 ( 译注:现在大多数的发行版本都包含这个字形伺服器,并拥有自己的启动命令稿 ,其名称为 xfs ) 字形伺服器以下列的命令开始工作: xfs -config < 设定档路径 > -port < 字形伺服器接口 > 一般而言字形伺服器的接口为 7100。 例子: xfs -config /usr/X11/lib/X11/fs/config -port 7100 字形伺服器的设定档例子: # 字形伺服器的设定档 # 允所最多 10 个客户端连接至字形伺服器 client-limit = 10 # 当字形伺服器客户端的负载达它的极限时,将启动另一个字形伺服器。 clone-self = on # 利用 UNIX 的 syslog 纪录错误的讯息。 use-syslog = on # 可用字型的目录 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/ # 如果 syslog 没有被使用,所要存放的错误讯息位置 error-file = /usr/X11R6/lib/X11/fs/fs-errors # 预设的字型大小为 12 pt default-point-size = 120 # 100 x 100 以及 75 x 75 default-resolutions = 75,75,100,100 7. 其他零琐的事 7.1 被支援终端机 我在事前说过这份文件是针对下列的终端机所准备的: NCD 19r, NCD 19c, NCD19m?, NCD 15b, NCD MCX 7.2 参考 Unix 的手册: 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) [2]NCD Techtips Archive 你现在也可以下载 NCD 的技术资讯,从 [3]NCDware Reference Manual 。这份 资料几乎包含所有的终端机的资讯。 [4]NCD knowledge base 这个位置有一些常被问到的问题以及臭□的回报。 注意,上面的连结也许会更改它的位址。因为当这份 mini-HOWTO 第一版被释出 时, NCD的网页已经大幅度的改版过了。 7.3 这份文件所准备的装置 X 终端机: NCD 的产品型号为 NCD19r ,以及 19 □单色萤幕能在 1280x1024 下执行,配有 8M RAM X server 软体: NCDware V3.2.CV 19r_s 选端主机: BM Cyrix 686 P150 以 Slackware 在运行 (Linux 核心版本 2.0.31) 选端主机: IBM Cyrix M2 200 MMX 搭配 Red Hat 5.0 (Linux 核心版本 2.0.32) 网路卡:10 base T Ethernet card (ne 2000 clone) and 8 port hub 字形伺服器第二个版本,释出号码 6300 。 7.4 感谢 我很感谢 Michael de Lind van Wijngaarden , Jamal Hadi-Salim 还有 协助 准备这份文件的 Dwight Hodge。 7.5 题外的问题 * 有可能以 inetd 的方式启用字形伺服器吗? * 如果执行字形伺服器的远端的主机关机後又再启动,并将字形伺服器启动, X 终端机将不能正常的取回字形。你必须从选单中或是使用 xset 重设字形 路径。 为什麽? * 其他型号的 X 终端机的处理程序是否类似? * X 终端机利用 NFS ( Network File System ) 或是 RARP ( Reverse Address Resolution Protocol ) 的启动程序又是怎样? * X 终端机显示下列讯息。 我怀疑它们来自一个不属於 X 终端机 xfree86 的 X 延伸 有没有人能说明? %XSERVER-I-NEWCLIENT, host "localhost" connected with blank authorization %XSERVER-W-NOEXTENSION, client attempted to use non-existent extension "BIG-REQ UESTS" %XSERVER-W-NOEXTENSION, client attempted to use non-existent extension "XKEYBOA RD" %XSERVER-W-NOEXTENSION, client attempted to use non-existent extension "XFree86 -Misc" * Linux 能够移植到 X 终端机上面吗?这算是一个笑话问题,Linux已经能在 许多不同的平台上跑了。 7.6 回馈 请写信至 ian 在 permedia.ca ,可以提供任何建议,问题,更正,或是贡献。 很感谢所有回馈於我以及提供额外资讯的朋友。 References 1. ftp://ftp.x.org/ 2. ftp://ftp.ncd.com/pub/ncd/Archive/NCD-Articles/index.html 3. ftp://ftp.ncd.com/pub/ncd/Archive/Documentation/NCDware/index.html 4. http://www.ncd.com/support/kbsearch/kbase.html