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