IBM 3270 顯示系統支援

此檔案描述了支援 IBM 3270 裝置本地通道連線的驅動程式。它包含三個部分

  • 簡介

  • 安裝

  • 操作

簡介

本文件描述了在 Linux/390 下安裝和操作 3270 裝置。3270 裝置是一種塊模式行列終端,我相信 IBM 和克隆製造商在二三十年前就售出了數億臺。

您可能在內部擁有 3270,但您不知道。如果您正在使用 VM-ESA 作業系統,請使用命令“DEF GRAF <hex-address>”將 3270 定義到您的虛擬機器。本文件假定您將使用 CP/CMS 命令定義四個 3270

  • DEF GRAF 620

  • DEF GRAF 621

  • DEF GRAF 622

  • DEF GRAF 623

您從 VM-ESA 建立的網路連線允許您使用 x3270、tn3270 或其他 3270 模擬器,從您的 PC 或工作站上的 xterm 視窗啟動。透過 DEF GRAF 命令、xterm 等應用程式以及此 Linux-390 3270 驅動程式,您可以使用另一種方式與您的 Linux 機器進行通訊。

本文件涵蓋了驅動程式的安裝以及撥入 x3270 的操作。

安裝

您可以透過安裝補丁、構建核心和執行配置指令碼(此目錄中的 config3270.sh)來安裝驅動程式。

警告:如果您正在使用 3270 控制檯支援,則每次更改控制檯的地址時(可能透過使用 silo 的 /boot/parmfile 中的 condev= 引數),都必須重新執行配置指令碼。更準確地說,每次您的 3270 集(包括控制檯 3270)相對於彼此的子通道識別符號發生變化時,都應該重新執行配置指令碼。執行配置指令碼和生成的 /tmp/mkdev3270 後,請儘快重新啟動系統。

如果您選擇將 tub3270 製成模組,則需要在 /etc/modprobe.d/ 下的配置檔案中新增一行。如果您正在 VM 虛擬機器上工作,則可以使用 DEF GRAF 定義虛擬 3270 裝置。

您可以生成 3270 和 3215 控制檯支援,或者兩者之一,或者兩者都不生成。如果同時生成兩者,則 VM 下的控制檯型別不會更改。使用 #CP Q TERM 檢視當前的控制檯型別。使用 #CP TERM CONMODE 3270 將其更改為 3270。如果您只生成 3270 控制檯支援,則驅動程式會在啟動時自動將您的控制檯轉換為 3270(如果它是 3215)。

簡而言之,這些是步驟

  1. 安裝 tub3270 補丁

  2. (如果是模組)在 /etc/modprobe.d/*.conf 中的檔案中新增一行

  3. (如果是 VM)使用 DEF GRAF 定義裝置

  4. 重新啟動

  5. 配置

要測試一切是否正常工作,假設使用 VM 和 x3270,

  1. 啟動 x3270 視窗。

  2. 在該視窗中使用 DIAL 命令。

  3. 您應該立即看到 Linux 登入螢幕。

以下是詳細的安裝步驟

1. 3270 驅動程式是官方 Linux 核心原始碼的一部分。使用核心原始碼和任何必要的補丁構建一個樹。然後執行

make oldconfig
(If you wish to disable 3215 console support, edit
.config; change CONFIG_TN3215's value to "n";
and rerun "make oldconfig".)
make image
make modules
make modules_install

2. (僅當您已將 tub3270 配置為模組時,才執行此步驟。)在檔案 /etc/modprobe.d/*.conf 中新增一行,以便在需要時自動載入驅動程式。新增此行後,您將在啟動完成後立即在您的 3270 上看到登入提示(或者在使用模擬的 3270 時,在您使用命令“DIAL <vmguestname>”撥入您的 vm 訪客後立即看到登入提示)。由於行模式主裝置號為 227,因此要新增的行應該是

alias char-major-227 tub3270

3. 如果尚未定義,請將圖形裝置定義到您的 vm 訪客機器。在重新啟動 (reipl) 之前定義它們

  • DEFINE GRAF 620

  • DEFINE GRAF 621

  • DEFINE GRAF 622

  • DEFINE GRAF 623

4. 重新啟動。重新啟動過程會掃描硬體裝置(包括 3270),這使 tub3270 驅動程式在載入後能夠正確響應下一步的配置請求。如果您選擇了 3270 控制檯支援,則您的控制檯現在將表現為 3270,而不是 3215。

5. 執行 3270 配置指令碼 config3270。它與 config3270.sh 一起分發在同一目錄 Documentation/arch/s390 中。檢查它生成的輸出指令碼 /tmp/mkdev3270,然後執行該指令碼。這將建立必要的字元特殊裝置檔案,並對 /etc/inittab 進行必要的更改。

然後透過發出帶有 q 運算元的 telinit 命令來通知 /sbin/init /etc/inittab 已更改

cd Documentation/arch/s390
sh config3270.sh
sh /tmp/mkdev3270
telinit q

這應該足以讓您第一次使用。如果您的 3270 配置已更改並且您正在重複使用 config3270,則應按照以下步驟操作

Change 3270 configuration
Reboot
Run config3270 and /tmp/mkdev3270
Reboot

以下是詳細的測試步驟

1. 啟動一個 x3270 視窗,或使用實際的硬體 3278 或 3279,或使用您選擇的 3270 模擬器。您將在您的 PC 或工作站上執行該模擬器。例如,您將使用該命令

x3270 vm-esa-domain-name &

如果您想要一個 3278 型號 4,具有 43 行 80 列,這是預設型號。該驅動程式不利用擴充套件屬性。

您現在應該看到的螢幕包含一個 VM 徽標,底部附近有輸入行。使用 TAB 移動到最底部的行,可能標記為“COMMAND ===>”。

2. 使用 DIAL 命令而不是 LOGIN 命令連線到您使用 DEF GRAF 命令定義的虛擬 3270 之一

dial my-vm-guest-name

3. 您應該立即看到來自您的 Linux-390 作業系統的登入提示。如果未發生這種情況,您將看到行“DIALED TO my-vm-guest-name 0620”。

要進行故障排除:請執行以下操作。

A. 驅動程式是否已載入?使用 lsmod 命令(無運算元)來查詢。可能沒有。嘗試使用命令“insmod tub3270”手動載入它。該命令是否給出錯誤訊息?哈!這就是您的問題。

B. /etc/inittab 檔案是否按照上述安裝步驟 3 中的說明進行修改?使用 grep 命令來查詢;例如,發出“grep 3270 /etc/inittab”。未找到任何內容?這就是您的問題!

C. 裝置特殊檔案是否已建立,如上述安裝步驟 2 中的說明?使用 ls -l 命令來查詢;例如,發出“ls -l /dev/3270/tty620”。輸出應該以字母“c”開頭,表示字元裝置,並且應該包含“227, 1”,正好在裝置名稱的左側。沒有這樣的檔案?沒有“c”?錯誤的主裝置號?錯誤的次裝置號?這就是您的問題!

  1. 您是否收到訊息

    "HCPDIA047E my-vm-guest-name 0620 does not exist"?
    

如果是這樣,您必須從您的 VM 3215 控制檯發出命令“DEF GRAF 620”,然後重新啟動系統。

操作。

驅動程式在 3270 螢幕上定義了三個區域:日誌區域、輸入區域和狀態區域。

日誌區域佔據了螢幕除底部兩行之外的所有區域。驅動程式將終端輸出寫入該區域,從頂行開始向下寫入。當它填滿時,狀態區域從“Linux Running”更改為“Linux More...”。在(預設)5 秒的滾動超時後,螢幕會清除,並從上到下寫入更多輸出。

輸入區域從倒數第二行螢幕行的開頭延伸到狀態區域的開頭。您在此區域中鍵入命令並按 ENTER 執行它們。

狀態區域初始化為“Linux Running”,為您提供溫暖模糊的感覺。當日志區域填滿並且有輸出等待時,它會更改為“Linux More...”。此時您可以執行幾件事或什麼都不做。如果您什麼都不做,螢幕將在(預設)5 秒內清除,並且會出現更多輸出。您可以按 ENTER,而不在輸入區域中鍵入任何內容,以在“Linux More...”和“Linux Holding”之間切換,這表示不會發生滾動。(如果您按 ENTER 並顯示“Linux Running”且未鍵入任何內容,則應用程式會收到一個換行符。)

您可以更改滾動超時值。例如,以下命令列

echo scrolltime=60 > /proc/tty/driver/tty3270

將滾動超時值更改為 60 秒。如果您希望完全阻止滾動,請將 scrolltime 設定為 0。

當日志區域填滿時,您可以執行的其他操作包括:按 PA2 清除日誌區域並將更多輸出寫入該區域,或按 CLEAR 清除日誌區域和輸入區域並將更多輸出寫入日誌區域。

某些程式功能 (PF) 和程式注意 (PA) 鍵已預先分配了特殊功能。那些沒有預先分配的鍵在按下時會產生警報。

PA1 會導致向當前正在執行的應用程式傳送 SIGINT。您也可以從輸入區域執行相同的操作,方法是鍵入“^C”並按 ENTER。

PA2 會導致清除日誌區域。如果有輸出等待,則將其寫入日誌區域。

PF3 會導致應用程式接收 EOF 作為輸入。您也可以透過鍵入“^D”並按 ENTER 來導致 EOF。

沒有預先分配 PF 鍵來導致作業掛起,但您可以透過鍵入“^Z”並按 ENTER 來導致作業掛起。您可能希望將此功能分配給 PF 鍵。要使 PF7 導致作業掛起,請執行命令

echo pf7=^z > /proc/tty/driver/tty3270

如果您鍵入的輸入不以兩個字元“^n”結尾,則驅動程式會附加一個換行符並將其傳送到 tty 驅動程式;否則,驅動程式會刪除“^n”並且不附加換行符。IBM 3215 驅動程式的行為類似。

Pf10 會導致從管道的命令堆疊(預設深度為 20)中檢索最近的命令,並顯示在輸入區域中。您可以再次按 PF10 以獲取下一個最近的命令,依此類推。只有當輸入區域未被隱藏(例如用於密碼輸入)且與當前頂部條目不相同時,命令才會輸入到堆疊中。PF10 在命令堆疊中向後旋轉;PF11 向前旋轉。您可以將向後功能分配給任何 PF 鍵(或 PA 鍵,就此而言),例如 PA3,使用命令

echo -e pa3=\\033k > /proc/tty/driver/tty3270

這會將字串 ESC-k 分配給 PA3。類似地,字串 ESC-j 執行向前功能。(理由:在使用 vi 模式行編輯的 bash 中,ESC-k 和 ESC-j 檢索向後和向前歷史記錄。歡迎提出建議。)

不喜歡 20 個命令的堆疊大小?動態更改它。要更改為儲存最後 100 個命令,請執行命令

echo recallsize=100 > /proc/tty/driver/tty3270

有您經常發出的命令嗎?將其分配給 PF 或 PA 鍵!使用命令

echo pf24="mkdir foobar; cd foobar" > /proc/tty/driver/tty3270

在您按 PF24 時立即執行命令 mkdir foobar 和 cd foobar。想在執行命令之前先看到命令列嗎?使用 echo 命令的 -n 選項

echo -n pf24="mkdir foo; cd foo" > /proc/tty/driver/tty3270

祝您測試愉快!我歡迎有關本文件、驅動程式等的任何和所有評論。

Dick Hitt <rbh00@utsglobal.com>