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)。
簡而言之,這些是步驟
安裝 tub3270 補丁
(如果是模組)在 /etc/modprobe.d/*.conf 中的檔案中新增一行
(如果是 VM)使用 DEF GRAF 定義裝置
重新啟動
配置
要測試一切是否正常工作,假設使用 VM 和 x3270,
啟動 x3270 視窗。
在該視窗中使用 DIAL 命令。
您應該立即看到 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_install2. (僅當您已將 tub3270 配置為模組時,才執行此步驟。)在檔案 /etc/modprobe.d/*.conf 中新增一行,以便在需要時自動載入驅動程式。新增此行後,您將在啟動完成後立即在您的 3270 上看到登入提示(或者在使用模擬的 3270 時,在您使用命令“DIAL <vmguestname>”撥入您的 vm 訪客後立即看到登入提示)。由於行模式主裝置號為 227,因此要新增的行應該是
alias char-major-227 tub32703. 如果尚未定義,請將圖形裝置定義到您的 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-name3. 您應該立即看到來自您的 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”?錯誤的主裝置號?錯誤的次裝置號?這就是您的問題!
您是否收到訊息
"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>