天天看點

将LINUX的控制台定向到序列槽終端

利用序列槽終端作為Linux控制台,可以免去額外的鍵盤,顯示卡和顯示器,同時可将Linux主機作為一個任意用途的嵌入式黑匣。 将序列槽終端連接配接到計算機的序列槽上并不困難,可以參考Linux的HOWTO文檔和以及inittab和agetty的幫助資訊。這裡扼要地說一下。 

  首先,準備好一根null modem 電纜. 

  其次,在檔案/etc/inittab 增加下面一行。[注:如果你不采用 agetty程式,采用其他的程式如like getty_ps ,應用正确的指令文法] 

   ID:RUNLEVELS:respawn:/sbin/agetty -L SPEED TTY TERM 

  這裡: ID =兩字母的辨別符,如s1或s2。 

  RUNLEVELS = 終端激活的運作級别 

  SPEED = 序列槽端口速率 

  TTY = 序列槽的裝置名 

  TERM = TERM環境變量 

  範例如下: 

  s2:12345:respawn:/sbin/agetty -L 9600 ttyS1 vt100 

  表示序列槽 /dev/ttyS1 (COM2 )速率為 9600 bps,終端模式為vt100。 

  最後,重新啟動機器。 

  如正确地按照上述三步進行,則就可以在終端螢幕上出現Login: 的提示符。你可以登入進系統,并能象在實際的控制台上或從遠端Telnet登入一樣進行工作。 

  下面簡單介紹一下如何終端設定成控制台,主要涉及核心資訊、啟動腳本資訊和LILO資訊。 

一、核心資訊 

  系統在啟動時顯示的資訊總是輸出到主要制台(tty1)。打開機器後,你隻有等待Login: 出現在終端螢幕上,這意味着所有啟動資訊都無法獲悉。你隻有登入後用dmesg指令檢視,但通常是想在login shell起來前看到這些資訊。 

  還有其他資訊出現在控制台上:/etc/rc.d目錄下腳本指令執行時,啟動和終止機器時運作的腳本指令等輸出的資訊。如果資訊沒有出現在螢幕上,怎樣真正地知道"系統已終止"呢? 

  你必須修改源碼/usr/src/linux/drivers/char/console.c[必須已安裝了核心源碼],這不是一個複雜得核心修改,按照下面三步進行: 

  首先,在程式前定義CONFIG_SERIAL_ECHO 

  #define CONFIG_SERIAL_ECHO 

  其次,修改序列槽位址 (僅當你使用得端口不同于預設定義的才有必要修改)。 

  #define SERIAL_ECHO_PORT 0x3f8  

  或者: 

  #define SERIAL_ECHO_PORT 0x2f8  

   第三,重新編譯核心[請參考相應的手冊],啟動機器。在系統檢測硬體裝置時,你應該在終端螢幕上看到資訊。 

   請注意 :console.c 更新檔除了Alpha平台外,對所有的Linux 端口都是必要的。在Alpha平台上它是在運作make config ,選擇下面的選項完成的: 

   Echo console messages on /dev/ttyS1 

二、/etc/rc.d/rc.*啟動腳本資訊 

  為了将這些資訊顯示在終端上,可以将這些檔案中含有echo指令的行追加" > TTY "。 TTY 是終端的序列槽(與/etc/inittab 中序列槽終端行的一樣)。 

三、 LILO 配置 

  如果想選擇兩個核心之一啟動,你必須修改LILO 配置檔案,/etc/lilo.conf。 配置LILO,使提示資訊出現在終端上,可以參考/usr/doc/lilo/README 檔案 (檢視SERIAL選項)。 這裡給出兩步正确設定的步驟: 

  首先,編輯/etc/lilo.conf file ,在BOOT選項行後,插入一個SERIAL選項 。 

serial=SERIAL_LINE,SPEED PARITY BITS 

  這裡: 

  SERIAL_LINE = 0 (序列槽1) 

          1 (序列槽2) 

         2 (序列槽3) 

         3 (序列槽4) 

  SPEED = 序列槽速度 

  PARITY = n (=無) 

       o (= 奇校驗) 

       e (= 偶校驗) 

  BITS = 資料位(8 or 7) 

  請注意:在SPEED, PARITY 和BITS參數間沒有空格。這些參數必須與在terminal 設定時的參數一樣。下面是LILO 配置的示例: 

  serial=1,9600n8 

  這一行表示COM2 ,速率9600bps,無校驗位,資料位8。 

  第二,運作lilo 指令,重新整理系統配置。 

  利用SERIAL 選項, LILO 在啟動預設核心前,設定了2秒的延遲 。在這期間,你可以 在終端上按"SHIFT"鍵發送一個終止信号,終止boot程序,并取得LILO提示資訊。 

  完成上述配置後,你的終端就可以作為一個控制台了。有一件事不能做的是用CTRL-ALT-DEL 重新開機動系統。

轉自:http://unix-cd.com/unixcd12/article_6097.html

繼續閱讀